DNS脚本说明
2022/9/29大约 2 分钟
说明
文件路径:
测试环境:172.18.70.203
路径:
/usr/lib/uraid/scripts/dns
命令参数:
通过 sh 启动:/usr/lib/uraid/scripts/dns/dns-bind.sh
optional arguments:
-h, --help show this help message and exit
-method METHOD 方法包含
start_bind:同步uetcdc中数据,启动bind
add_conf:添加配置项
del_conf:删除配置项
list: 显示所有域名
若指定 -addr 则显示对应域名的所有ip
-ip IP ip地址
-addr ADDR 域名
首先要从 utecd 中导入数据,启动 bind:
/usr/lib/uraid/scripts/dns/dns-bind.sh -method start_bind添加配置项:
/usr/lib/uraid/scripts/dns/dns-bind.sh -method add_conf -ip 192.168.1.1 -addr www.abc.com 注:添加配置项时,可以单独配置域名,然后再配置ip,也可以一同配置,但不能单独配置ip
删除配置项:
/usr/lib/uraid/scripts/dns/dns-bind.sh -method del_conf -ip 192.168.1.1 -addr www.abc.com
列出所有域名:
/usr/lib/uraid/scripts/dns/dns-bind.sh -method list列出对应域名的 ip:
/usr/lib/uraid/scripts/dns/dns-bind.sh -method list -addr abc.com
返回值类型:
添加配置项:
{'result': {'code': 0, 'msg': ['添加IP成功', '添加域名成功']},
'data': [{'www.kkk.com.': ['172.14.1.1', '172.14.1.3']},
{'qwe.kkk.com': ['172.14.1.2']},
{'www.kkk.com': ['172.14.1.1', '172.14.1.3']}],
'end': 1}
列出所有域名:
{'data': ['localhost.localdomain', 'localhost', 'kkk.come', 'iii.come'],
'end': 1,
'result': {'code': 0, 'msg': ['列出所有域名']}}
列出对应域名的ip:
{'data': ['172.14.1.2', '172.14.1.1', '172.14.1.3', '172.14.1.4'],
'end': 1,
'result': {'code': 0, 'msg': ['找到配置文件:kkk.come 对应的ip']}}
定义文件
/usr/lib/uraid/scripts/const.py
NAMED_PATH = '/etc/named.conf' - named配置文件地址
ZONE_CONF_PATH = '/var/named/' - zone配置文件地址
UETCD_NAMED = '/dns-bind/named.rfc1912.zones' - uetcd named配置文件地址
UETCD_ZONE = '/dns-bind/var-named/' - uetcd zone配置文件地址
返回值:CODE...
日志
/usr/local/bind/bind.log
用于记录添加或删除配置项的操作日志
如 add_conf 添加信息 to /var/named/配置文件.zone
使用 uetcdctl 命令查看
- 查看 named.rfc1912.zones 文件
uetcdctl ls dns-bind
uetcdctl get dns-bind/named.rfc1912.zones - 查看 zone 的配置文件
uetcdctl ls dns-bind/var-named
uetcdctl get dns-bind/var-named/{文件名}.zone
and
uetcdctl get dns-bind/var-named/{文件名}.arpa
脚本业务规则说明:
1.删除 ip 和域名:
当前规则为执行删除命令必须要有 -addr 参数,通常执行
python3 dns.py -method del_conf -addr www.abc.com -ip 192.168.1.1
执行上述命令:
1.若域名 addr 下存在多个 ip,则不删除域名,只删除 ip,并返回 "域名下还存在对应的 ip" 的提示
2.若域名 addr 下只有唯一一个 ip,则会默认将 ip 和域名 一同删除,并返回成功
[注意]:若一旦只执行了
-method del_conf -addr www.abc.com 命令 并未携带 -ip 参数,
会正常删除域名,而不删除 ip。若要再删除 ip,则继续执行
-method del_conf -addr www.abc.com -ip 192.168.1.2
删除 ip 和域名命令,即可完成继续删除 ip 动作(或是继续添加域名,可恢复原状)