• 16 DNS


    域名系统:DNS

    1.1 DNS基础

    DNS可以被视为一种用于TCP/IP应用程序的分布式数据库,它提供主机名字和IP地址之间的相互转换。

    1.2 域名结构

    DNS是一个分层级的分布式名称对应系统,采用类似Linux目录树的层级结构(如下图)。
    其中最顶断有一个未命名的根节点。

    1.3 域名解析器原理

    用户通过解析器与名字服务器交互。用户查询和响应是C语言编程接口的入参和返回值。用户查询一般调用getaddrinfo获取IP地址。linux操作系统通常不缓存查询结果,每次均调用接口函数进行查询。解析器通常对几个不同的名字服务器进行多个查询,才能回答特定的用户。

    1. 解析器首先查询主机执行流程,查询hosts文件是否有对应域名配置
    2. 如果hosts文件没有该域名,则在resolv.conf文件中取出第一个域名服务器地址
    3. 然后向域名服务器地址发起域名查询请求
    4. 等待查询响应。如果超时,则向下一个域名服务器发起查询

    域名解析器提供因特网域名系统(DNS)的解析。解析配置文件名默认为resolv.conf。此文件常用的配置信息有nameserver、domain、search

    • nameserver
      用于配置名字服务器。最多可以设置3个名字服务器,每一行一个。如果存在多个名字服务器地址,解析库按照列表顺序查询。如果没有名字服务器或者这个配置文件不存在,则默认使用本机(127.0.0.1)作为名字服务器地址。
    • domain可以使用相对于本地域名的短名来查询。如果域名没有配置,则返回主机名。
    • search定义域名的搜索列表。当要查询没有域名的主机时,将在由search声明的域中分别顺序查找。domainsearch不能共存,如果同时存在,后面的会覆盖前面的定义

    1.4 域名解析实例

    • 没有/etc/resolv.conf配置
    ~# cat /etc/resolv.conf 
    ~# 
    

    解析库默认向本机(127.0.0.1)发起域名查询。因为OpenWrt本身带有dnsmasq,因此可以返回响应。

    • 配置多个域名服务器地址
    resolv.conf
    nameserver 59.108.61.61
    nameserver 219.232.48.61
    

    ping 163.com首先向第一个服务器59.108.61.61发起查询163.conIP。如果查询不到就使用下一个域名服务器

    • 配置有domain
    resolv.conf
    domain bjbook.net
    nameserver 8.8.8.8
    

    如果访问完全合格域名,则直接向域名服务器发起查询。如果不是完全合格域名,则首先在hosts文件中进行查找,如果在hosts文件中找不到主机的IP地址,则在向名字服务器发起查询请求。如果是不带点的字符创,则加上域名后缀向名字服务器发起查询。如果中间带有点,则认为是一个域名。不用加上域名后缀,直接对齐发起请求。
    示例:
    1、ping 163.com
    首先在hosts文件中查询直接的IP如果查不到将直接向名字服务器查询163.comIP,找到后向目的IP发起ICMP请求
    2、ping openwrt
    首先在hosts文件中查询直接的IP如果查不到将直接向名字服务器查询openwrtIP,则进行拼接为openwrt.bjbook.net。对齐进行查询

    3.1 dnsmasq

    3.2 概述

    当多个设备同时上网时,客户机经常进行DNS查询,大多数查询会是重复的域名。如果有一个DNS缓存代理服务于局域网,这样将减少DNS的因特网存取。加快DNS访问速度和节省网络流量。dnsmasq的存在便源于此。
    dnsmasq是轻量级DHCP、TFTPDNS缓存服务器,给小型网络提供DNSDHCP服务。
    dnsmasq接收DNS请求,并从本地缓存中读取,如果缓存不存在就转发到一个真正的递归DNS服务器。它可以读取/etc/hosts的内容,这样就可以对局域网的主机查询进行DNS查询相应,这些局域网的主机名称不会暴露在全局DNS域中。
    DNS子系统提供网络的本地DNS服务器,即只服务与局域网的DNS服务器。转发所有类型的查询请求到上游递归DNS服务器,并且缓存通用记录类型(A、AAA、CNAMEPTR

    • 本地DNS服务器可以通过读取/etc/hosts来定义,或者通过导入DHCP子系统的名字等
    • 上行服务器可以遍历各种配置,包括动态配置
    • 认证DNS模式允许本地DNS名称导出到全球DNS区域。dnsmasq作为这个区域的认证服务器,也可以提供区域传送
    • 从上游服务器DNS响应执行DNSSEC验证,防止欺骗和缓存中毒
    • 指定子域名可以继承自他们的上行DNS服务器
    • 国际化域名支持

    3.3 配置

    dnsmasq的配置文件位于/etc/config/dhcp,控制着DNSDHCP服务选项。默认配置包含一个通用的配置节来指定全局选项,还有一个或多个DHCP来定义动态主机配置服务的网络接口和地址池等。还可以包含多个域名和主机配置,并且提供客户端地址列表来查询。

    3.3.1 DHCP地址池配置

    配置节
    config dhcp lan
        option interface lan
        option start     100
        option limit     150
        option leasetime 12h
    

    指定了DHCP服务器的服务接口lan100是客户端分配的IP地址起点,总共可以分配150IP。租赁时间为12h

    • interface
      服务的网络接口,接口名称是network中配置的虚拟接口
    • start
      IP的起始地址
    • limit
      地址空间范围
    • leasetime
      DHCP分配地址的租期
    • ignore
      dnsmasq将忽略从该接口来的请求

    4.1 动态DNS

    4.2 DDNS原理

    利用DNS可以将域名解析为IP从而实现上网。
    但是DNS提供的域名和IP是静态的对应关系。当主机IP发生改变时,设备边无法正常上网。
    DDNS动态更新DNS服务器上域名和IP的关系。从而保证通过域名解析到正确的IP
    DDNS采用客户端和服务器模型。
    DDNS客户端:需要动态更新域名和IP地址对应关系的设备软件。当服务器的IP地址发生变化时将作为DDNS客户端,向DDNS服务器发生更新域名好和IP地址对应关系的DDNS更新请求。
    DDNS服务器:负责通知DNS服务器动态更新域名和IP地址之间的对应关系。接收到DDNS客户端的更新请求后。DDNS服务器通知DNS服务器重新建立域名和IP的对应关系。

    4.2.1 DDNS配置

    OpenWrt通过Ez-Ipupdate来支持DDNS

    enabled     是否启动DDNS客户端
    interface   设置改DDNS所绑定的接口。DDNS更新的域名所对应的IP地址为该接口的IP
    service     服务类型,支持多种DDNS更新协议。如:gnudip
    username    设置DDNS服务器的认证用户名
    password    DDNS服务器认证密码
    hostname    绑定的域名后缀
    

    4.3 DNS测试工具

    4.3.1 nslookup

    nslookup是一个命令行域名查询工具,有两种工作模式:交互式和非交互式
    交互式:用于向域名服务器查询各种主机和域名信息并输出。
    非交互式:仅向服务器查询请求信息
    主机名/主机IP 域名服务器IP其他选项参数以-开始

    查询域名IP地址
    nslookup openwrt.org
    
    指定域名服务器来查询域名IP地址
    nslookup openwrt.org 8.8.8.8
    
    查询`IP`地址的域名,即进行反向查询
    nslookup 8.8.8.8
    

    dig

  • 相关阅读:
    Smobiler实现手机弹窗
    在 ASP.NET Web API 中使用 Attribute 统一处理异常
    VMWare的网络模式说明
    Windows Server2008 IIS通过Nginx实现绑定多个https域名
    Error while Launching activity
    Android 动态渐变按钮
    mysql安装和配置详解以及Navicat连接失败问题
    selenium的基础学习
    使用Pandas.read_csv时出现OSError: Initializing from file failed
    sklearn 机器学习 Pipeline 模板
  • 原文地址:https://www.cnblogs.com/burnk/p/15836536.html
Copyright © 2020-2023  润新知