Networking

具有多個 NIC 和靜態路由的 CentOS

  • November 5, 2014

我正在嘗試設置具有 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,反之亦然。

您可以使用以下命令打開 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 gw 1​​92.168.20.2

或者,您可以使用 NAT 和 IPTables

迴聲 1 > /proc/sys/net/ipv4/ip_forward

iptables –flush

iptables -t nat –flush

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

這樣,您只需配置(假設路由到位)路由器。

引用自:https://serverfault.com/questions/642196