V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
vcn8yjOogEL
V2EX  ›  宽带症候群

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

  •  
  •   vcn8yjOogEL · 140 天前 · 827 次点击
    这是一个创建于 140 天前的主题,其中的信息可能已经有所发展或是发生改变。

    网关 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 条附言  ·  140 天前
    应该就是回程路径问题

    123 到 1, 路由跳到 2, 2 重写后返回 1 进入公网, 123>1>2>1>8
    公网返回 1, 1 返回 2, 2 因为来源地址是 123 就直接返回到 123 了, 8>1>2>123
    2 条回复    2023-12-14 11:35:17 +08:00
    yunisky
        1
    yunisky  
       140 天前
    思考一下每一跳的转发去向和转发的依据。
    如果 1 和 2 两个网关分别有一条外部运营商的线路,那么另当别论。如果先跳到 2 ,2 跳到 1 ,1 再出外网的话,回程的报文到达 1 的时候查找 123 ,在同一个二层局域中,不会经过 2 转发了,直接 arp 解析一下 mac 地址就二层转发了,这样就会有问题了。
    所以有一种解决方案,123 经过 2 向 1 转发数据的时候,在 2 到 1 的过程中做一层 NAT ,这样回程报文到达 1 ,必须经过 2 才会转发到 123.
    acbot
        2
    acbot  
       140 天前
    不知道具体设备网络环境,盲猜是回程的问题: 你可以在 1.1 上抓包看看回包!或者你直接在 1.1 做一个 123 的路由 指向 2 看看
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2466 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 14:31 · PVG 22:31 · LAX 07:31 · JFK 10:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.