debian:标准传出 IP / 路由

debian:标准传出 IP / 路由

在 debian squeeze 服务器上,我在 eth0 上获得了 2 个 IP(eth0 和 eth0:1)。打开 TCP 连接时,服务器默认使用 eth0:1 IP。但是我希望它使用主 IP(eth0),因为我希望另一个 IP 仅用于(监听)守护进程。

#/etc/network/interfaces
    auto eth0
    iface eth0 inet static
            address 92.xxx.xxx.92
            netmask 255.255.255.192
            network 92.xxx.xxx.64
            broadcast 93.xxx.xxx.127
            gateway 92.xxx.xxx.65

    auto eth0:1
    iface eth0:1 inet static
            address 108.xxx.xxx.146
            netmask 255.255.255.192
            gateway 108.xxx.xxx.129

#ip route show
    108.xxx.xxx.128/26 dev eth0  proto kernel  scope link  src 108.xxx.xxx.146
    92.xxx.xxx.64/26 dev eth0  proto kernel  scope link  src 92.xxx.xxx.92
    default via 108.xxx.xxx.129 dev eth0  src 108.xxx.xxx.146
    default via 92.xxx.xxx.65 dev eth0

我该怎么做才能让 Debian 使用 92. IP 进行传出连接?当然,另一个应该仍然可以工作。

答案1

你几乎肯定应该只 gateway参数在您的网络配置中(基本上,如果您不知道为什么需要两个,那就不需要)。该gateway参数指定您的机器的默认网关——没有更具体路由的流量应发送到该路由器。在大多数网络上,只有一个路由器符合该标准,即使您可能有其他几个(更具体的)其他网络路由。

答案2

如果由于某些原因您确实需要 2 个不同的 IP 网络同时工作,则应该ip rule在 Linux 上使用。

假设两个 IP 网络“A”和“B”位于同一个 NIC 上。“A”是主网络,即,当从盒子 ping 某些主机时,您希望使用“A”IP 参数,因此您只将“A”的默认网关放入(主)路由表中。如果您需要来自“B”的回复以使用“B”的默认网关,那么您可以使用以下方式进行管理:

  • ip rule add from B_Network/Mask lookup table B_table pref 20000
  • ip route add default via B_gw table B_table

应该首先定义 B_table /etc/iproute2/rt_tables。请参阅拉拉训练中心了解详情。

相关内容