DNS服务和BIND

本文详细介绍了DNS服务的不同类型,包括主DNS、从DNS和缓存DNS服务器,并重点讲解了BIND软件及其相关配置,如区域文件、主配置文件、rndc命令和ACL。通过示例展示了如何实现DNS正向和反向解析、主从DNS服务架构、DNS父域和子域服务,以及DNS转发(缓存)服务器的配置。最后,提到了综合案例,涉及Internet的DNS服务架构搭建。
摘要由CSDN通过智能技术生成

DNS服务

DNS服务器的类型

  • 主DNS服务器
  • 从DNS服务器
  • 缓存DNS服务器(转发器)
    主DNS服务器: Master
  • 管理和维护所负责解析的域内解析库的服务器
    从DNS服务器: Slave
    从主服务器或从服务器“复制”(区域传输)解析库副本
    • 序列号:解析库版本号,主服务器解析库变化时,其序列递增
    • 刷新时间间隔:从服务器从主服务器请求同步解析的时间间隔
    • 重试时间间隔:从服务器请求同步失败时,再次尝试时间间隔
    • 过期时长:从服务器联系不到主服务器时,多久后停止服务
    • 通知机制:主服务器解析库发生变化时,会主动通知从服务器

本地解析配置文件:

[root@centos8~]#cat /etc/hosts 
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

DNS:Domain Name System 域名系统,应用层协议,是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网
基于C/S架构,服务器端口号:53/udp, 53/tcp

DNS查询类型
  • 递归查询:得到的是最终结果,负责到底
  • 迭代查询:得到的是最好结果,不负责到底
解析类型
  • FQDN --> IP
  • IP --> FQDN
    注意:正反向解析是两个不同的名称空间,是两棵不同的解析树
完整的查询请求经过的流程
Client -->hosts文件 --> Clinet DNS Service Local Cache --> DNS Server (recursion) --> Server Cache -->iteration(迭代) --> 根--> 顶级域名DNS-->二级域名DNS…

DNS软件bind

DNS服务器软件:bind,powerdns,unbound

BIND相关程序包

  • yum list all bind*
  • bind:服务器 #需要安装
  • bind-libs:相关库
  • bind-utils: 客户端 #需要安装
  • bind-chroot: 安全包,将dns相关文件放至 /var/named/chroot/

BIND包相关文件

  • BIND主程序:/usr/sbin/named
  • 服务脚本和Unit名称:/etc/rc.d/init.d/named,/usr/lib/systemd/system/named.service
  • 主配置文件:/etc/named.conf, /etc/named.rfc1912.zones, /etc/rndc.key
  • 管理工具:/usr/sbin/rndc:remote name domain controller,默认与bind安装在同一主机,且只能通过127.0.0.1连接named进程,提供辅助性的管理功能;953/tcp
  • 解析库文件:/var/named/ZONE_NAME.ZONE
    注意:
    (1) 一台物理服务器可同时为多个区域提供解析
    (2) 必须要有根区域文件;named.ca
    (3) 应该有两个(如果包括ipv6的,应该更多)实现localhost和本地回环地址的解析库

主配置文件

  • 全局配置:options {};
  • 日志子系统配置:logging {};
  • 区域定义:本机能够为哪些zone进行解析,就要定义哪些zone
    zone “ZONE_NAME” IN {};
    注意:
  • 任何服务程序如果期望其能够通过网络被其它主机访问,至少应该监听在一个能与外部主机通信的IP地址上
  • 缓存名称服务器的配置:监听外部地址即可
  • dnssec: 建议关闭dnssec,设为no


语法检查命令:
[root@centos8|~]#named-checkconf
[root@centos8|~]#named-checkzone magedu.org /var/named/magedu.org.zone

服务器端配置

[root@centos8~]#yum install -y bind bind-utils
[root@centos8~]#systemctl start named
[root@centos8~]#vim /etc/sysconfig/network-scripts/ifcfg-eth0 
DEVICE=eth0
NAME=eth0
BOOTPROTO=none
IPADDR=10.0.0.8
PREFIX=24
GATEWAY=10.0.0.2
DNS1=127.0.0.1
ONBOOT=yes
[root@centos8named]#nmcli connection reload
[root@centos8named]#nmcli connection up eth0
[root@centos8named]#cat /etc/resolv.conf 
# Generated by NetworkManager
nameserver 127.0.0.1
rndc 命令

利用rndc工具可以实现管理DNS功能
rndc 监听端口: 953/tcp
命令格式

