服务端:
先安装bind(bind是最广泛使用的开源缓存dns服务器),配置火墙
yum install bind -y
systemctl start named
systemctl enable named
firewall-cmd --permanent --add-service=dns ##若是火墙开启需配置火墙将dns加入火墙允许列表
firewall-cmd --reload
vim /etc/named.conf
11 listen-on port 53 { any; }; ##设置named监听的端口号,ip地址
17 allow-query { any; }; ##允许哪些客户端可以访问dns服务
18 forwarders { 114.114.114.114; }; ##设置dns服务不知道域名解析时询问此ip主机
32 dnssec-validation no; ##不需要验证
测试:
在客户端dig www.baidu.com
可以看到客户端可以解析域名,并且第一次访问时延时较高,但是再次访问时延时为0
netstat -antlupe | grep named ##查看named服务所用端口
vim /etc/named.rfc1912.zones
zone "westos.com" IN {
type master;
file "westos.com.zone";
allow-update { none; };
};
cd /var/named
cp -p named.localhost westos.com.zone
vim westos.com.zone
$TTL 1D ##保存最长时间为一天
@ IN SOA dns.westos.com. root.westos.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.com.
dns A 172.25.254.114
www A 172.25.254.114
注:“@”符表示在子配置文件中所设定的那个域名(westos.com),该文件中所有的域名如dns.westos.com的结尾都需要添加一个“.”,否则会被该@符读取
第一行的TTL是一种设定,后面的1D表示该记录文件里面的各项记录的预设TTL值为86400秒,即刚好一天
IN定义出目前的记录类型是属于internet class的
SOA表示目前区域的授权记录开始,其后面的值为区域授权主机和管理信箱
serial表示修改的时间及次数,当自己在修改记录文件时需要更改serial的值,否则修改无法被slave识别;
refresh表示数据多久进行一次更新
retry表示如果slave的对数据更新失败后,多久后进行重试
expire记录逾期时间,即超过该时间slave未与master进行联系,系统会放弃retry并标记该数据标识为过期
minimum最小预设TTL的值,如果在文件开头没有设置TTL的值,将以该处的值为准
这里172.25.254.114表示从105获得解析;172.25.254.114表示把要维护的域www,westos.com解析为172.25.254.114;NS表示域名的名称服务器;A表示名称至ipv4地址。
systemctl restart named ##重启服务
测试:在客户端添加本地域名解析
vim /etc/resolv.conf
nameserver 172.25.254.114
dig www.westos.com查看,可以看到将www.westos.com解析为172.25.254.114
vim /var/named/westos.com.zone
$TTL 1D
@ IN SOA dns.westos.com. root.westos.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.com.
dns A 172.25.254.100
www A 172.25.254.100
bbs CNAME linux
linux A 172.25.254.111
linux A 172.25.254.222
westos.com. MX 1 172.25.254.250. ##MX:邮件交换器
systemctl restar named ##重启服务
测试:
dig bbs.westos.com
dig linux.westos.com ##可看到解析轮询
mail [email protected] ##发送邮件
. ##发送
mailq ##邮件队列
dig -t mx westos.com ##查看westos.com dns
可以看到由于发送给的那台主机没有接受,邮件会被拒收退回。但是邮件发送地址解析成功
vim /etc/named.rfc1912.zones
zone "254.25.172.in-addr.arpa" IN {
type master;
file "westos.com.ptr";
allow-update { none; };
cd /etc/named
cp -p named.loopback westos.com.ptr
vim /var/named/westos.com.ptr
$TTL 1D
@ IN SOA dns.westos.com. root.westos.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.com.
dns A 172.25.254.100
111 PTR bbs.westos.com.
222 PTR www.westos.com.
dig -x 172.25.254.111
dig -x 172.25.254.222
cp -p /var/named/westos.com.zone /var/named/westos.com.localnet
vim /var/named/westos.com.localnet
:%s/172.25.254/192.168.0/g ##将文件中所有的172.25.254替换为192.168.0
cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.localnet
vim /etc/named.rfc1912.localnet
zone "westos.com" IN {
type master;
file "westos.com.localnet";
allow-update { none; };
};
vim /etc/named.conf
51到57行注释掉
60 view localnet {
61 match-clients { 172.25.254.114; };
62 zone "." IN {
63 type hint;
64 file "named.ca";
65 };
66 include "/etc/named.rfc1912.localnet";
67 };
70 view internet {
71 match-clients { any; };
72 zone "." IN {
73 type hint;
74 file "named.ca";
75 };
76 include "/etc/named.rfc1912.zones";
77 };
firewall-cmd --permanent --add-service=dns ##若是火墙开启需配置火墙将dns加入火墙允许列表
firewall-cmd --reload ##重新加载火墙配置
systemctl restart named ##重启服务
测试:
dig www.westos.com ##同一域名内外网解析的ip不一样
辅助dns:
yum install bind -y
vim /etc/named.conf
11 listen-on port 53 { any; };
17 allow-query { any; };
vim /etc/named.rfc1912.zones
25 zone "westos.com" IN {
26 type slave;
27 masters { 172.25.254.114; };
28 file "slaves/westos.com.zone";
29 allow-update { none; };
30 };
vim /etc/resolv.conf
nameserver 172.25.254.214
systemctl restart named
systemctl stop firewalld.service
主dns:
vim /etc/named.rfc1912.zones
25 zone "westos.com" IN {
26 type master;
27 file "westos.com.zone";
28 allow-update { none; };
29 also-notify { 172.25.254.214; };
allow-transfer {172.25.254.214; }; ##企业7之前版本需写此参数,是否允许此ip同步zone文件。企业7之后版本可以不用写
31 };
vim /var/named/westos.com.zone
3 20180801301 ; serial ##每次修改dns时需改变serial值,辅dns文件根据此值来判断主dns文件是否改变。此值最多十位数。
10 www A 172.25.254.111 ##改变dns
systemctl restart named ##重启服务
测试:辅助端重启named服务
dig www.westos.com ##可以看到当主dns改变时辅dns自动修改
更新端:
为了方便恢复,在做下面操作时先复制westos.com.zone文件到/mnt/下
在/etc/named.conf配置文件将之前写的用/* /注释并将系统自带的解开注释(此文件注释用/ */)
编辑/etc/named.rfc1912.zones文件
vim /etc/named.rfc1912.zones
zone "westos.com" IN {
type master;
file "westos.com.zone";
allow-update { 172.25.254.214; };
also-notify {172.25.254.214; };
};
chmod 770 /var/named/
systemctl restart named
nsupdate
> server 172.25.254.114
> update add abc.westos.com 86400 A 172.25.254.111
> send
在接收方/var/named/中有westos.com.zone.jnl文件生成
测试:
dig www.westos.com
nsupdate
> server 172.25.254.114
> update delete abc.westos.com
> send
删除,删除之后再次dig www.abc.westos.com发现无法解析
测试:
dig www.westos.com
配置环境:删除上面生成的两个文件,并将/mnt/下的westos.com,zone用cp -p过来 重启服务named
rm -fr westos.com.zon*
cp /mnt/westos.com.zone . -p
systemctl restart named
更新端加密:
执行加密命令后会卡顿,这时要在主机里打开一个shell随机输入字符即可, -a表示加密模式 -b 表示加密字节 -n Host 表示类型是HOST 名称是westos
cd /mnt/
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westos ##加密
cp -p /etc/rndc.key /etc/westos.key
vim /etc/westos.key
key "westos" {
algorithm hmac-md5;
secret "CXYDjeyGrNSv5LRFwoneiQ=="; ##密码可在key文件查看
};
vim /etc/named.conf
include "/etc/westos.key";
vim /etc/named.rfc1912.zones
zone "westos.com" IN {
type master;
file "westos.com.zone";
allow-update { key westos; };
also-notify {172.25.254.214; };
30 };
systemctl restart named
scp Kwestos.+157+54897.* [email protected]:/mnt/ ##发送密钥给允许远程更新的主机
远程同步:
当不使用key文件时,发送被拒绝,并报错update failed: REFUSED
nsupdate
> server 172.25.254.100
> update add abc.westos.com 86400 A 172.25.254.111
> send
nsupdate -k Kwestos.+157+54897.key
> server 172.25.254.114
> update add abc.westos.com 86400 A 172.25.254.111
> send
> update delete abc.westos.com
> send
配置环境:删除上面生成的两个文件,并将/mnt/下的westos.com,zone用cp -p过来 这次不重启named服务
dns服务端:
yum install dhcp -y ##安装dhcp服务
firewall-cmd --permanent --add-service=dhcp ##若是火墙开启需将dhcp服务加入火墙允许列表
firewall-cmd --reload ##重新加载火墙配置
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf ##修改配置文件
vim /etc/dhcp/dhcpd.conf ##修改配置文件,
7 option domain-name "westos.com"; ##改域名
8 option domain-name-servers 172.25.254.114; ##dns
14 ddns-update-style interim; ##开启dhcp更新dns功能
##27,28行删除
30 subnet 172.25.254.0 netmask 255.255.255.0 { ##网段,子网掩码
31 range 172.25.254.60 172.25.254.80; ##ip池
32 option routers 172.25.254.14; ##网关
33 }
##35行之后全删除
34 key westos {
35 algorithm hmac-md5;
36 secret "CXYDjeyGrNSv5LRFwoneiQ=="; ##密码可在key文件查看
37 };
38
39 zone westos.com. {
40 primary 127.0.0.1; ##此处ip设定为本机回环接口,速度快
41 key westos;
42 }
systemctl restart dhcpd ##重启服务
less /var/lib/dhcpd/dhcpd.leases ##查看服务端分配出去的ip
dns客户端:
hostnamectl set-hostname test.westos.com ##更改主机名为test.westos.com
vim /etc/sysconfig/network-scripts/ifcfg-hahaha ##配置网络为dhcp
systemctl restart network ##重启网络
dig test.westos.com ##可以看到通过dhcd获得ip