如何通过充当路由器和代理的 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:您不需要最后一条布线。它已经被上面的布线覆盖了。

相关内容