1.准备必备知识:
DNS Domain Name System 域名系统的缩写,因特网的一项核心服务,作为可以将它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
它是由解析器以及域名服务器组成的。域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。
2.准备一个软件BIND
BIND上的客户端工具
- dig
- host
- nslookup
- dig -t A www.baidu.com @196.168.0.254
- #通过196.168.0.254这个服务器解析www.baidu.com的IP地址,注意此命令输出的格式
3.认识服务器端的主配置文件:
注意观察下面文件的格式和内容及其他定义
- /etc/named.conf.origin 文件内容
- ##############################################################
- //
- // named.conf
- // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
- // server as a caching only nameserver (as a localhost DNS resolver only).
- // See /usr/share/doc/bind*/sample/ for example named configuration files.
- #全局选项段
- options {
- listen-on port 53 { 127.0.0.1; };
- listen-on-v6 port 53 { ::1; };
- directory "/var/named";
- dump-file "/var/named/data/cache_dump.db";
- statistics-file "/var/named/data/named_stats.txt";
- memstatistics-file "/var/named/data/named_mem_stats.txt";
- allow-query { localhost; };
- recursion yes;
- dnssec-enable yes;
- dnssec-validation yes;
- dnssec-lookaside auto;
- /* Path to ISC DLV key */
- bindkeys-file "/etc/named.iscdlv.key";
- };
- logging {
- channel default_debug {
- file "data/named.run";
- severity dynamic;
- };
- };
- zone "." IN {
- type hint;
- file "named.ca";
- };
- include "/etc/named.rfc1912.zones";[5[
- ##############################################################
DNS服务器角色:
主DNS
辅助DNS
缓存DNS #需要知道根服务器在什么地方,这个需要标明
4.添加/修改相应的配置文件
这是其中最关键的步骤,
安装BIND的时候红帽给我们添加了一些命令文件和配置文件,主要的配置文件有:
1)./etc/named.conf
2).上面的配置文件中的一些自己定义的区域文件,
/var/named目录下
包含正向区域和反向区域
如果不想用这些配置文件,那么就自己创建的时候就要修改上述的文件,修改文件的注意事项
注意文件的权限(640)和属主(root)、属组(named)
- options {
- directory "/var/named";
- };
- zone "." IN {
- type hint;
- file "named.ca";
- };
- zone "localhost" IN {
- type master;
- file "localhost.zone"; #此文件记录的都是资源记录和宏定义
- };
- zone "ZONE1" IN {
- type master;
- file "FILENAME.ZONE1";
- };
- zone "ZONE2" IN {
- type master;
- file "FILENAME.ZONE2";
- };
- ....
localhost.zone文件内容:
- $TTL 86400
- @ IN SOA localhost. admin.localhost.( #当前区域文件可用@引用,此行必须是SOA记录
- 2012101801 #版本号,注意不可超过10位
- 1H #刷新时间
- 5M #重试时间
- 7D #过期时间
- 1D ) #否定回答的TTL值
- IN NS localhost.
- #此处当前区域名称因为与紧前面一条记录相同,被略去了,表当前域等待域名服务器是谁
- localhost. IN A 127.0.0.1
- #任何一个NS记录都应该给一个主机名称和A记录
- vim 127.0.0.zone #反向区域记录
- $TTL 86400
- @ IN SOA localhost. admin.localhost. (
- 2012101801
- 1H
- 5M
- 7D
- 1D )
- IN NS localhost.
- 1 IN PTR localhost.
#修改文件属组和权限,到此,缓存服务器可以工作了,主要目的是解析某个区域
- servic named configtest #检查配置文件语法
- named-checkconf #主配置文件语法
- nmaed-checkzone ZONENAME(区域名) ZONEFILE(区域文件名) #检查各区域文件语法
- service named start #如果一切没有错误,启动服务
- netstat -tunlp | grep 53 #查看53端口是否启动
- rndc status 查看服务器状态
- rndc reload #重新载入配置文件,用于配置文件更改时
- rndc reload zone 重新载入某区域文件,如果区域文件较多,用此节省时间
- rndc reconfig 重新载入主配置文件和发生过更新的区域文件
- dig +trace -t A www.baidu.com @127.0.0.1
查找的时候列出查找记录
- tail /var/log/messages 查看日志记录
实战:
比如有个网站叫:magedu.com,这个时候就要去设置。方法如下:
- #在主配置文件中添加一段
- zone "magedu.com" IN {
- type master;
- file "magedu.com.zone";
- };
- 创建相应的区域文件
- vim magedu.com.zone
- $TTL 86400
- $ORIGIN magedu.com
- @ IN SOA ns.magedu.com admin.magedu.com {
- 2012101801
- 2H
- 10M
- 15D
- 1D )
- IN NS ns
- #注意,此处ns实际应为ns.magedu.com,ns后有点儿就必须把名字写完整,不写全就不弄完整
- IN MX 10 mail
- #如果需要MX就添加上去
- ns IN A 172.16.100.1
- mail IN A 172.16.100.2
- www IN A 172.16.100.1
- #一个主机可以有多个名字
- ftp IN CNAME www
- #ftp是www的别名
还要设置反向区域,在主配置文件/etc/named.conf中添加此段:
- zone "16.172.in-addr.arpa" IN {
- type master;
- file "172.16.zone";
- };
#注意检查语法
#named.conf
创建相应的区域文件
- vim 172.16.zone
- $TTL 86400
- // $ORIGIN 10.16.172.in-addr.arpa #此处不能用ORIGIN,而是in-addr.arpa
- @ IN SOA ns.magedu.com admin.magedu.com {
- 2012101801
- 2H
- 10M
- 15D
- 1D )
- IN NS ns.magedu.com
- 1.10 IN PTR ns.magedu.com
- 2.10 IN PTR ns.magedu.com
- 1.10 In PTR ns.magedu.com
- // IN MX 10 mail #反向区域文件不需要MX记录和A记录