我正在RedHat 6上建立一个网络监控系统,它将从内联分路器接收数据包.该设备的一个功能是运行Snort.将两个NIC放入系统中进行分接是没有问题的,但是由于每个snortd实例只能在单个接口上运行,因此分别监视两个接口将破坏大量的流重组和流跟踪.
由于这些NIC只是接收,绑定正确的方式聚合这些接口?文档几乎似乎意味着我,因为我不太关心传输数据包,任何模式都会做我需要的.这是一个有效的假设吗?如果我为此使用粘接,是否有任何奇怪的东西需要注意?
解决方法
警告:我从未在实践中配置过这样的野兽.
您提出的建议应该没问题 – 只要绑定接口只接收任何允许您在两个接口上接收的绑定模式,就可以执行您想要的操作.
我建议使用balance-xor或balance-rr只是因为你不需要分配一个IP(你将以混杂模式监听每个数据包)并且你不会传输所以Round-Robin的潜在缺点或者XOR平衡不会影响您,任何其他方法的好处都是毫无意义的.
我为此实现避免了一些绑定模式:
>模式1(主动备份)
此模式将一个NIC置于“待机”模式.您需要使用绑定模式,其中两个NIC都“活动”(或至少接收数据包),以用于您要执行的操作.
>模式3(广播 – 每个界面发送的所有内容都会消失)
即使正确的点击不允许您将数据放到网络上,您监控它最好是安全而不是抱歉.如果其中一个接口连接到接受数据包的东西,这种模式真的会弄乱你的一天.
>模式4(802.3ad链路聚合)
由于这需要一个了解802.3ad链路聚合的交换机,并且您正在插入一个分路器,这可能无法正常工作.
另一种选择是使用类似Netgraph system(one2many模块是最佳候选者)的东西来构建一个重新组合流量的虚拟接口(并最终将其发送到黑洞,IDS在输出端监听) .这对于BSD系列操作系统来说是一个更可行的解决方案,尽管有适用于Linux的Netgraph实现.