【问题标题】:Multiple ip addresses with different network routes on the same interface on debian [closed]debian上同一接口上具有不同网络路由的多个IP地址[关闭]
【发布时间】:2017-10-03 05:11:09
【问题描述】:

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

我认为它无法使用ip addr add,但是可以使用像 eth0:0 这样的伪接口吗?还是linux TCP堆栈阻止了这种情况?如果可能的话,如何将多个默认路由绑定到它们的(伪)接口或 IP 地址?它可以使用 iptables 规则吗?

【问题讨论】:

  • 如果你所有的地址都在同一个子网中,内核如何知道使用哪一个来到达给定的目标 IP?
  • 传入的包将被分配给虚拟网络开发(例如 eth0:0)。这有效 - 确认!如果服务绑定到 IP 地址,则流量将通过给定的虚拟网络 dev 进行路由。这也有效 - 确认!但是,如果它们在同一个子网上,我可以为这些设备分配不同的路由吗?看起来只有一个全局路由表。用 iptables 设置标记会起作用吗?
  • AIUI,虚拟网络设备是ipconfig hack,它们根本不存在于内核中。如果您使用新的ip,则没有虚拟设备,而单个设备可以有多个地址。使用ip route 创建的路由条目有一个src参数,它是源IP,也许这有帮助......

标签: linux tcp routing debian iptables


【解决方案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>

这可能会让人很困惑,因为路由现在是多个路由表

【讨论】:

    猜你喜欢
    • 2018-02-26
    • 1970-01-01
    • 1970-01-01
    • 2014-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多