DNS

这里是配置 DNS 的相关命令 , 包括配置文件以及注意事项的总结 , 至于什么是 DNS , 怎么架设等问题可以 Google 之.
这个是繁体-简体说法对照表 , 不习惯的同学可以猛击试试 :-)

Fully Qualified Domain Name ( FQDN ) : 在 Internet 当中 , 任何一部合法的主机都具有独一无二的主机名称 , 这个主机名称包含了 hostname 与 domain name  , 并称为 FQDN .

DNS 伺服器的类型主要分为 master , slave 以及只进行快取记录的 cache-only 的 DNS 主机 .

cache-only 与 forwarding DNS 主机设定

主要设定档

/etc/named.conf
在这个档案中 , 主要是定义跟主机有关的事项 , 以及各个 Zone 的代表含意与档案 .

/var/log/messages
bind 的启动停止信息

: 如果你在 /var/log/messages 里面一直看到这样的错误资讯 :  couldn't add command channel 127.0.0.1#953: not found 那表示你还必需要加入 rndc key .

涉及的命令

# /etc/init.d/named start
启动named

# netstat -utln
观察port的变化

# tail -n 20 /var/log/messages | grep named
查看 bind 的运行状况

通常出现问题的 :

1) 语法设定错误 :
这个问题好解决 , 因为在/var/log/messages 里面有详细的说明 , 按照内容去修订即可 .

2) 逻辑设定错误 :
这个就比较困扰了. 他主要发生在您设定 DNS 主机的时候 , 考虑不周所产生的问题 ! 例如忘记加上(.)  , 系统不会显示错误讯息 , 但是却会造成查询的误判 , 而 MX 设定的主机名称错误 , 也不会出现有问题的讯息 , 但是 mail server 就是会收不到信等等 . 这些错误都需要很详细的 DNS client 的测试才能知道问题的所在 .

Master / Slave 架构

涉及的文件

/etc/named.conf
1) 这个设定档是整个 Linux 上 DNS 的核心 : 规范 DNS 伺服器的使用权限 ( 可否查询, forward 与否 , master/slave 架构等 ) ;
2) 设定出 zone (domain name) 以及 zone file 的所在 ;
3) 设定 DNS 本机管理介面以及其相关的金钥档案 (key file) .
4) 在整体伺服器的环境与使用权限方面 , 主要是透过 options {….} 这个设定来处理的 ; 还是要注意 , 在named.conf当中注解使用//  , 而每一个设定项目最后需要分号(;)

涉及的命令

# host [-a] [FQDN] [server]
# host -l [domain] [server]
-a : 代表列出该主机所有的相关资讯 , 包括 IP , TTL 等等
-l  : 若后面接的那个 domain 设定允许 allow-transfer 时 , 则列出该 domain 所管理的所有主机名称对应资料
server : 这个参数可有可无 , 当想要利用非 /etc/resolv.conf 内的 DNS主机来查询主机名称与 IP 的对应时 , 就可以利用这个参数了

# nslookup [FQDN] [server]
可以直接在 nslookup 加上待查询的主机名称或者是 IP , [server] 可有可无
如果在 nslookup 后面没有加上任何主机名称或 IP  , 那将进入 nslookup 的查询功能在 nslookup 的查询功能当中 , 可以输入其他参数来进行特殊查询 例如 :
set type=any : 列出所有的资讯 “ 正解方面设定档 “  
set type=mx  : 列出与 mx 相关的资讯

# dig [@server] [FQDN] [type]
@server  : 如果不想以 /etc/resolv.conf 来作为 DNS 主机 , 则可在此填入其他的 IP
type : 预设是查询 A 标志 , 你可以在这里入其他的标志 , 如 mx, ns 等 .  此功能亦可使用 [-t type] 来处理

# whois [domainname]
查看域名的详细信息

利用 RNDC 管理 DNS

启动 DNS 后在 /var/log/messages 老是看到这一句话 :
command channel listening on 127.0.0.1#953

很简单 , 要先建立一把 rndc key  , 然后加到 named.conf当中去即可

# rndc-confgen
#上面的输出请将他贴到rndc.conf档案当中吧 !

# vi /etc/rndc.conf
# chmod 640 /etc/rndc.conf
# chown root.named /etc/rndc.conf

# vi /var/named/chroot/etc/named.conf

# /etc/init.d/named restart

范例一 : 将目前 DNS 伺服器的状态显示出来
# rndc status

范例二 : 将目前系统的 DNS 统计资料记录下来
# rndc stats
#此时 , 预设会在 /var/named/chroot/var/named/data 内产生新档案

范例三 : 将目前快取记忆体当中的资料记录下来
#与stats类似 , 会将cache的资料放置成为一个档案 , 你可以去查阅 :
# /var/named/chroot/var/named/data/cache_dump.db

子网域授权

上层主机端 vbird.tsai 的设定 :
只要将子网域开放出来给别人使用就对了. 接将 niki.vbird.tsai. 这个网域的 NS 权限 (name server) 转给 niki.vbird.tsai. 这部主机来管理 , 并同时列出niki.vbird.tsai 的正解资讯 .

下游主机niki.vbird.tsai的设定 :
直接参考一下我们上面写的资料 , 跟着设定 , 但是您的 domain name变成 niki.vbird.tsai 就是了.

总结

在 client 端设定 DNS 查询顺序与相关功能的几个重要档案
1) etc/nsswitch.conf
2) /etc/hosts
3) /etc/resolv.conf

正解 (forward) 的纪录 (record) 主要有 : SOA , A , MX , NS , CNAME , TXT 及 HINFO 等 ;
反解 (reverse) 的纪录主要有 :  SOA , PTR 等 ;

各个 RR 的详解

(1) SOA资源记录
每个数据库文件按的开始处都包含了一个起始授权记录 (Start of Authority Record) , 简称 SOA 记录 . SOA 定义了域的全局参数 , 进行整个域的管理设置 . 一个区域文件只允许存在唯一的 SOA 记录 .

(2) NS资源记录
名称服务器 (NS) 资源记录表示该区的授权服务器 , 它们表示 SOA 资源记录中指定的该区的主和辅助服务器 , 也表示了任何授权区的服务器 . 每个区在区根处至少包含一个 NS 记录 .

(3) A资源记录
地址 (A) 资源记录把 FQDN 映射到 IP 地址 , 因而解析器能查询 FQDN 对应的 IP 地址 .

(4) PTR资源记录
相对于 A 资源记录 , 指针 (PTR) 记录把 IP 地址映射到 FQDN .

(5) CNAME资源记录
规范名字 (CNAME) 资源记录创建特定 FQDN 的别名 . 用户可以通过定义的 CANME 记录中的别名来访问 .

(6) MX资源记录
邮件交换 (MX) 资源记录为 DNS 域名指定邮件交换服务器 . 邮件交换服务器是为 DNS 域名处理或转发邮件的主机 . 处理邮件指把邮件投递到目的地或转交另一不同类型的邮件传送者 . 转发邮件指把邮件发送到最终目的服务器 .

(7) 泛域名解析记录
除了在数据库文件中定义的资源记录以为 , 其他的所有域名都可以被 DNS 所解析出来 .

更详细的可以参见 :
http://linux.vbird.org/
http://blog.chinaunix.net/u3/111899/showart_2197852.html
http://blog.chinaunix.net/u3/111899/showart_2197853.html
http://blog.chinaunix.net/u3/111899/showart_2197857.html

  • http://blog.ibfsu.com Carlos Gong

    沙发~