精华内容
下载资源
问答
  • DNS协议概述

    2019-11-30 21:02:41
    提供的基本功能有: 主机到IP的映射 主机别名 邮件别名 负载均衡 其实在我们看来,DNS协议像是一个黑盒子,请求传过去对应的域名,就会返回回来域名解析出来的IP地址 基本实现 1.0版本 因为DNS协议主要的...
    1. 基本介绍
      DNS是应用层协议,基于传输层的UDP协议,端口号为53
      提供的基本功能有:
      1. 主机到IP的映射
      2. 主机别名
      3. 邮件别名
      4. 负载均衡
        其实在我们看来,DNS协议像是一个黑盒子,请求传过去对应的域名,就会返回回来域名解析出来的IP地址

    在这里插入图片描述

    1. 基本实现

    1.0版本

    因为DNS协议主要的工作是域名到IP的一个映射,所以我们现在假设一下,只有一台DNS服务器,里面包含了所有的域名到IP的一个映射,用户的请求到会发到这个DNS服务器。
    优点: 设计简单,非常具有吸引力
    缺点: 不适合当今的因特网,因为因特网的拥有数量巨大的主机数量,而且这种集中式的设计的问题包括:

    1. 单点故障:如果该DNS服务器崩溃,整个互联网都会随之瘫痪
    2. 通信容量:这台DNS服务器处理的请求可能有上亿个
    3. 远距离的集中式数据库:如果这台DNS服务器在北极,请求从南极发来,必须跨越一个地球才能处理,有比较长的时延
    4. 维护:数据库大,需要频繁更新

    2.0版本

    分布式、层次数据库
    因为一台DNS服务器根本满足不了实际的需求,那么我们就多布置几台服务器,但是如何去布置呢?按照什么形式布置?
    为了更好处理扩展,需要大量的DNS服务器,他们以层次方式阻止,并且分布到世界各地,没有一台DNS服务器拥有因特网上所有的主机的映射。
    总的来说,有三种DNS服务器:

    1. 根DNS服务器
    2. 顶级域DNS服务器
    3. 权威DNS服务器

    在这里插入图片描述

    其实还有一个本地DNS服务器,由ISP进行布置,一般的,学校、大型公司都会布置一台本地DNS服务器,一般主机都是将请求发往本地DNS服务器,再由本地DNS服务器去查询


    在这里插入图片描述
    由图我们可以看到,获得一个主机到IP映射需要四次查询报文,四份回到报文,这样是及其复杂而且有长时延的,所有

    3.0版本

    DNS缓存
    主要目的:改善时延性能并能减少在互联网上到处传输DNS报文数量
    缓存就是:在一个请求中,当某DNS服务器接收到一个DNS回答,就能将映射缓存到本地存储器中
    但是这个缓存不能一直存在本地存储器中,要不然慢慢的,某台服务器就会拥有所有的映射,就会出现版本1.0的问题,所以,一般DNS服务器在一段时间后(一般是两天)将缓存信息丢弃

    经过了三个版本的迭代更新,就出现了现在我们所用到的一个体系
    我们就假设一下,在自己的电脑里面请求百度网页需要经历的过程:

    1. 主机访问www.baidu.com,这个请求会被发送到本地DNS服务器(①)
    2. 本地DNS服务器就回去缓存中找,有没有有关www.mail.baidu.com的缓存或者com的缓存,发现没有之后
    3. 请求根DNS服务器(②),说我需要顶级域名为com的DNS服务器的IP,然后根DNS服务器返回com的DNS服务器的IP为111.111.111(🌂)
    4. 本地服务器拿到这个IP之后,就去请求com DNS服务器(④),说:我需要要baidu.com的IP地址,com DNS服务器就会返回baidu.com的IP地址为222.222.222(🌫)
    5. 拿到www.baidu.com之后,就要去访问这个域名下的mail,本地DNS服务器就会发一个请求给222.222.222(⑥),说我需要mail的IP地址,那么baidu.com服务器就会返回333.333.333(⑦)
    6. 因为本地DNS服务器已经拿到了mail.baidu.com的IP地址,就会返回给主机(⑧),这样主机就可以直接访问444.444.444的首页了,这个时候本地DNS服务器还会缓存根域名、com的域名、www.baidu.com的域名www.mail.baidu.com的域名,保存到本地,这样,下次别人需要访问百度就可以直接返回IP了
    展开全文
  • VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)将可以承担网关功能的一组路由器加入到备份组中,形成一台虚拟路由器,这样主机网关设置成虚拟网关,就能够实现冗余。 2、VRRP原理 VRRP将...

    VRRP协议(虚拟路由器冗余协议)与基于HA技术的高可用DNS服务

    一、VRRP协议

    1、VRRP基本概念

    VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)将可以承担网关功能的一组路由器加入到备份组中,形成一台虚拟路由器,这样主机的网关设置成虚拟网关,就能够实现冗余。

    2、VRRP原理

    VRRP将局域网内的一组路由器划分在一起,称为一个备份组。备份组由一个Master路由器和多个Backup路由器组成,功能上相当于一台虚拟路由器。VRRP备份组具有以下特点:

    ①虚拟路由器具有IP地址,称为虚拟IP地址。局域网内的主机仅需要知道这个虚拟路由器的IP地址,并将其设置为缺省路由的下一跳地址。

    ②网络内的主机通过这个虚拟路由器与外部网络进行通信。

    ③备份组内的路由器根据优先级,选举出Master路由器,承担网关功能。其他路由器作为Backup路由器,当Master路由器发生故障时,取代Master继续履行网关职责,从而保证网络内的主机不间断地与外部网络进行通信。

    3、VRRP工作状态机

    “首先 VRRP三种状态,分别是:初始状态(Initialize)、活动状态(Master)、备份状态(Backup)。”

    初始状态:在这个状态下VRRP是不可用的,在这个状态下的设备是不会处理VRRP报文的,通常是刚配置VRRP时和检测到故障是会是这个状态。

    活动状态:处于Master状态下的设备将会做下列工作:

        定期发送VRRP报文。

        以虚拟MAC地址响应对虚拟IP地址的ARP请求。

        转发目的MAC地址为虚拟MAC地址的IP报文。

        如果它是这个虚拟IP地址的拥有者,则接收目的IP地址为这个虚拟IP地址的IP报文。否则,丢弃这个IP报文。

        如果收到比自己优先级大的报文则转为Backup状态。

        如果收到优先级和自己相同的报文,并且发送端的IP地址比自己的IP地址大,则转为Backup状态。

        当接收到接口的Shutdown事件时,转为Initialize。

    备份状态:处于Backup状态下的设备,它将会做下列工作:

        接收Master发送的VRRP报文,判断Master的状态是否正常。

        对虚拟IP地址的ARP请求,不做响应。

        丢弃目的MAC地址为虚拟MAC地址的IP报文。

        丢弃目的IP地址为虚拟IP地址的IP报文。

        Backup状态下如果收到比自己优先级小的报文时,丢弃报文,立即切换为Master(仅在抢占模式下生效)。

        如果收到优先级和自己相同或者比自己高的报文,则重置定时器,不进一步比较IP地址。

        当接收到接口的Shutdown事件时,转为Initialize。

        如果maser_down_interval定时器超时,则切换为Master。

    二、基于HA技术的高可用DNS服务

    使2台设备组成主备模式,对外提供相同的IP地址服务

    当DNS设备发生故障,进行HA切换,备用设备切换为活跃设备。切换过程对终端用户是透明的。

     

    展开全文
  • DNS 搭建(视图功能

    2011-05-12 23:45:49
    DNS 搭建,模拟视图功能 ...2、安装实现DNS协议的软件包,声明管理51cto.com区域 (前提是上一级域com域DNS服务器授权本主机管理51cto.com区域) 3、会有一些相关区域后缀域名,需要在本DNS服务器上注册 ...

    DNS 搭建,模拟视图功能

    搭建一个主DNS服务器

    搭建一个管理51cto.com区域的主DNS服务器

    基本思路:
    1
    、必须有一个固定IP

    2
    、安装实现DNS协议的软件包,声明管理51cto.com区域
    (
    前提是上一级域com域的DNS服务器授权本主机管理51cto.com区域)

    3
    、会有一些相关区域后缀的域名,需要在本DNS服务器上注册

    具体实现:
    1
    、必须有一个固定IP
    192.168.1.254
    2
    、安装实现DNS协议的软件包,在主配置文件中声明管理51cto.com区域
    (
    前提是上一级域com域的DNS服务器授权本主机管理51cto.com区域)
    ]# yum -y install bind bind-chroot caching-nameserver

    bind
    是主程序包
    bind-chroot
    是为了安全起见,
    会把bind的程序运行在一个指定的根目录环境下.
    bind
    程序会有一个运行身份是named用户,
    一旦有非法的用户***了本DNS服务器,
    对方将拿到named用户的权限,
    此时,named的身份将得到对系统中的所有目录和文件的r-x/r--权限
    为了安全一些,把named用户限制在一个指定的根目录环境下能有相应权限

    安装了此包,限定的根目录默认是/var/named/chroot

    caching-nameserver
    这个包装完后,
    目的是生成一堆模板文件,比如zone文件的模板

    开始修改主配置文件,声明管理51cto.com区域
    ]# vim /var/named/chroot/etc/named.caching-nameserver.conf

    [root@localhost chroot]# cat /var/named/chroot/etc/named.caching-nameserver.conf
    options {
    listen-on port 53 { any; }; #
    定义监听本机哪个接口的53端口,any表示监听本地所有接口的53
    listen-on-v6 port 53 { ::1; };
    directory "/var/named"; #
    定义zone文件所存的位置,可以在/var/named/chroot/var/named去创建并根据需要定义zone文件.
    dump-file "/var/named/data/cache_dump.db";
    statistics-file "/var/named/data/named_stats.txt";
    memstatistics-file "/var/named/data/named_mem_stats.txt";
    allow-query { any; }; #
    允许哪些客户端来找本DNS服务器查询
    allow-query-cache { any; };
    };
    logging {
    channel default_debug {
    file "data/named.run";
    severity dynamic;
    };
    };
    view localhost_resolver {
    match-clients { any; };
    match-destinations { any; };
    recursion yes;
    include "/etc/named.rfc1912.zones";
    };

    所要管理的区域声明:
    ]# vim /var/named/chroot/etc/named.rfc1912.zones

    zone "51cto.com" IN {
    type master;
    file "uplooking.com.zone";
    };
    ]# cp -p /var/named/chroot/var/named/localhost.zone /var/named/chroot/var/named/51cto.com.zone




    3
    、会有一些相关区域后缀的域名,需要在本DNS服务器上注册

    ]# vim /var/named/chroot/var/named/51cto.com.zone
    在此配置文件中,会有很多种记录
    SOA
    起始授权机构,一般从本机往下授权,填写的应该是本DNS服务顺
    器自己的域名(但是这个域并没有被解析 ,帮而一会必须 写一条A记录解析这个域名)
    在我们的实验中,这个域名是dns.51cto.com
    51cto.com IN SOA dns.51cto.com
    .
    注意必须 加一个A记录解析 dns.51cto.com.
    dns.51cto.com. IN A 192.168.1.254


    NS
    用于定义某个区域 的名称服务器是谁。
    一般是定义本匹配的DNS服务器是自己
    另外是定义下一级区域的DNS服务器是指定的主机(子域授权 )
    51cto.com IN NS dns.51cto.com.


    A
    主机记录,用于把 域名--解析为--IP
    dns.51cto.com IN A 192.168.1.254



    ]# cat /var/named/chroot/var/named/uplooking.com.zone
    $TTL 86400
    @ IN SOA dns.51cto.com. root (
    42 ; serial (d. adams)
    3H ; refresh
    15M ; retry
    1W ; expiry
    1D ) ; minimum

    ;51cto.com. IN NS dns.51cto.com.
    ;dns.51cto.com. IN A 192.168.1.254
    IN NS dns.51cto.com.
    dns IN A 192.168.1.254
    ;www.51cto.com. IN A 192.168.1.5
    ;mail.51cto.com. IN A 192.168.1.8
    ;news.51cto.com. IN A 192.168.1.122
    www IN A 192.168.1.5
    mail IN A 192.168.1.8
    news IN A 192.168.1.122

    ]# service named start
    ]# tail -n 20 /var/log/messages
    注意看日志中是否有报错


    client
    测试:
    cat /etc/resolv.conf
    nameserver 192.168.1.254

    [root@localhost named]# host -l 51cto.com
    51cto.com name server dns.51cto.com.
    dns.51cto.com has address 192.168.1.254
    mail.51cto.com has address 192.168.1.8
    news.51cto.com has address 192.168.1.122
    www.51cto.com has address 192.168.1.5
    [root@localhost named]#


    DNS 子域授权

    基本思路:
    1
    、搭建 com 域的主DNS服务器

    2
    、搭建 51cto.com域的主dns服务器

    3
    、在com域中对51cto.com进行授权

    --------------
    具体实现:

    1
    、搭建 com 域的主DNS服务器 192.168.1.254

    装包: 光盘中自带
    [root@localhost pg]# rpm -q bind
    bind-9.3.6-4.P1.el5_4.2
    [root@localhost pg]# rpm -q bind-chroot
    bind-chroot-9.3.6-4.P1.el5_4.2
    [root@localhost pg]# rpm -q caching-nameserver
    caching-nameserver-9.3.6-4.P1.el5_4.2
    修改配置文件
    ]# vim /var/named/chroot/etc/named.caching-nameserver.conf
    options {
    listen-on port 53 { any; }; #
    定义监听本机哪个接口的53端口,any表示监听本地所有
    接口的53
    listen-on-v6 port 53 { ::1; };
    directory "/var/named"; #
    定义zone文件所存的位置,可以在/var/name/chroot/var/named去创建并根据需要定义zone文件.
    dump-file "/var/named/data/cache_dump.db";
    statistics-file "/var/named/data/named_stats.txt";
    memstatistics-file "/var/named/data/named_mem_stats.txt";
    allow-query { any; }; #
    允许哪些客户端来找本DNS服务器查询
    allow-query-cache { any; };
    };
    logging {
    channel default_debug {
    file "data/named.run";
    severity dynamic;
    };
    };
    view localhost_resolver {
    match-clients { any; };
    match-destinations { any; };
    recursion yes;
    include "/etc/named.rfc1912.zones";
    };

    ]# vim /var/named/chroot/etc/named.rfc1912.zones
    zone "com" IN {
    type master;
    file "com.zone";
    };

    ]# cat /var/named/chroot/var/named/com.zone
    $TTL 86400
    @ IN SOA dns.com. root (
    42 ; serial (d. adams)
    3H ; refresh
    15M ; retry
    1W ; expiry
    1D ) ; minimum

    ;51cto.com. IN NS dns.51cto.com.
    ;dns.51cto.com. IN A 192.168.1.254
    IN NS dns.com.
    dns IN A 192.168.1.254

    [root@localhost named]# service named restart
    停止 named [确定]
    启动 named [确定]

    2
    、同样在192.168.1.8上配置51cto.com区域的主DNS
    定义解析如下域名的A记录
    www.51cto.com
    news.51cto.com

    3
    、在com区域的主DNS上写授权的记录
    vim /var/named/chroot/var/named/com.zone
    添加两条记录:
    51cto.com. IN NS dns.51cto.com.
    dns.51cto.com. IN A 192.168.1.8
    service named restart
    tail -n 30 /var/log/messages
    看日志检查是否有错误发生

    4
    、测试
    找一clientDNS指定COM域的DNS服务器,也就是192.168.1.254
    然后 nslookup 解析了域中的A记录.
    nslookup www.51cto.com
    nslookup news.51cto.com
    若能解析成功,说明授权成功

    view

    思路

    通过定义三个视图,实现不同的客户端来源,解析同一样域名为不同的IP

    这种需求主要是解析 当前运营商为电信/联通时的南北通信问题。
    www.51cto.com
    提供了电信和联通IP
    联通的客户端找DNS解析www.51cto.com时,应该解析为联通的IP
    电信的客户端找DNS解析www.51cto.com时,应该解析为电信的IP

    这种功能又被称之为智能DNS

    实现过程见下面节点的笔记:





    named.caching-nameserver.conf

    vim /var/named/chroot/etc/named.caching-nameserver.conf
    主要是定义三个视图
    options {
    listen-on port 53 { any; };
    listen-on-v6 port 53 { ::1; };
    directory "/var/named";
    dump-file "/var/named/data/cache_dump.db";
    statistics-file "/var/named/data/named_stats.txt";
    memstatistics-file "/var/named/data/named_mem_stats.txt";

    // Those options should be used carefully because they disable port
    // randomization
    // query-source port 53;
    // query-source-v6 port 53;

    allow-query { any; };
    allow-query-cache { any; };
    };
    logging {
    channel default_debug {
    file "data/named.run";
    severity dynamic;
    };
    };
    #view localhost_resolver {
    # match-clients { any; };
    # match-destinations { any; };
    # recursion yes;
    # include "/etc/named.rfc1912.zones";
    #};
    view cu {
    match-clients {
    192.168.1.32; 192.168.1.250; 192.168.1.249; };
    recursion yes;
    include
    "/etc/named.rfc1912.zones.cu";
    };

    view tel {
    match-clients {
    192.168.1.253; 192.168.1.38; 192.168.1.101; };
    recursion yes;
    include
    "/etc/named.rfc1912.zones.tel";
    };

    view other {
    match-clients { any; };
    recursion yes;
    include "/etc/named.rfc1912.zones.other";
    };



    三个rfc1912.zones文件

    ]# cp /var/named/chroot/etc/named.rfc1912.zones /var/named/chroot/etc/named.rfc1912.zones.cu
    ]# cp /var/named/chroot/etc/named.rfc1912.zones /var/named/chroot/etc/named.rfc1912.zones.tel
    ]# cp /var/named/chroot/etc/named.rfc1912.zones /var/named/chroot/etc/named.rfc1912.zones.other
    注意三个文件的权限问题:
    或者cp -p

    -p
    选项的作用:
    same as --preserve=mode,ownership,timestamps


    ]# chgrp named /var/named/chroot/etc/named.rfc1912.zones.*

    每个文件中都添加如下的区域声明,重点是zone file 不一样,因而在不同的zone中的www.51cto.com对应的A记录解析的IP地址也就不一样
    [root@www etc]# tail -n 4 /var/named/chroot/etc/named.rfc1912.zones.*
    ==> /var/named/chroot/etc/named.rfc1912.zones.cu <==
    zone "51cto.com" IN {
    type master;
    file "51cto.com.zone.cu";
    };

    ==> /var/named/chroot/etc/named.rfc1912.zones.other <==
    zone "51cto.com" IN {
    type master;
    file "51cto.com.zone.other";
    };

    ==> /var/named/chroot/etc/named.rfc1912.zones.tel <==
    zone "51cto.com" IN {
    type master;
    file "51cto.com.zone.tel";
    };

    三个区域文件

    创建如下三个区域文件,同样注意权限问题!!

    ]# ls /var/named/chroot/var/named/51cto.com.zone.cu
    ]# ls /var/named/chroot/var/named/51cto.com.zone.tel
    ]# ls /var/named/chroot/var/named/51cto.com.zone.other

    -------------

    ]# cat 51cto.com.zone.cu
    $TTL 86400
    @ IN SOA dns.51cto.com. admin.51cto.com. (
    ;admin@51cto.com
    2012122102 ; serial (d. adams)
    3H ; refresh
    15M ; retry
    1W ; expiry
    1D ) ; minimum

    ; FQDN
    ; www.51cto.com. www.51cto.com.
    ; www.51cto.com www.51cto.com.51cto.com.
    IN NS dns.51cto.com.
    dns IN A 192.168.1.8
    www IN A 192.168.1.254

    ;$GENERATE 1-100 web$ IN A 192.168.1.$
    ;* IN A 192.168.1.8

    -------------

    ]# cat 51cto.com.zone.tel
    $TTL 86400
    @ IN SOA dns.51cto.com. admin.51cto.com. (
    ;admin@51cto.com
    2012122102 ; serial (d. adams)
    3H ; refresh
    15M ; retry
    1W ; expiry
    1D ) ; minimum

    ; FQDN
    ; www.51cto.com. www.51cto.com.
    ; www.51cto.com www.51cto.com .51cto.com.
    IN NS dns.51cto.com.
    dns IN A 192.168.1.8
    www IN A 192.168.1.167

    ;$GENERATE 1-100 web$ IN A 192.168.1.$
    ;* IN A 192.168.1.8


    -------------

    ]# cat 51cto.com.zone.other

    $TTL 86400
    @ IN SOA dns.51cto.com. admin.51cto.com. (
    ;admin@51cto.com
    2012122102 ; serial (d. adams)
    3H ; refresh
    15M ; retry
    1W ; expiry
    1D ) ; minimum

    ; FQDN
    ; www.51cto.com. www.51cto.com.
    ; www.51cto.com www.51cto.com.51cto.com.
    IN NS dns.51cto.com.
    dns IN A 192.168.1.8
    www IN A 192.168.1.167

    ;$GENERATE 1-100 web$ IN A 192.168.1.$
    ;* IN A 192.168.1.8

    -------------

    ]# chgrp named 51cto.com.zone.*
    ]# ls 51cto.com.zone.* -l
    -rw-r--r-- 1 root named 400 Apr 2 11:40 51cto.com.zone.cu
    -rw-r--r-- 1 root named 400 Apr 2 11:40 51cto.com.zone.other
    -rw-r--r-- 1 root named 400 Apr 2 11:40 51cto.com.zone.tel

    启动DNS服务

    [root@www named]# service named restart
    [root@www named]# iptables -L
    注意IPTABLES的策略,要允许所有主机访问udp 53端口

    找不同的客户端测试

    找不同的客户端测试

    客户端都把DNS指向192.168.1.8
    分析解析 www.51cto.com 看是否实现区分

    ACL

    我们可以定义把所有的IP集合定义成一个专门的名称。
    在需要使用这些IP集合时,直接调用名称。

    ACL
    功能
    语法 :
    acl acl-name {
    address_match_list
    };
    举例:
    acl tel { 192.168.1.253; 192.168.1.38; 192.168.1.101; };

    --------------------
    acl cu { 192.168.1.32; 192.168.1.250; 192.168.1.249; };
    acl tel { 192.168.1.253; 192.168.1.38; 192.168.1.101; };

    view cu {
    match-clients { cu; };
    recursion yes;
    include "/etc/named.rfc1912.zones.cu";
    };
    view tel {
    match-clients { tel; };
    recursion yes;
    include "/etc/named.rfc1912.zones.tel";
    };
    view other {
    match-clients { any; };
    recursion yes;
    include "/etc/named.rfc1912.zones.other";
    };

    --------------------



    或者把acl定义在专门的文件中,再包含到配置文件中:
    [root@localhost etc]# pwd
    /var/named/chroot/etc

    [root@localhost etc]# cat aclfile_cu aclfile_tel
    acl cu {
    192.168.1.32;
    192.168.1.250;
    192.168.1.249;
    192.168.2.0/24;
    };

    acl tel {
    192.168.1.253;
    192.168.1.38;
    192.168.1.101;
    192.168.3.0/24;
    };

    include "/etc/aclfile_cu";
    include "/etc/aclfile_tel";

    #acl cu { 192.168.1.32; 192.168.1.250; 192.168.1.249; };
    #acl tel { 192.168.1.253; 192.168.1.38; 192.168.1.101; };
    view cu {
    match-clients { cu; };
    recursion yes;
    include "/etc/named.rfc1912.zones.cu";
    };
    view tel {
    match-clients { tel; };
    recursion yes;
    include "/etc/named.rfc1912.zones.tel";
    };
    view other {
    match-clients { any; };
    recursion yes;
    include "/etc/named.rfc1912.zones.other";
    };













    BIND 参考手册

    file:///usr/share/doc/bind-9.3.6/arm/Bv9ARM.html

     

    转载于:https://blog.51cto.com/jeffreylee/564568

    展开全文
  • 本文主要介绍DNS协议实现基本工作原理.1.DNS功能DNS用于实现将Internet中主机主机名称和IP地址间转换.互联网中主机之间实际是通过IP地址进行彼此之间通信, 由于IP地址是32位或128为二进制数字, 不便于人们...

    本文主要介绍DNS协议实现基本工作原理.


    1.DNS功能

    DNS用于实现将Internet中主机的主机名称和IP地址间的转换.

    互联网中的主机之间实际是通过IP地址进行彼此之间通信的, 由于IP地址是32位或128为二进制数字, 不便于人们记忆, 因此人们使用了FQDN(Fully Qualified Domain Name)完全合格域名来辅助标识网络中的主机, 便于人们记忆; 实际中不同主机之间仍然使用IP地址进行通信; 通过DNS(Domain Name System)域名系统来实现FQDN与IP地址之间一一映射. 正向DNS解析将FQDN映射为IP地址, 反向DNS解析将IP地址映射为FQDN.(本文中不加特殊说明的都可以看作是正向DNS解析)


    2.DNS域名系统架构

    早期由于互联网中的主机数量非常少, 可以使用本地主机中的文本文件进行存储指定主机FQDN和IP地址关系数据. 但随着互联网中主机数量的几何级增长, 这些数据已经变得非常庞大, 仍然使用本地主机中的文本文件来存储, 就会是每台主机中的数据过大, 非常不现实.

    在这种情况下就产生了DNS域名系统, DNS是公网中存在的倒置树状结构的服务器集群, 用于集中存储FQDN和IP地址之间映射关系数据, 以供互联网中的主机进行查询.


    DNS域名系统服务器树状结构如图所示:

    wKiom1YSlpLjaQyzAAI6qvgY8So819.jpg

    在DNS中, 域名采用分层结构, 包括: 根域, 一级域, 二级域和主机名称. 

    在域名层次结构中每一层称作一个域,每个域用一个 . 分开(标识根域的 . 可以省略, 其他级别域的 . 不能省略), 域又可以进一步分成子域,每个域都有一个域名. 

    根域: 就是一个“.”号,由Internet名字注册授权机构管理, 全球共有13台根域服务器. 

    一级域: 由Internet名字授权机构管理, 一级域中可以按照用途分类: .com商业域, .org组织域, .edu教育域; 也可以按照国家进行分类: .hk香港, .uk英国.

    二级域: 注册到个人(www.ok.com), 组织(.x.org)或公司(.ali.com)的名称, 二级域下还可以创建子域, 如上图中的net.ali.com.

    子域: 从纯逻辑的角度来说, 在根域以下的所有域都可称为子域. 但在实际中, 子域用于定义二级域以下的域 因此子域可是看作是二级域以下的各个域.

    反向域: 这是一个特殊域, 名称为in-addr.arpa, 用于将IP映射到域名. 

    如上图结构所示: 

    主机www.ok.com是二级域.ok.com中的一台主机, 由于.ok.com这个域中只有一台主机, 因此可以看作是该主机直接向.com这个一级域直接注册的主机, 这种情况非常极端, 基本不会存在;

    域.ali.com是一级域.com下的一个二级域, www.ali.com是该二级域其中的一台主机, .net.ali.com是该二级域中的一个子域.


    3.DNS工作过程

    DNS查询过程如下图所示:

    wKioL1YSoJqA_yyNAAH3L4uaK4I209.jpg

    DNS递归查询: Host A 对于 www.ibm.com 的查询过程中由Host A设置的Host DNS完成逐级查询, 查询完成后由Host DNS返回给Host A, 并在Host DNS本地将该条记录缓存; 而不是由Host A直接完成逐级查询

    DNS迭代查询: Host DNS对于Host A的目标主机域名查询需求, Host DNS需要亲自从root DNS Server逐级查询到目标主机域名所在的DNS Server上, 查询过程中其他各个级别的DNS Server只会提供其子域内的主机地址, 而不会主动去帮你查询剩余路径, 在此过程中Host DNS的执行过程称为迭代查询

    规则:

    1. Host DNS对于所有Host A的查询过程都是递归查询, 因为Host A不能自己查询主机域名查询, Host A必须通过指定的Host DNS将查询结果返回给自己

    2. 不同的Host DNS的查询过程大多都是迭代查询, 因为递归查询过于消耗服务器资源, 一般DNS Server不会提供递归查询服务功能, 所以Host DNS只能亲自去查询目标主机地址


    4.DNS服务器配置文件

    Linux系统上使用bind应用程序来作为DNS解析服务程序.

    bind程序的主要配置文件如下:

    [root@www ~]# rpm -ql bind
    /etc/NetworkManager/dispatcher.d/13-named
    /etc/logrotate.d/named
    /etc/named: named配置文件的默认存放目录
    /etc/named.conf: 程序主配置文件
    /etc/named.iscdlv.key
    /etc/named.rfc1912.zones: 默认除根之外的区域配置文件, 用于指定定义的区域
    /etc/named.root.key
    /etc/portreserve/named
    /etc/rc.d/init.d/named: named服务脚本文件
    /etc/rndc.conf: 远程辅助工具rndc的配置文件
    /etc/rndc.key: 远程辅助工具rndc的密钥文件
    /etc/sysconfig/named: named的服务进程参数文件
    /usr/lib64/bind
    /usr/sbin/arpaname
    /usr/sbin/ddns-confgen
    /usr/sbin/dnssec-dsfromkey
    /usr/sbin/dnssec-keyfromlabel
    /usr/sbin/dnssec-keygen
    /usr/sbin/dnssec-revoke
    /usr/sbin/dnssec-settime
    /usr/sbin/dnssec-signzone
    /usr/sbin/genrandom
    /usr/sbin/isc-hmac-fixup
    /usr/sbin/lwresd
    /usr/sbin/named: 程序文件
    /usr/sbin/named-checkconf: 主配置文件语法检查程序
    /usr/sbin/named-checkzone: 区域文件语法检查程序
    /usr/sbin/named-compilezone
    /usr/sbin/named-journalprint
    /usr/sbin/nsec3hash
    /usr/sbin/rndc
    /usr/sbin/rndc-confgen
    ......
    ......
    /usr/share/man/man8/rndc.8.gz
    /var/log/named.log
    /var/named: named数据文件的默认存放目录
    /var/named/data
    /var/named/dynamic
    /var/named/named.ca
    /var/named/named.empty
    /var/named/named.localhost
    /var/named/named.loopback
    /var/named/slaves: 从DNS服务器数据文件存放目录
    /var/run/named: named服务产生的进程


    5.配置文件/etc/named.conf说明

    语法格式说明:

    1. { } 花括号不能紧跟字符, 需要添加空格隔开;

    2. }后和每个语句需要有;表示语句结束

    3. //表示对配置语句进行注释, 不起任何作用


    常用字段说明:

    options { }; 用于在配置文件中定义全局配置选项

    options { 

        listen-on port 53 { 127.0.0.1; }; 设定监听套接字, 默认监听在127.0.0.1, 可以监听在多个地址用 ; 隔开, 注释该语句时表示监听在本地全部可用IP地址的53端口上

        directory "/PATH/FILE"; 指定DNS服务器的数据文件默认存放目录

        dump-file "/var/named/data/cache_dump.db"; 指定DNS缓存文件的存放路径

        statistics-file "/var/named/data/named_stats.txt"; 指定DNS统计信息文件的存放路径


        allow-query     { IP/Net; }; 指定允许进行查询的主机地址, 默认只允许本地主机查询, 需要进行修改, 注释表示允许所有主机查询; 该项用于查询供功能开放给本地主机时使用

        allow-transfer { SLAVE_IP; }; 实现DNS区域安全控制, 对指定DNS服务器允许从本机获取DNS区域文件, none字段表示对所有主机都不允许从本机获取DNS区域文件

        recursion no|yes; 是否允许递归, 默认为no关闭, 使用时需要开启, 默认可以对1000台主机进行DNS递归查询

        allow-recursion { IP; }; 定义DNS允许进行递归查询的主机白名单

        allow-update { IP; }; 定义允许动态更新区域数据文件的主机白名单

    }; : 


    zone " ZONE_NAME" { }; 用于在配置文件中定义区域

    zone "ZONE_NAME"{ 

        type {master|slave|hint|forward}; 指定服务器角色: hint:表示根; master表示主服务器; forward表示转发服务器; 

        file "FILENAME"; 指定DNS数据库文件的相对位置, 相对位置的起始目录为/var/named/, 从DNS服务器数据库文件一般要放在/var/named/slaves/目录下, 注意:因为从DNS服务器的数据文件原来不存在, 需要从主DNS服务器同步传送, 因此从DNS服务器的数据文件的存放目录必须要对named用户赋予w权限

        masters { [MASTER1;MASTER;...] } ; 指定主DNS服务器地址, 配置主从DNS服务器时在从服务器端使用

        forward only|first ; 在forward服务器时启用(可以在全局options中定义), 其中first: 表示本服务器先将递归查询请求向本机指定DNS服务器进行转发, 指定服务器没有响应递归查询请求时, 本服务器再向根发起查询请求; only: 表示本服务器先将递归查询请求向本机指定DNS服务器进行转发, 指定服务器没有响应递归查询请求时, 本服务器不会再发起其他请求

        forwarders { IP1;IP2 } 指定查询DNS服务器的地址(可以在全局options中定义)

    };


    6.数据文件说明

    数据书写规则:

    1. 在数据库文件中可以不用添加 . root标识符, 没有使用 . 的名称都会被看作是本区域内的相对路径, 会在其后添加默认zone来进行解析;

    2. 在name字段中不使用完整的FQDN, 而使用默认zone进行补全时可能不会出现错误, 但尽量书写完整FQDN

    3. 在name字段中使用@时, 表示使用该字段为对应的zone; 使用空时, 表示该字段与上一条条目中的字段值相同

    4. ttl字段: 表示该记录被其他DNS服务器查询到后会在对方主机中缓存的时间, 该处的ttl字段优先级高于SOA条目中的ttl字段; 全局定义TTL时. 需要使用$来指定宏; 

    5. 在value字段中需要使用完整的FQDN: 需要使用 . 标识符作为结尾, 否则会在解析结果中默认添加该文件对应的zone进行扩展; 


    常见条目分类说明如下图所示:

    wKiom1YSvnHhFWvMAArW1n03xxA802.jpg


    以上就是DNS基本工作原理.

    本人水平有限, 如有理解不当的地方, 请大家给予指正, 非常感谢!

    转载于:https://blog.51cto.com/pavel86/1700315

    展开全文
  • 了解了TCPIP通讯的基本结构后,接下来讲解建立的流程,首先声明一下我用的开发环境是Visual Studio2008版的,语言C#,组件System.Net.Sockets,流程的建立包括服务器端的建立和客户端的建立,如图所示: ...
  • 了解了TCPIP通讯的基本结构后,接下来讲解建立的流程,首先声明一下我用的开发环境是Visual Studio2008版的,语言C#,组件System.Net.Sockets,流程的建立包括服务器端的建立和客户端的建立,如图所示: 二、实现:...
  • Trust-DNS是一个实现DNS协议和客户端功能的库。该库包含DNS记录序列化和通信的基本实现,通过它能够执行查询、更新和通知等操作。Trust-DNS Resolver是对应的DNS解析库,包括对应的IPv4和IPv6的一些实现。 使用示例 ...
  • 网络的基本概念

    2021-03-21 15:41:05
    网络协议 网络协议概念和要素:网络协议规定了通信双方具体...以TCP协议和IP协议为基础,包含很多具体协议,不同协议实现不同的功能。 例如:HTTP, FTP, SMTP, DNS, TCP, UDP, IPv4,,ICMP,RIP,OSPF,IGMP,IPv6,
  • 网络协议的类型、优缺点、作用

    万次阅读 2018-04-01 09:36:05
     ● 网络协议是一种特殊的软件,是计算机网络实现功能的基本机制  ● 网络协议的本质是规则,即各种硬件和软件必须遵循的共同规则  ● 网络协议并不是一套单独的软件,他融合于其他所有软件系统中,协议在...
  • LwIP协议

    2019-10-16 11:12:44
    LwIP是一款主要应用于嵌入式领域开源TCP/IP协议栈,它的实现同BSD(LINUX)的实现有很大相似性,可以作为TCP/IP协议的典型代表,它功能完备,除了实现TCP/IP基本通信外,其新版本还支持DNS\SNMP\DHCP\IGMP等高级...
  • 知识大纲 计算机网络的基本概念 网络硬件和软件 ...1、计算机网络的基本概念1-1定义:已能够相互共享资源的方式相互联系来的自制计算机系统的集合1-2目标:实现资源共享和信息传输1-3组成:从功能
  • DHCP:(Dynamic Host Configuration Protocol )动态主机配置协议,是TCP/IP协议集所提供一种实现自动分配IP配置信息子协议,基于UDP协议实现。 2.DHCP的功能 ① 动态分配(每一个IP地址都具有租约) ② 分配...
  • TCP-IP协议详解

    热门讨论 2008-11-24 20:46:50
    3.2 TCP/IP层和协议 21 3.2.1 体系结构 21 3.2.2 传输控制协议 21 3.2.3 IP协议 23 3.2.4 应用层 25 3.2.5 传输层 25 3.2.6 网络层 25 3.2.7 链路层 25 3.3 远程登录(Telnet) 25 3.4 文件传输协议(FTP) 25 3.5 ...
  • ssh协议 secure shell

    2018-05-20 16:00:35
    这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。使用SSH,还有一个额外好处就是传输数据是经过压缩,所以可以加快传输速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、Pop、甚至为PPP...
  • TCP/IP协议与网络编程技术

    热门讨论 2010-03-12 17:09:10
    在Internet普及的今天,作为Internet工作基础的TCP/IP协议及其编程已经成了IT人业人员所要具备的基本知识与技能。打开国内外各大知名网站的招聘页面,都可以看到类似于“熟悉TCP/IP协议、掌握socket通讯开发”等字样...
  • 熟悉Nginx的小伙伴都知道,Nginx是一个非常好的负载均衡器。除了用的非常普遍的Http负载均衡,Nginx还可以实现Email,FastCGI的负载均衡,甚至可以...我们先来简单介绍下Nginx负载均衡的基本功能。并且,我们在下...
  • 文章目录计算机网络——基本...CN(计算机网络)是把分布在不同地点,并具有独立功能的多个计算机系统通过通信设备和线路连接起来,在功能完善网络软件和协议的管理下,以实现网络中资源共享为目标系统。 interne
  • TCPIP协议详解(4-1)

    2008-01-16 14:49:35
    网络服务 第15章 互联网打印协议 149 15.1 IPP历史 149 15.2 IPP和端用户 150 15.3 使用HPIPP实现 151 15.4 小结 152 第16章 LDAP:目录服务 153 16.1 为什么使用目录服务 153 16.2 目录...
  • Sendmail是UNIX/Linux环境中稳定性较好一款邮件服务器软件,通过对Sendmail服务器配置可以实现基本的邮件转发功能;dovecot服务器实现了POP3协议,可以与Sendmail服务器配合工作,实现用户对邮件收取功能;...
  • 目标是提供具有增强的安全性(由于使用Rust)而实现的功能齐全的Lightning,可以在包括WASM在内的许多平台上运行。 作为参考实现,使用了[lnd]( )。 闪电网络规范合规 lpd部分实现了 。 BOLT代表:基础闪电技术...
  • 在开始使用iRules之前,需要了解F5设备的基本功能及配置;同时,根据要实现的不同功能,需要对该功能涉及的相关知识有所了解,比如TCP协议、UDP协议DNS原理、SSL证书原理、HTTP协议、安全攻击及防护、Cache、XML等...
  • 然而,两种方法均会降低灵活性、存在着潜在的浪费(由于设备冗余)、同时可能会阻碍仅仅通过更灵活的互相连接性才能实现的功能的创建。 为了达到这样的灵活性,基础措施之一是将数据采集、处理和显示分离到独立的...
  • 问题3-14:能否归纳一下连续ARQ协议都有哪些主要功能和特别要注意地方? 问题3-15:在许多有关网络技术书籍或文献中,经常会看到“应答”、“回答”、“响应”和“确认”等术语。这些术语意思都一样吗? 问题3...
  • 详解dhcp服务器

    2010-02-26 13:39:53
    2.DHCP的功能① 动态分配(每一个IP地址都具有租约)② 分配网关、WINS、DNS系统信息③ 与DNS相结合实现动态更新④ 保留IP地址给指定主机3.DHCP体系结构DHCP服务器:运行DHCP服务软件包和DHCP协议的主机...
  • 本书是原书第2版译本,比第1版增加了3章内容,介绍了基本网络工具、远程数字连接技术和中间件技术。对全书做了很多修改和更新。本书是描述互联网技术经典之作,被认为是互联网技术“圣经”。 目 录 译者序 ...
  • 第十二章 DHCP服务器

    2013-08-19 20:55:20
     DHCP的基本概念 1. DHCP的定义 DHCP动态主机配置协议>是TCP/IP协议集所提供的一种实现自动分配IP配置信息的子协议。 2. DHCP的功能 ① 动态分配(每一个IP地址都具有租约) ② 分配网关、WINS、DNS系统...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 195
精华内容 78
关键字:

dns协议实现的基本功能