https://www.jianshu.com/p/296b2c7ea76f

DNS和BIND

0.482018.07.25 10:33:44字数 4,919阅读 4,909

DNS

DNS:Domain Name Service 应用层协议(C/S,53/udp, 53/tcp)

域名

分类:最多可以有127级域名

  • 根域
  • 一级域名:Top Level Domain(tld)顶级域
    • 组织域:.com,。gov,.edu,.mil,.net
    • 国家域:.cn,.jp
    • 反向域:arpa
  • 二级域名
  • 三级域名
 
域名.jpg

解析

查询类型:

  • 递归查询:DNS 服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。如果DNS 服务器本地没有存储查询DNS 信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。
  • 迭代查询:DNS 服务器接收到客户机请求,会向客户机提供其他能够解析查询请求的DNS 服务器地址,当客户机发送查询请求时,DNS 服务器并不直接回复查询结果,而是告诉客户机另一台DNS 服务器地址,客户机再向这台DNS 服务器提交请求,依次循环直到返回查询的结果为止

FQDN:Fully Qualified Domain Name,完全合格域名

解析类型:

  • 正向解析:FQDN --> IP
  • 反向解析:IP --> FQDN

类型

  • 主DNS服务器:管理和维护所负责解析的域内解析库的服务器
  • 从DNS服务器:从主服务器或其他的从服务器“复制”(区域传送)解析库副本
  • 缓存DNS服务器
  • 转发服务器

区域传送

利用“通知”机制,来保证主从服务器能及时同步

通知机制:主服务器解析库发生变化时,会主动通知从服务器

同步时一些必要参数:

  • 序列号:解析库版本号,主服务器解析库变化时,其序列递增
  • 刷新时间间隔:从服务器从主服务器请求同步解析的时间间隔
  • 重试时间间隔:从服务器请求同步失败时,再次尝试时间间隔
  • 过期时长:从服务器联系不到主服务器时,多久后停止服务

类型

  • 主区域:master
  • 主区域:master
  • 提示区域:hint 定义根域的位置
  • 转发区域:forward 例如:直接告诉.com的位置

资源记录

resource record,简称RR

格式

name [TTL] IN rr_type value

  • TTL可从全局继承

    TTL(Time-To-Live),简单的说它表示一条域名解析记录在DNS服务器上缓存时间.当各地的DNS服务器接受到解析请求时,就会向域名指定的DNS服务器发出解析请求从而获得解析记录;在获得这个记录之后,记录会在DNS服务器中保存一段时间,这段时间内如果再接到这个域名的解析请求,DNS服务器将不再向DNS服务器发出请求,而是直接返回刚才获得的记录;而这个记录在DNS服务器上保留的时间,就是TTL值。

  • @可用于引用当前区域的名字

  • 同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询方式响应

  • 同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值进行定义;此仅表示通过多个不同的名字可以找到同一个主机

SOA

Start Of Authority,起始授权记录,表明一个区域内部,主从DNS服务是如何同步数据以及起始授权对象是谁

注意:一个区域解析库有且仅能有一个SOA记录,必须位于解析库的第一条记录

name:当前区域的名字,例如“magedu.com.”

value:有多部分组成

  • 当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字;
  • 当前区域管理员的邮箱地址;但地址中不能使用@符号,一般用.替换,例如:admin.magedu.com
  • 主从服务区域传输相关定义以及否定的答案的统一的TTL
magedu.com. 86400 IN SOA ns.magedu.com. nsadmin.magedu.com. (
2015042201 ;序列号,serail number
2H ;刷新时间,refresh
10M ;重试时间,retry
1W ;过期时间,expire
1D ;否定答案的TTL值,nigative answer TTL
)

NS

Name Server,专用于标明当前区域的DNS服务器

name:当前区域的名字

value: 当前区域的某DNS服务器的名字,例如ns.magedu.com.

magedu.com. IN NS ns1.magedu.com.
magedu.com. IN NS ns2.magedu.com.

注意:

  • 相邻的两个资源记录的name相同时,后续的可省略
  • 对NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录

A

internet Address,FQDN-->IP IPV4

name: 某主机的FQDN,例如www.magedu.com.

value: 主机名对应主机的IP地址

