zoukankan      html  css  js  c++  java
  • DNS服务

    1. DNS(Domain Name System域名系统)

    域名解析:有两个中,一种是正向解析,另一种是反向解析。正向解析是域名服务器把域名翻译为IP地址的过程。反向解析是域名服务器把IP地址翻译成域名的过程。我们知道主机与主机之间通信,原先是用IP地址,IP是由点分的十进制数组成,在实际的过程不放人们的记忆。所以后来的就出现域名这个东西。而域名到IP这一块必须有域名服务器来完成解析的过程。

    其中,DNS使用TCP和UDP, 端口号都是53, 但它主要使用UDP,服务器之间备份使用TCP。全世界只有13台“根”服务器,1个主根服务器放在美国,其他12台为辅根服务器,DNS服务器根据角色可以分为:主DNS, 从DNS, 缓存DNS服务器,DNS转发服务器。

    DNS域名解析的过程:(1)当本地域名服务器里面存有客户端请求的域名的ip记录时,直接由本地的域名服务器返回请求的域名地址。

                                     (2)当本地域名服务器没有记录客户端请求的域名ip时,则由本地域名服务器代理为向上级域名服务查找,这个请求的域名ip,如果这及域名服务器也找不到,继续向上级域名服务器请求,最后可以到根域名服务器。而根域名服务器是管理各种域名者,他知道所有请求域名的该怎么去找。

    forum_mod=image&aid=574&size=300x300&key=252ed0a7c9f12849&nocache=yes&type=fixno    正常域名 123.com.cn.  最后面是带点的,表示根域名,在浏览器输入一般作省略

    forum_mod=image&aid=575&size=300x300&key=69d3376d29c74381&nocache=yes&type=fixno 

    2. 二. 使用bind搭建DNS服务器

    1. 安装bind
    yum install -y bind
    cp /etc/named.conf /etc/named.conf.bak  
    >/etc/named.conf
    vim /etc/named.conf   其内容为:

    options {
        directory "/var/named";   #定义工作目录
    };

    zone "." IN  {
        type hint;                    #表示根域名
        file "named.ca";
    };

    zone "localhost" IN {
        type master;
        file "localhost.zone";              #定义域名类型,其为主域名,然后定放在哪个文件,localhost.zone
    };

    zone "0.0.127.in-addr.arpa" IN {
        type master;
        file "named.local";                    #这个是反方解析用到的
    };

    chown named /etc/named.conf
    cd /var/named/
    dig -t NS . > named.ca             #用dig命令选项-t 指定记录类型NS  并是根域名的(列出所有根域名服务器),然后重定向到文件named.ca

    vim localhost.zone //新建文件localhost.zone


    @                   IN      SOA     localhost.  admin.localhost.     (
                                                                            2013081601 
                                                                            1H
                                                                            10M
                                                                            7D
                                                                            1D
                                                                               )
    @                   IN          NS          localhost.
    localhost.          IN          A           127.0.0.1

    vim named.local // 新建文件name.local


    $TTL 86400
    @                    IN      SOA     localhost.  admin.localhost.      (
                                                                            2013081601
                                                                            1H
                                                                            10M
                                                                            7D
                                                                            1D
                                                                            )
    @                    IN          NS          localhost.      
    1                    IN          PTR         localhost

    检测配置是否有问题: named-checkconf
    检测正解析: named-checkzone "localhost" /var/named/localhost.zone
    检测反解析: named-checkzone "0.0.127.in-addr.arpa" /var/named/named.local
    rndc-confgen -r /dev/urandom -a  // 这一步是生成 rndc.key, 如果没有这个key namd 是启动不了的。
    chown named:named /etc/rndc.key
    /etc/init.d/named start
    netstat -lnp  |grep named  // 查看一下named进程是否监听了53端口
    首先测试正向解析:dig @127.0.0.1 localhost.             #命令是dig 的@是指定域名服务器地址 后面再跟域名
    接着测试反解析:dig @127.0.0.1 -x 127.0.0.1

    2. 增加一个域名(zone)

    vim /etc/named.conf //增加

    zone "abc.com" IN {
        type master;
        file "abc.com.zone";
    };

    zone "137.168.192.in-addr.arpa" IN {
        type master;
        file "192.168.zone";
    };

    编辑zone文件: vim /var/named/abc.com.zone//增加

    $TTL    600
    @               IN      SOA     abc.com.      root.abc.com.    (
                                                            2013081601
                                                            1H
                                                            10M
                                                            7D
                                                            1D
    )
                     IN      NS      ns.abc.com.
                     IN      MX  10  mail.abc.com.
    ns               IN      A       192.168.0.11
    www              IN      A       192.168.137.73
    mail             IN      A       192.168.137.10
    bbs              IN      CNAME   
    www.abc.com.

    编辑反解析文件: vim /var/named/192.168.zone //增加

    $TTL 600
    @               IN      SOA     ns.abc.com.      root.abc.com. (
                                                            2013081601
                                                            1H
                                                            10M
                                                            7D
                                                            1D
    )
    @               IN      NS      ns.abc.com.
    10              IN      PTR     ns.abc.com.
    11              IN      PTR     mail.abc.com.
    73              IN      PTR    
    www.abc.com.

    分别检测两个配置文件是否有问题:
    named-checkzone "abc.com" abc.com.zone
    named-checkzone "137.168.192.in-addr.arpa" 192.168.zone
    重启named服务,测试 dig @127.0.0.1
    www.abc.com
    dig  @127.0.0.1 -x 192.168.137.11

    3. 配置DNS转发
    我们配置的DNS是只能解析我们定义的zone的,我们没有定义的是不能解析的。
    配置DNS转发就可以解析其他互联网上的域名了,前提是这个域名在互联网中的确在使用,也就是说这个域名已经被某个DNS服务器解析了。
    vim  /etc/named.conf //在options{} 里面增加
    forward first;  
    forwarders { 8.8.8.8; };
    这两行就是用来配置转发的,该DNS服务器不能解析的域名会转发到8.8.8.8这个DNS服务器上去解析。

    4. 配置主从
    在从服务器上 yum install -y bind
    拷贝主上的配置文件到从上,其中有/etc/named.conf, /var/named/localhost.zone, /var/named/named.local  
    拷贝过来后,修改一下从的/etc/named.conf 内容参考:

    options {
        directory "/var/named";
    };

    zone "." IN  {
        type hint;
        file "named.ca";
    };

    zone "localhost" IN {
        type master;
        file "localhost.zone";
    };

    zone "0.0.127.in-addr.arpa" IN {
        type master;
        file "named.local";
    };

    zone "abc.com" IN {
        type slave;
        file "slaves/abc.com.zone";
        masters { 192.168.0.11; };
    };

    zone "137.168.192.in-addr.arpa" IN {
        type slave;
        file "slaves/192.168.zone";
        masters { 192.168.0.11; };
    };

    从上生成rndc.key: rndc-confgen -r /dev/urandom -a
    chown named:named /etc/rndc.key
    从上启动named: /etc/init.d/named start
    启动成功后会在 /var/named/下生成一个slaves目录,这个目录下会有192.168.zone, abc.com.zone这两个文件,内容是和主上的一样的
    在从上测试: dig @127.0.0.1 
    www.abc.com

    5. 测试主从同步
    在主dns上更改文件 /var/named/abc.com.zone // 在最后增加一行:
    123              IN      A       1.1.1.1
    另外需要修改一下第三行的那个数字串,这个是用来做标记的,只有这个数字变化了,才可以让从自动跟着变,数字只能是变大,不能减小,2013081601 -> 2013081602
    重启主namd服务: /etc/init.d/named restart
    经测试我们发现一个问题,就是从经常会同步特别慢,这是很要命的。所以需要我们做一个特殊操作,在主上的/etc/named.conf中,abc.com的zone中增加两行:
    notify yes;
    also-notify { 192.168.0.12; };

  • 相关阅读:
    Django框架详细介绍---ORM相关操作---select_related和prefetch_related函数对 QuerySet 查询的优化
    Django框架详细介绍---ORM相关操作
    Django框架详细介绍---ORM---图书信息系统专题训练
    Django框架详细介绍---模板系统
    Django框架详细介绍---视图系统
    Django简单实例
    Django练习
    Django的rom
    web框架本质及Django的安装
    面向对象基础复习
  • 原文地址:https://www.cnblogs.com/the-study-of-linux/p/5049778.html
Copyright © 2011-2022 走看看