我们最近开始尝试使用IPv6,我们不得不面对的第一个问题是处理两个协议栈的完全独立的防火墙(
Linux iptables / ip6ables)规则.我们的防火墙逻辑主要基于许多特定于目的的网络(例如,10.0.0.0/24是人员工作站网络,10.1.0.0 / 24是数据库网络,10.2.0.0/24是Web服务器网络,等等并且,IPv6和IPv4的逻辑将大致相同,模块化不同的网络前缀.
人们在做什么来管理这种情况?理想情况下,我希望能够从相同的源文件生成iptables和ip6table规则集.我已经用bash把一些东西扔到了一起,但它不一定漂亮,我怀疑在那里的某个地方必须存在一个更好的解决方案.
我会对基于Puppet的解决方案特别感兴趣,该解决方案充分利用Puppet自己的依赖机制来实现规则(或规则组)的相对排序.
解决方法
Firewall Builder正是您所需要的.您可以创建一个规则集,将其标记为“combined ipv4 ipv6”,并将分配给同一段(例如“数据库网络”etC)的ipv4和ipv6网络放在同一规则中.然后程序生成两个单独的iptables配置,一个用于ipv4,另一个用于ipv6. “用户指南”的这一章说明了这一点,尽管它使用Cisco路由器访问列表作为示例.对于iptables,它的工作方式完全相同.
http://www.fwbuilder.org/4.0/docs/users_guide5/combined-ipv4-ipv6-rule-set.html