zoukankan      html  css  js  c++  java
  • DNS域名解析服务(一)

    一、DNS 系统的作用
    1、DNS 服务器
    FQDN 格式(完整域名格式):在常见域名后添加“.”(根域)。例如:www.baidu.com.
    DNS 系统在网络中的作用就是维护着一个地址数据库,其中记录了各种主机域名;与 IP地址的对应关系,
    以便为客户程序提供正向或反向的地址查询服务,即正向解析与反向解析。
    (1)正向解析:根据域名查 IP 地址,是 DNS 服务最常用的基本功能
    (2)反向解析:根据 IP 查域名,不是很常用,应用于例如反垃圾邮件的验证等
    每台 DNS 服务器都负责管理一个有限范围(一个或几个域)内的主机域名和 IP 地址的对应关系,
    这些特定的 DNS 域或 IP 地址段称为“zone”(区域)。
    2、DNS 服务器的常见分类
    根据地址解析的方向不同,DNS 区域相应的分为正向区域(包含域名到 IP 地址的解析记录)和反向区域(包含 IP 地址到域名的解析记录)。
    根据管理的区域地址数据的来源不同,DNS 系统可以分为不同的类型:
    (1)缓存域名服务器
    只提供域名解析结果的缓存功能,目的在于提高数据查询速度和效率,但是没有自己控
    制的区域地址数据。
    (2)主域名服务器
    维护某一个特定 DNS 区域的地址数据库,对其中的解析记录具有自主控制权,是指定
    区域中唯一存在的权威服务器、官方服务器。
    (3)从域名服务器
    与主域名服务器提供完全相同的 DNS 解析服务,通常用于 DNS 服务器的热备份。
    同一台 DNS 服务器,可以是A区域的主域名服务器,同时也可以是B区域的从域名服务器。
    (4)转发器
    不访问根域,不缓存解析结果,只转发给指定的服务器
    3、DNS 服务器的查询模式
    (1)DNS 服务器递归查询:当客户机向 DNS 服务器发出解析请求,DNS 服务器从服务
    器本地的唯高速缓存中查询出结果,反馈给客户机,此过程称为递归查询,即 Client-Server。
    (2)DNS 服务器迭代查询:当客户机向 DNS 服务器发出解析请求,DNS 服务器从服务
    器本地的唯高速缓存中查询发现没有结果,此时该DNS服务器以DNS客户的身份向其他DNS
    服务器发送解析请求或向根域名服务器发送请求,此过程称为迭代查询,即 Server-Server。
    2、端口
    TCP 53 端口
    UDP 53 端口
    二、BIND 的安装和控制
    1、RPM 包的主要作用
    bind:提供了域名服务器的主要程序及相关文件
    bind-utils:提供了对 DNS 服务器的测试工具程序,如 nslookup 等
    bind-libs:提供了 bind、bind-utils 需要使用的库函数
    bind-chroot:为BIND服务提供一个伪装的根目录(将/var/named/chroot文件夹作为BIND的跟目录)以提高安全性。也称为 jail(监牢)机制。
    2、配置文件
    (1)主配置文件: /etc/named.conf
    (2)区域配置文件: /var/named
    三、DNS服务器的构建
    (1)构建缓存域名服务器
    [root@ns2 ~]# yum -y install bind bind-utils
    [root@ns2 ~]# vi /etc/named.conf
    options {
    listen-on port 53 { 127.0.0.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; }; //允许使用本DNS服务器的网段
    recursion yes;
    };
    (2)构建主DNS域名解析服务器
    root@localhost ~]# yum -y install bind bind-utils
    [root@localhost ~]# cat /etc/resolv.conf
    nameserver 192.168.200.111
    nameserver 192.168.200.112
    [root@localhost ~]# cat /etc/hosts
    192.168.200.111 ns1.crushlinux.com
    192.168.200.112 ns2.crushlinux.com
    [root@localhost ~]# cat /etc/named.conf
    options {
    directory "/var/named";
    };
    zone "crushlinux.com" IN { //正向区域
    type master; //类型为主要文件
    file "crushlinux.zheng"; //区域数据文件
    allow-transfer { 192.168.200.112; }; //允许下载的服务器地址
    };
    zone "200.168.192.in-addr.arpa" IN { //反向区域
    type master;
    file "crushlinux.fan";
    allow-transfer { 192.168.200.112; };
    };
    [root@localhost ~]# cat /var/named/crushlinux.zheng
    $TTL 86400 //有效记录的生命周期
    @ IN SOA crushlinux.com. admin.crushlinux.com. (
    域名 认证授权 域名 管理员邮箱
    20190817 //更新序号
    3H //更新时间间隔
    15M //更新失败再次尝试的间隔
    1W //若一直失败,尝试一周后结束
    1D //失败解析记录缓存时间
    )
    IN NS ns1.crushlinux.com.
    IN NS ns2.crushlinux.com.
    IN MX 10 mail.crushlinux.com.
    ns1 IN A 192.168.200.111
    ns2 IN A 192.168.200.112
    mail IN A 192.168.200.113
    www IN A 192.168.200.114
    * IN A 192.168.200.111
    ftp IN CNAME www

    [root@localhost ~]# cat /var/named/crushlinux.fan
    $TTL 86400
    @ IN SOA crushlinux.com. admin.crushlinux.com. (
    20190817
    3H
    15M
    1W
    1D
    )
    IN NS ns1.crushlinux.com.
    IN NS ns2.crushlinux.com.
    IN MX 10 mail.crushlinux.com.
    111 IN PTR ns1.crushlinux.com.
    112 IN PTR ns2.crushlinux.com.
    113 IN PTR mail.crushlinux.com.
    114 IN PTR www.crushlinux.com.
    111 IN PTR ns1.crushlinux.com.
    [root@localhost ~]# chown :named /var/named/crushlinux.*
    [root@localhost ~]# named-checkconf -z /etc/named.conf
    [root@localhost ~]# named-checkzone crushlinux.com /var/named/crushlinux.zheng
    [root@localhost ~]# named-checkzone crushlinux.com /var/named/crushlinux.fan
    [root@localhost ~]# systemctl restart named
    (3)构建从DNS域名解析服务器
    [root@localhost ~]# cat /etc/resolv.conf
    nameserver 192.168.200.111
    nameserver 192.168.200.112
    [root@localhost ~]# cat /etc/hosts
    192.168.200.111 ns1.crushlinux.com
    192.168.200.112 ns2.crushlinux.com
    [root@localhost ~]# cat /etc/named.conf
    options {
    directory "/var/named";
    };

    zone "crushlinux.com" IN {
    type slave;
    file "slaves/crushlinux.zheng";
    masters { 192.168.200.111; };
    };
    zone "200.168.192.in-addr.arpa" IN {
    type slave;
    file "slaves/crushlinux.fan";
    masters { 192.168.200.111; };
    };
    [root@localhost ~]# systemctl restart named

  • 相关阅读:
    Linux下的lds链接脚本简介(一)
    linux字符驱动之poll机制按键驱动
    Linux中断处理驱动程序编写
    基于Hexo + Git + Nginx的博客发布
    Visual Studio2012打开时弹出“遇到异常:这可能是由某个扩展导致的”错误的解决办法
    卫星轨道和两行数据TLE
    C#基础系列:开发自己的窗体设计器(PropertyGrid显示中文属性名)
    C# WinForm PropertyGrid用法
    C#基础系列:实现自己的ORM(反射以及Attribute在ORM中的应用)
    [转]计算机视觉、机器学习相关领域论文和源代码大集合
  • 原文地址:https://www.cnblogs.com/wzy01/p/11399591.html
Copyright © 2011-2022 走看看