我们有AT& T U-Verse互联网服务,它有一个非常愚蠢的DSL网关.
我们有5个IP(网络掩码248),但网关除了单个IP之外无法做任何事情 – >单MAC地址映射.
我们有一台防火墙机器,我们将不同的IP /端口组合重定向到DMZ内的不同位置.
到目前为止,我们的解决方案是在防火墙上安装一个VMWare虚拟机,其中还有4个额外的NIC,以获得其他4个IP地址……但是我们遇到了问题.
网关基本上是在进行ARP ping,以查看IP是否在预期的MAC上进行响应.由于4个NIC都在同一个LAN上,因此linux使用单个接口响应所有IP的ARP请求.这不是网关所期望的,而且它正在弄乱其他3个网卡.网关拒绝为ARP ping结果不是预期MAC的IP路由传入流量.
我们怎样才能获得eth0的IP的ARP回复出去eth0,eth1的IP出去eth1等?
编辑
克里斯托弗·卡塞尔的回应在这种情况下不起作用.我很有希望阅读它,但是……不.
编辑2
解决了!请参阅下面的答案.
您选择的解决方案有效,但有些替代方案不涉及arptables. (克里斯托弗·卡塞尔最初是在正确的轨道上,但是他被一个小鬼吓坏了.)
简而言之,您需要设置以下参数:
net.ipv4.conf.all.arp_ignore=1 net.ipv4.conf.all.arp_announce=2
运行现代2.6系列Linux内核时,这些应该可用.检查并确保您的系统上存在’/ proc / sys / net / ipv4 / conf // arp_announce’和/ proc / sys / net / ipv4 / conf // arp_ignore’.
‘arp_filter’参数仅在您的各种IP地址共享LAN段但使用不同的IP子网时才有效.如果他们共享IP子网,则需要使用’arp_ignore’和’arp_announce’,如上所述.
(我相信你也可能需要将’arp_filter’设置回’0′.)