标签:同步数据 any ons 一段 架构 客户机 ns3 集中 internet
网络出现的早期是使用 IP 地址进行通信. 那时就几台主机通信. 但是随着接入网络主机的增多.这种数字表示的地址非常不便于记忆, UNIX 上就出现了建立一个叫做 hosts 的文件(Linux 和 Windows 也继承保留了这个文件). 这个文件中记录着主机名称和 IP 地址的对应表. 这样只要输入主机名,系统就会去加载Hosts 文件并查找对应关系. 找到对应的 IP ,就可以访问这个 IP 的主机了.
但是后来主机的急速增加.无法保证所有人都能拿到统一的最新的 Hosts 文件,就出现了文件服务器上集中存放 Hosts 文件,以提供下载使用. 互联网规模进一步扩大,这种方式也不堪重负. 而且把所有地址解析记录形成的文件都同步到所有客户机似乎也不是一个好办法,这个时候 DNS 系统出现了,随着 解析规模继续扩大, DNS系统也在不断的演化. 直到现今的多层架构体系.
DNS (Domain Name System 域名系统) , 因特网上作为域名和 IP 地址相互映射的一个分布式数据库. 能够使用户更方便的访问互联网. 而不用去记住能够被访问机器直接读取的 IP 数串,通过主机名,最终得到该主机名对应的 IP 地址的过程叫做域名解析(或主机名解析). DNS 协议运行在 UDP 协议之上. 使用端口号 53.
DNS 的分布式数据库是以域名为索引的, 每个域名实际上就是一棵很大的的逆向树路径. 这棵逆向树称为域名空间(domain name space).树最大深度不得超过127层.树中每个节点都有一个可以长达63个字符的文本标号.
首先, 客户端现在本地缓存中查找有没有域名缓存,如果没有, 客户端发出 DNS 请求翻译 IP 地址或主机名. DNS 服务器收到客户端请求后:
1) 检查 DNS 服务器的缓存, 若查到请求的地址或者名字, 即像客户端发出应答信息.
2) 若没有查找,则在数据库中查找, 若查到请求的地址或者名字, 即像客户机发出应答信息.
3) 若没有查到, 则将请求发送给根域 DNS 服务器,并依序从根域查找顶级域名, 由顶级查找二级域, 二级域查找三级, 直至找到要解析的地址或者名字, 即像客户机所在网络的 DNS 服务器发出应答信息, DNS 服务器收到应答后先在缓存中存储,然后将解析结果发给客户机.
4) 若没有找到,则返回错误信息.
主 DNS 服务器: 就是一台存储着原始资料的 DNS 服务器.
从 DNS 服务器: 使用自动更新方式从主 DNS 服务器同步数据的 DNS 服务器.也成辅助 DNS 服务器.
缓存服务器: 不负责本地解析, 返佣递归方式转发客户机查询请求. 并返回结果给客户机的 DNS 服务器, 同事缓存查询回来的结果, 也叫递归服务器.
转发器: 这台 DNS 服务器发现非本机负责查询请求时, 不在想根域发起请求, 而是直接转发给指定的一台或者多台服务器,自身并不缓存查询结果.
SOA |
可以理解为一段为自己dns做备注说明的文本,一般与ns一致 比如:dns.laonanhai.com sa.laonanhai.com 示例: a.shifen.com. 579 IN SOA dns.baidu.com. sa.baidu.com. ( |
NS |
域的授权名称服务器 baidu.com. 64899 IN NS ns2.baidu.com. |
MX |
域的邮件交换器,要跟着一个优先级值,越小越高 baidu.com. 7200 IN MX 20 jpmx.baidu.com. baidu.com. 7200 IN MX 20 mx50.baidu.com. baidu.com. 7200 IN MX 10 mx.n.shifen.com. baidu.com. 7200 IN MX 20 mx1.baidu.com. |
A |
IPV4主机地址 |
AAAA |
IPV6主机地址 |
PTR |
解析IP的指针,反向记录 |
CNAME |
权威(正式)名称,定义别名记录 www.baidu.com. 1154 IN CNAME www.a.shifen.com. |
HOST
host 命令也是大多系统,软件库调用的解析命令.
[root@test1 ~]# host baidu.com baidu.com has address 39.156.69.79 baidu.com has address 220.181.38.148 baidu.com mail is handled by 20 jpmx.baidu.com. baidu.com mail is handled by 20 mx50.baidu.com. baidu.com mail is handled by 10 mx.maillb.baidu.com. baidu.com mail is handled by 20 mx1.baidu.com. baidu.com mail is handled by 15 mx.n.shifen.com.
NSLOOKUP
nslookup 能够反映出是哪个 dnsserver 返回的结果.
[root@test1 ~]# nslookup baidu.com Server: 172.16.0.2 Address: 172.16.0.2#53 Non-authoritative answer: Name: baidu.com Address: 39.156.69.79 Name: baidu.com Address: 220.181.38.148
DIG
dig 返回整个解析的过程详细路径.类似 traceroute
[root@test1 ~]# dig baidu.com ; <<>> DiG 9.11.4-P2-RedHat-9.11.4-16.P2.el7_8.2 <<>> baidu.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1525 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; MBZ: 0x0005, udp: 512 ;; QUESTION SECTION: ;baidu.com. IN A ;; ANSWER SECTION: baidu.com. 5 IN A 220.181.38.148 baidu.com. 5 IN A 39.156.69.79 ;; Query time: 26 msec ;; SERVER: 172.16.0.2#53(172.16.0.2) ;; WHEN: 五 5月 15 10:32:42 CST 2020 ;; MSG SIZE rcvd: 70
Bind 是一款开放源码的 DNS 服务器软件, Bind 由美国加州大学 Berkeley 分校开发和维护的, 全名为 Berkeley Internet Name Domain 它是目前世界上使用最为广泛的 DNS.
1. 软件安装
yum install bind-utils bind bind-devel bind-chroot
2. 修改配置文件
[root@test1 ~]# cat /etc/named.conf options { version "1.1.1"; #版本 listen-on port 53 { 172.16.0.111; }; #监听53端口所有地址 directory "/var/named/chroot/etc/"; #存放A记录 pid-file "/run/named/named.pid"; #pid文件 allow-query { any; }; #允许所有IP像我发起请求 Dump-file "/var/named/chroot/var/log/binddump.db"; Statistics-file "/var/named/chroot/var/log/named_stats"; #状态页 zone-statistics yes; #启用zone状态 memstatistics-file "log/mem_stats"; #内存状态 empty-zones-enable no; #是不是支持空zone forwarders {114.114.114.114;8.8.8.8; }; #转发dns }; key "rndc-key" { #dns日常管理 algorithm hmac-md5; secret "Eqw4hClGExUWeDkKBX/pBg=="; }; controls { inet 127.0.0.1 port 953 allow { 127.0.0.1; } keys { "rndc-key"; }; }; logging { #错误日志 channel warning { file "/var/named/chroot/var/log/dns_warning" versions 10 size 10m; #保留十份日志每>份日志10m severity warning; #日志级别 print-category yes; print-severity yes; print-time yes; }; channel general_dns { #访问日志 file "/var/named/chroot/var/log/dns_log" versions 10 size 100m; severity info; print-category yes; print-severity yes; print-time yes; }; category default { warning; }; category queries { general_dns; }; }; include "/var/named/chroot/etc/view.conf";
2. 编辑秘钥文件
[root@test1 ~]# cat /etc/rndc.key key "rndc-key" { algorithm hmac-md5; secret "Eqw4hClGExUWeDkKBX/pBg=="; }; # 生成秘钥文件命令 # rndc-confgen -r /dev/urandom -a
3. 配置 rndc 文件
rndc(Remote Name Domain Controllerr)是一个远程管理bind的工具,通过这个工具可以在本地或者远程了解当前服务器的运行状况,也可以对服务器进行关闭、重载、刷新缓存、增加删除zone等操作。
使用rndc可以在不停止DNS服务器工作的情况进行数据的更新,使修改后的配置文件生效。
[root@test1 ~]# cat /etc/rndc.conf key "rndc-key" { algorithm hmac-md5; secret "Eqw4hClGExUWeDkKBX/pBg=="; }; options { default-key "rndc-key"; default-server 127.0.0.1; default-port 953; };
4. 配置 view 视图
[root@test1 ~]# cat /var/named/chroot/etc/view.conf view "View" { zone "devops.com" { type master; file "devops.com.zone"; allow-transfer { 172.16.0.111; }; notify yes; also-notify { 172.16.0.111; }; }; };
5. 配置 zone 解析
[root@test1 ~]# cat /var/named/chroot/etc/devops.com.zone $ORIGIN . $TTL 3600 ; 1 hour devops.com IN SOA op.devops.com. dns.devops.com. ( 2000 ; serial 900 ; refresh (15 minutes) 600 ; retry (10 minutes) 86400 ; expire (1 day) 3600 ; minimum (1 hour) ) NS op.devops.com. $ORIGIN devops.com. www A 1.2.3.4 op A 1.2.3.4
6. 修改目录权限及启动
chown -R named.named /run/named/ chown -R named.named /var/named/ systemctl start named
标签:同步数据 any ons 一段 架构 客户机 ns3 集中 internet
原文地址:https://www.cnblogs.com/yanshicheng/p/12890515.html