博客
关于我
DNS服务基础 特殊解析 DNS主从架构 DNS子域授权 DNS查询
阅读量:367 次
发布时间:2019-03-05

本文共 2582 字,大约阅读时间需要 8 分钟。

DNS服务基础

DNS(Domain Name System,域名系统)是一种用于将易于记忆的域名(如www.baidu.com)与难以记忆的IP地址(如192.168.5.5)进行关联的网络服务。DNS的核心作用在于通过域名解析,将用户输入的域名转换为对应的IP地址,从而实现网络通信。

为什么需要DNS系统

  • 易于记忆:而不是记忆IP地址,而是记忆域名更为方便。
  • 互联网中的导航员:类似于查号台或导航员,帮助用户快速定位所需资源。

DNS服务器的功能

  • 正向解析:根据注册的域名查找其对应的IP地址。
  • 反向解析:根据IP地址查找对应的注册域名(不常用)。

DNS服务器的分类

  • 根域名服务器(共13台):负责管理顶级域名(如.com、net等)。
  • 一级DNS服务器:负责管理二级域名(如cn、us等)。
  • 二级DNS服务器:负责管理三级域名(如com.cn、edu.cn等)。
  • 三级DNS服务器:负责管理具体的子域名(如www.haha.com.cn)。

DNS的分布式结构

DNS采用分布式结构,依赖于多个DNS服务器协同工作。具体结构包括:

  • 根域名:.
  • 一级域名:cn、us、tw、hk、com等。
  • 二级域名:com.cn、com.tw、edu.cn等。
  • 三级域名:www.haha.com.cn等。
  • 完全合格主机名(FQDN):站点名 + 注册的域名(如www.haha.com.cn)。

IANA与CANNIC

  • IANA(Internet Assigned Numbers Authority):负责管理整个域名系统的最高权威机构,主管DNS根、.int、.arpa等国际化域名资源。
  • CANNIC(China Internet Network Infirmation Center):负责管理中国顶级域名 .cn。

BIND域名服务

  • BIND(Berkeley Internet Name Daemon):伯克利 Internet 域名服务,官方站点:http://www.isc.org/.
  • BIND服务端程序
    • 主要执行程序:/usr/sbin/named。
    • 系统服务:named。
    • 默认端口:TCP/UDP 53。
    • 运行时的虚拟根环境:/var/named/chroot/。
  • 主配置文件:/etc/named.conf(设置负责解析的域名)。
  • 地址库文件:/var/named/(设置完全合格的域名和IP地址对应关系)。

虚拟机A创建服务

  • 安装软件包:yum -y install bind-chroot bindrpm -qa bind*
  • 修改主配置文件:vim /etc/named.conf,配置完成的完整内容:
    options {    directory "/var/named";}zone "tedu.cn" IN {    type master;    file "tedu.cn.zone";}
  • 创建地址库文件:
    • 确保named用户对地址库文件有读权限。
    • 所有的域名必须以点结尾。
    • 如果没有以点作为结尾,默认会补全本地址库所负责的域名。
    • 复制文件时保留权限:cp -p /var/named/named.localhost /var/named/tedu.cn.zone
  • 配置地址库文件:
    www.tedu.cn. NS svr7svr7 A 192.168.4.7www A 1.1.1.1vip A 2.2.2.2
  • 启动NSD服务:systemctl start named
  • 虚拟机B解析服务

  • 修改解析记录:在虚拟机B的 /etc/resolv.conf 中添加解析主机的记录。
  • 测试解析:
    echo namserver 192.168.4.7 >> /etc/resolv.confnslookup vip.tedu.cnnslookup www.tedu.cn
  • 多域名解析

  • 在虚拟机A中添加新的域名记录:
    lol.cn. NS hosthost A 192.168.4.7nana A 1.1.1.1dada A 2.2.2.2* A 6.6.6.6
  • 测试:
    nslookup nana.lol.cnnslookup www.tedu.cn
  • 特殊解析

    • DNS轮询:客户端向多个DNS服务器发送请求,返回最先响应的结果。
    • 泛域名解析:如果没有专门匹配到的站点,按泛域名进行解析。
    • 设置别名:在地址库文件中添加CNAME记录:
      mail CNAME nana

      测试:

      nslookup mail.lol.cn

    DNS主从架构

    • 主服务器:负责解析域名,管理地址库文件。
    • 从服务器:备份主服务器数据,接受主服务器的数据传输。
    • 配置主服务器
      options {    allow-transfer { 192.168.4.207; }}zone "lol.cn" IN {    type master;    file "lol.cn.zone";}
    • 配置从服务器
      zone "lol.cn" IN {    type slave;    file "/var/named/slaves/lol.cn.slave";    masters { 192.168.4.7; };    masterfile-format text;}
    • 测试数据同步
      nslookup dada.lol.cn 192.168.4.207nslookup dada.lol.cn 192.168.4.7

    DNS子域授权

    • 递归解析:客户端发送请求给首选DNS服务器,首选DNS服务器与其他DNS服务器交互,最终将解析结果带回来。
    • 迭代查询:客户端发送请求给首选DNS服务器,首选DNS服务器告知下一个DNS服务器地址。

    浏览器DNS查找顺序

  • 浏览器DNS缓存。
  • 本地系统DNS缓存。
  • 本地计算机HOSTS文件。
  • ISP DNS缓存。
  • 递归或迭代搜索。
  • 服务器DNS查找顺序

  • 系统缓存。
  • /etc/hosts 文件。
  • /etc/resolv.conf 文件指定运营商的DNS地址。
  • DNS查询的工作方式

    DNS查询过程包括:

  • 客户端向首选DNS服务器发送查询请求。
  • 首选DNS服务器根据查询类型(递归或迭代)进行处理。
  • 客户端根据返回结果进行解析。
  • 转载地址:http://gbrg.baihongyu.com/

    你可能感兴趣的文章
    linux c/c++面试知识点整理(八)
    查看>>
    epoll的基本使用
    查看>>
    linux网络编程系列(十二)--滑动窗口、拥塞控制、断线重连机制
    查看>>
    c++11&14-编译
    查看>>
    Deep residual learning for image recognition
    查看>>
    IO控制方式
    查看>>
    IO控制器
    查看>>
    Java 异常
    查看>>
    BP神经网络学习--MATLAB源码详细注释
    查看>>
    LeetCode122.买卖股票的最佳时机2Golang版
    查看>>
    还在花冤枉钱找人做电子签名?看这儿,教你制作纯手写电子签名
    查看>>
    Java 知识点总结篇(2)
    查看>>
    Python 知识点总结篇(2)
    查看>>
    Python 知识点总结篇(3)
    查看>>
    Numpy 如何操作数组
    查看>>
    Win10 环境下安装压缩包版本 MySQL-8.0.13
    查看>>
    爬取网易科技滚动新闻
    查看>>
    vuex modules
    查看>>
    vue父子组件传参的4种方式
    查看>>
    中缀表达式转后缀表达式
    查看>>