前面几节文章我们了解到时间服务器和远程连接服务器,还通过访问域名的方式建立一个网站,
我们知道访问服务器需要知道对应服务器的IP地址,现如今,网址大多以域名的方式呈现,通过域名又是如何访问到对应服务器的呢?接下来,一起了解一下域名解析服务器。
DNS(Domain Name System)是互联网上的一项服务,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。 DNS系统使用的是网络的查询,那么自然需要有监听的port。DNS使用的是53端口,在/etc/services(搜索domain)这个文件中能看到。通常DNS是以UDP这个较快速的数据传输协议来查询的,但是没有查询到完整的信息时,就会再次以TCP这个协议来重新查询。所以启动DNS时,会同时启动TCP以及UDP的port53。
国家顶级域名:采用ISO3166的规定。如:cn代表中国,us代表美国,uk代表英国,等等。国家域名又常记为ccTLD(country code top-level domains,cc表示国家代码contry-code)。
通用顶级域名:最常见的通用顶级域名有7个,即:com(公司企业),net(网络服务机构),org(非营利组织),int(国际组织),gov(美国的政府部门),mil(美国的军事部门)。
基础结构域名(infrastructure domain):这种顶级域名只有一个,即arpa,用于反向域名解析,因此称为反向域名。
客户端访问域名www.baidu.com时
- #查看DNS记录
- [root@localhost ~]# cat /etc/resolv.conf
- # Generated by NetworkManager
- nameserver 192.168.186.132 主DNS服务器
- nameserver 114.114.114.114 备用DNS服务器
-
- #更改DNS记录
- [root@localhost ~]# vim /etc/resolv.conf
- nameserver 8.8.8.8 主DNS服务器
- nameserver 114.114.114.114 备用DNS服务器
- #安装软件包
- [root@timeserver ~]# cd /etc/yum.repos.d/
- [root@timeserver yum.repos.d]# yum install bind -y
- #修改配置文件
- #在文件/etc/named.conf中设置既可以解析baidu.com又可以解析qq.com
- #在文件/var/named/中设置专门解析www.baidu.com/test.baidu.com等一系列baidu.com的目录
-
- #设置解析baidu.com
- [root@timeserver ~]# vim /etc/named.conf
- 命令行模式下使用 dG 清空文件内容
- #编辑以下内容
- options {
- listen-on port 53 {192.168.186.200;}; #192.168.186.200代表访问的DNS服务器的IP地址
- directory "/var/named"; #指定解析文件的路径
- allow-query {192.168.186.131;}; #设置允许访问的客户端
- };
- zone "baidu.com" IN { #设置当前域名服务器管理的服务器域名
- type master; #定义域名服务器类型为主域名服务器
- file "named.baidu.com"; #设置域名解析文件路径
- };
-
- zone "qq.com" IN {
- type master;
- file "named.qq.com";
-
- };
-
- #查看 53 号端口监听情况
- [root@timeserver ~]# netstat -lntup | grep 53
- #创建对应文件
- [root@timeserver ~]# vim /var/named/named.baidu.com
- #复制文件内容
- [root@timeserver ~]# cp /var/named/named.localhost /var/named/named.baidu.com
- #注意:一定要复制而不是手动编写
- #在/var/named/named.baidu.com文件中编辑以下内容
- $TTL 1D (#生存时间值:解析出的IP地址的缓存时间)
- @(#代表当前区域) IN SOA @(#当前区域主DNS服务器域名) rname.invalid.(#邮箱账号) (
- 0 ; serial #序号
- 1D ; refresh #从DNS服务器每天更新一次
- 1H ; retry #从DNS服务器每小时更新一次
- 1W ; expire #从DNS服务器每周更新一次
- 3H ) ; minimum #生存时间值
- IN NS @(#告诉这台DNS服务器有多少台DNS服务器)
- A 127.0.0.1 解析为IPV4地址
- AAAA ::1 解析为IPV6地址
-
- #参照以下内容示例
- $TTL 1D
- @ IN SOA ns.baidu.com admin.baidu.com. (
- 0 ; serial
- 1D ; refresh
- 1H ; retry
- 1W ; expire
- 3H ) ; minimum
- NS ns.baidu.com.
- ns IN A 192.168.186.200 #解析出主DNS服务器域名对应的IP
- www IN A 192.168.186.131 #解析出域名www对应的IP
-
- #快捷替换
- shift+:%/baidu/qq/
-
- #重启服务
- [root@timeserver ~]# systemctl restart named
-
- #客户端查询
- [root@timeserver ~]# host www.baidu.com
- [root@timeserver ~]# vim /etc/named.conf
- #添加以下内容
- zone "186.168.192.in-addr.arpa" IN { #添加反向解析的区域
- type master;
- file "named.186.168.192";
- };
-
- #编辑文件
- [root@timeserver ~]# vim /var/named/named.186.168.192
- $TTL 1D
- @ IN SOA @ admin.baidu.com. ( 0 1D 1H 1W 3H )
- IN NS ns.baidu.com. #代表当前域名解析服务器域名
- 200 IN PTR ns.baidu.com. #200代表DNS服务器的IP地址
- 131 IN PTR www.baidu.com. #131代表域名www对应的域名解析服务器的IP地址
完全区域传送:主DNS服务器复制整个区域域名解析信息到从DNS服务器
- [root@timeserver ~]# vim /etc/named.conf
- options {
- listen-on port 53 {192.168.186.200;}; #192.168.186.200代表访问的DNS服务器的IP地址
- directory "/var/named"; #指定解析文件的路径
- allow-query {192.168.186.131;}; #设置允许访问的客户端
- #添加以下命令
- allow-transfer {从DNS服务器IP地址} #该条命令代表允许传送给从DNS
- };
-
- #假设需要传送baidu的信息
- [root@timeserver ~]# vim /var/named/named.baidu.com
- #参照以下内容示例
- $TTL 1D
- @ IN SOA ns.baidu.com admin.baidu.com. (
- 0 ; serial
- 1D ; refresh
- 1H ; retry
- 1W ; expire
- 3H ) ; minimum
- NS ns.baidu.com.
- #添加以下内容
- IN NS slave.baidu.com(从DNS的域名)
- ns IN A 192.168.186.200 #解析出主DNS服务器域名对应的IP
- www IN A 192.168.186.131 #解析出域名www对应的IP
-
- #添加slave.baidu.com对应的IP地址
- slave IN A +从DNS服务器IP地址
- #安装软件包
- [root@timeserver ~]# yum install bind -y
- [root@timeserver ~]# vim /etc/named.conf
- options {
- listen-on port 53 {192.168.186.200;}; #192.168.186.200代表访问的DNS服务器的IP地址
- directory "/var/named"; #指定解析文件的路径
- allow-query {192.168.186.131;}; #设置允许访问的客户端
- };
- zone "baidu.com" IN {
- type slave; #类型为从服务器slave
- file "named.baidu.com";
- masters {192.168.186.200;}; #告诉从DNS主DNS的IP
- };
-
- #启动主服务器
- [root@timeserver ~]# systemctl restart named
- #关闭从服务器防火墙 SELinux
- #查看文件 /var/named/slaves 此时文件没有内容
- #重启从DNS
- [root@timeserver ~]# systemctl restart named
- #查看文件 /var/named/slaves 此时主DNS将域名信息传送到文件中
- #此时可以通过从DNS查询到域名对应的IP地址
增量区域传送:主DNS服务器将新增的域名解析信息传送到从DNS服务器
- #当主DNS新增域名信息后,需要将serial增大 否则从DNS将认为主DNS未更新信息,导致从DNS无法解析域名
- $TTL 1D
- @ IN SOA ns.baidu.com admin.baidu.com. (
- 0 ; serial
- 1D ; refresh
- 1H ; retry
- 1W ; expire
- 3H ) ; minimum