www.magedu.com.         IN A 1.1.1.1
www.magedu.com. IN A 2.2.2.2
mx1.magedu.com. IN A 3.3.3.3
mx2.magedu.com. IN A 4.4.4.4
$GENERATE 1-254 HOST$ A 1.2.3.$ # 主机名和ip地址同名的时候可以这样操作,避免重复操作
*.magedu.com. IN A 5.5.5.5 # 避免用户写错名称时给错误答案,可通过泛域名解析进行解析至某特定地址
magedu.com. IN A 6.6.6.6

AAAA

FQDN --> IPv6

name:FQDN

value:IPv6

MX

Mail eXchanger,邮件交换器

name:当前区域的名字

value:当前区域的某邮件服务器(smtp服务器)的主机名

magedu.com. IN MX 10 mx1.magedu.com.
IN MX 20 mx2.magedu.com.

注意:

  • 一个区域内,MX记录可有多个;但每个记录的value之前应该有一个数字(0-99),表示此服务器的优先级;数字越小优先级越高
  • 对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录
  • MX记录只能定义在正向区域文件中,不能定义到反向区域文件中

CNAME

Canonical Name,别名记录

name:别名的FQDN

value:真正名字的FQDN

www.magedu.com. IN CNAME websrv.magedu.com.

PTR

PoinTeR,IP --> FQDN

name:IP,有特定格式,把IP地址反过来写,1.2.3.4,要写作4.3.2.1;而有特定后缀:in-addr.arpa.,所以完整写法为:4.3.2.1.in-addr.arpa.

value: FQDN

4.3.2.1.in-addr.arpa. IN PTR www.magedu.com.
# 如1.2.3为网络地址,可简写成:
4 IN PTR www.magedu.com.

注意:网络地址及后缀可省略;主机地址依然需要反着写

子域授权

网络地址及后缀可省略;主机地址依然需要反着写

类似根域授权tld:

.com.    IN NS ns1.com.
.com. IN NS ns2.com.
ns1.com. IN A 2.2.2.1
ns2.com. IN A 2.2.2.2

magedu.com. 在.com的名称服务器上,解析库中添加资源记录

magedu.com.     IN NS ns1.magedu.com.
magedu.com. IN NS ns2.magedu.com.
magedu.com. IN NS ns3.magedu.com.
ns1.magedu.com. IN A 3.3.3.1
ns2.magedu.com. IN A 3.3.3.2
ns3.magedu.com. IN A 3.3.3.3

glue record:粘合记录,父域授权子域的记录

BIND

BIND:Bekerley Internat Name Domain

/etc/named.conf # 主配置文件

/etc/named.rfc1912.zones # 专门的zone配置文件

/etc/rndc.conf # rdnc配置文件
/etc/rndc.key # 用来远程控制DNS服务的密钥文件 /usr/sbin/named # 二进制程序
/usr/sbin/named-checkconf # 检查配置文件语法
/usr/sbin/named-checkzone # 检查zone文件语法
/usr/sbin/named-compilezone
/usr/sbin/named-journalprint # 查看jnl文件 /usr/sbin/rndc /var/log/named.log # 日志文件
/var/named
/var/named/data
/var/named/dynamic
/var/named/named.ca # 用于存放根服务器的地址信息
/var/named/named.empty
/var/named/named.localhost
/var/named/named.loopback
/var/named/slaves

/etc/named.conf

[root@centos7 ~]# cat /etc/named.conf

options {
listen-on port 53 { 127.0.0.1; }; # IPv4地址监听端口及监听的主机列表
listen-on-v6 port 53 { ::1; }; # IPv6地址监听端口及监听的主机列表
directory "/var/named"; # 服务器的工作目录
dump-file "/var/named/data/cache_dump.db"; # 当执行rndc dumpdb时服务器dump文件的路径
statistics-file "/var/named/data/named_stats.txt"; # 执行rndc stats将服务器的统计信息写入文件,默认为named.stats
memstatistics-file "/var/named/data/named_mem_stats.txt"; # 默认为named.memestats,当退出的服务的时候将服务器的统计信息写到文件中
allow-query { localhost; }; # 允许查询的主机列表,表示可以对主机列表里的主机提供服务
allow-transfer { any;}; # 指定哪些主机可以从服务器上接收区域传输,未指定将允许传输到所有的主机,默认是any,极其不安全,通常修改为指定主机或none recursion yes; # 是否开启递归查询请求,设置为no的话,不去找根 dnssec-enable yes; # dns安全策略,建议关闭
dnssec-validation yes; # dns安全策略,建议关闭 /* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
}; logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
}; zone "." IN {
type hint;
file "named.ca";
}; include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

