• RHCE---DNS服务器



    前言

    前面几节文章我们了解到时间服务器和远程连接服务器,还通过访问域名的方式建立一个网站,

    我们知道访问服务器需要知道对应服务器的IP地址,现如今,网址大多以域名的方式呈现,通过域名又是如何访问到对应服务器的呢?接下来,一起了解一下域名解析服务器。


    一.DNS服务器

    概述:

       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,用于反向域名解析,因此称为反向域名。

    域名服务器的类型划分

    DNS域名解析过程

     客户端访问域名www.baidu.com时

    • 首先查看本地/etc/hosts文件中是否有域名www.baidu.com对应的IP地址,有则直接访问,没有则进入下一步。
    • 查找本地系统缓存中是否有域名www.baidu.com对应的IP地址,没有则进入下一步。
    • 访问本地域名服务器(114.114.114.114/8.8.8.8),首先查缓存,没有则进入下一步
    • 本地域名服务器查看自身是否是baidu.com区域的dns服务器,是,则查找域名www.baidu.com对应的IP地址,否则进入下一步
    • 上述简称递归查询
    • 本地域名协议服务器会访问根域名服务器,根域名服务器会返回顶级域名服务器com的IP地址,本地域名服务器再去访问顶级域名服务器,顶级域名服务器再返回区域名服务器baidu的IP地址,本地域名服务器再次查找区域名服务器,之后根据去域名服务器返回的三级域名服务器访问www,三级域名解析服务器返回自己的IP地址
    • 本地域名解析服务器收到对应域名解析服务器的IP地址后,首先缓存,再返回给客户端,客户端再根据IP访问对应的服务器
    • 上述简称迭代查询

    二.DNS服务器相关配置命令 

    基础配置命令

    1. #查看DNS记录
    2. [root@localhost ~]# cat /etc/resolv.conf
    3. # Generated by NetworkManager
    4. nameserver 192.168.186.132 主DNS服务器
    5. nameserver 114.114.114.114 备用DNS服务器
    6. #更改DNS记录
    7. [root@localhost ~]# vim /etc/resolv.conf
    8. nameserver 8.8.8.8 主DNS服务器
    9. nameserver 114.114.114.114 备用DNS服务器

     DNS服务器配置

    • 正向解析
    1. #安装软件包
    2. [root@timeserver ~]# cd /etc/yum.repos.d/
    3. [root@timeserver yum.repos.d]# yum install bind -y
    4. #修改配置文件
    5. #在文件/etc/named.conf中设置既可以解析baidu.com又可以解析qq.com
    6. #在文件/var/named/中设置专门解析www.baidu.com/test.baidu.com等一系列baidu.com的目录
    7. #设置解析baidu.com
    8. [root@timeserver ~]# vim /etc/named.conf
    9. 命令行模式下使用 dG 清空文件内容
    10. #编辑以下内容
    11. options {
    12. listen-on port 53 {192.168.186.200;}; #192.168.186.200代表访问的DNS服务器的IP地址
    13. directory "/var/named"; #指定解析文件的路径
    14. allow-query {192.168.186.131;}; #设置允许访问的客户端
    15. };
    16. zone "baidu.com" IN { #设置当前域名服务器管理的服务器域名
    17. type master; #定义域名服务器类型为主域名服务器
    18. file "named.baidu.com"; #设置域名解析文件路径
    19. };
    20. zone "qq.com" IN {
    21. type master;
    22. file "named.qq.com";
    23. };
    24. #查看 53 号端口监听情况
    25. [root@timeserver ~]# netstat -lntup | grep 53
    1. #创建对应文件
    2. [root@timeserver ~]# vim /var/named/named.baidu.com
    3. #复制文件内容
    4. [root@timeserver ~]# cp /var/named/named.localhost /var/named/named.baidu.com
    5. #注意:一定要复制而不是手动编写
    6. #在/var/named/named.baidu.com文件中编辑以下内容
    7. $TTL 1D (#生存时间值:解析出的IP地址的缓存时间)
    8. @(#代表当前区域) IN SOA @(#当前区域主DNS服务器域名) rname.invalid.(#邮箱账号) (
    9. 0 ; serial #序号
    10. 1D ; refresh #从DNS服务器每天更新一次
    11. 1H ; retry #从DNS服务器每小时更新一次
    12. 1W ; expire #从DNS服务器每周更新一次
    13. 3H ) ; minimum #生存时间值
    14. IN NS @(#告诉这台DNS服务器有多少台DNS服务器)
    15. A 127.0.0.1 解析为IPV4地址
    16. AAAA ::1 解析为IPV6地址
    17. #参照以下内容示例
    18. $TTL 1D
    19. @ IN SOA ns.baidu.com admin.baidu.com. (
    20. 0 ; serial
    21. 1D ; refresh
    22. 1H ; retry
    23. 1W ; expire
    24. 3H ) ; minimum
    25. NS ns.baidu.com.
    26. ns IN A 192.168.186.200 #解析出主DNS服务器域名对应的IP
    27. www IN A 192.168.186.131 #解析出域名www对应的IP
    28. #快捷替换
    29. shift+:%/baidu/qq/
    30. #重启服务
    31. [root@timeserver ~]# systemctl restart named
    32. #客户端查询
    33. [root@timeserver ~]# host www.baidu.com
    •  反向解析
    1. [root@timeserver ~]# vim /etc/named.conf
    2. #添加以下内容
    3. zone "186.168.192.in-addr.arpa" IN { #添加反向解析的区域
    4. type master;
    5. file "named.186.168.192";
    6. };
    7. #编辑文件
    8. [root@timeserver ~]# vim /var/named/named.186.168.192
    9. $TTL 1D
    10. @ IN SOA @ admin.baidu.com. ( 0 1D 1H 1W 3H )
    11. IN NS ns.baidu.com. #代表当前域名解析服务器域名
    12. 200 IN PTR ns.baidu.com. #200代表DNS服务器的IP地址
    13. 131 IN PTR www.baidu.com. #131代表域名www对应的域名解析服务器的IP地址
    • 主从DNS服务器

     完全区域传送:主DNS服务器复制整个区域域名解析信息到从DNS服务器

    • 主DNS服务器配置
    1. [root@timeserver ~]# vim /etc/named.conf
    2. options {
    3. listen-on port 53 {192.168.186.200;}; #192.168.186.200代表访问的DNS服务器的IP地址
    4. directory "/var/named"; #指定解析文件的路径
    5. allow-query {192.168.186.131;}; #设置允许访问的客户端
    6. #添加以下命令
    7. allow-transfer {从DNS服务器IP地址} #该条命令代表允许传送给从DNS
    8. };
    9. #假设需要传送baidu的信息
    10. [root@timeserver ~]# vim /var/named/named.baidu.com
    11. #参照以下内容示例
    12. $TTL 1D
    13. @ IN SOA ns.baidu.com admin.baidu.com. (
    14. 0 ; serial
    15. 1D ; refresh
    16. 1H ; retry
    17. 1W ; expire
    18. 3H ) ; minimum
    19. NS ns.baidu.com.
    20. #添加以下内容
    21. IN NS slave.baidu.com(从DNS的域名)
    22. ns IN A 192.168.186.200 #解析出主DNS服务器域名对应的IP
    23. www IN A 192.168.186.131 #解析出域名www对应的IP
    24. #添加slave.baidu.com对应的IP地址
    25. slave IN A +从DNS服务器IP地址
    • 从DNS服务器配置 
    1. #安装软件包
    2. [root@timeserver ~]# yum install bind -y
    3. [root@timeserver ~]# vim /etc/named.conf
    4. options {
    5. listen-on port 53 {192.168.186.200;}; #192.168.186.200代表访问的DNS服务器的IP地址
    6. directory "/var/named"; #指定解析文件的路径
    7. allow-query {192.168.186.131;}; #设置允许访问的客户端
    8. };
    9. zone "baidu.com" IN {
    10. type slave; #类型为从服务器slave
    11. file "named.baidu.com";
    12. masters {192.168.186.200;}; #告诉从DNS主DNS的IP
    13. };
    14. #启动主服务器
    15. [root@timeserver ~]# systemctl restart named
    16. #关闭从服务器防火墙 SELinux
    17. #查看文件 /var/named/slaves 此时文件没有内容
    18. #重启从DNS
    19. [root@timeserver ~]# systemctl restart named
    20. #查看文件 /var/named/slaves 此时主DNS将域名信息传送到文件中
    21. #此时可以通过从DNS查询到域名对应的IP地址

    增量区域传送:主DNS服务器将新增的域名解析信息传送到从DNS服务器

    1. #当主DNS新增域名信息后,需要将serial增大 否则从DNS将认为主DNS未更新信息,导致从DNS无法解析域名
    2. $TTL 1D
    3. @ IN SOA ns.baidu.com admin.baidu.com. (
    4. 0 ; serial
    5. 1D ; refresh
    6. 1H ; retry
    7. 1W ; expire
    8. 3H ) ; minimum


    总结

  • 相关阅读:
    设计模式-工厂方法模式
    即时通讯开发中WebSocket和SSE技术如何实现Web端消息推送
    划分成绩ABCD
    高防服务器给企业带来的优势有哪些?
    RAPTOR: Recursive Abstractive Processing for Tree-Organized Retrieval
    「Java核心面试系列」面试竟然连这MySQL面试核心25问,都不会?
    【PyQt5 实战项目1】武汉大学建筑知识系统--思路分享1(总体概述)
    LainChain输出解析器
    第十一届中国云计算标准和应用大会 | 云计算国家标准及白皮书系列发布 华云数据全面参与编制
    从JDK8到JDK18,Java垃圾回收的详细解答
  • 原文地址:https://blog.csdn.net/zhoutong2323/article/details/133637021