2017-05-04 121 views
1

我想在debian的同一个物理网卡上配置一个带有多个ip地址(在同一子网中)的debian盒,而每个地址都应该使用它自己的地址网络路由。在debian的同一个接口上有不同网络路由的多个ip地址

我认为它不能使用ip addr add,但它可能使用伪接口,如eth0:0?或者,linux TCP堆栈是否阻止了这个?如果可能的话,我如何将多个默认路由绑定到它们的(伪)接口或IP地址?它将能够使用iptables的roules和哪些?

+0

如果你所有的地址都在同一个子网中,内核如何知道使用哪一个来获得给定的目的IP? – rodrigo

+0

传入软件包将分配给虚拟网络dev(例如,eth0:0)。这个作品 - 确认! 如果一个服务绑定到一个IP地址,流量将通过给定的虚拟网络开发路由。这也可以 - 确认! 但是,如果它们在同一个子网上,我可以为这些设备分配不同的路由吗?它看起来像只有一个全局路由表。 它会通过设置标记与iptables的工作? –

+0

AIUI,虚拟网络设备是'ipconfig'黑客,它们根本不存在于内核中。如果使用新的'ip',则不存在虚拟设备,而是单个设备可以具有多个地址。而使用'ip route'创建的路由条目有一个'src'参数,它是源IP,可能有助于...... – rodrigo

回答

1

别名不需要做这个,你可以做到这一点与iproute2的

ip addr add <ip> dev eth0 

你再添加路由到特定IP路由表

ip route add subnet dev eth0 table <tableid> 
ip route add default via <GATEWAY> table <tableid> 

然后添加规则,IP匹配等等它使用的具体表

ip rule add from any to <ip> lookup <tableid> 
ip route add from <ip> to any lookup <tableid> 

这可能会非常困惑,因为路由是n ow多个路由表

相关问题