DNS服务器构建
DNS服务器的功能
正向解析:根据注册的域名查找其对应的IP地址
反向解析:根据ip查找其对应的域名
—二者各有各的配置,不能一概而论
DNS服务器分类:
根域名服务器、一级DNS服务器、二级DNS服务器、三级DNS服务器
域名系统: 所有的域名都必须要以点作为结尾,树型结构
www.qq.com www.qq.com.
游览器会自动在域名后面加.
根域名 : .
一级域名 .com 、.org(开源)、 .cn(中国) 、.us(美国)、 .tw 、.hk(香港) 、.jp(日本)、 .kr …
二级域名: .haha.cn 、.nb.cn 、.one.cn …
三级域名: test.nb.cn 、tts.nb.cn、 abc.nb.cn ……
Full Qualified Domain Name
FQDN(完全合格的域名):站点名+注册的域名
例子: haha.com 首页:www.haha.com
邮件:mail.haha.com
会员:vip.haha.com
BIND(Berkeley Internet Name Daemon)
–伯克利 Internet 域名服务
–官方站点:https://www.isc.org/
• BIND服务器端程序
–主要执行程序:/usr/sbin/named
–系统服务:named
–DNS协议默认端口:53
–运行时的虚拟根环境:/var/named/chroot
安装bind后会自动添加用户named负责dns
【建议在实验中cp -p 备份主配置文件,-p保持权属不变】
•主配置文件:/etc/named.conf #设置负责解析的域名
•地址库文件:/var/named #完全合格的域名与IP地址对应关系
例如: www.haha.com 192.168.1.1
mail.haha.com 192.168.44.1
dnf.haha.com 192.168.55.2
•修改示例
•主配置文件:/etc/named.conf
options {
listen-on port 53 { any; }; #监听本机所有地址的53端口
listen-on-v6 port 53 { ::1; }; #必须删除,关于IPv6地址
……此处省略一万字
allow-query { any; }; #允许所有客户端进行DNS查询
……此处省略一万字
recursion yes; #支持递归查询
zone "." IN {
type hint;
file "named.ca";
};
zone "tedu.cn" IN {
type master;
file "tedu.cn.zone";
};
……此处省略一万字
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
•地址库文件: 完整示例
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
tedu.cn. NS server.tedu.cn.
server.tedu.cn. A 192.168.88.240
www.tedu.cn. A 1.1.1.1
ftp.tedu.cn. A 2.2.2.2
虚拟机A:构建DNS服务器
1.安装软件包
[root@server ~]# yum -y install bind bind-chrootbind(主程序)bind-chroot(提供牢笼政策)
2.修改主配置文件
[root@server ~]# cp -p /etc/named.conf /root #备份数据[root@server ~]# ls -l /root/named.conf
[root@server ~]# vim /etc/named.conf #大致浏览内容[root@server ~]# vim /etc/named.conf
options {
directory "/var/named"; #定义地址库文件存放路径
};
zone "tedu.cn" IN { #定义负责的解析tedu.cn域名
type master; #权威主DNS服务器
file "tedu.cn.zone"; #地址库文件名称
};
3.建立地址库文件
保证named用户对地址库文件有读取权限
如果没有以点作为结尾,那么默认补全本地库文件负责的域名
[root@server ~]# cd /var/named/
[root@server ~]# cp -p named.localhost tedu.cn.zone #保持权限不变
[root@server ~]# ls -l xixi.com.zone
[root@server ~]# vim /var/named/xixi.com.zone
……此处省略一万字
NS server #声明DNS服务器为server
server A 192.168.88.240 #server解析结果为192.168.88.240
#dns 地址池
www A 1.1.1.1
ftp A 2.2.2.2
[root@server named]# systemctl restart named
虚拟机B:测试DNS服务器
1.指定DNS服务器地址
[root@server ~]# echo nameserver 192.168.88.240 > /etc/resolv.conf
[root@server ~]# cat /etc/resolv.conf
2.命令测试域名解析
[root@server ~]# nslookup www.xixi.com
[root@server ~]# host www.xixi.com
/etc/hosts文件与/etc/resolv.conf文件
1./etc/hosts文件域名解析最高优先级
2./etc/resolv.conf文件指定DNS服务器地址
特殊解析
•DNS的泛域名解析
虚拟机A:
[root@server /]# vim /var/named/tedu.cn.zone
……此处省略一万字
NS server
server A 192.168.88.240
www A 1.1.1.1
ftp A 2.2.2.2
* A 6.6.6.6
tedu.cn. A 7.7.7.7
[root@server /]# systemctl restart named
虚拟机B测试:
[root@pc2 /]# nslookup wwwwww.tedu.cn
[root@pc2 /]# nslookup tedu.cn
DNS有规律的泛域名解析
pc1.xixi.com-------->192.168.1.1
pc2.xixi.com-------->192.168.1.2
pc3.xixi.com-------->192.168.1.3
pc4.xixi.com-------->192.168.1.4
…
pc50.xixi.com-------->192.168.1.50
内置函数:$GENERATE 制造连续的数字
虚拟机A:
[root@server /]# vim /var/named/xixi.com.zone
……此处省略一万字
NS server
server A 192.168.88.240
www A 1.1.1.1
$GENERATE 1-50 pc$ A 192.168.1.$
[root@server /]# systemctl restart named
虚拟机B测试:
[root@pc2 /]# nslookup pc1.xixi.com
[root@pc2 /]# nslookup pc23.xixi.com
•DNS的解析记录的别名
虚拟机A:
[root@server /]# vim /var/named/xixi.com.zone
#……此处省略一万字
NS serverserver A 192.168.88.240
www A 1.1.1.1
ftp A 2.2.2.2
vip CNAME ftp #vip解析结果与ftp解析结果一致[root@server /]# systemctl restart named
虚拟机B:测试
[root@pc2 ~]# nslookup vip.xixi.com
DNS服务器资源解析记录的类型:
NS:DNS服务器声明记录
A:正向解析记录
CNAME:解析记录的别名
/etc/hosts
/etc/resolv.conf
递归查询(递归解析)与迭代查询(迭代解析)
递归查询:客户端发送请求给首选DNS服务器,首选DNS服务器与其他的DNS服务器交流,最终将解析结果带回来过程
迭代查询: 客户端发送请求给首选DNS服务器,首选DNS服务器告知下一个DNS服务器地址
常见DNS工单要求
DNS服务器搭建要求:
实现DNS服务器,在192.168.88.240上构建
负责域名为sina.com,实现站点名www的解析
实现www.sina.com解析结果为192.188.16.17
虚拟机A
1.安装软件包bind与bind-chroot
2.修改主配置文件
[root@server /]# vim /etc/named.conf
........此处省略一万字
zone "sina.com" IN {
type master;
file "sina.com.zone";
};
3.建立地址库文件
[root@server ~]# cd /var/named/
[root@server ~]# cp -p named.localhost sina.com.zone
[root@server ~]# vim sina.com.zone
........此处省略一万字
NS server
server A 192.168.88.240
www A 192.188.16.17
[root@server /]# systemctl restart named
综合实战
关闭防火墙与SELinux
虚拟机A:
\1. 构建Web服务器
[root@server /]# yum -y install httpd
\2. 建立配置文件
[root@server /]# vim /etc/httpd/conf.d/nsd01.conf #建立调用配置文件
<VirtualHost *:80> #启用虚拟Web主机功能,使用80端口 ServerName www.qq.com #网站名称
DocumentRoot /var/www/qq #网页文件路径
</VirtualHost>
<VirtualHost *:80>
ServerName 360.qq.com
DocumentRoot /var/www/360
</VirtualHost>
\3. 建立网站
[root@server /]# mkdir /var/www/qq /var/www/360
[root@server /]# echo wo shi QQ > /var/www/qq/index.html
[root@server /]# echo wo shi 360 > /var/www/360/index.html
\4. 重启服务
[root@server /]# systemctl restart httpd
5.构建DNS服务器
[root@server /]# yum -y install bind bind-chroot
6.主配置文件的修改
[root@server /]# vim /etc/named.conf
options {
directory "/var/named"; #地址库文件存放路径
};
zone "tedu.cn" IN {
type master;
file "tedu.cn.zone";
};
zone "qq.com" IN {
#定义负责解析qq.com域名
type master; #类型主DNS服务器
file "qq.com.zone"; #地址库文件名称
};
7.地址库文件的建立
[root@server ~]# cd /var/named/
[root@server ~]# cp -p named.localhost tedu.cn.zone #保持权限不变
[root@server ~]# ls -l tedu.cn.zone
[root@server ~]# vim tedu.cn.zone
……此处省略一万字
NS server #声明DNS服务器为server
server A 192.168.88.240 #server解析结果为192.168.88.240
www A 1.1.1.1
ftp A 2.2.2.2
[root@server ~]# cp -p named.localhost qq.com.zone
[root@server ~]# vim qq.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS server
server A 192.168.88.240 #DNS服务器的IP地址
www A 192.168.88.240 #由于Web服务器也是192.168.88.240
360 A 192.168.88.240 #解析结果要写Web服务器地址
8.重启服务
[root@server /]# systemctl restart named
虚拟机B测试:(避免/etc/hosts文件影响)
[root@pc2 ~]# echo nameserver 192.168.88.240 > /etc/resolv.conf
[root@pc2 ~]# nslookup www.qq.com
Server: 192.168.88.240
Address: 192.168.88.240#53
Name: www.qq.com
Address: 192.168.88.240
[root@pc2 ~]# nslookup 360.qq.com
Server: 192.168.88.240
Address: 192.168.88.240#53
Name: 360.qq.com
Address: 192.168.88.240
[root@pc2 ~]#
[root@pc2 ~]# curl 360.qq.com
wo shi 360
[root@pc2 ~]# curl www.qq.com
wo shi QQ
[root@pc2 ~]#
案例:搭建单区域DNS服务器
问题
本例要求要求为DNS区域tedu.cn搭建一台DNS服务器,以便用户能通过域名的方式访问网站。测试阶段主要提供以下正向记录:
- svr1.tedu.cn —> 192.168.88.240
- pc2.tedu.cn —> 192.168.88.2
- www.tedu.cn —> 192.168.4.100
配置完成后在客户机上验证查询结果。
方案
快速构建DNS服务器的基本过程:
- 安装 bind、bind-chroot 包
- 建立主配置文件 /etc/named.conf
- 建立地址库文件 /var/named/… …
- 启动 named 服务
配置及使用DNS客户端的基本过程:
- 修改配置文件/etc/resolv.conf,添加nameserver=DNS服务器地址
- 使用host命令查询,提供目标域名作为参数
步骤
实现此案例需要按照如下步骤进行。
步骤一:配置DNS服务器svr1
1)安装 bind、bind-chroot 包
[root@svr1 ~]# yum -y install bind bind-chroot.. ..
2)建立主配置文件 /etc/named.conf
[root@svr1 ~]# mv /etc/named.conf /etc/named.conf.origin //备份默认配置
[root@svr1 ~]# vim /etc/named.conf //建立新配置
options { directory "/var/named"; //地址库默认存放位置
};
zone "tedu.cn" { //定义正向DNS区域
type master; //主区域
file "tedu.cn.zone"; //自定义地址库文件名};
3)建立地址库文件 /var/named/tedu.cn.zone
[root@svr1 ~]# cd /var/named/ //进地址库目录
[root@svr1 named]# cp -p named.localhost tedu.cn.zone //参考范本建地址库文件
[root@svr1 named]# vim tedu.cn.zone //修订地址库记录
$TTL 1D //文件开头部分可保持不改
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS svr1 //本区域DNS服务器的FQDN
svr1 A 192.168.88.240 //为NS主机提供A记录
pc2 A 192.168.88.2 //其他正向地址记录.. ..
www A 192.168.4.100
4)启动 named 服务,并设置开机自启
[root@svr1 named]# systemctl restart named
[root@svr1 named]# systemctl enable named
Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.
步骤二:配置DNS客户机pc2并测试
1)修改配置文件/etc/resolv.conf,指定默认使用哪一台DNS服务器
[root@pc2 ~]# vim /etc/resolv.conf nameserver 192.168.88.1.. ..
2)使用host命令查询,提供目标域名作为参数
[root@pc2 ~]# host svr1.tedu.cn
svr1.tedu.cn has address 192.168.88.240
[root@pc2 ~]# host pc2.tedu.cn
pc2.tedu.cn has address 192.168.88.2
[root@pc2 ~]# host www.tedu.cn
www.tedu.cn has address 192.168.4.100
使用host测试DNS查询结果时,如果不方便修改/etc/resolv.conf文件,也可以采用“host 目标域名 DNS服务器地址”形式临时指定使用哪一台DNS服务器。
[root@pc2 ~]# host pc2.tedu.cn 192.168.88.240
Using domain server:
Name: 192.168.88.1
Address: 192.168.88.1#53
Aliases:
pc2.tedu.cn has address 192.168.88.2