架构师之DNS实战

架构师 DNS实战

老男孩教育


DNS简介

1. DNS的出现及演化

    网络出现的早起是使用IP地址通讯的,那是就几台主机通讯。但是随着接入网络主机的增多,这种数字标识的地址非常不便于记忆,UNIX上就出现了建立一个叫做hosts的文件(Linux和Windows也继承保留了这个文件)。这个文件中记录着主机名称和IP地址的对应表,这样只要输入主机名称,系统就会加载hosts文件并查找对应关系,找到对应的IP,就可以访问这个IP的主机了。但是后来主机太多了,无法保证所有人都能拿到统一的最新的hosts文件,就出现了在文件服务器上集中存放hosts文件,以供下载使用。互联网规模进一步扩大,这种方式也不堪重负,而且把所有地址解析记录形成的文件都同步到所有的客户机似乎也不是一个好办法。这时DNS系统出现了,随着解析规模的继续扩大,DNS系统也在不断的烟花,直到现今的多层架构体系。

2.DNS概述入门

DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户方便的访问互联网,而不用去记住能够被机器读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析),DNS协议运行在UDP协议之上,使用端口号53
DNS的分布式数据库是以域名为索引的,每个域名实际上就是一颗很大的逆向数中路径,这棵逆向树成为域名空间(domain name space) 树的最大深度不超过127层,树种每个节点都有一个可以长达63个字符的文本符号。

1.png-58.9kB

3、DNS域名解析过程

首先,客户端现在本地缓存查找有没有域名缓存,如果没有,客户端发送DNS请求翻译IP地址或主机名,DNS服务器在收到客户机的请求后: 
(1)检查DNS服务器的缓存,若查到请求的地址或名字,即向客户机发出应答信息 
(2)若没有查到,则在数据库中查找,若查到请求的地址或名字,即向客户端发出应答信息。 
(3)若没有查到,则将请求发给根域DNS服务器,并依序从根域查找顶级域,由顶级域查找二级域,二级域查找三级,直至找到要解析的地址或名字,即向客户机所在的网络的DNS服务器发出应答信息,DNS服务器收到应该后先在缓存中存储,并解析结果发给客户及 
(4)若没有找到,返回错误信息 
2.png-320.4kB

4.DNS的分类

主DNS服务器:就是一台存储着原始资料的DNS服务器 
从DNS服务器:使用自动更新方式从主DNS服务器同步数据的DNS服务器,也称辅助DNS服务器 
缓存服务器:不负责本地解析,采用递归方式转发客户机查询请求,并返回结果给客户机的DNS服务器,同时缓存查询回来的结果,也叫递归服务器。 
转发器:这台DNS发现非本机负责的请求后,不再向根发起请求,而是直接转发给指定的一台或多台服务器,自身并不保存查询结果


SOA 可以理解为一段自己dns做备注说明的文本,一般与ns一致 
比如:dns.abcdocker.com sa.abcdocker.com 
示例:

  1. a.shifen.com . 579 IN SOA dns.baidu.com.
  2. sa.baidu.com. (
  3. 1408010001 ; serial number
  4. 5 ; refresh 5s
  5. 5; retry 5s
  6. 86400 ; expire 1d
  7. 3600 ;min TTL 1h
  8. )

相关解释: 
1、Serial:只是一个序号,但这个序号可被用来作为slavemaster更新的依据。举例来说,master序号为100但slave序号为90时,那么这个zone file的资料就会被传送到slave来更新了。由于这个序号代表新旧资料,通常我们建立你可以利用日期来设定! 
举例来说,上面的资料是在2016/01/01所修改的第一次,所以用2016010101作为序号代表!(yyymmddnn,nn代表这一天是第几次修改) 
2、Refresh:除了根据Serial来判断新旧之外,我们可以利用这个refresh(更新)命令slave多久进行一次主动更新; 
3、Retry:如果到了Refresh的时间,但是slave却无法连接到master时,那么在多久之后,slave会再次的主动尝试与主机连线; 
4、Expire:如果slave一直无法与master连接上,那么经过多久的时间之后,则命令slave不要再连接master了!也就是说,此时我们假设master DNS可能遇到重大问题而无法上线,则等待系统管理员处理完毕后,再重新来到slave DNS重新启动bind吧! 
5、Minimun:这个就有点像是TTL


NS 域的授权名称服务器

  1. NSDName:DNSFQDN
  2. a.shifen.com. 611 IN NS ns4.a.shifen.com.
  3. a.shifen.com. 611 IN NS ns3.a.shifen.com.
  4. a.shifen.com. 611 IN NS ns2.a.shifen.com.
  5. a.shifen.com. 611 IN NS ns1.a.shifen.com.
  6. a.shifen.com. 611 IN NS ns5.a.shifen.com.

MX 域的邮件交换器,要跟这一个优先级值,越小越高

  1. baidu.com. 7200 IN MX 20 jpmx.baidu.com.
  2. baidu.com. 7200 IN MX 20 mx50.baidu.com.
  3. baidu.com. 7200 IN MX 10 mx.n.shifen.com.
  4. baidu.com. 7200 IN MX 20 mx1.baidu.com.

