您现在的位置是:首页 > 文章详情

跨region的智能DNS解决方案(二)-CRUD

日期:2019-09-19点击:474

跨region的智能DNS解决方案(二)-CRUD

对named进行CRUD操作

上文介绍了如何完整的安装named服务,如果有安装不明白的地方请参考:跨region的智能DNS解决方案(一)本章将对之前部署完毕的named服务进行域名记录的CRUD操作。

通过shell脚本来进行CRUD

通过bash命令或者shell脚本来进行CRUD操作的核心命令为nsupdate
构造命令如下:

nsupdate [ -d ] [ [ -y keyname:secret ] [ -k keyfile ] ] [ -v ] [ filename ] -d 调试模式. -k 从keyfile文件中读取密钥信息. -y keyname是密钥的名称,secret是以base64编码的密钥. -v 使用TCP协议进行nsupdate.默认是使用UDP协议. 依照上文所部署的情况,key文件所在路径为/etc/named/keys/keys 执行命令为: cat >> hangzhou.sre.so-zhangjiakou << EOF server 10.1.0.100 update add hangzhou.sre.so. 1 A 10.3.3.3 send quit EOF cat >> hangzhou.sre.so-hangzhou << EOF server 10.1.0.100 update add hangzhou.sre.so. 1 A 10.4.3.3 send quit EOF #指定张家口的key将域名添加到张家口的view上 nsupdate -k /etc/named/keys/keys/Kkey_sreso_zhangjiakou-cloud.+157+34623.key hangzhou.sre.so-zhangjiakou #指定杭州的key将域名添加到杭州的view上 nsupdate -k /etc/named/keys/keys/Kkey_sreso_hangzhou-cloud.+157+57601.key hangzhou.sre.so-hangzhou

通过python来进行CRUD

dnspython是Python实现的一个DNS工具包,它支持几乎所有的记录类型,可以用于查询、传输并动态更新ZONE信息,同时支持TSIG(事务签名)验证消息和EDNS0(扩展DNS)。在系统管理方面,我们可以利用其查询功能来实现DNS服务监控以及解析结果的校验,可以代替nslookup及dig等工具,轻松做到与现有平台的整合。

pip install dnspython 

具体使用请参考github

# 添加transfer.key内容 key名称key内容 import sys import dns.update import dns.query import dns.resolver import dns.tsigkeyring keyring = dns.tsigkeyring.from_text({ 'key_sreso_hangzhou-cloud': 'mu+qLSESeR4AHbFdEiUs73xx1ODWeb9WzhfcNPSO0r/8OqTTNrnahHpe/4peySKMbhnJCnqsZxAzPjiVOPNHlg==' # 'key_sreso_default': 'rkUWa/RQB+Rnil5kWvP/vBMEmEETx3NPmuuxSWbWLHsCp+fI93HqMdpqIm/zSKcvNsts1NYsnzulNW7nqyIVtg==' # 'key_sreso_zhangjiakou-cloud': 'mspmOPCmYFQuDWJYoauzIT8rPXCP+RTUHW0sDwM++IzLt/syidjSrQ5SjsOqeO+LJNGKhR3g+hO7FDzN04b2gQ==' }) # 实例化一个DNS对象 update = dns.update.Update('sre.so.', keyring=keyring) update.replace('aliyun', 1, 'A', sys.argv[1]) response = dns.query.tcp(update, '10.1.0.100', timeout=10) 源码解析: replace方法传参第一个必须是name(也就是域名)后面依次可以为 记录值 ttl+记录值 ttl+记录类型+记录值

如何检测DNS

通过dig命令加指定key的方式可以返回对应的记录结果。
也可以通过dig axfr 加指定key的方式可以返回根域所有记录结果。

dig命令详解

dig(选项)(参数)

选项

@<服务器地址>:指定进行域名解析的域名服务器;
-b:当主机具有多个IP地址,指定使用本机的哪个IP地址向域名服务器发送域名查询请求;
-f<文件名称>:指定dig以批处理的方式运行,指定的文件中保存着需要批处理查询的DNS任务信息;
-P:指定域名服务器所使用端口号;
-t<类型>:指定要查询的DNS数据类型;
-x:执行逆向域名查询;
-4:使用IPv4;
-6:使用IPv6;
-h:显示指令帮助信息。

参数

1 主机:指定要查询域名主机;
2 查询类型:指定DNS查询的类型;
3 查询类:指定查询DNS的class;
4 查询选项:指定查询选项。

dig -k /etc/named/keys/keys/Kkey_sreso_hangzhou-cloud.+157+57601.key mvp.sre.so @10.1.0.100 ; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7 <<>> -k /etc/named/keys/keys/Kkey_sreso_hangzhou-cloud.+157+57601.key mvp.sre.so @10.1.0.100 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54843 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;mvp.sre.so. IN A ;; ANSWER SECTION: luolmvpi.sre.so. 1 IN A 1.1.3.41 ;; TSIG PSEUDOSECTION: key_sreso_hangzhou-cloud. 0 ANY TSIG hmac-md5.sig-alg.reg.int. 1568890339 300 16 p9ctS8CcZcbzwUA+q1UOoA== 54843 NOERROR 0 ;; Query time: 0 msec ;; SERVER: 10.1.0.100#53(10.1.0.100) ;; WHEN: Thu Sep 19 18:52:19 CST 2019 ;; MSG SIZE rcvd: 151 dig axfr -k /etc/named/keys/keys/Kkey_sreso_hangzhou-cloud.+157+57601.key sre.so @10.1.0.100 ;; global options: +cmd sre.so. 600 IN SOA sre.so. root.sre.so. 2019012811 28800 14400 3600000 86400 sre.so. 600 IN NS ns1.sre.so. mvp.sre.so. 1 IN A 1.1.3.41 ns1.sre.so. 600 IN A 10.1.0.100 mvp.sre.so.sre.so. 1 IN A 1.1.3.41 pytho11n.sre.so.sre.so. 300 IN A 1.1.1.1 pytho11nasfa.sre.so.sre.so. 1 IN A 1.1.1.1 python.sre.so.sre.so. 300 IN A 1.1.1.1 wangmvp.sre.so.sre.so. 1 IN A 1.1.1.4 sre.so. 600 IN SOA sre.so. root.sre.so. 2019012811 28800 14400 3600000 86400 key_sreso_hangzhou-cloud. 0 ANY TSIG hmac-md5.sig-alg.reg.int. 1568891019 300 16 +gfZ2D9TorSB+2m4mQ3DaQ== 7853 NOERROR 0 ;; Query time: 0 msec ;; SERVER: 10.1.0.100#53(10.1.0.100) ;; WHEN: Thu Sep 19 19:03:39 CST 2019 ;; XFR size: 10 records (messages 1, bytes 394)

Q&A

  • 日志返回deny 请检查key的权限是否为600
  • dig axfr 不能正常返回,请确认所在服务器是否在view的acl范围内
原文链接:https://yq.aliyun.com/articles/718877
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章