我有一个 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:您不需要最后一条布线。它已经被上面的布线覆盖了。