A记录: 
将域名指向一个IPv4地址(例如:10.10.10.10),需要增加A记录 
CNAME记录: 
如果将域名指向一个域名,实现与被指向域名相同的访问效果,需要增加CNAME记录 
MX记录: 
建立电子邮箱服务,将指向邮件服务器地址,需要设置MX记录 
NS记录: 
域名解析服务器记录,如果要将子域名指定某个域名服务器来解析,需要设置NS记录 
TXT记录: 
可任意填写(可为空),通常用做SPF记录(反垃圾邮件)使用 
AAAA记录: 
将主机名(或域名)指向一个IPv6地址(例如:ff03:0:0:0:0:0:0:c1),需要添加AAAA记录 
SRV记录: 
记录了哪台计算机提供了哪个服务。格式为:服务的名字.协议的类型(例如:_example-server._tcp) 
显性URL: 
将域名指向一个http(s)协议地址,访问域名时,自动跳转至目标地址(例如:将www.net.cn显性转发到www.hichina.com后,访问www.net.cn时,地址栏显示的地址为:www.hichina.com)。 
隐性URL: 
与显性URL类似,但隐性转发会隐藏真实的目标地址(例如:将www.net.cn隐性转发到www.hichina.com后,访问www.net.cn时,地址栏显示的地址仍然为:www.net.cn)。


6.DNS命名规范

1、26个英文字母 
2、“0.1.2.3.4.5.6.7.8.9”十个数字 
3、“-”(英文中的连词号) 
4、最多63字节长度

7.DIG、NSLOOKUP、HOST的介绍

host命令是大多数系统软件库调用的解析命令,比如php中

  1. [root@www ~]# host baidu.com
  2. baidu.com has address 220.181.57.217
  3. baidu.com has address 111.13.101.208
  4. baidu.com has address 123.125.114.144
  5. baidu.com has address 180.149.132.47
  6. baidu.com mail is handled by 20 mx50.baidu.com.
  7. baidu.com mail is handled by 20 jpmx.baidu.com.
  8. baidu.com mail is handled by 10 mx.n.shifen.com.
  9. baidu.com mail is handled by 20 mx1.baidu.com.

Nslookup能够反映出是那个dns server返回的结果

  1. [root@www ~]# nslookup baidu.com
  2. Server: 100.100.2.136
  3. Address: 100.100.2.136#53
  4. Non-authoritative answer:
  5. Name: baidu.com
  6. Address: 180.149.132.47
  7. Name: baidu.com
  8. Address: 123.125.114.144
  9. Name: baidu.com
  10. Address: 111.13.101.208
  11. Name: baidu.com
  12. Address: 220.181.57.217

dig返回整个解析过程的详细描述,类似traceroute

  1. [root@www ~]# dig abcdocker.com
  2. ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> abcdocker.com
  3. ;; global options: +cmd
  4. ;; Got answer:
  5. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12761
  6. ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 6
  7. ;; QUESTION SECTION:
  8. ;abcdocker.com. IN A
  9. ;; ANSWER SECTION:
  10. abcdocker.com. 494 IN A 120.25.167.42
  11. ;; AUTHORITY SECTION:
  12. abcdocker.com. 56627 IN NS dns9.hichina.com.
  13. abcdocker.com. 56627 IN NS dns10.hichina.com.
  14. ;; ADDITIONAL SECTION:
  15. dns9.hichina.com. 1827 IN A 140.205.228.13
  16. dns9.hichina.com. 1827 IN A 42.120.221.13
  17. dns9.hichina.com. 1827 IN A 140.205.81.13
  18. dns10.hichina.com. 1827 IN A 140.205.228.23
  19. dns10.hichina.com. 1827 IN A 42.120.221.23
  20. dns10.hichina.com. 1827 IN A 140.205.81.23
  21. ;; Query time: 0 msec
  22. ;; SERVER: 100.100.2.136#53(100.100.2.136)
  23. ;; WHEN: Tue Aug 16 18:31:01 2016
  24. ;; MSG SIZE rcvd: 190

部署DNS服务器

一、学习部署BIND9

Bind是一款开放源码的DNS服务器软件,Bind由美国加州大学Berkeley分校开发和维护的,全名为Berkeley Internet Name Domain它是目前世界使用最广泛的DNS

二、环境准备

配置yum源 
使用centos6 自带的yum源即可,同时确保机器可以解析外网域名,并能连接公网

部署单台DNS

  1. [root@web02 ~]# yum install bind-utils bind bind-devel bind-chroot -y

dns 9.8有漏洞哦,出人命的漏洞,远程控制你的主DNS。 
提示:谨慎操作DNS 
查看软件包

  1. [root@web02 ~]# rpm -qa bind-utils bind bind-devel bind-chroot
  2. bind-chroot-9.8.2-0.47.rc1.el6.x86_64
  3. bind-9.8.2-0.47.rc1.el6.x86_64
  4. bind-devel-9.8.2-0.47.rc1.el6.x86_64
  5. bind-utils-9.8.2-0.47.rc1.el6.x86_64

