• 使用BIND安装智能DNS服务器(一)---基本的主从DNS服务器搭建


    参考网址:http://www.unixmen.com/dns-server-installation-step-by-step-using-centos-6-3/  

    DNS(Domain Name System) 将主机名或者URLS翻译成IP地址。

    例如:如果在浏览器输入网址 "www.unixmen.com" 

    DNS server 将把这个域名翻译成和他关联的IP地址。

    就是说:DNS servers 用于将类似 www.unixmen.com 这样的名称 翻译成 173.xxx.xxx.xxx 这样是为了方便人们记住域名,而不是IP地址。

    方案

    主(primary/master) DNS Server
    环境配置:

    操作系统 : CentOS 6.5 server
    主机名 : masterdns.unixmen.local
    IP地址 : 192.168.1.100/24

    从(secondary/slave) DNS Server
    环境配置:

    操作系统 : CentOS 6.5 server
    主机名 : secondarydns.unixmen.local
    IP地址 : 192.168.1.101/24

    客户端环境:

    操作系统 : CentOS 6.5 Desktop 
    主机名 : Client.unixmen.local
    IP地址 : 192.168.1.102/24

    安装主(primary/master) DNS Server
    [root@masterdns ~]# yum install bind* -y
    1.配置DNS Server
    添加如下所示行到/etc/named.conf文件中
    [root@masterdns ~]# vi /etc/named.conf

    //
    // named.conf
    //
    // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
    // server as a caching only nameserver (as a localhost DNS resolver only).
    //
    // See /usr/share/doc/bind*/sample/ for example named configuration files.
    //
    options {
    listen-on port 53 { 127.0.0.1; 192.168.1.100; }; ### 主DNS 的 IP地址 ###
    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";
    allow-query { localhost; 192.168.1.0/24; }; ### 允许访问网络的IP范围 ,末尾的 /24 是网络掩码的缩写表示(在本例中为 255.255.255.0)### 
    allow-transfer{ localhost; 192.168.1.101; }; ### 从 DNS IP ###
    recursion yes;   ###是否允许递归,有建议说应设置为no,为了是防止DDOS攻击###
    dnssec-enable yes;
    dnssec-validation yes;
    dnssec-lookaside auto;
    /* Path to ISC DLV key */
    bindkeys-file "/etc/named.iscdlv.key";
    managed-keys-directory "/var/named/dynamic";
    };
    logging {
    channel default_debug {
    file "data/named.run";
    severity dynamic;
    };
    };
    zone "." IN {
    type hint;
    file "named.ca";
    };
    
    //自定义的正向和反向解析
    zone"unixmen.local" IN {
    type master;
    file "forward.unixmen"; //正向解析文件名
    allow-update { none; };
    };
    zone"1.168.192.in-addr.arpa" IN {
    type master;
    file "reverse.unixmen";//反向解析文件名
    allow-update { none; };
    };
    
    include "/etc/named.rfc1912.zones";
    include "/etc/named.root.key";

    2.创建zone文件
    以下文件已经在/etc/named.conf中定义

    2.1 创建正向Zone
    创建forward.unixmen 文件在 /var/named 目录下
    [root@masterdns ~]# vi /var/named/forward.unixmen

    $TTL 86400
    @ IN SOA masterdns.unixmen.local. root.unixmen.local. (
    2011071001 ;Serial
    3600 ;Refresh
    1800 ;Retry
    604800 ;Expire
    86400 ;Minimum TTL
    )
    @ IN NS masterdns.unixmen.local.
    @ IN NS secondarydns.unixmen.local.
    @ IN A 192.168.1.100
    @ IN A 192.168.1.101
    @ IN A 192.168.1.102
    masterdns IN A 192.168.1.100
    secondarydns IN A 192.168.1.101
    client IN A 192.168.1.102

    2.2创建反向Zone
    创建reverse.unixmen 文件在 /var/named 目录下
    [root@masterdns ~]# vi /var/named/reverse.unixmen

    $TTL 86400
    @ IN SOA masterdns.unixmen.local. root.unixmen.local. (
    2011071001 ;Serial
    3600 ;Refresh
    1800 ;Retry
    604800 ;Expire
    86400 ;Minimum TTL
    )
    @ IN NS masterdns.unixmen.local.
    @ IN NS secondarydns.unixmen.local.
    @ IN PTR unixmen.local.
    masterdns IN A 192.168.1.100
    secondarydns IN A 192.168.1.101
    client IN A 192.168.1.102
    100 IN PTR masterdns.unixmen.local.
    101 IN PTR secondarydns.unixmen.local.
    102 IN PTR client.unixmen.local.

    3.启动DNS服务
    [root@masterdns ~]# service named start
    Starting named: [ OK ]
    [root@masterdns ~]# chkconfig named on

    4.调整防火墙允许DNS Server 访问外部网络
    添加以下内容到 /etc/sysconfig/iptables 文件中
    [root@masterdns ~]# vi /etc/sysconfig/iptables

    # Firewall configuration written by system-config-firewall
    # Manual customization of this file is not recommended.
    *filter
    :INPUT ACCEPT [0:0]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [0:0]
    
    #添加DNS Server
    -A INPUT -p udp -m state --state NEW --dport 53 -j ACCEPT
    -A INPUT -p tcp -m state --state NEW --dport 53 -j ACCEPT
    
    -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    -A INPUT -p icmp -j ACCEPT
    -A INPUT -i lo -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
    -A INPUT -j REJECT --reject-with icmp-host-prohibited
    -A FORWARD -j REJECT --reject-with icmp-host-prohibited
    COMMIT

    5.重启防火墙
    [root@masterdns ~]# service iptables restart

    iptables: Flushing firewall rules: [ OK ]
    iptables: Setting chains to policy ACCEPT: filter [ OK ]
    iptables: Unloading modules: [ OK ]
    iptables: Applying firewall rules: [ OK ]

    6.设置当前的DNS服务器
    添加以下内容到 /etc/resolv.conf 文件中
    [root@masterdns ~]# vim /etc/resolv.conf
    nameserver 192.168.1.131

    7.测试DNS配置和zone文件是否有语法错误
    [root@masterdns ~]# named-checkconf /etc/named.conf
    [root@masterdns ~]# named-checkzone unixmen.local /var/named/forward.unixmen
    zone unixmen.local/IN: loaded serial 2011071001
    OK
    [root@masterdns ~]# named-checkzone unixmen.local /var/named/reverse.unixmen
    zone unixmen.local/IN: loaded serial 2011071001
    OK

    8.测试DNS Server
    [root@masterdns ~]# dig masterdns.unixmen.local

    ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.6 <<>> masterdns.unixmen.local
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49834
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1
    ;; QUESTION SECTION:
    ;masterdns.unixmen.local.INA
    ;; ANSWER SECTION:
    masterdns.unixmen.local. 86400INA192.168.1.100
    ;; AUTHORITY SECTION:
    unixmen.local.86400INNSsecondarydns.unixmen.local.
    unixmen.local.86400INNSmasterdns.unixmen.local.
    ;; ADDITIONAL SECTION:
    secondarydns.unixmen.local. 86400 INA192.168.1.101
    ;; Query time: 6 msec
    ;; SERVER: 192.168.1.100#53(192.168.1.100)
    ;; WHEN: Thu Mar 7 13:07:56 2013
    ;; MSG SIZE rcvd: 114


    [root@masterdns ~]# nslookup unixmen.local

    Server:192.168.1.100
    Address:192.168.1.100#53
    Name:unixmen.local
    Address: 192.168.1.102
    Name:unixmen.local
    Address: 192.168.1.100
    Name:unixmen.local
    Address: 192.168.1.101

    现在主DNS Server 已经可以使用了

    安装从(Secondary/Slave) DNS Server
    [root@secondarydns ~]# yum install bind* -y
    1.配置从DNS Server
    添加如下所示行到/etc/named.conf文件中
    [root@secondarydns ~]# vi /etc/named.conf

    //
    // named.conf
    //
    // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
    // server as a caching only nameserver (as a localhost DNS resolver only).
    //
    // See /usr/share/doc/bind*/sample/ for example named configuration files.
    //
    options {
    listen-on port 53 { 127.0.0.1; 192.168.1.101; };
    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";
    allow-query { localhost; 192.168.1.0/24; };
    recursion yes;
    dnssec-enable yes;
    dnssec-validation yes;
    dnssec-lookaside auto;
    /* Path to ISC DLV key */
    bindkeys-file "/etc/named.iscdlv.key";
    managed-keys-directory "/var/named/dynamic";
    };
    logging {
    channel default_debug {
    file "data/named.run";
    severity dynamic;
    };
    };
    zone "." IN {
    type hint;
    file "named.ca";
    };
    zone"unixmen.local" IN {
    type slave;
    file "slaves/unixmen.fwd";
    masters { 192.168.1.100; };
    };
    zone"1.168.192.in-addr.arpa" IN {
    type slave;
    file "slaves/unixmen.rev";
    masters { 192.168.1.100; };
    };
    include "/etc/named.rfc1912.zones";
    include "/etc/named.root.key";

    2.启动DNS服务
    [root@secondarydns ~]# service named start
    Generating /etc/rndc.key: [ OK ]
    Starting named: [ OK ]
    [root@secondarydns ~]# chkconfig named on

    现在主DNS server上的正向和反向zone文件,被自动复制到了从 DNS Server 的 /var/named/slaves/ 目录下
    [root@secondarydns ~]# ls /var/named/slaves/
    unixmen.fwd unixmen.rev

    [root@secondarydns ~]# cat /var/named/slaves/unixmen.fwd

    $ORIGIN .
    $TTL 86400; 1 day
    unixmen.localIN SOAmasterdns.unixmen.local. root.unixmen.local. (
    2011071001 ; serial
    3600 ; refresh (1 hour)
    1800 ; retry (30 minutes)
    604800 ; expire (1 week)
    86400 ; minimum (1 day)
    )
    NS masterdns.unixmen.local.
    NS secondarydns.unixmen.local.
    A192.168.1.100
    A192.168.1.101
    A192.168.1.102
    $ORIGIN unixmen.local.
    clientA192.168.1.102
    masterdnsA192.168.1.100
    secondarydnsA192.168.1.101

    [root@secondarydns ~]# cat /var/named/slaves/unixmen.rev 

    $ORIGIN .
    $TTL 86400; 1 day
    1.168.192.in-addr.arpaIN SOAmasterdns.unixmen.local. root.unixmen.local. (
    2011071001 ; serial
    3600 ; refresh (1 hour)
    1800 ; retry (30 minutes)
    604800 ; expire (1 week)
    86400 ; minimum (1 day)
    )
    NS masterdns.unixmen.local.
    NS secondarydns.unixmen.local.
    PTRunixmen.local.
    $ORIGIN 1.168.192.in-addr.arpa.
    100PTRmasterdns.unixmen.local.
    101PTRsecondarydns.unixmen.local.
    102PTRclient.unixmen.local.
    clientA192.168.1.102
    masterdnsA192.168.1.100
    secondarydnsA192.168.1.101

    3.添加DNS Server到所有系统中
    [root@secondarydns ~]# vi /etc/resolv.conf

    # Generated by NetworkManager
    search ostechnix.com
    nameserver 192.168.1.100
    nameserver 192.168.1.101
    nameserver 8.8.8.8

    4.测试DNS Server
    [root@secondarydns ~]# dig masterdns.unixmen.local

    ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.6 <<>> masterdns.unixmen.local
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21487
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1
    ;; QUESTION SECTION:
    ;masterdns.unixmen.local.INA
    ;; ANSWER SECTION:
    masterdns.unixmen.local. 86400INA192.168.1.100
    ;; AUTHORITY SECTION:
    unixmen.local.86400INNSmasterdns.unixmen.local.
    unixmen.local.86400INNSsecondarydns.unixmen.local.
    ;; ADDITIONAL SECTION:
    secondarydns.unixmen.local. 86400 INA192.168.1.101
    ;; Query time: 15 msec
    ;; SERVER: 192.168.1.100#53(192.168.1.100)
    ;; WHEN: Thu Mar 7 13:27:57 2013
    ;; MSG SIZE rcvd: 114

    [root@secondarydns ~]# dig secondarydns.unixmen.local

    ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.6 <<>> secondarydns.unixmen.local
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20958
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1
    ;; QUESTION SECTION:
    ;secondarydns.unixmen.local.INA
    ;; ANSWER SECTION:
    secondarydns.unixmen.local. 86400 INA192.168.1.101
    ;; AUTHORITY SECTION:
    unixmen.local.86400INNSmasterdns.unixmen.local.
    unixmen.local.86400INNSsecondarydns.unixmen.local.
    ;; ADDITIONAL SECTION:
    masterdns.unixmen.local. 86400INA192.168.1.100
    ;; Query time: 4 msec
    ;; SERVER: 192.168.1.100#53(192.168.1.100)
    ;; WHEN: Thu Mar 7 13:31:53 2013
    ;; MSG SIZE rcvd: 114
    
    
    [root@secondarydns ~]# nslookup unixmen.local
    Server:192.168.1.100
    Address:192.168.1.100#53
    Name:unixmen.local
    Address: 192.168.1.101
    Name:unixmen.local
    Address: 192.168.1.102
    Name:unixmen.local
    Address: 192.168.1.100

    client配置
    添加DNS Server到所有客户端的 /etc/resolv.conf 文件中
    [root@client unixmen]# vi /etc/resolv.conf
    # Generated by NetworkManager
    search unixmen.local
    nameserver 192.168.1.100
    nameserver 192.168.1.101
    nameserver 8.8.8.8

    测试DNS Server

    [root@client unixmen]# dig masterdns.unixmen.local

    ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6 <<>> masterdns.unixmen.local
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19496
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1
    ;; QUESTION SECTION:
    ;masterdns.unixmen.local.INA
    ;; ANSWER SECTION:
    masterdns.unixmen.local. 86400INA192.168.1.100
    ;; AUTHORITY SECTION:
    unixmen.local.86400INNSmasterdns.unixmen.local.
    unixmen.local.86400INNSsecondarydns.unixmen.local.
    ;; ADDITIONAL SECTION:
    secondarydns.unixmen.local. 86400 INA192.168.1.101
    ;; Query time: 30 msec
    ;; SERVER: 192.168.1.100#53(192.168.1.100)
    ;; WHEN: Thu Mar 7 13:47:55 2013
    ;; MSG SIZE rcvd: 114

    [root@client unixmen]# dig secondarydns.unixmen.local

    ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6 <<>> secondarydns.unixmen.local
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14852
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1
    ;; QUESTION SECTION:
    ;secondarydns.unixmen.local.INA
    ;; ANSWER SECTION:
    secondarydns.unixmen.local. 86400 INA192.168.1.101
    ;; AUTHORITY SECTION:
    unixmen.local.86400INNSsecondarydns.unixmen.local.
    unixmen.local.86400INNSmasterdns.unixmen.local.
    ;; ADDITIONAL SECTION:
    masterdns.unixmen.local. 86400INA192.168.1.100
    ;; Query time: 8 msec
    ;; SERVER: 192.168.1.100#53(192.168.1.100)
    ;; WHEN: Thu Mar 7 13:48:38 2013
    ;; MSG SIZE rcvd: 114


    [root@client unixmen]# dig client.unixmen.local

    ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6 <<>> client.unixmen.local
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14604
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
    ;; QUESTION SECTION:
    ;client.unixmen.local.INA
    ;; ANSWER SECTION:
    client.unixmen.local.86400INA192.168.1.102
    ;; AUTHORITY SECTION:
    unixmen.local.86400INNSmasterdns.unixmen.local.
    unixmen.local.86400INNSsecondarydns.unixmen.local.
    ;; ADDITIONAL SECTION:
    masterdns.unixmen.local. 86400INA192.168.1.100
    secondarydns.unixmen.local. 86400 INA192.168.1.101
    ;; Query time: 5 msec
    ;; SERVER: 192.168.1.100#53(192.168.1.100)
    ;; WHEN: Thu Mar 7 13:49:11 2013
    ;; MSG SIZE rcvd: 137


    [root@client unixmen]# nslookup unixmen.local

    Server:192.168.1.100
    Address:192.168.1.100#53
    Name:unixmen.local
    Address: 192.168.1.102
    Name:unixmen.local
    Address: 192.168.1.100
    Name:unixmen.local
    Address: 192.168.1.101

    现在主从DNS Server已经可以使用了

  • 相关阅读:
    分布式系统基础设施
    6种负载均衡算法
    缓存类
    HTTP状态码100、200、300、400、500、600的含义
    Java中的多线程你只要看这一篇就够了(引用)
    An incompatible version 1.1.1 of the APR based Apache Tomcat Native library is installed, while Tomcat requires version 1.1.17
    EL表达式与JSTL(C)标签
    JSP标准标签库
    SpringMVC HttpMessageConverter 匹配规则
    springboot学习(三)——使用HttpMessageConverter进行http序列化和反序列化
  • 原文地址:https://www.cnblogs.com/etangyushan/p/4309014.html
Copyright © 2020-2023  润新知