如何透過充當路由器和代理的 Linux 盒子將兩個子網路路由到互聯網

如何透過充當路由器和代理的 Linux 盒子將兩個子網路路由到互聯網

我有一個 Linux 盒子,充當路由器、DHCP 伺服器和代理。在我的 LAN 端,我需要兩個子網路才能擁有足夠的 IP:192.168.100.0 - 192.168.101.255 - 是我需要的範圍。兩個子網路都必須能夠透過我的 Linux 盒子存取互聯網,

在 eth1 (em1) 上,我將網際網路數據機與靜態 IP 連接。

在 eth2 (em2) 上,我使用以下設定連接了 LAN:

  • IP位址:192.168.100.1
  • 廣播位址:192.168.101.255
  • 子網路遮罩:255.255.254.0
  • 預設閘道:192.168.100.1

我的路由表如下:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         56343ffe.rev.st 0.0.0.0         UG    0      0        0 em1
86.52.0.0       *               255.255.192.0   U     1      0        0 em1
192.168.100.0   *               255.255.254.0   U     1      0        0 em2
192.168.101.0   *               255.255.255.0   U     0      0        0 em2

來自連接埠 80 的所有流量都會重定向到我在 shorewall 中的代理 - 這工作正常 - 所有主機都可以訪問網站、YouTube 等(連接埠 80)。所有其他流量都是偽裝的 - 但到其他連接埠的流量是一個問題 - 例如 Microsoft 的 DRM 許可證伺服器 AVG 更新伺服器 - 無法存取!但我相信路由表中有些東西配置錯誤?我的防火牆在重定向連接埠 80 流量後接受所有出站流量。

編輯 - 來自我的防火牆的輸出(我已將互聯網地址中的數字替換為 xxx.xxx):

Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
dnat       all  --  anywhere             anywhere

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
em1_masq   all  --  anywhere             anywhere

Chain dnat (1 references)
target     prot opt source               destination
loc_dnat   all  --  anywhere             anywhere

Chain em1_masq (1 references)
target     prot opt source               destination
SNAT       all  --  192.168.100.0/24     anywhere             to:86.52.xxx.xxx
SNAT       all  --  192.168.101.0/24     anywhere             to:86.52.xxx.xxx

Chain loc_dnat (1 references)
target     prot opt source               destination
REDIRECT   tcp  --  192.168.100.0/24     anywhere             multiport dports http,squid redir ports 8080
REDIRECT   tcp  --  192.168.101.0/24     anywhere             multiport dports http,squid redir ports 8080

答案1

您必須對它們進行 NAT(偽裝)。
然後你就失敗了。
你說它是偽裝的,但顯然這是行不通的。
(連接埠 80 確實可以工作,因為它被代理了。)

NAT 或防火牆(可能兩者)上的某些配置不正確。

PS 你不需要最後一條路由線。它已經被上面的覆蓋了。

相關內容