Linux PC 上的多个网络接口

Linux PC 上的多个网络接口

我有一个与 Linux PC 上的多个网络接口相关的问题。

假设我有两个连接的网络接口。假设两个网络接口都连接到 LAN。假设一个 LAN(连接到eth0)有 IP 地址192.168.10.*,另一个 LAN(连接到eth1)有 IP 地址192.168.20.*.

我如何配置 Linux ,以便发送到以 开头的任何 IP 地址的所有请求192.168.10.都将被发送,eth0并且发送到以 开头的任何 IP 地址的所有请求192.168.20.都将被发送eth1

答案1

您无需执行任何特殊操作。接口路由默认添加,并执行此操作。系统将从“最接近”数据包目的地的接口发送流量。

答案2

@David Schwartz 是正确的。但您还需要确保子网掩码设置正确。在上述情况下,您需要将两个接口的子网掩码设置为 255.255.255.0。

您最初的问题是指出两个接口后面都有一个 LAN(而不是“Internet”),因此上述内容对于这种情况是正确的。

如果你希望机器在子网之间转发流量(子网 = LAN),你需要确保echo 1/proc/sys/net/ipv4/ip_forward- 还要确保您的iptables设置为不过滤任何内容。如果不这样做,两个 LAN 后面的机器都可以访问 Linux 机器,但无法访问另一个 LAN。

现在,您似乎希望有一个接口可以同时连接互联网和 LAN。如果所讨论的 LAN 有路由器并且您知道该路由器的 IP 地址,则可以做到这一点。您可以设置 Linux 机器的默认网关到路由器的 IP 和子网。(如果任何 LAN 上都没有通向 Internet 的路由器,则根本无需设置默认网关。)

当您“重新启动 eth1”时发生的情况很可能是 eth1 通过 DHCP 从路由器获取 IP,并且当您执行此操作时,您的 IP 地址和默认路由分配实际上正在发生变化。

如果您的 DHCP 在路由器的 LAN 上设置正确,并且具有 IP 保留或类似功能,那么您可能只需让 DHCP 来处理它。

相关内容