编辑/etc/named.conf

  1. [root@bogon ~]# >/etc/named.conf
  2. [root@bogon ~]# vim /etc/named.conf DNS首先加载的文件 更多ban9管理员
  3. options {
  4. version "1.1.1";
  5. listen-on port 53 {any;};
  6. directory "/var/named/chroot/etc/";
  7. pid-file "/var/named/chroot/var/run/named/named.pid";
  8. allow-query { any; };
  9. Dump-file "/var/named/chroot/var/log/binddump.db";
  10. Statistics-file "/var/named/chroot/var/log/named_stats";
  11. zone-statistics yes;
  12. memstatistics-file "log/mem_stats";
  13. empty-zones-enable no;
  14. forwarders {202.106.196.115;8.8.8.8; };
  15. };
  16. key "rndc-key" {
  17. algorithm hmac-md5;
  18. secret "Eqw4hClGExUWeDkKBX/pBg==";
  19. };
  20. controls {
  21. inet 127.0.0.1 port 953
  22. allow { 127.0.0.1; } keys { "rndc-key"; };
  23. };
  24. logging {
  25. channel warning {
  26. file "/var/named/chroot/var/log/dns_warning" versions 10 size 10m;
  27. severity warning;
  28. print-category yes;
  29. print-severity yes;
  30. print-time yes;
  31. };
  32. channel general_dns {
  33. file "/var/named/chroot/var/log/dns_log" versions 10 size 100m;
  34. severity info;
  35. print-category yes;
  36. print-severity yes;
  37. print-time yes;
  38. };
  39. category default {
  40. warning;
  41. };
  42. category queries {
  43. general_dns;
  44. };
  45. };
  46. include "/var/named/chroot/etc/view.conf";

相关注释:

  1. options {
  2. version "1.1.1";
  3. listen-on port 53 {any;}; #监控端口
  4. directory "/var/named/chroot/etc/"; #A记录等配置文件所在的目录
  5. pid-file "/var/named/chroot/var/run/named/named.pid"; 服务器来的进程号
  6. allow-query { any; }; #允许谁访问{}可以写IP
  7. Dump-file "/var/named/chroot/var/log/binddump.db";
  8. Statistics-file "/var/named/chroot/var/log/named_stats"; #可以看到DNS解析记录的数量,成功率有多少域(可以做监控)DNS状态等
  9. zone-statistics yes; #配成yes之后上面才会写入
  10. memstatistics-file "log/mem_stats"; #内存状态
  11. empty-zones-enable no;
  12. forwarders {202.106.196.115;8.8.8.8; }; 转发(如果我这没有域名就转发)
  13. };
  14. key "rndc-key" { 认证的密钥
  15. algorithm hmac-md5;
  16. secret "Eqw4hClGExUWeDkKBX/pBg==";
  17. };
  18. controls {
  19. inet 127.0.0.1 port 953
  20. allow { 127.0.0.1; } keys { "rndc-key"; };
  21. };
  22. logging { 日志 警告路径 (日志分2种)
  23. channel warning { 日志的相关信息
  24. file "/var/named/chroot/var/log/dns_warning" versions 10 size 10m;
  25. severity warning;
  26. print-category yes;
  27. print-severity yes;
  28. print-time yes;
  29. };
  30. channel general_dns { 访问日志相关信息
  31. file "/var/named/chroot/var/log/dns_log" versions 10 size 100m;
  32. severity info;
  33. print-category yes;
  34. print-severity yes;
  35. print-time yes;
  36. };
  37. category default { #默认日志警告级别
  38. warning;
  39. };
  40. category queries { #访问日志级别
  41. general_dns;
  42. };
  43. };
  44. include "/var/named/chroot/etc/view.conf"; 其他域的配置文件目录(view.conf可以实现简单的只能DNS的功能,为以后的只能DNS做准备)

编辑认证

  1. vim /etc/rndc.key
  2. key "rndc-key" {
  3. algorithm hmac-md5;
  4. secret "Eqw4hClGExUWeDkKBX/pBg==";
  5. };

编辑/etc/rndc.conf

  1. key "rndc-key" {
  2. algorithm hmac-md5;
  3. secret "Eqw4hClGExUWeDkKBX/pBg==";
  4. };
  5. options {
  6. default-key "rndc-key";
  7. default-server 127.0.0.1;
  8. default-port 953;
  9. };

vim /var/named/chroot/etc/view.conf

  1. view "View" { #“View 说明 以后可以修改为电信 联通”
  2. zone "lnh.com" { #zone配置
  3. type master; #此处为master 还有一个slave
  4. file "lnh.com.zone"; #通过这个view进行来找file 找哪一个
  5. allow-transfer { #允许谁来找我要数据(在named.conf(allow-quey)配置) 允许谁来向我发送请求
  6. 10.255.253.211;
  7. };
  8. notify yes; #当我的master文件发生变更了,去通知下面的IP,如
  9. also-notify {
  10. 10.255.253.211;
  11. };
  12. };
  13. };
  14. 如果有多个需要一zone"lnh.com开头"以};结尾

copy:

  1. view "View" {
  2. zone "lnh.com" {
  3. type master;
  4. file "lnh.com.zone";
  5. allow-transfer {
  6. 10.255.253.211;
  7. };
  8. notify yes;
  9. also-notify {
  10. 10.255.253.211;
  11. };
  12. };
  13. };

编辑vim /var/named/chroot/etc/lnh.com.zone

  1. $ORIGIN . #zone文件生效的域
  2. $TTL 3600 ; 1 hour #域名生存周期(内网可以调节端,外网长)
  3. lnh.com 对外说明我是那个zone IN SOA op.lnh.com. dns.lnh.com. (
  4. 2000 ; serial #如果新同步数据需要调节此处的大小
  5. 900 ; refresh (15 minutes) #当我slave向我同步数据,同步失败多久响应
  6. 600 ; retry (10 minutes) #10分钟之后我在发出请求
  7. 86400 ; expire (1 day) 1年没有响应我就认为他宕机了
  8. 3600 ; minimum (1 hour)
  9. )
  10. NS op.lnh.com. 此处A记录的相关信息
  11. $ORIGIN lnh.com. #上面NS配置的域名在下面一定要有一个A记录
  12. shanks A 1.2.3.4
  13. op A 1.2.3.4

