网关 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 自身的什么规则, 但也没什么头绪
不过也可能是我最开始就没配置好
1
yunisky 346 天前
思考一下每一跳的转发去向和转发的依据。
如果 1 和 2 两个网关分别有一条外部运营商的线路,那么另当别论。如果先跳到 2 ,2 跳到 1 ,1 再出外网的话,回程的报文到达 1 的时候查找 123 ,在同一个二层局域中,不会经过 2 转发了,直接 arp 解析一下 mac 地址就二层转发了,这样就会有问题了。 所以有一种解决方案,123 经过 2 向 1 转发数据的时候,在 2 到 1 的过程中做一层 NAT ,这样回程报文到达 1 ,必须经过 2 才会转发到 123. |
2
acbot 346 天前
不知道具体设备网络环境,盲猜是回程的问题: 你可以在 1.1 上抓包看看回包!或者你直接在 1.1 做一个 123 的路由 指向 2 看看
|