ACL

把一个或多个地址归并为一个集合,并通过一个统一的名称调用

四个内置acl:

  • none:没有一个主机
  • any:任意主机
  • localhost:本机
  • localnet:本机的IP同掩码运算后得到的网络地址,即本机ip所在的网段

注意:只能先定义,后使用;因此一般定义在配置文件中,处于options的前面

访问控制的指令:

  • allow-query {}:允许查询的主机;白名单
  • allow-transfer {}:允许区域传送的主机;白名单
  • allow-recursion {}:允许递归的主机,建议全局使用
  • allow-update {}:允许更新区域数据库中的内容

测试工具

dig

dig [-t type] name [@SERVER][query options]

注意:dig只用于测试dns系统,不会查询hosts文件进行解析

查询选项:

  • 跟踪解析过程:dig +trace magedu.com
  • 进行递归解析:dig +recurse magedu.com
  • 测试反向解析:dig -x IP
  • 模拟区域传送:
[root@xuexi ~]# dig -t a www.longshuai.com
; <<>> DiG 9.9.4-RedHat-9.9.4-50.el7_3.1 <<>> -t a www.longshuai.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8670
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.longshuai.com. IN A ;; ANSWER SECTION:
www.longshuai.com. 21600 IN A 172.16.10.16 ;; AUTHORITY SECTION:
longshuai.com. 21600 IN NS dnsserver.longshuai.com. ;; ADDITIONAL SECTION:
dnsserver.longshuai.com. 21600 IN A 172.16.10.15 ;; Query time: 0 msec
;; SERVER: 172.16.10.15#53(172.16.10.15)
;; WHEN: Sat Aug 12 23:38:17 CST 2017
;; MSG SIZE rcvd: 102

在结果中:

  • QUESTION SECTION:表示所发起的查询
  • ANSWER SECTION:表示对查询的回复
  • AUTHORITY SECTION:表示该查询是权威服务器给的答案,并给出了权威服务器的ns记录
  • ADDITIONAL SECTION:表示额外的回复,回复的内容是权威服务器的A记录。

host

host [-t type] name [SERVER]

nslookup

nslookup [-option][name | -][server]

也可使用交互式

rndc

remote name domain controller,默认与bind安装在同一主机,且只能通过127.0.0.1连接named进程

提供辅助性的管理功能;953/tcp

rndc COMMAND:

  • reload:重载主配置文件和区域解析库文件
  • reload zonename:重载区域解析库文件
  • retransfer zonename:手动启动区域传送,而不管序列号是否增加
  • notify zonename:重新对区域传送发通知
  • reconfig:重载主配置文件
  • querylog:开启或关闭查询日志文件/var/log/message,排错时可临时开启,长时间开启无端增加了磁盘IO,因此一般不要开启
  • trace:递增debug一个级别
  • trace LEVEL:指定使用的级别
  • notrace:将调试级别设置为 0
  • flush:清空DNS服务器的所有缓存记录

CDN

Content Delivery Network,内容分发网络

CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求

 
CDN.jpeg

view

用于实现智能DNS

  • 一个bind服务器可定义多个view,每个view中可定义一个或多个zone
  • 每个view用来匹配一组客户端
  • 多个view内可能需要对同一个区域进行解析,但使用不同的区域解析库文件

注意:

  • 一旦启用了view,所有的zone都只能定义在view中
  • 仅在允许递归请求的客户端所在view中定义根区域
  • 客户端请求到达时,是自上而下检查每个view所服务的客户端列表,因此特别注意顺序

格式:

view VIEW_NAME {
match-clients { testacl; };
zone “magedu.com” {
type master;
file “magedu.com.zone”; };
include “/etc/named.rfc1912.zones”;
}; view VIEW_NAME {
match-clients { testacl; };
include “/etc/named.rfc1912.zones.VIEW_NAME”;
};

