DNS服务器【Linux-shell】

DNS服务器


    DNS服务器是常用网络服务之一,当用户利用计算机访问互联网之前,一个重要步骤是需要指定所要使用的DNS服务器,它把用户所请求的互联网地址中的主机名解析成为IP地址。
    # http://www.example.com/index.html----->www.example.com:主机名;example.com:域名;index.html:www.example.com主机上的文件。
    DNS即域名系统。对于计算机网络中的一台主机来说,它往往并非一个孤立的存在而是属于某个主机的集合,这个主机的集合就可称为域。为了标识不同的主机集合,有必要赋予他们名字,即是域名的由来。正如现实世界中的许多事物都可以组织成为一个具有树状结构的系统一样,同样可以对互联网上的每个域赋予一个特定的域名,并将这些域名组织成为具有树状结构的系统,该系统即:域名系统。

    BIND软件(互联网中使用最为广泛的DNS服务器软件)的安装:
    rpm -qa | grep bind #检查是否已经安装BIND软件
    sudo yum install bind #若先前未安装,则开始安装
    sudo yum install bind-chroot #加强BIND服务器安全性的软件
    #bind-chroot----->访问文件系统默认限制在/var/named/chroot目录中。如,/etc/named.conf---->即/var/named/chroot/etc/named.conf

    tail /etc/sysconfig/named #bind-chroot设置文件

    mount #查看绑定的目录
    ----------------------------------------------------------------------------------------------------------------------------------
    守护进程named:
    sudo service named start #启动BIND的守护进程
    #cat /var/log/messages #查看日志
    netstat -lnp | grep named #查看named进程监听的端口
    #端口:
    #   53端口:提供主机名查询服务的端口;
    #   953端口:DNS服务器监听该端口并接受传送过来的控制命令,是为了管理员能利用(rndc)程序远程控制DNS服务器而开放的端口。

    iptables -L INPUT
    --------------------------------------------------------------------------------------------------------------------------------
    测试命令:【dig,nslookup,host等】

    dig 【@DNS服务器】 【主机名/域名】 【查询类型选项】:查询DNS服务器并获取相关结果  #【@DNS服务器】通过【@IP地址指定】
        查询类型选项:
            -t:后加资源记录类型参数,指定所要查询的资源记录类型。
            -x:后加IP地址参数,用于反向查询(即:以IP地址查询对应主机名)
    #dig @208.67.222.222  www.kernel.org  #208.67.222.222--免费公众服务器
    ---------------------------------------------------------------------------
    区与区文件:
        为了更有效地管理DNS,可将DNS的树状结构按区来划分,由被授权的管理者负责管理一个区中的域名。区可以包含一个或多个域,一种常见的简化情形是将单独的一个域看作是一个区。
        BIND软件通过区文件来记录一个区中主机名与IP地址之间的映射关系。由主机名解析得到IP地址的过程被称为正向解析,反之根据IP地址解析得到主机名便称为反向解析,正向解析和反向解析结果分别记录在正向区文件和反向区文件。
    每个DNS服务器在/var/named目录中存放了关于一个名为named.ca文件,它指出了根区服务器的IP地址------>DNS服务器在遇到自己无法解析的查询要求时,将查询要求转发给根区的服务器。获取最新named.ca------>http://wwww.internic.net/domain/named.root
    cd /car/named
    cat named.ca
    -----------------------------------------------------------------------------------------------------------------
    资源记录:
    各字段:
    1)Name名字:表示这条记录属于改名字所指定的拥有者。
    2)TTL记录的生存期:表示当客户端持有该记录的(单位秒)时间超过了记录的生存期时,应该丢弃该记录并重新查询。
    3)记录种类:表示记录所属的名字空间,该字段一般记为IN,表示Internet
    4)记录类型:记录数据所存储的信息类型,以下标志:
        A:IPv4地址
        AAAA:IPv6地址
        NS:DNS服务器的主机名
        SOA:授权信息的起始标志,
        MX:邮件服务器的主机名
        CNAME:关于名字字段的另一个表示,别名。
        PTR:在反向区文件中,即后面的记录数据为IP地址所对应的主机名。
    5)记录数据:IP地址、DNS服务器主机名等信息。


    域名---->用FQDN完全限定域名表示(在资源记录中)

    NS类型的资源记录:
    dig -t NS  kernel.org

![](http://i.imgur.com/IxBgf5u.png)  

    dig -t A ns41.constellix.net   #查询 ns41.constellix.net对应的IP

![](http://i.imgur.com/xcA6xRs.png)

     dig @96.45.81.1   www.kernel.org

![](http://i.imgur.com/9DH9pV3.png)

    SOA:查询授权信息
    dig -t SOA kernel.org
    #授权信息包括:DNS主服务器的主机名,域管理员的电子邮件地址,序列号,更新时间,重试时间,过期时间,缓存时间。
    -------------------------------------------------------------------------------------------------------
    正向区文件与反向区文件:
        均保存在/var/named目录中,为便于辨认,可按"named.域名"的格式命名正向区文件,而按"named.IP网段"的格式来命名反向区文件。这两种区文件的内容实际是一组资源记录,区文件以;分号做注释,必须包含SOA类型的资源记录,可在开始处设置生存期等默认值。利用/var/named目录中的区文件模板的named.empty文件创建区文件。

    正向区文件实例:【named.example.com】----->
    $TTL   86400
    @   IN  SOA dns.example.com.    root.example.com.(
        1;序列号
        28800;更新时间
        14400;重试时间  
        3600000;过期时间
        96400;资源记录的生存期
    )
    @   IN  NS  dns.example.com.
    dns.example.com.    IN  A   192.168.126.128
    ftp                 IN  A   192.168.126.130


    反向区文件实例:【named.192.168.126】------------->
    $TTL   86400
    @   IN  SOA dns.example.com.    root.example.com.(
        1;序列号
        28800;更新时间
        14400;重试时间  
        3600000;过期时间
        96400;资源记录的生存期
    )
    @   IN  NS  dns.example.com.
    128 IN  PTR dns.example.com.    
    130 IN  PTR ftp.example.com

    设置关于域example.com的zone语句。named.con文件加入:---->                 
    zone "example.com" IN{
        type master;
        file "named.example.com";
    };
    zone "126.168.192.in-addr.arpa" IN{
    type master;
    file "named.192.168.126";
    };

补充:

以上主要说的是在RHEL6.0(红帽发行版)系统上的。
以下的是在Ubuntu上:【ubuntu下bind服务器安装过程】、【hugwww-ubuntu12.04下安装配置bind9 dns服务器】
附上参考链接所提供的方法后的操作结果图:










你可能感兴趣的:(Linux)