1.DNS域名解析原理
DNS(域名系统)是互联网中用于将域名转换为IP地址的分布式数据库系统,其核心原理是通过一系列的查询和响应机制,将用户输入的域名解析为对应的IP地址,从而实现对目标服务器的访问。这一过程涉及多个层次的域名服务器,包括根域名服务器、顶级域名服务器、权威域名服务器和本地DNS服务器等。
2. dns主从同步实现过程
2.1 先下载软件bind
1.主的虚拟机和从的虚拟机都需要下载软件。先把/mnt挂载到/dev/sr0,成功挂载后就可以下载bind软件。
[root@localhost ~]# mount /dev/sr0 /mnt
mount: /mnt: WARNING: source write-protected, mounted read-only.
[root@localhost ~]# yum install bind -y
2.如果不确定挂载情况的话,可以输入lsblk查看自己挂载成功与否,rom后面有/mnt则表明挂载成功。
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sr0 11:0 1 9.8G 0 rom /mnt
nvme0n1 259:0 0 50G 0 disk
├─nvme0n1p1 259:1 0 600M 0 part /boot/efi
├─nvme0n1p2 259:2 0 1G 0 part /boot
└─nvme0n1p3 259:3 0 48.4G 0 part
├─rhel-root 253:0 0 46.4G 0 lvm /
└─rhel-swap 253:1 0 2G 0 lvm [SWAP]
3.软件安装完成后就打开
[root@localhost ~]# systemctl start named
2.2 主dns的配置:192.168.15.131
1.输入 vim /etc/named.conf ,进入后开始相关的配置。其中zone的相关部分可以输入vim /etc/named.rfc1912.zones进入到里面去复制,但相关的数据需要换成自己需要的。需要注意的是,allow-transfer{},{}里面填入的是你需要转发的从的dns,修改完成后保存退出。监听的端口号可以填指定的,也可以填任何(any)。
options {
listen-on port 53 { any; };
directory "/var/named";
allow-query { any; };
allow-transfer {192.168.15.132 ;};
};
zone "li.com." IN {
type master;
file "named.li.com";
};
zone "15.168.192.in-addr.arpa" IN {
type master;
file "named.192.168.15.zone";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
2. 资源记录文件通过/var/named/named.localhost模版拷贝修改
[root@localhost ~]# cp -a /var/named/named.localhost /var/named/named.li.com
[root@localhost ~]# cp -a /var/named/named.localhost /var/named/named.192.168.15.zone
3. [root@localhost ~]# vim /var/named/named.li.com ,进入修改配置。
$TTL 1D
@ IN SOA @ xixi.admin. (
1 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns
dns A 192.168.15.131
xixi A 192.168.15.131
~
~
4.[root@localhost ~]# vim /var/named/named.192.168.15.zone,进入修改配置。
$TTL 1D
@ IN SOA @ hehe.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns2.li.com.
dns2.li.com. A 192.168.15.131
129 PTR gggg.li.com.
130 PTR gogo.li.com.
~
~
5.主dns的配置全部配完后,重启named服务使配置生效,然后再关闭防火墙。
[root@localhost ~]# systemctl restart named
[root@localhost ~]# systemctl stop firewalld
2.3 从dns的配置:192.168.15.132
1.输入 vim /etc/named.conf ,进入后开始相关的配置。可以从主的配置文件里复制,但还需要修改一些数据。
options {
listen-on port 53 { any; };
directory "/var/named";
allow-query { any; };
};
zone "li.com." IN {
type slave;
masters{192.168.15.131 ;};
file "slaves/named.li.com";
};
zone "15.168.192.in-addr.arpa" IN {
type slave;
masters{192.168.15.131 ;};
file "slaves/named.192.168.15.zone";
};
2.从dns的配置全部配完后,重启named服务使配置生效,然后再关闭防火墙。
[root@localhost ~]# systemctl restart named
[root@localhost ~]# systemctl stop firewalld
2.4 测试
dns能解析出来,则代表测试成功。
[root@localhost ~]# nslookup xixi.li.com 192.168.15.131
[root@localhost ~]# nslookup xixi.li.com 192.168.15.132
[root@localhost ~]# nslookup xixi.li.com 192.168.15.131
Server: 192.168.15.131
Address: 192.168.15.131#53
Name: xixi.li.com
Address: 192.168.15.131
[root@localhost ~]# nslookup xixi.li.com 192.168.15.132
Server: 192.168.15.132
Address: 192.168.15.132#53
Name: xixi.li.com
Address: 192.168.15.131
[root@localhost ~]# host xixi.li.com 192.168.15.131
[root@localhost ~]# host xixi.li.com 192.168.15.132
[root@localhost ~]# host xixi.li.com 192.168.15.132
Using domain server:
Name: 192.168.15.132
Address: 192.168.15.132#53
Aliases:
xixi.li.com has address 192.168.15.131
[root@localhost ~]# host xixi.li.com 192.168.15.131
Using domain server:
Name: 192.168.15.131
Address: 192.168.15.131#53
Aliases:
xixi.li.com has address 192.168.15.131
2.5 增量同步实验
1.主
往 /var/named/named.li.com 和 /var/named/named.192.168.15.zone 中添加一行新的解析记录,序列号要比原名来的大点,配置完后重启生效(systemctl restart named)。
$TTL 1D
@ IN SOA @ xixi.admin. (
100 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns
dns A 192.168.15.131
xixi A 192.168.15.131
wdwd A 192.168.15.131
$TTL 1D
@ IN SOA @ hehe.com. (
100 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns2.li.com.
dns2.li.com. A 192.168.15.131
129 PTR gggg.li.com.
130 PTR gogo.li.com.
131 PTR ogog.li.com.
132 PTR jjjj.li.com.
~
~
~
~
~
2.从
从进行手动增量同步,同步完后也需要重启生效(systemctl restart named)。
[root@localhost ~]# rndc refresh li.com
zone refresh queued
[root@localhost ~]# rndc refresh 15.168.192.in-addr.arpa
zone refresh queued
3.测试
dns能解析出来代表测试成功。
[root@localhost ~]# nslookup wdwd.li.com 192.168.15.131
[root@localhost ~]# nslookup wdwd.li.com 192.168.15.132
[root@localhost ~]# nslookup wdwd.li.com 192.168.15.131
Server: 192.168.15.131
Address: 192.168.15.131#53
Name: wdwd.li.com
Address: 192.168.15.131
[root@localhost ~]# nslookup wdwd.li.com 192.168.15.132
Server: 192.168.15.132
Address: 192.168.15.132#53
Name: wdwd.li.com
Address: 192.168.15.131
[root@localhost ~]# host wdwd.li.com 192.168.15.131
[root@localhost ~]# host wdwd.li.com 192.168.15.132
[root@localhost ~]# host wdwd.li.com 192.168.15.132
Using domain server:
Name: 192.168.15.132
Address: 192.168.15.132#53
Aliases:
wdwd.li.com has address 192.168.15.131
[root@localhost ~]# host wdwd.li.com 192.168.15.131
Using domain server:
Name: 192.168.15.131
Address: 192.168.15.131#53
Aliases:
wdwd.li.com has address 192.168.15.131