copy:

  1. $ORIGIN .
  2. $TTL 3600 ; 1 hour
  3. lnh.com IN SOA op.lnh.com. dns.lnh.com. (
  4. 2000 ; serial
  5. 900 ; refresh (15 minutes)
  6. 600 ; retry (10 minutes)
  7. 86400 ; expire (1 day)
  8. 3600 ; minimum (1 hour)
  9. )
  10. NS op.lnh.com.
  11. $ORIGIN lnh.com.
  12. shanks A 1.2.3.4
  13. op A 1.2.3.4

相关解释: 
1、Serial:只是一个序号,但这个序号可被用来作为slavemaster更新的依据。举例来说,master序号为100但slave序号为90时,那么这个zone file的资料就会被传送到slave来更新了。由于这个序号代表新旧资料,通常我们建立你可以利用日期来设定! 
举例来说,上面的资料是在2016/01/01所修改的第一次,所以用2016010101作为序号代表!(yyymmddnn,nn代表这一天是第几次修改) 
2、Refresh:除了根据Serial来判断新旧之外,我们可以利用这个refresh(更新)命令slave多久进行一次主动更新; 
3、Retry:如果到了Refresh的时间,但是slave却无法连接到master时,那么在多久之后,slave会再次的主动尝试与主机连线; 
4、Expire:如果slave一直无法与master连接上,那么经过多久的时间之后,则命令slave不要再连接master了!也就是说,此时我们假设master DNS可能遇到重大问题而无法上线,则等待系统管理员处理完毕后,再重新来到slave DNS重新启动bind吧! 
5、Minimun:这个就有点像是TTL


修改目录权限,并启动服务

  1. cd /var && chown -R named.named named/ 授权目录
  2. /etc/init.d/named start 启动服务
  3. chkconfig named on 开机启动

copy:

  1. cd /var && chown -R named.named named/
  2. /etc/init.d/named start
  3. chkconfig named on

检查服务启动情况(UDP 53 监控(2个))

  1. [root@web02 var]# netstat -lntup
  2. Active Internet connections (only servers)
  3. Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
  4. tcp 0 0 172.16.1.8:53 0.0.0.0:* LISTEN 35157/named
  5. tcp 0 0 10.0.0.8:53 0.0.0.0:* LISTEN 35157/named
  6. tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 35157/named
  7. tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1329/sshd
  8. tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 35157/named
  9. tcp 0 0 :::22 :::* LISTEN 1329/sshd
  10. udp 0 0 172.16.1.8:53 0.0.0.0:* 35157/named
  11. udp 0 0 10.0.0.8:53 0.0.0.0:* 35157/named
  12. udp 0 0 127.0.0.1:53 0.0.0.0:* 35157/named
  13. udp 0 0 0.0.0.0:44354 0.0.0.0:* 35157/named

测试解析结果 
dig @127.0.0.1 a.lnh.com

  1. [root@web02 var]# dig @127.0.0.1 a.lnh.com
  2. ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> @127.0.0.1 a.lnh.com
  3. ; (1 server found)
  4. ;; global options: +cmd
  5. ;; Got answer:
  6. ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 18014
  7. ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
  8. ;; QUESTION SECTION:
  9. ;a.lnh.com. IN A
  10. ;; AUTHORITY SECTION:
  11. lnh.com. 3600 IN SOA op.lnh.com. dns.lnh.com. 2000 900 600 86400 3600
  12. ;; Query time: 1 msec
  13. ;; SERVER: 127.0.0.1#53(127.0.0.1)
  14. ;; WHEN: Wed Aug 17 02:06:27 2016
  15. ;; MSG SIZE rcvd: 70

如果不指定DNS要看本次的dns server服务器

  1. [root@bogon var]# cat /etc/resolv.conf
  2. nameserver 192.168.56.2
  3. nameserver 8.8.8.8
  4. search localhost

以上就是DNS服务器的搭建


配置从DNS 制作主从同步(实际中可以配置双主【需要开发的一些支持】) 
开启另一台服务器:步骤和原来的差不多 
安装

yum install bind-utils bind bind-devel bind-chroot

编辑配置文件/etc/named.conf

  1. [root@web02 /]# >/etc/named.conf
  2. [root@web02 /]# cat /etc/named.conf
  3. options {
  4. version "1.1.1";
  5. listen-on port 53 {any;};
  6. directory "/var/named/chroot/etc/";
  7. pid-file "/var/named/chroot/var/run/named/named.pid";
  8. allow-query { any; };
  9. Dump-file "/var/named/chroot/var/log/binddump.db";
  10. Statistics-file "/var/named/chroot/var/log/named_stats";
  11. zone-statistics yes;
  12. memstatistics-file "log/mem_stats";
  13. empty-zones-enable no;
  14. forwarders {202.106.196.115;8.8.8.8; };
  15. };
  16. key "rndc-key" {
  17. algorithm hmac-md5;
  18. secret "Eqw4hClGExUWeDkKBX/pBg==";
  19. };
  20. controls {
  21. inet 127.0.0.1 port 953
  22. allow { 127.0.0.1; } keys { "rndc-key"; };
  23. };
  24. logging {
  25. channel warning {
  26. file "/var/named/chroot/var/log/dns_warning" versions 10 size 10m;
  27. severity warning;
  28. print-category yes;
  29. print-severity yes;
  30. print-time yes;
  31. };
  32. channel general_dns {
  33. file "/var/named/chroot/var/log/dns_log" versions 10 size 100m;
  34. severity info;
  35. print-category yes;
  36. print-severity yes;
  37. print-time yes;
  38. };
  39. category default {
  40. warning;
  41. };
  42. category queries {
  43. general_dns;
  44. };
  45. };
  46. include "/var/named/chroot/etc/view.conf";