rndc COMMAND 
COMMAND: 
status: 查看状态 
reload: 重载主配置文件和区域解析库文件 
reload zonename: 重载区域解析库文件 
retransfer zonename: 手动启动区域传送,而不管序列号是否增加 notify zonename: 重新对区域传送发通知 
reconfig: 重载主配置文件 
querylog: 开启或关闭查询日志文件/var/log/message 
trace: 递增debug一个级别 
trace LEVEL: 指定使用的级别 
notrace:将调试级别设置为 0 
flush:清空DNS服务器的所有缓存记录

三种测试方式

[root@centos8named]#host www.magedu.com 127.0.0.1
Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1#53
Aliases: 
www.magedu.com has address 101.200.188.230
[root@centos8named]#ping www.magedu.com
PING www.magedu.com (101.200.188.230) 56(84) bytes of data.
64 bytes from 101.200.188.230 (101.200.188.230): icmp_seq=1 ttl=128 time=7.38 ms
64 bytes from 101.200.188.230 (101.200.188.230): icmp_seq=2 ttl=128 time=6.76 ms
64 bytes from 101.200.188.230 (101.200.188.230): icmp_seq=3 ttl=128 time=7.01 ms
^C
--- www.magedu.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 62ms
rtt min/avg/max/mdev = 6.764/7.048/7.375/0.260 ms
[root@centos8named]#dig www.magedu.com @127.0.0.1

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el8 <<>> www.magedu.com @127.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15783
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 19

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: c7713f09a0b3c5890ab366315e43708f104ee161d3271b78 (good)
;; QUESTION SECTION:        #问题:要查询的内容IP
;www.magedu.com.			IN	A

;; ANSWER SECTION:          #回答:返回的结果IP
www.magedu.com.		471	IN	A	101.200.188.230

;; AUTHORITY SECTION:       #验证:由哪几台DNS服务器提供的答案
magedu.com.		172668	IN	NS	ns1.alidns.com.                    #默认保留时间172668
magedu.com.		172668	IN	NS	ns2.alidns.com.

;; ADDITIONAL SECTION:
ns1.alidns.com.		172668	IN	A	106.11.141.111
ns1.alidns.com.		172668	IN	A	106.11.141.121
ns1.alidns.com.		172668	IN	A	106.11.211.51
ns1.alidns.com.		172668	IN	A	106.11.211.61
ns1.alidns.com.		172668	IN	A	140.205.41.11
ns1.alidns.com.		172668	IN	A	140.205.41.21
ns1.alidns.com.		172668	IN	A	140.205.81.11
ns1.alidns.com.		172668	IN	A	140.205.81.21
ns2.alidns.com.		172668	IN	A	106.11.211.52
ns2.alidns.com.		172668	IN	A	106.11.211.62
ns2.alidns.com.		172668	IN	A	140.205.41.12
ns2.alidns.com.		172668	IN	A	140.205.41.22
ns2.alidns.com.		172668	IN	A	140.205.81.12
ns2.alidns.com.		172668	IN	A	140.205.81.22
ns2.alidns.com.		172668	IN	A	106.11.141.112
ns2.alidns.com.		172668	IN	A	106.11.141.122
ns1.alidns.com.		172668	IN	AAAA	2400:3200:2000:54::1
ns2.alidns.com.		172668	IN	AAAA	2400:3200:2000:55::1

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: 三 2月 12 11:27:11 CST 2020
;; MSG SIZE  rcvd: 442
[root@centos8~]#nslookup 
> server 127.0.0.1
Default server: 127.0.0.1
Address: 127.0.0.1#53
> www.magedu.com
Server:		127.0.0.1
Address:	127.0.0.1#53

Non-authoritative answer:
Name:	www.magedu.com
Address: 101.200.188.230

修改配置文件

[root@centos8|~]#rpm -qc bind    查找配置文件
/etc/logrotate.d/named
/etc/named.conf
/etc/named.iscdlv.key
/etc/named.rfc1912.zones
/etc/named.root.key
/etc/rndc.conf
/etc/rndc.key
/etc/sysconfig/named
/var/named/named.ca
/var/named/named.empty
/var/named/named.localhost
/var/named/named.loopback
[root@centos8|~]#vim /etc/named.conf
options {
   
        listen-on port 53 {
    localhost; }; --需要修改
        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";
        secroots-file   "/var/named/data/named.secroots";
        recursing-file  "/var/named/data/named.recursing";
        allow-query     {
    any; };        --需要修改
[root@centos8~]#named-checkconf  检查语法是否错误
[root@centos8~]#rndc reload      重启服务
server reload successful 

客户端配置

[root@centos7|~]#veth0
DEVICE=eth0
NAME=eth0
BOOTPROTO
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值