Linux学习 DNS服务
DNS高速缓存服务器
一、DNS高速缓存
(一)服务端
1.设置网络:ifconfig eth0 172.25.254.109/24
systemctl start network
2.systemctl stop firewalld
3.配置yum 源指向
yuminstall bind.x86_64 -y
4.systemctl start named
5.修改主配置文件
初始内容如下:
vim /etc/named.conf #修改主配置文件
options {
listen-on port 53 { any; }; #监听任何主机的端口
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 {any; }; #允许任何客户端访问
6.systemctlretart named #一定要重启服务
7.在服务器端可以使用如下命令查看服务是否开放
netstat antlpe | grep named
(二)测试端配置
1.编辑/etc/resolve.conf 解析文件,解析地址指向服务端
2.使用如下命令,查看该服务器是否可以解析
dig网址 #查看该网址的解析地址
(三)高速缓存
图中可以看到解析结果中显示服务失败,因为该服务器中没有该网址的A记录,因此需要继续修改主配置文件,给出更高级的服务器端口。在文件加入命令
forwarders {172.25.254.250;}; #查找更高级的DNS解析服务器
systemctl retart named #一定要重启服务
先在一个客户端访问某一网址,看解析时间
再用同一网段的另一客户端访问同一网址,发现解析时间变短甚至为0
二、搭建权威DNS
(一)修改配置文件
1.修改主配置文件
vim /etc/named.conf
zone"." IN { #该域名所包含的内容
type hint; #类型
file "named.ca"; #DNS域名解析表
};
include"/etc/named.rfc1912.zones"; #DNS表格位置
include "/etc/named.root.key";
如主配置文件中格式,先将需要建立的DNS表格写在字配置文件/etc/named.rfc1912.zones中
2.vim /etc/named.rfc1912.zones
添加如下内容
zone "westos.com" IN { #"westos.com"将要建立的域名
type master; #类型
file "westos.com.zone";#域名解析表在文件/var/named/westos.com.zone中
allow-update { none; }; #不允许更新
};
注意:为保持文件权限及文件中表格格式一致,可以用如下方式新建westos.com.zone。
cd/var/named
ll #可以查看文件权限
cp -p name.local westos.com.zone #新建文件,文件内容格式与.name.local中格式相同
3.vim /var/named/westos.com.zone #写域名解析表
原内容显示如下
$TTL 1D #该文件内容即该解析表格可以维持使用的有效时长是一天
@ ##该符号表示域名 IN SOA @ rname.invalid. ( #授权起始,
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H) ; minimum
NS @
A 127.0.0.1
AAAA ::1
修改后内容显示如下:
$TTL 1D #表示该表格可以维持使用一天
@ IN SOA dns.westos.com.rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H) ; minimum
NS dns.westos.com.
dns A 172.25.254.109 #A记录
www A 172.25.254.200
其中:@ 表示westos.com
Root.westos.com #该文件维护的用户
注意:在编辑时若域名后不加. 时,系统将会在域名后自动补齐westos.com;加 . 则表示不再自动补齐。
如:dns 表示dns.westos.com
www 表示www.westos.com
dns.westos.com. 表示dns.westos.com,不再自动补齐
3.systemcl restart named #重起服务
4检测:dig www.westos.com #在服务端或客户端均可检测
三、CNAME域名规范
1.vim /var/name/westos.com.zone #编辑域名解析表
$TTL 1D
@ IN SOA dns.westos.com.rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H) ; minimum
NS dns.westos.com.
dns A 172.25.254.109
www A 172.25.254.202
edu CNAME edu.cn.westos.com. #edu.cn.wetos.com并不是edu.westos.com的规范域名
edu.cn A 172.25.254.209 #edu.cn.wetos.com的A记录文件位置
2.systemctl restart named #重启服务
3.检测:dig deu.westos.com #客户端或服务端执行均可
四、MX邮件解析记录
1.vim /var/name/westos.com.zone #编辑域名解析表
在解析表在中增加内容:
westos.com. MX 1 172.25.254.109. #westos.com邮箱解析记录在172.25.254.109这台主机中
其中““1”表示优先级。
2.客户端测试:dig -t mx westos.com
注意: vim /var/named/westos.comz.zone
westos.com. A 172.25.254.100. #解析地址一定要加点,否则重启服务后该地址会自动补齐westos.com
五、DNS多方向解析--视图方式
1.服务端添加网卡eth1,并设置网络
vim /etc/sysconfig/network-scripts/eyh1 #设置新增网卡的IP地址
sytemctl restart network
2.修改主配置文件先注释掉如下解析方式
/*zone "." IN {
type hint;
file "named.ca";
};
include"/etc/named.rfc1912.zones";
include "/etc/named.root.key";
*/
添加内容如下:实现解析两个网段
view clientnet {
match-clients {172.25.9.0/24;}; #与172.25.9.0/24网段的主机进行匹配
zone "." IN {
type hint;
file "named.ca";
};
include"/etc/named.rfc1912.inter"; #该段网址的解析内容包含在/etc/name.rfc1912.inter文件中
};
view localnet {
match-clients {172.25.254.0/24; }; #与该网段主机进行匹配
zone "." IN {
type hint;
file "named.ca";
};
include"/etc/named.rfc1912.zones"; #该段网址的解析内容包含在/etc/name.rfc1912.inter文件中
};
3.cp -p /var/named/westos.com.zone /var/named/westos.com.inter #使用cp -p 命令复制文件内容,避免文件权限改变
cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.inter #新建文件
4.vim /etc/named.rfc1912.inter
vim /var/named/westos.com.inter
5.systemctl restart named #重启服务
6.客户端172.25.9.10 #172.25.9.0/24网段
vim /etc/resolve
namesever 172.25.9.109
7.测试命令:dig 域名
8.在172.25.254.0/24网段的客户端测试
vim /etc/resols.conf #先修改解析文件
nameserver 172.25.254.109
:wq
六、反向解析--由IP得到域名
1.vim /etc/named.rfc1912.zone
修改第43行,原内容显示如下
43 zone "0.in-addr.arpa" IN{
44 type master;
45 file "named.empty";
46 allow-update { none; };
47};
修改后内容如下显示:
43 zone "254.25.172.in-addr.arpa"IN { #反向解析IP地址,注意书写顺序
44 type master;
45 file "westos.com.ptr"; #反向解析文件类型为ptr
46 allow-update { none; };
47};
2.cp -p /var/named/named.loopback westos.com.ptr
3.vim /var/named/nwestos.com.ptr
4.systemctl restart named #重启服务
5.使用同一网段的客户端测试 #172.25.254.0/24
dig -x 172.25.254.111
七、DNS更新
(一)客户端更新解析域名
先在服务器端执行如下命令
1.getsebool -a | grep named #查看服务
setsebool -P named_write_master_zones 1 #打开服务
2.cp -p /var/named/westos.com.zone/mnt/westos.com.zone #备份
chmod 770 /var/named
3.vim /etc/named.rfc1912.zones
zone "westos.com"IN {
type master;
file "westos.com.zone";
allow-update {172.25.254.209;}; #允许指定的主机去更新DNS域名解析表
};
4.systemctl restart named
5.客户端测试,使用命令nsupdate
(1)添加域名解析
[[email protected] ~]# nsupdate
> server 172.25.254.109
> update add hello.westos.com 86400 A172.25.254.222
#add 表示添加;
#hello.westos.com 新增的域名
#86400 即TTL 1D, 表示该有效期保持一天
#A 172.25.254.222 A记录文件,解析地址是172.25.254.222
> send
在服务器端重启服务并查看是否有更新
systemctl restart named
ll /var/named/
cat /var/named/westos.com.zone
(2)删除域名解析
[[email protected] ~]# nsupdate
> update delete hello.westos.com #删除该域名解析
> send
在服务器端重启服务并查看是否有更新
systemctl restart named
ll /var/named/
cat /var/named/westos.com.zone
(二)在服务端恢复更新
1.rm -fr /var/named/westos.* #删除更新后所生成的文件
2.cp -p /mnt/westos.com.zone /var/named/westos.com.zone
3.systemctl restart named
八、加密更新
1.增加key,可以先查看系统默认生成的key文件格式,根据该格式来生成key文件
cat /etc/rndc.key #查看系统默认生成的key文件
其中 -a #加密类型,系统默认类型是hmac-md5
-b #密码长度
-n #用户
cd /mnt
dnssec-****** -a HMAC-MD5 -b 256 -n HOST westoskey #钥匙名
ls #查看生成的钥匙及加密字符文件
注:在执行生成westoskey这条命令时,若westoskey 不能及时生成,则可以任意敲键盘或移动鼠标来完成命令。
3.编辑key 的配置文件
cp -p /etc/rndc.key /etc/westos.key #以系统生成的默认加密格式生活曾加密文件
vim /etc/westos.key
[[email protected] ~]# cat /etc/westos.key
key "westoskey" { # "key名称"
algorithm hmac-md5; #加密类型是hmac-md5
secret "加密字符串"; #生成的加密字符,即公钥
};
4.设置DNS更新权限
(1)vim /etc/named.conf
42行以下的位置添加如下命令:
include "/etc/westos.key"
(2)vim /etc/named.rfc1912.zones
修改域名解析内容,显示如下
zone "westos.com" IN {
type master;
file "westos.com.zone";
allow-update {key westoskey;}; #指定有公钥文件的主机可以更新
};
(3)重启服务
4.客户端无公钥时测试,更新失败
5.服务端分配钥匙
ls /mnt
scp /mnt/Kwestoskey.* [email protected]客户端ip:/mnt/
如:scp /mnt/Kwestoskey.* [email protected]:/mnt/
6.有公钥文件的客户端测试,命令格如下:
nsupdate -k /mnt/Kwestos.private
九、DNS动态解析
当域名的解析地址是动态IP时,应允许dhcpd服务器去更新
(一)服务端
1.yum install dhcp -y
2.[[email protected] ~]# cp -p /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcp.conf
#生成配置文件,系统会提醒是否覆盖原配置文件,输入y
3.vim /etc/dhcp/dhcp.conf
删除36之后的内容以及27、28行的内容,修改后文件内容显示如下:
[[email protected] ~]# cat/etc/dhcp/dhcpd.conf -n
7 option domain-name"westos.com"; #域名westos.com
8 option domain-name-servers172.25.254.109; #dhcpd服务器主机IP
10 default-lease-time 600;
11 max-lease-time 7200;
14 ddns-update-styleinterim; #DNS动态更新格式
22 log-facility local7;
30 subnet 172.25.254.0 netmask255.255.255.0 { #dhcp动态分配的IP地址的网段、子网掩码、
31 range 172.25.254.30 172.25.254.40; #分配的IP地址的范围
32 option routers 172.25.254.250; #分配的IP地址的网关
33 }
34 key westoskey {
35 algorithm hmac-md5;
36 secretYlWN2shjPdRIG98QBySfHLKncCnxHW+u88riAhIotpM=;
37 };
38
39 zone westos.com. { #指定更新的IP
40 primary 127.0.0.1; #回环接口:实现高效且安全地更新
41 key westoskey; #westoskey更新127.0.0.1中的westos.com的域
42 }
4.重启dhcpd服务
systemctl start dhcpd
5.为实现更新westos.com域,则在/var/named/westos.com中一定不能有westos.com的域名解析
设置完域名解析文件后,一定要重启named服务
systemctl restart named
(二)客户端
1.更改主机名,格式:xxx.westos.com
2.vim /etc/systconfig/network-scripts/eth0
DEVICE=eth0
BOOTPROT=dhcp
ONBOOT=yes
3.systemctl restart network
4.dig xxx.westos.com #测试是否可以解析出主机名及该主机IP