修订历史 | ||
---|---|---|
修订 1.0 | 2003/1/22 | jiangxin |
转换为 DocBook 格式 | ||
修订 0.9 | 2000/8 | jiangxin |
DNS 配置要点 |
摘要
DNS 配置示例。
(编译自版本: 271718a,最后更新时间: 2007-06-14)
目录
最著名的 DNS(The Internet Domain Name System) 服务器——BIND(The Berkeley Internet Name Domain)。
安装
$ ./configure --prefix=/usr/local/bind $ make depend $ make $ make install
创建链接
$ mkdir -p /usr/local/bind/var/run $ mkdir -p /usr/local/bind/var/named $ mkdir -p /usr/local/bind/etc $ touch /usr/local/bind/etc/named.conf $ touch /usr/local/bind/etc/rndc.conf $ ln -sf /usr/local/bind/etc/named.conf /etc/named.conf $ ln -sf /usr/local/bind/etc/rndc.conf /etc/rndc.conf $ ln -sf /usr/local/bind/var/named /var/named $ ln -sf /usr/local/bind/sbin/rndc /usr/sbin/rndc $ ln -sf /usr/local/bind/sbin/named /usr/sbin/named
创建密钥
$ cd /usr/local/bind $ sbin/dnssec-keygen -a hmac-md5 -b 128 -n HOST worldhello.
创建配置文件:etc/rndc.conf
rndc: 远程域名服务控制器(The remote name daemon control:rndc)。是管理员用来控制域名服务器的应用程序,用于动态加载、停止、配置 DNS服务。它需要的配置文件为 /etc/rndc.conf
:
key worldhello. { algorithm "hmac-md5"; secret "nvNpPbfDZixmFzqSUVJn6w=="; }; options { default-server localhost; default-key worldhello. ; }; server localhost { key worldhello. ; };
创建配置文件:etc/named.conf
named.conf
是域名服务器的主配置文件。zone 是配置文件中的最重要的组成部分,描述了一个授权域名下的域名解析信息。一个复杂的配置例子如下:
key worldhello. { algorithm "hmac-md5"; secret "nvNpPbfDZixmFzqSUVJn6w=="; }; controls { inet 127.0.0.1 allow { localhost; } keys { worldhello.; }; }; acl bogus-nets { 0.0.0.0/8; 1.0.0.0/8; 2.0.0.0/8;}; acl our-inner-nets { 127.0.0.1/32; 10.0.0.0/8; }; acl our-outer-nets { 192.168.0.0/16; }; acl transfer-inner-ips { 10.0.0.2; }; acl transfer-outer-ips { 192.168.0.2; }; options { version "$Id, worldhello.net"; directory "/var/named"; allow-query { any; }; allow-recursion { our-inner-nets; our-outer-nets; }; blackhole { bogus-nets; }; notify yes; recursion yes; forward first; forwarders{ 202.106.0.20; }; listen-on-v6 { none; }; auth-nxdomain no; }; view "internal" { match-clients { our-inner-nets; }; recursion yes; zone "0.0.127.in-addr.arpa"{ type master; file "named.local"; notify no; }; zone "0.0.10.in-addr.arpa"{ type master; file "named.10.0.0"; notify yes; allow-transfer{ transfer-inner-ips; }; }; zone "worldhello.net"{ type master; file "named.inner.worldhello.net"; allow-query { any; }; allow-transfer{ transfer-inner-ips; }; notify yes; }; }; view "external" { match-clients { any; }; recursion no; zone "0.0.127.in-addr.arpa"{ type master; file "named.local"; notify no; }; zone "0.0.10.in-addr.arpa"{ type master; file "named.10.0.0"; notify yes; allow-transfer{ transfer-inner-ips; }; }; zone "worldhello.net"{ type master; file "named.outer.worldhello.net"; allow-query { any; }; allow-transfer{ transfer-outer-ips; }; notify yes; }; };
/var/named/named.local
$TTL 3600 @ IN SOA localhost. root.localhost. ( 2001030801 ; serial 28800 ; refresh 14400 ; retry 3600000 ; expire 86400 ; default_ttl ) @ IN NS localhost. 1 IN PTR localhost. ; End of File
/var/named/named.10.0.0
$TTL 3600 @ IN SOA ns1.worldhello.net. johnson.worldhello.net. ( 2001030801 ; serial 600 ; refresh 600 ; retry 3600000 ; expire 3400 ; default_ttl ) @ IN NS ns1.worldhello.net. @ IN NS ns2.worldhello.net. 1 IN PTR ns1.worldhello.net. 2 IN PTR ns2.worldhello.net. 10 IN PTR johnson.worldhello.net. ; End of File
/var/named/named.inner.worldhello.net
$TTL 3600 @ IN SOA ns1.worldhello.net. johnson.worldhello.net. ( 2001021802 ; serial 300 ; refresh 300 ; retry 7200000 ; expire 3600 ; default_ttl ) @ IN NS ns1.worldhello.net. @ IN NS ns2.worldhello.net. @ IN MX 5 mail.worldhello.net. @ IN MX 10 mail2.worldhello.net. @ IN A 10.0.0.1 localhost IN A 127.0.0.1 ns1 IN A 10.0.0.1 ns2 IN A 10.0.0.2 johnson IN A 10.0.0.10 www IN A 10.0.0.1 mail IN A 10.0.0.2 mail2 IN A 10.0.0.3 * IN CNAME johnson
/var/named/named.outer.worldhello.net
$TTL 3600 @ IN SOA ns1.worldhello.net. johnson.worldhello.net. ( 2001021802 ; serial 300 ; refresh 300 ; retry 7200000 ; expire 3600 ; default_ttl ) @ IN NS ns1.worldhello.net. @ IN NS ns2.worldhello.net. @ IN MX 5 mail.worldhello.net. @ IN MX 10 mail2.worldhello.net. @ IN A 192.169.0.100 localhost IN A 127.0.0.1 ns1 IN A 192.168.0.1 ns2 IN A 192.168.0.2 www IN A 192.168.0.1 johnson IN A 192.168.0.10 mail IN A 192.168.0.2 mail2 IN A 192.168.0.3
/var/named/named.192.168.0
$TTL 3600 @ IN SOA ns1.worldhello.net. johnson.worldhello.net. ( 2001030801 ; serial 600 ; refresh 600 ; retry 3600000 ; expire 3400 ; default_ttl ) @ IN NS ns2.worldhello.net. @ IN NS ns1.worldhello.net. 1 IN PTR ns1.worldhello.net. 2 IN PTR ns2.worldhello.net. 10 IN PTR johnson.worldhello.net. ; End of File
创建启动文件 /etc/rc.d/inet.d/named
#!/bin/sh # # named This shell script takes care of starting and stopping # named (BIND DNS server). # # chkconfig: 345 55 45 # description: named (BIND) is a Domain Name Server (DNS) \ # that is used to resolve host names to IP addresses. # probe: true # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ ${NETWORKING} = "no" ] && exit 0 [ -f /usr/sbin/named ] || exit 0 [ -f /etc/named.conf ] || exit 0 # See how we were called. case "$1" in start) # Start daemons. echo -n "Starting named: " daemon named echo touch /var/lock/subsys/named ;; stop) # Stop daemons. echo -n "Shutting down named: " killproc named rm -f /var/lock/subsys/named echo ;; status) /usr/sbin/rndc status exit $? ;; restart) /usr/sbin/rndc restart exit $? ;; reload) /usr/sbin/rndc reload exit $? ;; probe) # named knows how to reload intelligently; we don't want linuxconf # to offer to restart every time /usr/sbin/rndc reload >/dev/null 2>&1 || echo start exit 0 ;; *) echo "Usage: named {start|stop|status|restart}" exit 1 esac exit 0
创建 symbollink
$ ln -s /etc/rc.d/init.d/named /etc/rc.d/rc0.d/K45named $ ln -s /etc/rc.d/init.d/named /etc/rc.d/rc1.d/K45named $ ln -s /etc/rc.d/init.d/named /etc/rc.d/rc2.d/K45named $ ln -s /etc/rc.d/init.d/named /etc/rc.d/rc3.d/S55named $ ln -s /etc/rc.d/init.d/named /etc/rc.d/rc4.d/S55named $ ln -s /etc/rc.d/init.d/named /etc/rc.d/rc5.d/S55named $ ln -s /etc/rc.d/init.d/named /etc/rc.d/rc6.d/K45named
启动
$ tail -f /var/log/message & $ /etc/rc.d/init.d/named start
Copyright © 2006 WorldHello 开放文档之源 计划 |