如何将所有流量绑定到特定 NIC 上的特定 IP?

如何将所有流量绑定到特定 NIC 上的特定 IP?

我必须设置几个服务器,每个服务器有 2 个网络接口。由于我对服务器配置和网络还不熟悉,所以我目前正在尝试在虚拟机上模拟一切。

每台服务器将有 2 个 NIC,eth0 和 eth1。所有 eth0 将连接到网关并通过网关连接到互联网。所有 eth1 将连接到私有交换机。eth0 应用于所有外部流量(互联网)。服务器之间的所有流量都应仅通过每台服务器的 eth1(不使用网关)。

如果我理解正确的话,我必须定义(静态)路由。我真正不明白的是网络掩码,以及我是否必须为每个服务器设置路由,或者我是否必须定义一个具有特定网络掩码的路由来覆盖所有 eth1 IP 地址。

假设:

Server A eth0 has the IP 192.168.1.91 (will be later internet).
Server A eth1 has the IP 192.168.1.92 (local network).

Server B eth0 has the IP 192.168.1.93 (will be later internet).
Server B eth1 has the IP 192.168.1.94 (local network).

Server C eth0 has the IP 192.168.1.95 (will be later internet).
Server C eth1 has the IP 192.168.1.96 (local network).

我现在在服务器 A 上定义了一条路由:

route add -net 192.168.1.94 netmask 255.255.255.255 dev eth1
route add -net 192.168.1.96 netmask 255.255.255.255 dev eth1

ip route get 192.168.1.94结果是

192.168.1.94 dev eth1  src 192.168.1.91

ip route get 192.168.1.96结果是

192.168.1.96 dev eth1  src 192.168.1.91

如果我理解正确,那么发往 192.168.1.94(和 96)的数据包现在将通过 eth1 发送。但为什么源 IP 是 192.168.1.91,即使这是 eth0,而 eth1 应该是 192.168.1.92?是否有可能在服务器 B 上看到来自服务器 A 的每个 IP 的请求?假设我在服务器 A 上执行类似 ping 192.168.1.93 的操作,那么我可以在服务器 B 上检查 ping 请求来自哪个 IP 吗?

答案1

您应该能够仅使用默认路线即可。

正如@所解释的那样罗恩·莫平,您的私有网络不需要路由,它是第 2 层,因此主机可以“找到”彼此。不过,在需要此配置的任何配置中,您都需要使用私有 IP(或主机名)。

对于您的互联网 NIC,您可以配置其 IP,并将系统的默认路由设置为您的互联网网关。

具体如何操作取决于您使用什么,但在 CentOS/RedHat/Fedora 上,假设您的互联网网关的 IP 为 10.0.0.1,我会编辑/etc/sysconfig/network以添加:

GATEWAY=10.0.0.1

相关内容