Networking

在由路由器/防火牆連接的不同 VLAN 上的子網之間路由

  • October 9, 2012

我有兩個網路,我想用路由器/防火牆連接以過濾兩者之間的流量。假設一個網路位於公共子網上,64.22.12.192/27而另一個網路位於私有子網上192.168.0.0/24。它們通過具有三個乙太網埠的路由器連接,一個連接到網際網路,另外兩個連接到公共子網和私有子網,並且位於它們自己的 VLAN 上。如何使私有子網對公共網路可見?網路圖如下:

  • Router1 >eth0 — 連接到 Internet
  • Router1 >eth1 — 64.22.12.193/27 連接到 VLAN 64 子網 64.22.12.193/27
  • Router1 >eth3 — 192.168.0.1/24 連接到 VLAN 192 子網 192.168.0.0/24

我在路由器上嘗試了靜態路由192.168.0.0/2464.22.12.193我也嘗試將它路由到192.168.0.1. 都沒有奏效。

我希望兩個子網之間的流量通過路由器,因為我希望能夠在子網之間的路由器上設置防火牆規則。

  1. 我嘗試了靜態路由但無法正常工作,我做錯了什麼嗎?
  2. 我意識到我可以使用 NATing,但為了訪問單個私有 IP 機器,我必須設置一個一對一的 NAT,這會佔用我寶貴的有限公共 IP
  3. 我必須設置一個隧道來完成這個嗎?隧道不會繞過防火牆規則嗎?

IP路由顯示:

default via 66.22.32.137 dev eth0  proto zebra 
192.168.0.0/24 dev eth3  proto kernel  scope link  src 192.168.0.1
64.22.12.192/27 dev eth1  proto kernel  scope link  src 64.22.12.193
66.22.32.136/29 dev eth0  proto kernel  scope link  src 66.22.32.141
127.0.0.0/8 dev lo  proto kernel  scope link  src 127.0.0.1 

我嘗試了靜態路由,但無法正常工作

您不需要靜態路由,您的系統已經擁有它應該需要的所有路由。Linux 自動為本地連接的每個網路配置路由。假設您啟用了 ip_forward,並且目前沒有阻止流量的防火牆規則,那麼一切都應該正常工作。

我必須設置一個隧道來完成這個嗎?

不,你不應該需要任何隧道。

我意識到我可以使用 NATing,但為了訪問單個私有 IP 機器,

您不需要任何 NAT 規則。事實上,如果你已經有一個過於寬泛的 SNAT/MASQ 設置,那可能是你的問題。

假設所有客戶端都打開64.22.12.192/27192.168.0.0/24使用您的 linux 機器作為其預設網關,並且您沒有設置任何 SNAT/MASQ 規則來更改來自 eth3 -> eth1 通信的流量的源地址應該可以正常工作。

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