強制來自同一網橋上伺服器的所有流量通過路由器介面
我有一個網橋,來自 192.168.5.0/24 網路的所有主機都連接到它。它們都通過輔助介面 eth1 連接到這個網橋。
我有一個路由器,它通過 192.168.5.1 將此網橋連接到我網路上
的其他人網路(192.168.5.0)
我相信這是因為如果例如 192.168.5.2 要 ping 192.168.5.3 流量會直接進入網橋而不通過我的路由器網關 192.168.5.1
是否可以強制同一子網的所有流量先去路由器?
以下是我的靜態路由的摘錄:
default 192.168.3.1 0.0.0.0 UG 0 0 0 eth0 link-local * 255.255.0.0 U 1002 0 0 eth0 link-local * 255.255.0.0 U 1003 0 0 eth1 192.168.3.0 * 255.255.255.0 U 0 0 0 eth0 192.168.5.0 * 255.255.255.0 U 0 0 0 eth1
以下是我的 ifcfg-ethx 文件(CentOS)的摘錄:
DEVICE="eth0" BOOTPROTO="static" BROADCAST="192.168.3.255" GATEWAY="192.168.3.1" IPADDR="192.168.3.2" NETMASK="255.255.255.0" NM_CONTROLLED="yes" ONBOOT="yes" TYPE="Ethernet" DEVICE="eth1" BOOTPROTO="static" BROADCAST="192.168.5.255" IPADDR="192.168.5.2" NETMASK="255.255.255.0" NM_CONTROLLED="yes" ONBOOT="yes" TYPE="Ethernet"
如果我沒記錯的話,可以編輯我的靜態路由,特別是上面程式碼段的最後一行,為 192.168.5.0/24 網路指定網關 192.168.5.1。
我嘗試將 GATEWAY=“192.168.5.1” 添加到 ifcfg-eth1 中,這會創建一個預設使用此介面的路由表。如何保持 3.1 作為主網關,同時強制來自 192.168.5.0/24 地址空間的所有流量通過 192.168.5.1?
在您的網橋主機上放置一些 iptables 規則。這比試圖將流量路由到不應該去的地方要整潔得多。請記住,試圖到達同一網路上的對等點的主機並不關心路由器。源會發出一個 ARP 請求,找出目標禮物的乙太網地址,並直接向它發送數據包。這裡直接意味著您橋接主機,然後使用其 ARP 表將數據包轉發到目標。所以這裡沒有路由的概念。
也許您可以在配置 eth1 時刪除核心在主機上添加的自然路由,然後在 eth1 上添加到網關的特定路由,然後在 eth1 網路(192.168.5.0/24)中添加另一條路由,將您的路由器指定為網關…但只有這個描述應該讓你明白它是多麼的垃圾。
真的,你應該更喜歡在網橋上使用 iptables