静态路由后需要额外 NAT 才能正常访问

347 天前
 vcn8yjOogEL

网关 1: 192.168.1.1, 网关 2: 192.168.1.2, 电脑: 192.168.1.123, 掩码均为255.255.255.0

对来自192.168.1.123, 目标为8.8.8.8的连接进行静态路由, 将下一跳指向192.168.1.2

在电脑上运行traceroute 8.8.8.8可以看到第二跳是192.168.1.2, 但实际进行 http 访问时却不通

奇怪的是如果在网关 1 对上述连接进行 NAT 就可以正常访问8.8.8.8

内网设备之间的防火墙都默认放行, 现在怀疑是来源地址撞到了网关 2 自身的什么规则, 但也没什么头绪

不过也可能是我最开始就没配置好

925 次点击
所在节点    宽带症候群
2 条回复
yunisky
346 天前
思考一下每一跳的转发去向和转发的依据。
如果 1 和 2 两个网关分别有一条外部运营商的线路,那么另当别论。如果先跳到 2 ,2 跳到 1 ,1 再出外网的话,回程的报文到达 1 的时候查找 123 ,在同一个二层局域中,不会经过 2 转发了,直接 arp 解析一下 mac 地址就二层转发了,这样就会有问题了。
所以有一种解决方案,123 经过 2 向 1 转发数据的时候,在 2 到 1 的过程中做一层 NAT ,这样回程报文到达 1 ,必须经过 2 才会转发到 123.
acbot
346 天前
不知道具体设备网络环境,盲猜是回程的问题: 你可以在 1.1 上抓包看看回包!或者你直接在 1.1 做一个 123 的路由 指向 2 看看

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1000170

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX