您使用什么软件进行中央网络管理?
我的意思是,您记录机器的名称、mac 地址、打开的端口和其他信息,程序会生成 DHCP、DNS 和防火墙配置片段,这些片段将包含在主配置文件中。
例如,中央网络管理器工具在配置文件中有以下字段:
machine1 | 10.0.0.22 | 01:23:45:67:89:ab | 80/tcp, 53/udp, 53/tcp | owner | room
这变成了三个文件,一个用于 DNS
machine1 IN A 10.0.0.22 ; owner , room
一个用于 DHCP
host machine1 { hardware ethernet 01:23:45:67:89:ab; fixed-address 10.0.0.22; } # owner , room
一个用于防火墙(Linux iptables 的示例)
-A mycustomchain -d 10.0.0.22 -p tcp --dport 80 -j ACCEPT # machine1, owner, room
-A mycustomchain -d 10.0.0.22 -p udp --dport 53 -j ACCEPT # machine1, owner, room
手工编写代码并不太难,但是有没有好的现成解决方案和良好的记录?可能的优点:支持不同的 dns、dhcp、防火墙软件,具有类似插件的支持,可以将更新的配置复制到相关服务器并重新启动服务。
我正在寻找一种针对 Linux 系统的工具,但为了完整起见,欢迎使用仅限 Windows 或 BSD 的解决方案。
下面的脚本不会直接回答您的问题,但作为您可以使用 perl 脚本执行的操作类型的示例,它可能很有用。我的设置是一栋有 4 层楼和更受限制的管理网络的建筑物。我使用脚本在新机器到达时添加它们,记录 MAC 地址并为它们提供与它们所在楼层相对应的地址。我使用 $PWD/.floorN 文件来记录地址,以便我可以正确递增。它还添加了正向和反向 DNS 记录以及 IPAC-NG 规则来记录带宽。该脚本对文件的位置和其中是否存在某些文本进行了一些假设,以允许替换新记录。
有两个程序用于生成配置文件;
这属于更广泛的配置管理类别,该类别在 serverfault 的其他地方(例如此处)进行了讨论。我会推荐这种类型的木偶。
这种方法比您谈论的简单示例更深入,但它也允许对您的系统进行更多控制