zoukankan      html  css  js  c++  java
  • 网络服务—域名服务器

    DNS作用

    正向解析:域名-->IP

    反向解析:IP-->域名

    DNS管理

    IANA   分配ip地址和域名

    ICANN  互联网名称与数字地址分配机构

    A.通过文件管理:hosts

    从文件服务器下载,覆盖/etc/hosts里的内容(设置的有定时任务)

    B.搭建域名服务器:DNS

    降低了客户端的操作的复杂难度

    加重了服务器端的维护难度

    C.分布式DNS

    优点:减轻单台服务器压力

    缺点:时间过长;管理麻烦

    解决方案:每级服务器只管理直连下级、允许重名

    域名管理

    域名等级划分:

    顶级域名:com cn

    二级域名:sina itxdl

    三级域名:www blog

    工作模式:

    1)客户机首先查看查找本地hosts文件,如果有则返回,否则进行下一步

    2)客户机查看本地缓存,是否存在本条目的缓存,如果有则直接返回,不再向外发出请求,否则进行下一步,转发。

    3)将请求转发本地DNS服务器。

    4)查看域名是否本地解析,是则本地解析返回,否则进行下一步。

    5)本地DNS服务器首先在缓存中查找,有则返回,无则进行下一步。

    6)向全球13个根域服务器发起DNS请求,根域返回org域的地址列表。

    7)使用某一个org域的IP地址,发起DNS请求,org域返回kernel域服务器地址列表。

    8)使用某一个kernel域IP地址,发起DNS请求,kernel域返回www.kernel.org主机的IP地址,本地DNS服务收到后,返回给客户机。

    递归查询:压力在服务器端

    迭代查询:压力在客户端

    软件:

    bind

    服务:

    named

    端口:

    UDP 53 数据通信(域名解析)

    TCP 53  数据同步(主从同步)

    配置文件:

    /etc/named.conf 主配置文件  服务器运行参数

    /etc/named.rfc1912.zones 区域文件  服务器解析的区域配置

    /var/named/xx.xx         数据文件   主机名和IP地址的对应关系

    安装部署

    [root@localhost ~]# yum -y install bind

    [root@localhost ~]# vi /etc/named.conf

    options {
    listen-on port 53 { 192.168.1.211; };    #声明服务器监听的哪个端口(客户端通过哪个端口访问服务器)
    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 { any; };    #允许哪些客户端访问。
    recursion yes;

    配置区域文件(/etc/named.rfc1912.zones)

    [root@localhost ~]# cp /etc/named.rfc1912.zones /etc/named.rfc1912.zones.bak

    [root@localhost ~]# vi /etc/named.rfc1912.zones

    zone "ljj.com" IN {          #指明要增加的DNS域名称。
    type master;            #指明增加的是DNS主域
    file "ljj.localhost"          #设置实现正向解析的区域文件名。
    allow-update { none; };       #设置DNS不允许动态更新。
    };
    zone "1.168.192.in-addr.arpa" IN {  #指明该区域为反向查找区域。
    type master;          #指明反向查找区域为主要区域。
    file "named.empty";      #设置实现反向解析的区域文件名。
    allow-update { none; };      #设置DNS不允许动态更新。
    };

    配置数据文件/var/named/

    [root@localhost ~]# cd /var/named/

    [root@localhost named]# cp -p named.localhost ljj.localhost
    [root@localhost named]# cp -p named.loopback ljj.empty

    [root@localhost named]# vi ljj.localhost 

    [root@localhost named]# vi ljj.localhost 

    $TTL 1D
    @   IN SOA ljj.com. rname.invalid. (
     (表示当前的DNS域)        0 ; serial      #序列号
                      1D ; refresh    #更新时间。 
                      1H ; retry      #重试时间。
                      1W ; expire      #过期时间。
                      3H ) ; minimum     #缓存时间。
        NS   dns.ljj.com.
    dns   A    192.168.1.211
    www   A    192.168.1.220

    [root@localhost named]# vi ljj.empty 

    $TTL 1D
    @ IN SOA ljj.com. rname.invalid. (
                      0 ; serial
                      1D ; refresh
                      1H ; retry
                      1W ; expire
                      3H ) ; minimum
            NS      dns.ljj.com.
    211        PTR     dns.ljj.com.
    220       PTR     www.ljj.com.

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

    测试

    [root@localhost ~]# nslookup
    > www.ljj.com
    Server: 192.168.1.211
    Address: 192.168.1.211#53

    Name: www.ljj.com
    Address: 192.168.1.220
    > dns.ljj.com
    Server: 192.168.1.211
    Address: 192.168.1.211#53

    Name: dns.ljj.com
    Address: 192.168.1.211

    DNS服务器

    [root@localhost ~]# yum -y install bind

    [root@localhost ~]# vi /etc/named.conf
    options {
    listen-on port 53 { 192.168.1.220; };
    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";
    recursing-file "/var/named/data/named.recursing";
    secroots-file "/var/named/data/named.secroots";
    allow-query { any; };

    但有一点需要注意:DNS的区域配置文件中allow-updata参数添加从服务器IP地址。

     [root@localhost ~]# cp /etc/named.rfc1912.zones /etc/named.rfc1912.zones.bak

    [root@localhost ~]# vi /etc/named.rfc1912.zones
    // named.rfc1912.zones:
    //
    // Provided by Red Hat caching-nameserver package
    //
    // ISC BIND named zone configuration for zones recommended by
    // RFC 1912 section 4.1 : localhost TLDs and address zones
    // and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt
    // (c)2007 R W Franks
    //
    // See /usr/share/doc/bind*/sample/ for example named configuration files.

    zone "ljj.com" IN {
    type slave;
    masters { 192.168.1.211; };
    file "slaves/lyn.localhost";
    allow-update { none; };
    };

    zone "1.168.192.in-addr.arpa" IN {
    type slave;
    masters { 192.168.1.211; };
    file "slaves/lyn.empty";
    allow-update { none; };
    };

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

     客户端测试把DNS的IP地址修改为从DNS的IP地址。

    DNS缓存服务器

     [root@localhost ~]# yum -y install dnsmasq

     domain=ljj.com    #需要解析的域名

    server=192.168.1.211    #主DNS服务器IP

    cache-size=15000    #声明缓存条数

     [root@localhost ~]# service dnsmasq restart

    测试:

    在测试机上填写DNS为缓存服务器的ip地址

  • 相关阅读:
    原 java调整数据顺序是奇数位于偶数的前面(思路与实现)
    队列和栈是什么,列出它们的区别?
    python 虚拟环境创建
    系统架构知识
    Git 管理代码
    继承类构造方法使用
    if __name__=="__main__"
    django 项目创建
    python unittest的使用
    python ddt/paramunittest的使用
  • 原文地址:https://www.cnblogs.com/liujunjun/p/11838467.html
Copyright © 2011-2022 走看看