2.3 主配置文件(全局配置文件)
BIND服务的主配置文件位于: /etc/named.conf。
- 设置DNS服务器的全局参数
- 包括监听地址和端口、区域数据文件存放的目录等
- 使用 options{......}; 的配置段
2.4 区域配置文件
区域配置文件位于:/etc/named.rfc1912.zones。
- 设置本服务器提供域名解析的特定DNS区域
- 包括域名、服务器角色、数据文件名等
- 使用 zone "区域名" IN{......}; 的配置段
2.5 区域数据库文件(zone文件)
BIND服务的区域数据库文件位于/var/named/ 目录下,具体文件名由管理员定义。一般格式为/var/named/域名.zone,例如:/var/named/yuji.com.zone。
2.5.1资源记录
主要包含以下三部分:
1)全局TTL配置项及SOA记录
- $TTL(Time To Live,生存时间): 表示DNS记录在DNS服务器上的缓存时间,默认单位秒。
- @:表示当前域名。
- IN:表示使用 Internet 协议。
- SOA(Start Of Authority,授权信息开始):表示解析方式。
- 分号 ";" 开始的部分表示注释信息
2)正向解析记录
- NS记录:域名服务器记录(Name Server)。
- MX记录:邮件交换记录(Mail Exchange)。
- A记录:地址记录(Address)。用来指定主机名(或域名)对应的IP地址记录。用于正向解析。
- CNANE:别名记录。 这种记录允许您将多个名字映射到同一台计算机。
NS master //当前区域的DNS服务器名称 master IN A 192.168.72.10 //记录DNS服务器master的IP地址 MX 10 mail.yuji.com //MX为邮件交换记录,数字越大优先级越低 MX 20 mail2.yuji.com //MX为邮件交换记录,数字越大优先级越低 mail IN A 192.168.72.103 //记录正向解析mail.yuji.com对应的IP mail2 IN A 192.168.72.104 //记录正向解析mail2.yuji.com对应的IP www IN A 192.168.72.101 //记录正向解析www.yuji.com对应的IP ftp IN A 192.168.72.102 //记录正向解析ftp.yuji.com对应的IP web IN CNAME WWW //CNAME使用别名,web是www的别名 * IN A 192.168.72.100 //泛域名解析,*表示任意主机名。泛域名有优先级,从上而下匹配。 复制代码
3)反向解析记录
PTR: 指针记录 (Pointer Record) ,用来指定IP地址对应的域名。用于反向解析。
记录的如一列指定IP地址中的主机地址部分
NS master //当前区域的DNS服务器名称 master IN A 192.168.72.10 //记录DNS服务器的IP地址 200 IN PTR www.nan.com //记录反向解析192.168.72.200对应的IP地址 201 IN PTR ftp.nan.com //记录反向解析192.168.72.201对应的IP地址 复制代码
小贴士:
- TTL可从全局继承
- 使用 "@" 符号可用于引用当前区域的域名
- 同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询方式响应。
- 同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值进行定义;此仅表示通过多个不同的名字可以找到同一个主机。
2.5.2 区域数据库文件的特殊应用
- 基于域名解析的负载均衡
- 同一域名对应到多个IP地址
- 泛域名解析
- 找不到精确对应的A记录时,使用星号(*)进行匹配
2.6 对配置文件进行语法检查
- named-checkconf工具:检查主配置文件
named-checkconf [主配置文件] //检查主配置文件的语法错误 named-checkconf -z [主配置文件] //加载主配置文件中对应的区域数据库文件 复制代码
- named-checkzone工具:检查区域数据库文件
named-checkzone <域名> [区域数据库文件] 例: named-checkzone yuji.com yuji.com.zone 复制代码
3、构建主域名服务器之正向解析
实验要求:
架设一台DNS服务器负责yuji.com域的域名解析工作。DNS服务器的IP地址为192.168.72.10,域名为master.yuji.com。要求为以下域名做正向解析工作。
www.yuji.com 192.168.72.101 ftp.yuji.com 192.168.72.102 mail.yuji.com 192.168.72.103 mail2.yuji.com 192.168.72.104 另外为www.yuji.com设置别名为web.yuji.com 其他主机名统一解析为192.168.72.100 复制代码
实验思路:
- 关闭防火墙和selinux。
- 确认本机网络地址、主机映射,将DNS服务器改为本机IP。
- 安装BIND软件包。
- 编辑主配置文件named.conf,允许DNS服务器监听所有IP地址,允许所有客户端查询。
- 编辑区域配置文件/etc/named.rfc1912.zones文件,设置正向解析区域。
- 建立正向解析区域数据文件yuji.com.zone。
- 重新启动named服务,或重载配置。验证正向解析是否成功。
实验步骤:
1、关闭防火墙和selinux。
[root@localhost ~]# systemctl stop firewalld [root@localhost ~]# setenforce 0 复制代码
2、确认本机IP地址、主机映射,将DNS服务器改为本机IP。
[root@localhost ~]# ifconfig ens36 //本机IP为192.168.72.10 ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.72.10 netmask 255.255.255.0 broadcast 192.168.72.255 inet6 fe80::82e9:8745:7968:b6b2 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:18:b5:09 txqueuelen 1000 (Ethernet) RX packets 15365 bytes 1311664 (1.2 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 28473 bytes 7715367 (7.3 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [root@localhost ~]# cat /etc/hosts //查看本机映射文件 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 [root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens36 //修改网卡配置文件 ------------------------- DNS1=192.168.72.10 //将DNS服务器地址改为本机地址 [root@localhost ~]# systemctl restart network //重启网络服务 [root@localhost ~]# cat /etc/resolv.conf //本机使用的DNS服务器已变为本机地址 # Generated by NetworkManager nameserver 192.168.72.10 复制代码
3、安装BIND软件包。查看配置文件位置。
[root@localhost ~]# yum install bind -y //安装BIND程序 [root@localhost ~]# rpm -qc bind //查看BIND配置文件 /etc/logrotate.d/named /etc/named.conf //主配置文件(全局配置文件) /etc/named.iscdlv.key /etc/named.rfc1912.zones //区域配置文件 /etc/named.root.key /etc/rndc.conf /etc/rndc.key /etc/sysconfig/named /var/named/named.ca //根域配置文件 /var/named/named.empty /var/named/named.localhost /var/named/named.loopback 复制代码
4、编辑主配置文件/etc/named.conf。并启动服务。
第一步:把options选项中的侦听IP(127.0.0.1)改为any。允许DNS服务器监听所有IP地址。
第二步:把allow-query 后面的localhost改为any。允许所有客户端查询。
第三步:启动named服务。
[root@localhost ~]# vim /etc/named.conf ---------------------------------- options { listen-on port 53 { any; }; //允许DNS服务器监听所有IP地址 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"; recursing-file "/var/named/data/named.recursing"; secroots-file "/var/named/data/named.secroots"; allow-query { any; }; //允许所有客户端查询 [root@localhost ~]# systemctl start named //启动named服务 复制代码
5、编辑区域配置文件/etc/named.rfc1912.zones文件,设置正向解析区域。
定义正向DNS区域,设置对应的正向解析数据库文件为yuji.com.zone。
[root@localhost ~]# vim /etc/named.rfc1912.zones ------------------------------------------- zone "yuji.com" IN { //定义正向DNS区域 type master; //定义区域类型为master file "yuji.com.zone"; //设置对应的正向解析数据库文件 allow-update { none; }; }; 复制代码
6、建立正向解析区域数据库文件yuji.com.zone
第一步:进入/var/named/ 目录,拷贝named.localhost文件并改名为yuji.com.zone。
第二步:编辑yuji.com.zone文件,设置每个域名对应的IP地址记录。
第三步:检查文件是否存在语法错误。
[root@localhost ~]# cd /var/named [root@localhost named]# ls data dynamic named.ca named.empty named.localhost named.loopback slaves [root@localhost named]# cp -p named.localhost yuji.com.zone [root@localhost named]# vim yuji.com.zone $TTL 1D @ IN SOA master admin.yuji.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS master //当前区域的DNS服务器名称 master IN A 192.168.72.10 //记录DNS服务器master的IP地址 MX 10 mail.yuji.com //MX为邮件交换记录,数字越大优先级越低 MX 20 mail2.yuji.com //MX为邮件交换记录,数字越大优先级越低 mail IN A 192.168.72.103 //记录正向解析mail.yuji.com对应的IP mail2 IN A 192.168.72.104 //记录正向解析mail2.yuji.com对应的IP www IN A 192.168.72.101 //记录正向解析www.yuji.com对应的IP ftp IN A 192.168.72.102 //记录正向解析ftp.yuji.com对应的IP web IN CNAME WWW //CNAME使用别名,web是www的别名 * IN A 192.168.72.100 //泛域名解析,*表示任意主机名。泛域名有优先级,从上而下匹配。 [root@localhost named]# named-checkzone yuji.com yuji.com.zone //进行语法检查 zone yuji.com/IN: loaded serial 0 OK 复制代码
7、重新启动named服务,或重载配置。验证正向解析是否成功。
[root@localhost named]# systemctl restart named //重启named服务 [root@localhost named]# host www.yuji.com //正向解析www.yuji.com对应的IP www.yuji.com has address 192.168.72.101 [root@localhost named]# host ftp.yuji.com //正向解析ftp.yuji.com对应的IP ftp.yuji.com has address 192.168.72.102 [root@localhost named]# host new.yuji.com //正向解析new.yuji.com对应的IP new.yuji.com has address 192.168.72.100 复制代码