当前位置 博文首页 > 青岛Linux运维:Linux基础学习-使用bind提供域名解析服务

    青岛Linux运维:Linux基础学习-使用bind提供域名解析服务

    作者:[db:作者] 时间:2021-09-15 22:23

    使用BIND提供域名解析服务

    DNS域名解析服务

    为了降低用户访问网络资源的门槛,DNS(Domain Name System,域名系统)技术应运而生,这是一项用于管理和解析域名与IP地址对应关系的技术,就是能够接受用户输入的域名或IP地址,然后自动查找与之匹配的IP地址或域名,即将域名解析为IP地址(正向解析),或将IP地址解析为域名(反向解析).为了提供不间断、稳定且快速的域名查询服务,保证互联网的正常运转,提供了下面三种类型的服务器.

    • 主服务器(在特定区域内具有唯一性,负责维护该区域内的域名与IP地址之间的对应关系)
    • 从服务器(从主服务器中获得域名与IP地址的对应关系并进行维护,以防主服务器宕机等情况)
    • 缓存服务器(通过向其他域名解析服务器查询获得域名与IP地址的对应关系,并将经常查询的域名信息保存到服务器本地,以此来提高重复查询时的效率)

    13台根DNS服务器的信息

    名称管理单位地理位置IP地址
    AINTERNIC.NET美国费吉尼亚洲198.41.0.4
    B美国信息科学研究所美国加利福尼亚州128.9.0.107
    CPSINet美国费吉尼亚州192.33.4.12
    D马里兰大学美国马里兰州128.8.10.90
    E美国航空航天管理局美国加利福尼亚州192.203.230.10
    F因特网软件联盟美国加利福尼亚州192.5.5.241
    G美国国防部网络信息中心美国费吉尼亚州192.112.36.4
    H美国陆军研究所美国马里兰州128.63.2.53
    IAutonomica公司瑞典斯德哥尔摩192.36.148.17
    JVeriSign公司美国费吉尼亚州192.58.128.30
    KRIPE NCC英国伦敦193.0.14.129
    LIANA美国费吉尼亚州199.7.83.42
    MWIDE Project 日本东京202.12.27.33

    安装bind服务程序

    [root@qdlinux ~]# yum install bind-chroot
    //主配置文件/etc/named.conf
    //区域配置文件/etc/named.rfc1912.zones
    //数据配置文件目录/var/named
    
    //13和19行修改为any,表示服务器上的所有IP地址均可提供DNS域名解析服务
    //以及允许所有人对本服务器发送DNS查询请求
     12 options {
     13         listen-on port 53 { any; };
     14         listen-on-v6 port 53 { ::1; };
     15         directory       "/var/named";
     16         dump-file       "/var/named/data/cache_dump.db";
     17         statistics-file "/var/named/data/named_stats.txt";
     18         memstatistics-file "/var/named/data/named_mem_stats.txt";
     19         allow-query     { any; };
    

    正向解析实验

    如果在实验中遇到了bind服务启动失败,可以执行named-checkconfnamed-checkzone命令分别检查主配置文件与数据配置文件中的语法或参数的错误.

    //编辑区域配置文件
    zone "linuxprobe.com" IN {
    type master;//主区域
    file "linuxprobe.com.zone";//域名与IP地址解析规则保存的文件位置
    allow-update {none;};//允许哪些客户机动态更新解析信息
    };
    //cd /var/named进入此目录
    //拷贝一份named.localhost文件为linuxprobe.com.zone
    //cp -a named.localhost linuxprobe.com.zone
    //编辑此文件
    $TTL 1D
    @       IN SOA  linuxprobe.com. root.linuxprobe.com. (
                                            0       ; serial
                                            1D      ; refresh
                                            1H      ; retry
                                            1W      ; expire
                                            3H )    ; minimum
            NS      ns.linuxprobe.com.
    ns      IN A    192.168.56.5
    www     IN A    192.168.56.5
    
    //为了检验解析结果,要把DNS地址指向本机IP地址.
    //重启网络服务nslookup www.linuxprobe.com,查看解析验证结果.
    

    反向解析实验

    //编辑区域配置文件
    zone "linuxprobe.com" IN {
    type master;
    file "linuxprobe.com.zone";
    allow-update {none;};
    };
    //
    zone "56.168.192.in-addr.arpa" IN {//表示192.168.56.0/24网段的反向解析区域
    type master;
    file "192.168.56.arpa";
    };
    //cd /var/named进入此目录
    //拷贝一份named.loopback为192.168.56.arpa
    //cp -a named.loopback 192.168.56.arpa
    //编辑此文件
    $TTL 1D
    @       IN SOA  linuxprobe.com. root.linuxprobe.com. (
                                            0       ; serial
                                            1D      ; refresh
                                            1H      ; retry
                                            1W      ; expire
                                            3H )    ; minimum
            NS      ns.linuxprobe.com.
    ns      IN A    192.168.56.5
    5       PTR     www.linuxprobe.com.
    
    //重启bind服务,服务名称是named,检验解析结果,nslookup www.linuxprobe.com
    //nslookup
    //192.168.56.5
    

    部署从服务器

    //主服务器修改配置文件
    zone "linuxprobe.com" IN {
    type master;
    file "linuxprobe.com.zone";
    allow-update {192.168.56.15;};
    };
    //
    zone "56.168.192.in-addr.arpa" IN {
    type master;
    file "192.168.56.arpa";
    allow-update {192.168.56.15;};
    };
    //从服务器修改配置文件
    zone "linuxprobe.com" IN {
    type slave;
    masters { 192.168.56.5; };
    file "slaves/linuxprobe.com.zone";
    };
    //
    zone "56.168.192.in-addr.arpa" IN {
    type slave;
    masters { 192.168.56.5; };
    file "slaves/192.168.56.arpa";
    };
    
    //重启服务
    //cd /var/named/slaves进入此目录
    //发现数据配置文件已经从主服务器同步过来了
    

    安全的加密传传输

    参数作用
    -a指定加密算法,包括RSAMD5(RSA)、RSASHA1、NSEC3RSASHA1、NSEC3DSA等等
    -b密钥长度(HMAC-MD5的密钥长度在1~512为之间)
    -n密钥的类型(HOST表示与主机相关)
    [root@qdlinux named]# dnssec-keygen -a HMAC-MD5 -b 128 -n HOST master-slave
    Kmaster-slave.+157+62715
    
    [root@qdlinux named]# cd /var/named/chroot/etc/
    //编辑文件vim transfer.key
    key "master-slave" {
    algorithm hmac-md5;
    secret "iQ5v7U8p/sowiGeaaqmlog==";
    };
    //修改权限
    chown root:named transfer.key
    chmod 640 transfer.key
    ln transfer.key /etc/
    
    //主配置文件加载密钥验证功能
    include "/etc/transfer.key";
    allow-query {any;}
    allow-transfer { key master-slave; };
    
    //如果从服务器不做配置,那么现在是不能从主服务器同步数据文件的
    //从服务器配置
    cd /var/named/chroot/etc/
    //编辑文件vim transfer.key
    key "master-slave" {
    algorithm hmac-md5;
    secret "iQ5v7U8p/sowiGeaaqmlog==";
    };
    //修改权限
    chown root:named transfer.key
    chmod 640 transfer.key
    ln transfer.key /etc/
    
    //修改主配置文件
    include "/etc/transfer.key";
    
    server 192.168.56.5{
      keys { master-slave; };  
    };
    
    

    分离解析技术

    //首先注释这几行
    zone "." IN {
            type hint;
            file "named.ca";
    };
    
    //编辑区域配置文件
    acl "china" {122.71.115.0/24;};
    acl "american" {106.185.25.0/24;};
    view "china" {
    match-clients {"china";};
    zone "linuxprobe.com"{
    type master;
    file "linuxprobe.com.china";
    };
    };
    
    view "american" {
    match-clients {"american";};
    zone "linuxprobe.com"{
    type master;
    file "linuxprobe.com.american";
    };
    
    //建立数据配置文件
    //cd /var/named进入此目录
    //cp -a named.localhost linuxprobe.com.china
    //cp -a named.localhost linuxprobe.com.american
    //编辑这两个文件分别如下
    $TTL 1D
    @       IN SOA  linuxprobe.com. root.linuxprobe.com. (
                                            0       ; serial
                                            1D      ; refresh
                                            1H      ; retry
                                            1W      ; expire
                                            3H )    ; minimum
            NS      ns.linuxprobe.com.
    ns      IN A    122.71.115.10
    www     IN A    122.71.115.10
    
    $TTL 1D
    @       IN SOA  linuxprobe.com. root.linuxprobe.com. (
                                            0       ; serial
                                            1D      ; refresh
                                            1H      ; retry
                                            1W      ; expire
                                            3H )    ; minimum
            NS      ns.linuxprobe.com.
    ns      IN A    106.185.25.10
    www     IN A    106.185.25.10
    
    //重启bind服务
    //验证解析结果,配置网卡模拟两个国家用户,查看解析结果,解析地址是不同的.
    

    部署缓存服务区

     12 options {
     13         listen-on port 53 { any; };
     14         listen-on-v6 port 53 { ::1; };
     15         directory       "/var/named";
     16         dump-file       "/var/named/data/cache_dump.db";
     17         statistics-file "/var/named/data/named_stats.txt";
     18         memstatistics-file "/var/named/data/named_mem_stats.txt";
     19         allow-query     { any; };
     20 #       allow-transfer { key master-slave; };
     21         forwarders      { 202.102.128.68; };
    //服务器一块网卡用于外网,一块用于内网,客户机一块网卡为内网
    //服务器上主配置文件做以上修改,重启服务,客户机DNS指向服务器内网的网卡地址.这样客户机就可以正常解析了.
    
    cs