商业案例:
一台电脑有eth0和eth1,eth0的地址是192.168.1.2(静态)。eth0是被配置软件用来在现场配置eth1的地址的。eth0仅用于此目的。
PC ---- [eth0 Linux Computer eth1] ----- server
eth1 是连接到服务器,客户将从这台计算机获取数据并存储在服务器上。PC 不得以任何方式访问服务器。Linux 计算机应该不是将任何数据包从 PC 重新传送到服务器,或从服务器重新传送到 PC。Linux 计算机不是桥梁。
问题 1:
如果字段中分配的 eht1 IP 是 192.168.1.100 并且与 eth0 位于同一子网,这会引起问题吗? 如果应用程序软件在 192.168.1.2 上监听,并通过 PC 192.168.1.3 连接,并且如果应用程序软件使用此连接发送回 PC,操作系统会知道应该使用哪个 NIC 吗?
如果现场人员将 eth1 设置为 192.168.1.2,即相同的 IP 地址,Linux 应用程序是否会在 eth0 上监听并仍正确响应 PC?
或者,我应该限制现场人员分配 eth1 具有相同的子网吗?
问题2:
因为相信问题1是可能的。那么eth0和eth1可以有相同的IP地址吗?
计划是让 Linux PC 只监听 TCP 端口,并且只响应来自 PC 或服务器的连接。因此,一旦连接,软件就知道要通过哪个 NIC 进行回复。
此外,如果 Linux PC 从未发起任何 IP 活动,甚至从未进行 Ping 操作,那么 PC 和服务器是否也可以具有相同的 IP。
答案1
如果您谈论的是两个具有相同子网和相同子网掩码的(物理上)分离的网络,则 Eth0 具有 192.168.1.0/24 子网,而 Eth1 具有相同的 192.168.1.0/24 子网,即使这两个网络在物理上是分离的:
是的。这会给您带来问题,您的 Linux 计算机不一定知道使用哪个接口来处理 192.168.1.0 子网上的请求,事实上,它可能会假设两个接口都连接到同一个物理网络,优先考虑一个接口,而忽略另一个接口。
最简单的解决方法是更改 eth1 或 eth0 的 IP 地址的第三位数字,以确保它们位于不同的子网上,以免 Linux 机器不知道使用哪个接口来发送数据包。
答案2
我认为你想要实现的是桥。
这意味着接口之间不涉及路由。只是数据包从一个接口转发到另一个接口。