DNS排错

# dig A example.com
; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7 <<>> A example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30523
...
SERVFAIL:The nameserver encountered a problem while processing the query.
  • NXDOMAIN:The queried name does not exist in the zone.(可能是CNAME对应的A记录不存在导致)
  • REFUSED:The nameserver refused the client's DNS request due to policy restrictions.(可能是DNS策略导致)
  • NOERROR不代表没有问题,也可以是过时的记录
  • 查看是否为权威记录,flags:aa标记判断
  • 被删除的记录仍能返回结果,可能是因为*记录存在

实现只缓存DNS服务

  1. vim /etc/named.conf

    listen-on port 53 { localhost; }; # 修改本机所有ip绑定53端口
    allow-query { any; }; # 修修改可以以为任何主机提供服务
  2. named-checkconf:主配置文件语法检查

  3. rndc reload

实现正向主DNS服务

  1. vim /etc/named.conf

    listen-on port 53 { localhost; }; # 修改本机所有ip绑定53端口
    allow-query { any; }; # 修修改可以以为任何主机提供服务
  2. vim /etc/named.rfc1912.zones

    zone "magedu.com" IN {
    type master;
    file "magedu.com.zone";
    };
  3. named-checkconf

  4. cp -a named.localhost magedu.com.zone:为了保证权限,也可以自己创建,记得修改权限

    vim magedu.com.zone

    $TTL 1D
    @ IN SOA dns1 admin.magedu.com (
    2018072201 ; serial
    1D ; refresh
    1H ; retry
    1W ; expire
    3H ) ; minimum
    NS dns1
    dns1 A 192.168.31.71
    web-nginx01 A 1.1.1.1
    web-nginx02 A 1.1.1.2
    app-tomcat01 A 2.2.2.2
    www CNAME web-nginx01
    * A 192.168.31.71 # 泛域名解析
    @ A 192.168.31.71 # 直接解析本域
    $GENERATE 1-100 web-nginx0$ A 1.1.1.$
  5. named-checkzone magedu.com magedu.com.zone:如当前工作目录不是/var/named/,需要使用绝对路径

  6. rndc reload

实现反向主DNS服务

  1. vim /etc/named.conf

    listen-on port 53 { localhost; }; # 修改本机所有ip绑定53端口
    allow-query { any; }; # 修修改可以以为任何主机提供服务
  2. vim /etc/named.rfc1912.zones

    zone "39.168.192.in-addr.arpa" IN {
    type master;
    file "39.168.192.in-addr.arpa.zone";
    };
  3. named-checkconf

  4. cp -a named.localhost 39.168.192.in-addr.arpa.zone:为了保证权限,也可以自己创建,记得修改权限

    vim 39.168.192.in-addr.arpa.zone

    $TTL 86400
    @ IN SOA dns1.magedu.com. admin.magedu.com. (
    2018072201 ; serial
    1D ; refresh
    1H ; retry
    1W ; expire
    3H ) ; minimum
    NS dns1.magedu.com.
    71 PTR dns1.magedu.com.
    100 PTR www.qq.com. # 正反向解析结果最好一致
  5. named-checkzone 39.168.192.in-addr.arpa 39.168.192.in-addr.arpa.zone:如当前工作目录不是/var/named/,需要使用绝对路径

  6. rndc reload

实现远程动态更新DNS服务

  1. vim /etc/named.rfc1912.zones:在指定zone语句块中添加

    Allow-update {any;}; # 为了安全最好仅允许指定主机
  2. chmod 770 /var/named:动态更新实质上就是named用户将指定资源记录写到生成的/var/named/{指定zone}.jnl文件中,随后再同步到指定的zone文件中,因此需要再目录下有w权限

  3. nsupdate

    •>server 192.168.39.71
    •>zone magedu.com
    •>update add ftp.magedu.com 86400 IN A 8.8.8.8 # 这里的TTL不能省略
    •>send
    •>update delete www.magedu.com A
    •>send

实现主从DNS服务

