填充Samba AD反向区域

时间:2019-02-25 14:13:02

标签: linux dns samba

问题是要填充内部samba4 DNS实现中正向DNS区域中找到的反向区域PTR记录。

可以使用以下命令捕获前向区域输出:

samba-tool dns query adserver example.com @ A

输出具有以下格式:

  Name=, Records=0, Children=0
  Name=host1, Records=1, Children=0
    A: 192.168.0.12 (flags=f0, serial=2, ttl=900)
  Name=host2, Records=1, Children=0
    A: 192.168.0.13 (flags=f0, serial=5, ttl=900)

需要的是用于自动创建反向区域记录的脚本。

1 个答案:

答案 0 :(得分:0)

这是python中的示例脚本:

import socket
import re
import sys

dns_server = sys.argv[1]
zone_name = sys.argv[2]
dns_file = open(sys.argv[3],'r')
current_hostname = ""
for line in dns_file:
    match_name = re.match( r'^\s*Name=([-0-9A-Za-z]+),',line)
    if match_name:
        current_hostname=match_name.group(1)
    match_addr = re.match( r'^\s*A:\s*(\d+)\.(\d+)\.(\d+)\.(\d+)\s+',line)
    if current_hostname and match_addr:
        current_addr=\
           match_addr.group(1) + "." + \
           match_addr.group(2) + "." + \
           match_addr.group(3) + "." + \
           match_addr.group(4)
        print "samba-tool dns add " + dns_server + " " + \
             match_addr.group(3) + "." + \
             match_addr.group(2) + "." + \
             match_addr.group(1) + ".in-addr.arpa " + \
             match_addr.group(4) + " PTR " + \
             current_hostname + "." + zone_name
dns_file.close()

该脚本将输出一系列samba-tool命令,这些命令将自动创建反向区域记录。