我不熟悉 CentOS,我需要幫助來完成此路由。我有一個 CentOS 機器,有 3 個網卡。
eth0 Link encap:Ethernet
inet addr:10.50.121.16 Bcast:10.50.121.255 Mask:255.255.255.0
eth1 Link encap:Ethernet
inet addr:10.50.128.134 Bcast:10.50.128.255 Mask:255.255.255.0
eth2 Link encap:Ethernet
inet addr:10.50.140.97 Bcast:10.50.140.255 Mask:255.255.255.0
eth0 是一個現有接口,它有預設路由,我添加了 eth1 和 eth2。 eth1 和 eth2 網段上都有網關(兩者上的 .1 位址)。我需要在 eth1 和 eth2 NIC 之間有一些網路流量(透過它們各自的網關)來進行一些測試。所以我想我需要為此設定策略路由?
編輯:抱歉要澄清,我並不是說我正在嘗試在兩個新介面之間路由資料包。我需要透過一些基礎設施將一些資料包從 eth1 的 IP 發送到 eth2 的 IP(從而模擬 eth1 的 vlan 和 eth2 的 vlan 之間的對話)。所以我想這樣做 eth1 -> eth1-vlan-router -> ??? -> eth2-vlan-router->eth2 然後能夠使用反向路由回覆。我很遺憾這裡沒有完全清楚。
答案1
修改/etc/sysctl.conf
並啟用 ipv4 路由。
net.ipv4.ip_forward = 1
然後運行sysctl -p
以應用設定。
若要顯示 的目前值net.ipv4.ip_forward
,請使用:
sysctl net.ipv4.ip_forward
答案2
您將無法使用標準網路 API 來執行此操作。
Linux 網路堆疊使用所謂的弱宿主模型,這特別意味著分配給本地介面的任何位址都被視為本地位址。如果您嘗試將封包傳送到本機接口,它將在本地循環,並且永遠不會到達網路。
雖然您可能可以使用原始套接字來破解某些東西,但最好的解決方案很可能是使用第二台主機,也許是作為虛擬機器實現的。