美文网首页
Red Hat -- DNS

Red Hat -- DNS

作者: liaozb1996 | 来源:发表于2018-05-06 18:43 被阅读0次

    Ret Hat -- DNS
    Ubuntu Server -- DNS

    什么是 DNS ?

    DNS (Domain Name System) 用于将域名解析为 ip 地址, 同时也可以将 ip 地址解析为域名(反向解析)。

    好处

    • 对于用户,不再需要记住一连串数字(192.168.1.1)
    • 对于管理员,可以更换IP地址,而不影响名称解析

    将域名解析为 IP 地址的过程

    DNS递归查询

    当用户想要解析 www.google.com 时,系统会依次执行以下步骤,直到得到结果:

    • 查看本机的 host 文件(Windows:C:\Windows\System32\drivers\etc\host Linux: /etc/hosts
    • 到系统设置的DNS查询 IP 地址(8.8.8.8)
      • 如果该DNS是 google.com 的权威名称服务器,读取 Zone 信息并返回 www.google.com 的IP地址
      • 如果该DNS是非权威名称服务器,则检查缓存;如果缓存中没有 google.comcom,则前往根名称服务器 . 查询 com的地址,再递归查询 www.google.com 的地址,再将结果缓存到内存一段时间

    DNS 类型

    DNS (Domain Name System) 通常被成为名称服务器 Name Server,有两种类型:

    • authoritative name sever 权威名称服务器,可以再分为两种类型:
      • primary/master name server主名称服务器
      • secondary/salve name server次名称服务器
    • recursive name server 递归名称服务器

    权威服务器:Zone 文件保存在该服务器(域名的拥有者)
    递归名称服务器:递归地去其他权威服务器中查询域名信息(提供名称解析服务)

    将权威和递归服务器部署在不同物理服务器上
    • 权威服务器需要保持24小时在线。
    • 递归服务器解析域名时需要较长时间,需要限制客户端数量,以防御 DDOS 攻击。

    Zone

    Zone 定义了一个域名下 (example.com) 主机和对应IP地址的信息(由一行资源记录定义)

    Resource Record 资源记录

    Zone 信息保存在主名称服务器的 Zone 文件中,次名称服务器会从主名称服务器获取 Zone 文件

    BIND

    BIND (Berkeley Internet Name Domain) 用来搭建名称服务器,它包含:

    • named 名称服务器
    • rndc管理工具
    • dig, nslookup 测试工具

    Empty Zones

    BIND 会为私有IP地址(由 RFC 1918 定义)创建一系列 Empty Zones,阻止递归名称服务器发送无效的名称查询到互联网并立即返回 NXDOMAIN, 而不是SERVFAIL

    搭建 DNS

    准备

    系统: CentOS 7
    named 配置文件:/etc/named.conf(全局配置), /etc/named/ (存放辅助配置文件)
    Zone 文件目录:/var/named/
    Zone 文件模板: /usr/share/doc/bind-9.9.4/sample/var/named/named.localhost

    IP地址配置:(为DNS分配一个静态IP地址)
    防火墙配置

    放行端口 53 (一般使用 UDP)


    备份配置文件
    # 安装 BIND
    ~ sudo yum -y install bind bind-utils
    
    # 备份配置文件
    ~ cp /etc/named.conf /etc/named.conf~ 
    # 复制 Zone 模板文件
    ~ cp /usr/share/doc/bind-9.9.4/sample/var/named/named.localhost /var/named/
    

    example.com 搭建权威名称服务器

    需求
    DNS 服务器: dns    - 192.168.1.200
    主机1     :host1  - 192.168.1.1
    Web 服务器: serve  - 192.168.1.80
          别名: www  - server1
    
    全局配置 named.conf
    named.conf named.conf
    # 创建辅助文件 example.com
    ~ sudo vim /etc/named/example.com
    
    #下面的 "example.com" 作为变量名 $ORIGIN 的值, example.com. 
    ~ sudo cat /etc/named/example.com
    zone "example.com" IN {
        type master;
        file "example.com.zone";
    };
    
    # 修改权限及拥有者
    ~ sudo chmod 640 /etc/named/example.com
    ~ sudo chown root:named /etc/named/example.com
    
    ~ sudo ls -l  /etc/named/example.com
    -rw-r-----. 1 root named 75 May  6 02:03 /etc/named/example.com
    

    Zone 文件

    # 创建 Zone 文件 
    ~ sudo vim /var/named/example.com.zone    
    
    ~ sudo cat /var/named/example.com.zone
    $TTL 1D
    @   IN SOA example.com. root.example.com. (
                        0   ; serial
                        1D  ; refresh
                        1H  ; retry
                        1W  ; expire
                        3H )    ; minimum
        NS  dns.example.com.
        A   192.168.1.200
    ;
    ;
    dns IN  A   192.168.1.200
    host1   IN  A   192.168.1.1
    server1 IN  A   192.168.1.80
    www IN  CNAME   server1
    
    # 修改权限和拥有者
    ~ sudo chmod 640 /var/named/example.com.zone 
    ~ sudo chown root:named /var/named/example.com.zone
    
    ~ sudo ls -l /var/named/example.com.zone
    -rw-r-----. 1 root named 273 May  6 02:50 /var/named/example.com.zone
    
    Zone 文件
    # 启动 named 或者 重新读取文件
    ~ sudo systemctl start named 
    ~ sudo systemctl reload named
    
    ~ sudo systemctl status named -l
    ● named.service - Berkeley Internet Name Domain (DNS)
       Loaded: loaded (/usr/lib/systemd/system/named.service; disabled; vendor preset: disabled)
       Active: active (running) since Sat 2018-05-05 22:53:43 CST; 4h 5min ago
      Process: 3182 ExecReload=/bin/sh -c /usr/sbin/rndc reload > /dev/null 2>&1 || /bin/kill -HUP $MAINPID (code=exited, status=0/SUCCESS)
      Process: 1549 ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} $OPTIONS (code=exited, status=0/SUCCESS)
      Process: 1546 ExecStartPre=/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi (code=exited, status=0/SUCCESS)
     Main PID: 1552 (named)
       CGroup: /system.slice/named.service
               └─1552 /usr/sbin/named -u named -c /etc/named.conf
    
    May 06 02:59:19 localhost.localdomain named[1552]: automatic empty zone: 9.E.F.IP6.ARPA
    May 06 02:59:19 localhost.localdomain named[1552]: automatic empty zone: A.E.F.IP6.ARPA
    May 06 02:59:19 localhost.localdomain named[1552]: automatic empty zone: B.E.F.IP6.ARPA
    May 06 02:59:19 localhost.localdomain named[1552]: automatic empty zone: 8.B.D.0.1.0.0.2.IP6.ARPA
    May 06 02:59:19 localhost.localdomain named[1552]: reloading configuration succeeded
    May 06 02:59:19 localhost.localdomain named[1552]: reloading zones succeeded
    May 06 02:59:19 localhost.localdomain named[1552]: zone example.com/IN: loaded serial 0
    May 06 02:59:19 localhost.localdomain named[1552]: all zones loaded
    May 06 02:59:19 localhost.localdomain named[1552]: running
    May 06 02:59:19 localhost.localdomain named[1552]: zone example.com/IN: sending notifies (serial 0
    
    测试

    相关文章

      网友评论

          本文标题:Red Hat -- DNS

          本文链接:https://www.haomeiwen.com/subject/vgdurftx.html