主DNS:

  1. vim /etc/named.conf

    listen-on port 53 { localhost; }; # 修改本机所有ip绑定53端口
    allow-query { any; }; # 修修改可以以为任何主机提供服务 allow-transfer { 192.168.39.72; }; # 允许从服务器拉取数据,注意中花括号前后均有空格
  2. named-checkconf

  3. vim /var/named/magedu.com.zone:将从服务器信息添加到指定zone文件中

    $TTL 1D
    @ IN SOA dns1 admin.magedu.com (
    2018072201 ; serial
    1D ; refresh
    1H ; retry
    1W ; expire
    3H ) ; minimum
    NS dns1
    NS dns2
    dns1 A 192.168.39.71
    dns2 A 192.168.39.72
    web-nginx01 A 1.1.1.1
    web-nginx02 A 1.1.1.2
    app-tomcat01 A 2.2.2.2
    www CNAME web-nginx01
    * A 192.168.39.71
    @ A 192.168.39.71
    $GENERATE 1-100 web-nginx0$ A 1.1.1.$
  4. named-checkzone magedu.com. magedu.com.zone

从DNS:

  1. vim /etc/named.conf

    listen-on port 53 { localhost; }; # 修改本机所有ip绑定53端口
    allow-query { any; }; # 修修改可以以为任何主机提供服务 allow-transfer { none; }; # 为了安全禁止任何主机拉取
  2. vim /etc/named.rfc1912.zones

    zone "magedu.com" IN {
    type slave;
    masters { 192.168.39.71; };
    file "slaves/magedu.com.slave.zone";
    };
  3. named-checkconf

  4. ls /var/named/slave/:查看是否拉取成功

实现子域委派

父域DNS:

  1. vim /etc/named.conf

    listen-on port 53 { localhost; }; # 修改本机所有ip绑定53端口
    allow-query { any; }; # 修修改可以以为任何主机提供服务 dnssec-enable no; # 关闭加密
    dnssec-validation no;
  2. vim /var/named/magedu.com.zone

    $TTL 1D
    @ IN SOA dns1 admin (
    2018072209 ; serial
    1D ; refresh
    1H ; retry
    1W ; expire
    3H ) ; minimum
    NS dns1
    shanghai NS dns2 # 添加shanghai子域信息
    dns1 A 192.168.39.71
    dns2 A 192.168.39.72
    www.beijing A 3.3.3.3 # 主机少的情况下,可以直接在父域直接定义子域中的主机
    www A 1.1.1.1
  3. rndc reload

子域DNS:

  1. vim /etc/named.conf

    listen-on port 53 { localhost; }; # 修改本机所有ip绑定53端口
    allow-query { any; }; # 修修改可以以为任何主机提供服务
  2. vim /etc/named.rfc1912.zones

    zone "shanghai.magedu.com" IN {
    type master;
    file "shanghai.magedu.com.zone";
    };
  3. scp 192.168.39.71:/var/named/magedu.com.zone shanghai.magedu.com.zone:由于scp默认root身份执行,导致文件权限出错,一定要注意文件权限

    vim /var/named/shanghai.magedu.com.zone

    $TTL 1D
    @ IN SOA dns1 admin (
    2018072201 ; serial
    1D ; refresh
    1H ; retry
    1W ; expire
    3H ) ; minimum
    NS dns1
    dns1 A 192.168.39.72
    www A 2.2.2.2
  4. rndc reload

实现转发DNS服务

forward first/only:表示如果 forwarders list 为非空,默认为first值,服务器首先请求 forwarders list ,如果 forwarders list 中的DNS主机不应答,该主机将自己去找应答,如果设置值为only,服务器将只会请求 forwarders中的DNS主机

forwarders:指定用来 forwarding的ip地址. 默认为空列(即不转发)

全局转发

对非本机所负责解析区域的请求,全转发给指定的服务器

vim /etc/named.conf

Options {
forward first|only;
forwarders { ip;};
};

特定区域转发

仅转发对特定的区域的请求,比全局转发优先级高

vim /etc/named.rfc1912.zones

zone "ZONE_NAME" IN {
type forward;
forward first|only;
forwarders { ip;};
};