vim /etc/rndc.key

  1. key "rndc-key" {
  2. algorithm hmac-md5;
  3. secret "Eqw4hClGExUWeDkKBX/pBg==";
  4. };

vim /etc/rndc.conf

  1. key "rndc-key" {
  2. algorithm hmac-md5;
  3. secret "Eqw4hClGExUWeDkKBX/pBg==";
  4. };
  5. options {
  6. default-key "rndc-key";
  7. default-server 127.0.0.1;
  8. default-port 953;
  9. };

vim /var/named/chroot/etc/view.conf

  1. view "SlaveView" {
  2. zone "lnh.com" { #master如何写我们这里也写就可以
  3. type slave; #代表从库
  4. masters {192.168.56.13; }; #可以写多个主,逗号分隔
  5. file "slave.lnh.com.zone";
  6. };
  7. };

copy:

  1. view "SlaveView" {
  2. zone "lnh.com" {
  3. type slave;
  4. masters {192.168.56.13; };
  5. file "slave.lnh.com.zone";
  6. };
  7. };

修改MASTER的相关配置

  1. [root@web02 var]# vim /var/named/chroot/etc/view.conf
  2. "/var/named/chroot/etc/view.conf" 14L, 252C 1,1 All
  3. view "View" {
  4. zone "lnh.com" {
  5. type master;
  6. file "lnh.com.zone";
  7. allow-transfer {
  8. 192.168.56.14;
  9. };
  10. notify yes;
  11. also-notify {
  12. 192.168.56.14;
  13. };
  14. };
  15. };

重载服务

  1. [root@web02 var]# rndc
  2. rndc rndc-confgen
  3. [root@web02 var]# rndc reload
  4. WARNING: key file (/etc/rndc.key) exists, but using default configuration file (/etc/rndc.conf)
  5. server reload successful
  6. 没有报错代表成功

从库操作:

  1. [root@web02 /]# cd /var && chown -R named.named named/
  2. [root@web02 var]# /etc/init.d/named start
  3. Starting named: [ OK ]
  4. [root@web02 var]# chkconfig named on

查看是否同步成功,和master比对一下即可

  1. [root@web02 var]# ll /var/named/chroot/etc/
  2. total 44
  3. -rw-r--r-- 1 root root 388 May 1 04:32 localtime
  4. drwxr-x--- 2 root named 4096 May 11 07:07 named
  5. -rw-r----- 1 root named 1122 Aug 17 02:12 named.conf
  6. -rw-r--r-- 1 root named 2389 May 11 07:07 named.iscdlv.key
  7. -rw-r----- 1 root named 931 Jun 21 2007 named.rfc1912.zones
  8. -rw-r--r-- 1 root named 487 Jul 19 2010 named.root.key
  9. drwxr-x--- 3 named named 4096 May 5 09:59 pki
  10. -rw-r--r-- 1 root root 196 Aug 17 02:13 rndc.conf
  11. -rw-r--r-- 1 root root 91 Aug 17 02:13 rndc.key
  12. -rw-r--r-- 1 named named 312 Aug 17 02:17 slave.lnh.com.zone
  13. -rw-r--r-- 1 named named 164 Aug 17 02:14 view.conf

添加A、CNAME、MX记录

Master进行设置

A记录

编辑master节点/var/named/chroot/etc/lnh.com.zone,在文件末尾添加一条记录

  1. vim /var/named/chroot/etc/lnh.com.zone
  2. a A 192.168.122.100

将serial值+1 
执行rndc reload命令 
分别对master、slave解析下:host a.lnh.com 127.0.0.1 结果应该是192.168.122.100
 
设置完结果如下:

  1. [root@web02 var]# cat /var/named/chroot/etc/lnh.com.zone
  2. $ORIGIN .
  3. $TTL 3600 ; 1 hour
  4. lnh.com IN SOA op.lnh.com. dns.lnh.com. (
  5. 2001 ; serial
  6. 900 ; refresh (15 minutes)
  7. 600 ; retry (10 minutes)
  8. 86400 ; expire (1 day)
  9. 3600 ; minimum (1 hour)
  10. )
  11. NS op.lnh.com.
  12. $ORIGIN lnh.com.
  13. shanks A 1.2.3.4
  14. op A 1.2.3.4
  15. a A 192.168.122.100

测试:

  1. [root@web02 var]# host a.lnh.com 127.0.0.1
  2. Using domain server:
  3. Name: 127.0.0.1
  4. Address: 127.0.0.1#53
  5. Aliases:
  6. a.lnh.com has address 192.168.122.100

CNAME记录

编辑master节点/var/named/chroot/etc/lnh.com.zone,在文件末尾添加一条记录

  1. [root@web02 var]# vim var/named/chroot/etc/lnh.com.zone
  2. 最后一行添加如下:
  3. cname CNAME a.lnh.com.

