具有多个 NIC 和静态路由的 CentOS

具有多个 NIC 和静态路由的 CentOS

我正在尝试设置具有 3 个 NIC 和静态路由的 CentOS。eth0 的 IP 地址为 192.168.10.2 和 GW:192.168.10.1,eth1 的 IP 地址为 192.168.20.2 和 GW:192.168.20.1,eth2 的 IP 地址为 192.168.10.3 和 GW:192.168.10.1。

我想在 eth1 上接受来自其他机器的流量(我已将服务器的 eth1 设置为这些客户端机器的网关)并通过 eth2 将其发送到路由器,反之亦然(反向路径)。

已将路线添加到系统

ip route add default via 192.168.10.3 dev eth1  proto static  metric 1024

现在我面临的问题是,流量在 eth1 上接收,但没有通过 eth2。它看起来像是通过 eth0。

我暂时不想使用 NAT 或 IPTABLES,是否可以将 eth1 的流量路由到 eth2 以及反之亦然。

答案1

您可以使用以下方式开启 IP 转发

回显 1 > /proc/sys/net/ipv4/ip_forwarding

但这只是事实的一半。不使用 NAT 意味着所有主机都需要知道哪个路由器(网关)服务于哪个网络。例如,192.168.10.0/24 中的一台机器(例如 192.168.10.25)希望连接到 192.168.20.0/24 中的一台机器(例如 192.168.20.25),在一个网络中使用 192.168.10.3,在另一个网络中使用 192.168.20.2。机器 192.168.10.25 需要此路由

路由添加-net 192.168.20.0 网络掩码 255.255.255.0 gw 1​​92.168.10.3

并且机器 192.168.20.25 需要

路由添加-net 192.168.10.0 网络掩码 255.255.255.0 网关 192.168.20.2

或者,你可以使用 NAT 和 IPTables

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables --flush

iptables -t nat——刷新

iptables -t mangle --flush

iptables -A 输入 -i lo -j 接受

iptables -A 输出 -o lo -j 接受

iptables --policy 输入接受

iptables --policy 输出接受

iptables --policy 转发接受

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

这样,您只需配置(假设路由已到位)路由器。

相关内容