DNS域名解析服务器的部署
DNS简介
DNS(Domain Name System)是互联网上的一项服务,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。
DNS使用的是53端口,
通常DNS是以UDP这个较快速的数据传输协议来查询的,但是没有查询到完整的信息时,就会再次以TCP这个协议来重新查询所以启动DNS时,会同时启动TCP以及UDP的port53。
因特网的域名结构
由于因特网的用户数量较多,所以因特网在命名时采用的是层次树状结构的命名方法。任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名(domain name)。“域”(domain)是名字空间中一个可被管理的划分
国家顶级域名:采用ISO3166的规定。如:cn代表中国,us代表美国,uk代表英国,等等。国家域名又常记为ccTLD(country code top-level domains,cc表示国家代码contry-code)。
通用顶级域名:最常见的通用顶级域名有7个,即:com(公司企业),net(网络服务机构),org(非营利组织),int(国际组织),gov(美国的政府部门),mil(美国的军事部门)。
基础结构域名(infrastructure domain):这种顶级域名只有一个,即arpa,用于反向域名解析,因此称为反向域名。
域名服务器的类型划分
根域名服务器:最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址。不管是哪一个本地域名服务器,若要对因特网上任何一个域名进行解析,只要自己无法解析,就首先求助根域名服务器。所以根域名服务器是最重要的域名服务器。假定所有的根域名服务器都瘫痪了,那么整个DNS系统就无法工作。需要注意的是,在很多情况下,根域名服务器并不直接把待查询的域名直接解析出IP地址,而是告诉本地域名服务器下一步应当找哪一个顶级域名服务器进行查询。
现如今全球一共投放13个根服务器
根服务器主要用来管理互联网的主目录,全世界只有13台。1个为主根服务器,放置在美国。其余12个均为辅根服务器,其中9个放置在美国,欧洲2个,位于英国和瑞典,亚洲1个,位于日本。所有根服务器均由美国政府授权的互联网域名与号码分配机构ICANN统一管理,负责全球互联网域名根服务器、域名体系和IP地址等的管理。 这13台根服务器可以指挥Firefox或互联网 Explorer这样的Web浏览器和电子邮件程序控制互联网通信。换句话说——攻击整个因特网最有力、最直接,也是最致命的方法就是攻击根域名服务器。
顶级域名服务器:负责管理在该顶级域名服务器注册的二级域名。
权限域名服务器:负责一个“区”的域名服务器。
本地域名服务器:本地域名服务器不属于域名服务器的层次结构,但是它对域名系统非常重要。当一个主机发出DNS查询请求时,这个查询请求报文就发送给本地域名服务器。
主从DNS服务器:为了提高域名服务器的可靠性,DNS域名服务器都把数据复制到几个域名服务器来保存,其中的一个就是主DNS服务器(Master name server),负责解析至少一个域。其他的是辅助(从)DNS服务器(Slave name server):负责解析至少一个域,是主DNS服务器的辅助。当主域名服务器出故障时,辅助域名服务器可以保证DNS的查询工作不会中断。主域名服务器定期把数据复制到辅助域名服务器中,而更改数据只能在主域名服务器中进行。这样就保证了数据的一致性。
DNS域名解析的过程
主dns服务器配置
# nmcli networking 【查看网络开启情况】
#df 【查看挂载】
# vim /etc/rc.d/rc.local 【配置开机自动挂载】
# chmod +x /etc/rc.d/rc.local
# cd /etc/yum.repos.d/
# vim rhel9.repo
[AppStream]name=AppStreambaseurl=file:///rhel9/AppStreamgpgcheck=0[BaseOS]name=BaseOSbaseurl=file:///rhel9/BaseOSgpgcheck=0
# hostnamectl hostname dns1.timinglee.org 【更改虚拟机姓名】
[root@dns2 ~]# hostnamectl hostname dns2.timinglee.org
1 ~]# dnf install bind.x86_64 -y 【安装dns系统】
# firewall-cmd --permanent --add-service=dns 【开启dns服务】
# firewall-cmd --reload
# systemctl enable --now named 【启动服务】
[root@dns2 ~]# vim /etc/resolv.conf
# netstat -antlupe | grep named 【查看服务器是否开启】
1 ~]# vim /etc/named.conf 【配置dns文件】
# systemctl restart named 【重启服务器】
# netstat -antlupe | grep named查看结果:
2 ~]# dig www.baidu.com 运行结果:
没开火墙,或dns没有配置网络功能,或是没有安装dns,或服务器没开:
业务未开启结果:
没有指定去8.8.8.8网址的运行结果:
dns优化 【加快访问速率】
1 ~]# vim /etc/resolv.conf
2 ~]# dig www.baidu.com 运行结果:
DNS的正向解析
DNS正向解析的作用
当客户设定当前dns服务器为dns解析服务器时,正向解析即为客户提供A记录
客户提供域名,dns服务器负责把域名解析成对应IP
搭建正向解析
# vim /etc/named.rfc1912.zones 【dns域名维护子配置文件】
# cp -p /var/named/named.localhost /var/named/timinglee.org.zone 因为文件特殊,要有-p
# vim /var/named/timinglee.org.zone
# systemctl restart named 【一定要重启】
# vim /etc/resolv.conf
# dig www.timinglee.org
主从DNS服务器
为了提高域名服务器的可靠性,DNS域名服务器都把数据复制到几个域名服务器来保存,其中的一个就是主DNS服务器(Master name server),负责解析至少一个域。其他的是辅助(从)DNS服务器(Slave name server):负责解析至少一个域,是主DNS服务器的辅助。当主域名服务器出故障时,辅助域名服务器可以保证DNS的查询工作不会中断。主域名服务器定期把数据复制到辅助域名服务器中,而更改数据只能在主域名服务器中进行。这样就保证了数据的一致性。
配置实验环境
新建一台主机作为辅助DNS主机,并配置好网络和软件仓库
在新建主机中安装DNS服务并保证服务可以被访问
对辅助DNS进行配置
修改zones文件设定要做主从的域,使用一个新的虚拟机作辅助dns服务器
[root@dns2 ~]# dnf install bind -y
# firewall-cmd --permanent --add-service=dns
# firewall-cmd --reload
# vim /etc/named.conf 【配置dns文件】
# systemctl enable --now named
# vim /etc/named.rfc1912.zones 【配置辅助dns】
# systemctl restart named
[root@dns1 ~]# vim /etc/resolv.conf
# dig www.timinglee.org
[root@dns2 ~]# vim /etc/resolv.conf
# dig www.timinglee.org
辅助dns数据同步优化
当主dns更新域名的A记录时候,辅助dns默认是不同步的,使用辅助dns作为域名解析服务器得到的地址就是错误的。
1 ~]# vim /var/named/timinglee.org.zone
# systemctl restart named
# dig www.timinglee.org
2 ~]# dig www.timinglee.org
解析服务器得到的地址不相同了
在主dns设置同步参数
1 ~]# vim /etc/named.rfc1912.zones
数据文件/var/named/timinglee.org.zone中的serial值变化代表A记录的更新
注意:serial值只能够增大,不能减小,最大是10位数
在主dns中更新A记录并更新serial
# vim /var/named/timinglee.org.zone
# systemctl restart named
# dig www.timinglee.org 【查看在主dns中的更改生效情况】
2 ~]# dig www.timinglee.org 【查看辅助dns中的A记录是否自动更新】
辅助dns服务器不会查看主dns服务器内容,想要更改服务器内容只需要更改主dns的内容,并且增加/var/named/timinglee.org.zone中的serial值表示A记录的更新。