将serial值+1 
执行rndc reload命令 
分别对master、slave解析下:host cname.lnh.com 127.0.0.1 结果应该是192.168.122.101
 
调整后结果如下:

  1. [root@web02 var]# cat /var/named/chroot/etc/lnh.com.zone
  2. $ORIGIN .
  3. $TTL 3600 ; 1 hour
  4. lnh.com IN SOA op.lnh.com. dns.lnh.com. (
  5. 2002 ; serial
  6. 900 ; refresh (15 minutes)
  7. 600 ; retry (10 minutes)
  8. 86400 ; expire (1 day)
  9. 3600 ; minimum (1 hour)
  10. )
  11. NS op.lnh.com.
  12. $ORIGIN lnh.com.
  13. shanks A 1.2.3.4
  14. op A 1.2.3.4
  15. a A 192.168.122.100
  16. cname CNAME a.lnh.com.

重载

  1. [root@web02 var]# rndc reload
  2. WARNING: key file (/etc/rndc.key) exists, but using default configuration file (/etc/rndc.conf)
  3. server reload successful

测试 
dig命令

  1. [root@web02 var]# dig @192.168.56.14 cname.lnh.com
  2. ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> @192.168.56.14 cname.lnh.com
  3. ; (1 server found)
  4. ;; global options: +cmd
  5. ;; Got answer:
  6. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33724
  7. ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1
  8. ;; QUESTION SECTION:
  9. ;cname.lnh.com. IN A
  10. ;; ANSWER SECTION:
  11. cname.lnh.com. 3600 IN CNAME a.lnh.com.
  12. a.lnh.com. 3600 IN A 192.168.122.100
  13. ;; AUTHORITY SECTION:
  14. lnh.com. 3600 IN NS op.lnh.com.
  15. ;; ADDITIONAL SECTION:
  16. op.lnh.com. 3600 IN A 1.2.3.4
  17. ;; Query time: 1 msec
  18. ;; SERVER: 192.168.56.14#53(192.168.56.14)
  19. ;; WHEN: Wed Aug 17 02:32:44 2016
  20. ;; MSG SIZE rcvd: 96

host 命令

  1. [root@web02 var]# host cname.lnh.com 127.0.0.1
  2. Using domain server:
  3. Name: 127.0.0.1
  4. Address: 127.0.0.1#53
  5. Aliases:
  6. cname.lnh.com is an alias for a.lnh.com.
  7. a.lnh.com has address 192.168.122.100

MX记录

编辑master节点 /var/named/chroot/etc/lnh.com.zone,在文件末尾添加

  1. [root@web02 var]# vim /var/named/chroot/etc/lnh.com.zone

serial值+1 
执行rndc reload命令 
分别对master、slave解析下:host mx.lnh.com 127.0.0.1 结果应该是192.168.122.101 
修改后:

  1. [root@web02 var]# cat /var/named/chroot/etc/lnh.com.zone
  2. $ORIGIN .
  3. $TTL 3600 ; 1 hour
  4. lnh.com IN SOA op.lnh.com. dns.lnh.com. (
  5. 2003 ; serial
  6. 900 ; refresh (15 minutes)
  7. 600 ; retry (10 minutes)
  8. 86400 ; expire (1 day)
  9. 3600 ; minimum (1 hour)
  10. )
  11. NS op.lnh.com.
  12. $ORIGIN lnh.com.
  13. shanks A 1.2.3.4
  14. op A 1.2.3.4
  15. a A 192.168.122.100
  16. cname CNAME a.lnh.com.
  17. mx MX 5 192.168.122.101

修改完配置文件后重载,过于简单,此处不写了。要是还不会可以跳楼去了 
测试:

  1. [root@web02 var]# host mx.lnh.com 127.0.0.1
  2. Using domain server:
  3. Name: 127.0.0.1
  4. Address: 127.0.0.1#53
  5. Aliases:
  6. mx.lnh.com mail is handled by 5 192.168.122.101.lnh.com.

智能DNS配置

主库: 
在master节点上配置

  1. [root@bogon ~]# cat /var/named/chroot/etc/named.conf
  2. options {
  3. version "1.1.1";
  4. listen-on port 53 {any;};
  5. directory "/var/named/chroot/etc/";
  6. pid-file "/var/named/chroot/var/run/named/named.pid";
  7. allow-query { any; };
  8. Dump-file "/var/named/chroot/var/log/binddump.db";
  9. Statistics-file "/var/named/chroot/var/log/named_stats";
  10. zone-statistics yes;
  11. memstatistics-file "log/mem_stats";
  12. empty-zones-enable no;
  13. forwarders {202.106.196.115;8.8.8.8; };
  14. };
  15. key "rndc-key" {
  16. algorithm hmac-md5;
  17. secret "Eqw4hClGExUWeDkKBX/pBg==";
  18. };
  19. controls {
  20. inet 127.0.0.1 port 953
  21. allow { 127.0.0.1; } keys { "rndc-key"; };
  22. };
  23. logging {
  24. channel warning {
  25. file "/var/named/chroot/var/log/dns_warning" versions 10 size 10m;
  26. severity warning;
  27. print-category yes;
  28. print-severity yes;
  29. print-time yes;
  30. };
  31. channel general_dns {
  32. file "/var/named/chroot/var/log/dns_log" versions 10 size 100m;
  33. severity info;
  34. print-category yes;
  35. print-severity yes;
  36. print-time yes;
  37. };
  38. category default {
  39. warning;
  40. };
  41. category queries {
  42. general_dns;
  43. };
  44. };
  45. acl group1 { 新添加
  46. 192.168.56.13;
  47. };
  48. acl group2 {
  49. 192.168.56.14;
  50. };
  51. include "/var/named/chroot/etc/view.conf";

