Linux中同一子网上的两个网络接口和两个IP地址
最近,我遇到了这样的情况:我需要在分配给一个Linux主机的同一子网上使用两个IP地址,以便我们可以运行两个SSL / TLS站点。我的第一种方法是使用IP别名,例如使用eth0:0,eth0:1等,但是我们的网络管理员对安全性设置了一些相当严格的设置,从而压制了这个想法: 他们使用DHCP监听,通常不允许使用静态IP地址。静态寻址是通过使用静态DHCP条目完成的,因此相同的MAC地址始终获得相同的IP分配。如果您有要求,可以在每个切换端口禁用此功能(原因是我与网络人员的关系很好,这并不难做到)。 在交换机端口上禁用DHCP侦听的情况下,他们必须在交换机上制定一条规则,即允许该MAC地址X具有IP地址Y。不幸的是,这样做的副作用还在于,仅允许MAC地址X具有IP地址Y。IP别名要求为MAC地址X分配两个IP地址,因此这不起作用。 在交换机配置上可能已经有解决这些问题的方法,但是为了保持与网络管理员的良好关系,我尝试寻找另一种方法。拥有两个网络接口似乎是下一步的逻辑。幸运的是,该Linux系统是一台虚拟机,因此我能够轻松添加第二个网络接口(无需重新启动,我可能会添加-非常酷)。几次击键后,我启动了两个网络接口并运行,并且两个接口都从DHCP提取了IP地址。 但是随后出现了问题:网络管理员可以看到(在交换机上)两个接口的ARP条目,但是只有我提出的第一个网络接口才能响应ping或任何类型的TCP或UDP流量。 经过大量的挖掘和戳戳后,这就是我的想法。它似乎可行,但是对于看起来应该很简单的某些事情,它似乎也需要大量工作。还有其他想法吗? 步骤1:在所有接口上启用ARP过滤: # sysctl -w net.ipv4.conf.all.arp_filter=1 # echo "net.ipv4.conf.all.arp_filter = 1" >> /etc/sysctl.conf 从Linux内核文档中的文件networking / ip-sysctl.txt中: arp_filter - BOOLEAN 1 - Allows you to have multiple network interfaces on the same subnet, and have the ARPs for each interface be answered based on …