实现智能DNS服务

  1. vim /etc/named.conf:acl必须在option前添加,而且注意迁移zone,因为一旦启用view,所有的zone都必须定义装载view中

    acl beijingnet {
    192.168.31.0/24;
    10.0.0.0/8;
    };
    acl shanghainet {
    172.18.0.0/16; };
    acl othernet {
    any;
    };
    options {
    ......
    };
    logging {
    ......
    }; view beijingview {
    match-clients {beijingnet;};
    include "/etc/named.rfc1912.zones.bj";
    };
    view shanghaiview {
    match-clients {shanghainet;};
    include "/etc/named.rfc1912.zones.sh";
    };
    view otherview {
    match-clients {othernet;};
    include "/etc/named.rfc1912.zones.other";
    }; include "/etc/named.rfc1912.zones"; # 删除此行,所有的zone都将定义在view中
    ......
  2. vim /etc/named.rfc1912.zones.bj

    zone "magedu.com" IN {
    type master;
    file "magedu.com.zone.bj";
    };

    vim /etc/named.rfc1912.zones.sh

    zone "magedu.com" IN {
    type master;
    file "magedu.com.zone.sh";
    };

    vim /etc/named.rfc1912.zones.other

    zone "magedu.com" IN {
    type master;
    file "magedu.com.zone.other";
    };
  3. vim /var/named/magedu.com.zone.bj

    $TTL 1D
    @ IN SOA dns1 admin (
    2018072209 ; serial
    1D ; refresh
    1H ; retry
    1W ; expire
    3H ) ; minimum
    NS dns1
    dns1 A 192.168.39.71
    www A 1.1.1.1

    vim /var/named/magedu.com.zone.sh

    ......
    www A 2.2.2.2

    vim /var/named/magedu.com.zone.other

    ......
    www A 3.3.3.3

实现互联网架构DNS服务

 
DNS架构.png

注意:

  • 从后往前搭建,好测试
  • 测试时注意rndc flush,因为有缓存时优先使用缓存
  1. 配置www主机:

    • yum install -y httpd

    • vim /var/www/html/index.html

      Welcome to magedu!
    • systemctl start httpd

  2. 配置主DNS:

    • vim /etc/named.conf

      listen-on port 53 { localhost; };
      allow-query { any; };
      allow-transfer { 192.168.39.75; };
      dnssec-enable no;
      dnssec-validation no;
    • vim /etc/named.rfc1912.zones

      zone "magedu.com" IN {
      type master;
      file "magedu.com.zone";
      };
    • named-checkconf

    • vim /var/named/magedu.com.zone

      $TTL 1D
      @ IN SOA dns1 admin (
      2018072401
      1D
      2H
      3D
      1D )
      NS dns1
      NS dns2
      dns1 A 192.168.39.74
      dns2 A 192.168.31.75
      www A 192.168.31.76
    • chmod 640 magedu.com.zone

    • chown :named magedu.com.zone

    • named-checkzone magedu.com. magedu.com.zone

    • systemctl start named

  3. 配置从DNS:

    • vim /etc/named.conf

      listen-on port 53 { localhost; };
      allow-query { any; };
      allow-transfer { 192.168.39.75; };
      dnssec-enable no;
      dnssec-validation no;
    • vim /etc/named.rfc1912.zones

      zone "magedu.com" IN {
      type slave;
      masters { 192.168.39.74; };
      file "slaves/magedu.com.slave.zone";
      };
    • named-checkconf

    • systemctl start named

  4. 配置comDNS:

    • vim /etc/named.conf

      listen-on port 53 { localhost; };
      allow-query { any; };
      dnssec-enable no;
      dnssec-validation no;
    • vim /etc/named.rfc1912.zones

      zone "com" IN {
      type master;
      file "com.zone";
      };
    • named-checkconf

    • vim /var/named/com.zone

      $TTL 1D
      @ IN SOA dns1 admin (
      2018072401
      1D
      2H
      3D
      1D )
      NS dns1
      magedu NS dns2
      magedu NS dns3
      dns1 A 192.168.39.73
      dns2 A 192.168.39.74
      dns3 A 192.168.39.75
    • chmod 640 com.zone

    • chown :named com.zone

    • named-checkzone com. com.zone

    • systemctl start named

  5. 配置根DNS:

    • vim /etc/named.conf

      listen-on port 53 { localhost; };
      allow-query { any; };
      dnssec-enable no;
      dnssec-validation no; zone "." IN {
      type master;
      file "root.zone";
      };
    • named-checkconf

    • vim /var/named/root.zone

      $TTL 1D
      @ IN SOA dns1 admin (
      2018072401
      1D
      2H
      3D
      1D )
      NS dns1
      com NS dns2
      dns1 A 192.168.39.72
      dns2 A 192.168.39.73
    • chmod 640 root.zone

    • chown :named root.zone

    • named-checkzone . root.zone

    • systemctl start named

  6. 配置局域网DNS:

    • vim /etc/named.conf

      listen-on port 53 { localhost; };
      allow-query { any; };
      dnssec-enable no;
      dnssec-validation no;
    • vim /var/named/named.ca

      .         86400       IN   NS  dns1
      dns1 86400 A 192.168.39.72
    • systemctl start named

  7. 配置client:

    • vim /etc/resolv.conf

      nameserver 192.168.39.71