清空原配置文件

  1. [root@bogon ~]# vim /var/named/chroot/etc/view.conf 删除里面的内容
  2. view "GROUP1" {
  3. match-clients { group1; };
  4. zone "viewlnh.com" {
  5. type master;
  6. file "group1.viewlnh.com.zone";
  7. };
  8. };
  9. view "GROUP2" {
  10. match-clients { group2; };
  11. zone "viewlnh.com" {
  12. type master;
  13. file "group2.viewlnh.com.zone";
  14. };
  15. };

vim /var/named/chroot/etc/group1.viewlnh.com.zone

  1. $ORIGIN .
  2. $TTL 3600 ; 1 hour
  3. viewlnh.com IN SOA op.viewlnh.com. dns.viewlnh.com. (
  4. 2005 ; serial
  5. 900 ; refresh (15 minutes)
  6. 600 ; retry (10 minutes)
  7. 86400 ; expire (1 day)
  8. 3600 ; minimum (1 hour)
  9. )
  10. NS op.viewlnh.com.
  11. $ORIGIN viewlnh.com.
  12. op A 192.168.122.1
  13. view A 192.168.122.1

vim /var/named/chroot/etc/group2.viewlnh.com.zone

  1. $ORIGIN .
  2. $TTL 3600 ; 1 hour
  3. viewlnh.com IN SOA op.viewlnh.com. dns.viewlnh.com. (
  4. 2005 ; serial
  5. 900 ; refresh (15 minutes)
  6. 600 ; retry (10 minutes)
  7. 86400 ; expire (1 day)
  8. 3600 ; minimum (1 hour)
  9. )
  10. NS op.viewlnh.com.
  11. $ORIGIN viewlnh.com.
  12. op A 192.168.122.2
  13. view A 192.168.122.2

MASTERSlave都进行测试

  1. [root@bogon ~]# host view.viewlnh.com 192.168.56.13
  2. Using domain server:
  3. Name: 192.168.56.13
  4. Address: 192.168.56.13#53
  5. Aliases:
  6. view.viewlnh.com has address 192.168.122.1
  7. ==================分割线========================
  8. [root@bogon ~]# host view.viewlnh.com 192.168.56.13
  9. Using domain server:
  10. Name: 192.168.56.13
  11. Address: 192.168.56.13#53
  12. Aliases:
  13. view.viewlnh.com has address 192.168.122.2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/575968.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

打包jar文件后的spring部署及hibernate自动建表经验总结

楔子 用springhibernate做一个服务器运行程序&#xff0c;在部署到服务器时&#xff08;打包成jar&#xff0c;在window server2008下运行&#xff09;&#xff0c;出现了以下两个纠结问题&#xff1a; 1. 加载不了Spring容器 2. hibernate.hbm2ddl.auto 到了服务器不能自动建表…

我是一个线程 [转]

我是一个线程&#xff0c;我一出生就被编了个号&#xff1a;0x3704&#xff0c;然后被领到一个昏暗的屋子里&#xff0c;在这里我发现了很多和我一模一样的同伴。 我身边的同伴0x6900 待的时间比较长&#xff0c;他带着沧桑的口气对我说&#xff1a;“我们线程的宿命就是处理包…

自动化运维之–Cobbler

Cobbler 自动化 Cobbler简介 Cobbler是一个快速网络安装linux的服务&#xff0c;而且在经过调整也可以支持网络安装windows。该工具使用python开发&#xff0c;小巧轻便&#xff08;才15k行python代码&#xff09;&#xff0c;使用简单的命令即可完成PXE网络安装环境的配置&…

开源jumpserver 堡垒机搭建

一、环境 CentOS 6.x x86_64 mini service iptables stop 关闭SELinux的方法&#xff1a; 修改/etc/selinux/config文件中的SELINUX”” 为 disabled &#xff0c;然后重启。 如果不想重启系统&#xff0c;使用命令setenforce 0 1.指定yum源 wget -O /etc/yum.repos.d/e…

Shell 变量及函数讲解 [2]

Shell 变量的输入 Shell变量除了可以直接赋值或脚本传参外&#xff0c;还可以使用read命令从标准输入获得&#xff0c;read为bash内置命令&#xff0c;可以通过help read查看帮助【语法格式】read [参数] [变量名]【常用参数】-p prompt&#xff1a;设置提示信息-t timeout&…

java大作业私人管家系统_重庆管家婆软件丨管家婆工贸PRO的E-MES管理详解

其实&#xff0c;ERP和MES在制造操作中扮演着独立而又互补的角色。ERP能将企业所有方面的数据进行实时、可用的全面集成&#xff0c;为管理决策提供高效、准确的业务决策支持;MES则能加强MRP计划的执行&#xff0c;把MRP计划同车间作业现场控制通过执行系统联系起来。这些“现场…

监控体系 [精]

监控体系 zabbix 监控对象&#xff1a;     1. 监控对象的理解&#xff1a;CPU是怎么工作的&#xff0c;原理     2. 监控对象的指标&#xff1a;CPU使用率 CPU负载 CPU个数 上下文切换     3. 确定性能基准线&#xff1a;怎么样才算故障&#xff1f;CPU负载多…

vs 设置起始页不见了_发朋友圈屏蔽爸妈,结果不小心设置成了仅家人可见...场面一发不可收拾哈哈哈哈!...

一提到爸妈的朋友圈&#xff0c;就会想到养生鸡汤&#xff0c;中老年流量谣言&#xff0c;土味表情包而出于保护个人隐私拒绝被爸妈误解而遭受灵魂拷问的考虑很多人选择了两全其美的分组法给家人看到阳光可爱正能量的一面沙雕的一面只展现给沙雕网友们可如果不小心把屏蔽的内容…

KVM 安装

KVM介绍 Kernel-based Virtual Machine的简称&#xff0c;是一个开源的系统虚拟化模块&#xff0c;自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理&#xff0c;所以相对于Xen&#xff0c;其核心源码很少。KVM目前已成为学术界的主流VMM之…

彼聆智能语音机器人_电销行业的人工智能:智能语音电话机器人

随着人工智能的发展&#xff0c;越来越多的机器人出现在我们的日常生活中&#xff0c;用于电话营销公司的自动打电话机器人、快递公司用来送快递的机器人、餐厅里用来上菜的机器人&#xff0c;最近更是有一款会后空翻的机器人。机器人正活跃在各行各业中&#xff0c;代替人类去…

Shell 基础介绍 [1]

本文目录1.什么是Shell&#xff1f;2.脚本语言类型3.其他常用的脚本语句种类4.Shell脚本的建立和执行5.Shell 变量类型6.普通变量7.Shell 特殊重要变量8.Shell进程状态变量9.Parameter Expansion10.扩展&#xff1a;其他变量的替换11.变量的数值&#xff08;整数&#xff09;计…

c++创建二叉树_数据结构:查找(4)|| 平衡二叉树

在介绍平衡二叉树之前&#xff0c;应该先了解平衡因子的概念&#xff0c;平衡因子定义为左子树深度减去右子树深度&#xff0c;这个值的绝对值越大&#xff0c;非常容易理解它就对应着越不平衡的情况。一棵平衡的二叉树的平衡因子只能是1&#xff0c;0&#xff0c;-1如何构建一…

华睿相机sdk 开发_索尼发布相机远程操作SDK(软件开发工具包)

索尼从2020年12月9日开始&#xff0c;向开发者免费提供针对索尼数码相机的软件开发工具包“ Camera Remote SDK” 1.03版。“ Camera Remote SDK”开发的软件可以远程更改相机设置、并执行诸如快门释放&#xff0c;实时取景监视(如取景和对焦)之类的操作。支持的操作系统包括Wi…

Linux 字体颜色设置

本文主要介绍Linux 字体颜色的调整&#xff0c;常用于shell脚本当中。我们举一个例子&#xff1a;echo-e"\033[44;37;5m ME \033[0m COOL" 以上命令设置背景成为蓝色&#xff0c;前景白色&#xff0c;闪烁光标&#xff0c;输出字符“ME”&#xff0c;然后重新设置屏幕…

利用Unity实现AOP

.NET程序中&#xff0c;可以利用Unity来实现AOP&#xff0c;用来进行日志、缓存或权限的处理。这里我们来写一个简单的程序&#xff0c;让其实现简单的AOP功能。 1.使用NuGet&#xff0c;在项目中获取Microsoft.Practices.Unity。 2.新建一个ITalk类及其实现 public interface …

javascript数组的各种操作

用 js有非常久了&#xff0c;但都没有深究过js的数组形式。偶尔用用也就是简单的string.split(char)。这段时间做的一个项目&#xff0c;用到数组的地方非常多&#xff0c;自以为js高手的自己竟然无从下手&#xff0c;一下狠心&#xff0c;我学&#xff01;呵呵。学了之后才知道…

老男孩Shell企业面试题30道 [答案]

老男孩Shell企业面试题 shell 2016年9月7日 本文来自于老男孩教育,未经本人同意&#xff0c;禁止转载&#xff01;否则追究法律责任。 原文&#xff1a;http://oldboy.blog.51cto.com/2561410/1632876 企业面试题1&#xff1a; &#xff08;生产实战案例&#xff09;&#x…

深度优化LNMP之Nginx [1]

Nginx基本安全优化 1.调整参数隐藏Nginx版本号信息一般来说&#xff0c;软件的漏洞都和版本有关&#xff0c;因此我们应尽量隐藏或清除Web服务队访问的用户显示各类敏感信息&#xff08;例如&#xff1a;Web软件名称及版本号等信息&#xff09;&#xff0c;这样恶意的用户就很难…

5阶无向完全图_运动轿跑风 全新上汽名爵5预告图发布

【太平洋汽车网 新车频道】近日&#xff0c;上汽名爵官方发布了一组全新一代名爵5&#xff08;询底价|查参配&#xff09;的预告图。从图片可以看出&#xff0c;换代而来的全新名爵5采用最新的家族化设计语言&#xff0c;外观风格与新款名爵6较为接近&#xff0c;采用轿跑式溜背…

Shell 企业29道面试题 [转]

企业面试题1&#xff1a;&#xff08;生产实战案例&#xff09;&#xff1a;监控MySQL主从同步是否异常&#xff0c;如果异常&#xff0c;则发送短信或者邮件给管理员。提示&#xff1a;如果没主从同步环境,可以用下面文本放到文件里读取来模拟&#xff1a; 阶段1&#xff1a;开…