编译安装BIND

  1. 下载bind

    • isc.org
  2. 编译安装bind

    • tar xvf bind-9.11.0a3.tar.gz
    • cd bind-9.11.0a3/
    • groupadd -r -g 53 named
    • useradd -r -u 53 -g 53 named
    • ./configure --prefix=/usr/local/bind9 --sysconfdir=/etc/named/ --without-openssl --disable-ipv6 --disable-chroot --enable-threads
    • make
    • make install
  3. 环境变量

    • vim /etc/profile.d/named.sh

      export PATH=/usr/local/bind9/bin:
      /usr/local/bind9/sbin/:$PATH
  4. 库和头文件

    • vim /etc/ld.so.conf.d/named.conf

      /usr/local/bind9/lib
    • ldconfig –v

    • ls -sv /usr/local/bind9/include /usr/include/named

  5. man帮助

    • vim /etc/man.config | /etc/man_db.conf

      MANPATH /usr/local/bind9/share/man
    • man named.conf

  6. 主配置文件

    • vim /etc/named/named.conf

      options {
      directory "/var/named/"
      };
      zone "." IN {
      type hint;
      file "named.ca";
      };
      zone "localhost" IN {
      type master;
      file “named.localhost";
      allow-update {none;};
      };
      zone “1.0.0.127.in-addr.arpa" IN {
      type master;
      file "named.loopback";
      allow-update {none;};
      };
  7. 区域数据库

    • mkdir /var/named

    • named-checkconf

    • dig +norec @a.root-servers.net > /var/named/named.ca

    • vim /var/named/named.localhost

      $TTL 1d
      @ IN SOA localhost. admin.localhost. (
      2016061801
      1h
      5m
      7d
      1d)
      IN NS localhost.
      localhost. IN A 127.0.0.1
    • vim /var/named/named.loopback

      $TTL 1d
      @ IN SOA localhost. admin.localhost. (
      2016061801
      1h
      5m
      7d
      1d)
      NS @
      A 127.0.0.1
      PTR localhost.
  8. 设置权限

    • chmod 640 /var/named/*
    • chmod 640 /etc/named/named.conf
    • chgrp -R named /var/named/
    • chgrp named /etc/named/named.conf
  9. 启动服务和测试

    • man named
    • named -u named -f -g -d 3 前端级别3方式运行
    • named -u named 后台运行
    • killall named
    • ss -tuln
    • tail /var/log/message
    • named -u named

DNS和BIND的更多相关文章

  1. 移植DNS服务bind

    移植DNS服务bind 标签: makefile工作linuxbuildgcc工具 先写用于DNS的bind. 一. 移植环境 1 .硬件环境: Host : X86 PC Target : MPC8 ...

  2. DNS之BIND使用小结(Forward转发)

    之前详细介绍了DNS及其在linux下的部署过程,今天再说下DNS的BIND高级特性-forwarder转发功能.比如下面一个案例:1)已经在测试环境下部署了两台内网DNS环境,DNS的zone域名为 ...

  3. 【Linux】DNS服务-BIND从服务器、缓存服务器及转发服务器配置(三)

    环境 操作系统:CentOS 6.5 DNS软件:bind(安装参照:[Linux]DNS服务-BIND基础配置(二)) BIND从服务器 从服务器就是在bind的主配置文件中添加从域example. ...

  4. centos6.5环境DNS-本地DNS服务器bind的搭建

    centos6.5环境DNS-本地DNS服务器bind的搭建 域名系统(英文:Domain Name System,缩写:DNS)是因特网的一项服务.它作为将域名和IP地址相互映射的一个分布式数据库, ...

  5. Linux运维实战之DNS(bind)服务器的安装与配置

    转自http://sweetpotato.blog.51cto.com/533893/1598225 上次博文我们讨论了DNS的基础,本次博文我们重点来看看如何配置一台DNS服务器. [本次博文的主要 ...

  6. DNS和Bind配置指南

    /////////////////////////////目录//////////////////////////////////////一.DNS原理相关二.使用bind搭建最简单的DNS服务器三. ...

  7. (一)跟我一起玩Linux网络服务:DNS服务——BIND(/etc/named.conf、/var/named)设置实现和解释

    2015年3月24更新 添加了要加的配置域名解析器(否则会找不到域名)     一.创建该实验的的模型   配置完gate虚拟机的两张网卡后,就启动gate的转发 [root@localhost ro ...

  8. 【Linux】DNS服务-BIND基础配置(二)

    BIND简介 现在使用最为广泛的DNS服务器软件是BIND(Berkeley Internet Name Domain),最早有伯克利大学的一名学生编写,现在最新的版本是9,有ISC(Internet ...

  9. 内建DNS服务器--BIND

    参考 BIND 官网:http://www.isc.org/downloads/bind/ 1.系统环境说明 [root@clsn6 ~]# cat /etc/redhat-release CentO ...

随机推荐

  1. ELK查询命令详解总结

    目录 ELK查询命令详解 倒排索引 倒排索引原理 分词器介绍及内置分词器 使用ElasticSearch API 实现CRUD 批量获取文档 使用Bulk API 实现批量操作 版本控制 什么是Map ...

  2. Python使用sql语句对mysql数据库多条件模糊查询

    1 def find_worldByName(c_name,continent): 2 print(c_name) 3 print(continent) 4 sql = " SELECT * ...

  3. java面试-对象的创建、内存布局、访问定位

    一.对象的创建 1.虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载.解析和初始化过.如果没有,那必须先执行相应的 ...

  4. 一文搞定zuul使用

    前言 在深入探讨Spring Cloud Gateway的细节之前,让我们了解有关反向代理和api网关模式的一些基础知识. 什么是反向代理? 反向代理是代表其他事物进行请求的事物.它的行为更像是简单的 ...

  5. Mediapipe 在RK3399PRO上的初探(一)(编译、运行CPU和GPU Demo, RK OpenglES 填坑,编译bazel)

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...

  6. Object.assign()和解构赋值:给对象赋值的两种方法

    一.Object.assign()方法给对象赋值 Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象分配到目标对象.它将返回目标对象. 拷贝的是属性值 如果目标对象中的属性 ...

  7. Chrome扩展开发基础教程(附HelloWorld)

    1 概述 Chrome扩展开发的基础教程,代码基于原生JS+H5,教程内容基于谷歌扩展开发官方文档. 2 环境 Chrome 88.0.4324.96 Chromium 87.0.4280.141 B ...

  8. JRebel激活

    邮箱随便填,URL为 https://jrebel.qekang.com/ 加上UUID,比如 https://jrebel.qekang.com/2c0c926f-5664-4d0e-afe2-60 ...

  9. Git分支及其协同开发

    目录 Git分支 Git是如何保存数据的 Git分支的本质 Git分支的操作 远程仓库与本地仓库分支开发 一个项目多个远程仓库 远程仓库操作命令 协同开发 Git flow工作流 GitLub安装搭建 ...

  10. JS 中一些高效的魔法运算符

    这两天有同事说我挺久没更新文章了,不过最近一段时间确实有点忙,一直在忙着两个活动中心的改版,没什么时间来更新文章.今天终于抽空可以写一写. JavaScript 现在每年都会发一个新版本,里面也会新增 ...