网络拓扑及两层 NAT 的疑问 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MinonHeart
V2EX    问与答

网络拓扑及两层 NAT 的疑问

  •  
  •   MinonHeart 2023-01-14 11:13:16 +08:00 2783 次点击
    这是一个创建于 1026 天前的主题,其中的信息可能已经有所发展或是发生改变。

    网络拓扑

    弱电箱 |--------------------------------------------| | | | Modem1 ----> Router1(PPPoE+DHCP+NAT) ----|---> AP1 ----> Device1 | | | |-------------------|------------------------| | |---------------> Device2 

    Modem1 和 Router1 都在弱电箱中,部分终端设备会通过墙内线连接 Router1 ,因此 Modem1 和 Router1 需要保持不变。

    网络代理

    现在把 AP1 设备替换为网络代理(带大家都懂的一些功能,是个多网口设备)

    方案及问题

    方案 1:把 AP1 替换为无线路由设备 R2

    1. Device2 无法通过 R2 获得代理功能
    2. Device1 会经过两层 NAT

    方案 2:把 AP1 替换为透明网关设备 G2

    1. Device1 和 Device2 都会经过两层 NAT

    其他

    方案 1 和 2 都会有两层 NAT 的问题,怎么搞?或者有其他更好的方案吗?

    22 条回复    2023-01-16 10:09:51 +08:00
    cpstar
        1
    cpstar  
       2023-01-14 11:32:29 +08:00
    你的 AP 不就是 AP ,又不是无线路由器,现状也不存在二次 NAT 的问题啊。

    现状有啥问题?
    intoext
        2
    intoext  
       2023-01-14 11:45:31 +08:00
    两层 NAT 算啥,几层 NAT 都不影响常规使用。 再说本来运营商那边还有一次 NAT 呢? 难道你路由器上 DHCP 到的地址是真 IP ?
    MinonHeart
        3
    MinonHeart  
    OP
       2023-01-14 11:50:43 +08:00
    @cpstar 现在的 AP 没有代理功能
    MinonHeart
        4
    MinonHeart  
    OP
       2023-01-14 11:51:41 +08:00
    @intoext 是的。不过 NAT 能少一层是一层
    NXzCH8fP20468ML5
        5
    NXzCH8fP20468ML5  
       2023-01-14 14:20:03 +08:00
    @MinonHeart 你的网络代理必然是网关,可以不做 NAT ,也要多一次转发。旁路由了解一下。
    cpstar
        6
    cpstar  
       2023-01-14 14:49:31 +08:00
    AP 就是 AP,代理的功能那也是应该在 router1 上实现的,如果不是全局代理,那就上旁路由,dhcp 按 mac 分配适当的网关地址。最简单的扁平化,不应该增加更多层次的设备。
    smallfount
        7
    smallfount  
       2023-01-14 14:55:01 +08:00   1
    ....又没人规定你挂个路由就要 NAT 了...直接转发不就好了。。。
    sealinfree
        8
    sealinfree  
       2023-01-14 18:26:37 +08:00
    不知道你用的什么 router ,是否有 bridge 功能,做个桥接二层全部互通,可以成为单层 Nat
    garibellee
        9
    garibellee  
       2023-01-14 20:06:58 +08:00
    dns 分流
    MinonHeart
        10
    MinonHeart  
    OP
       2023-01-14 22:06:52 +08:00
    @xxfye
    @smallfount
    指 IP 转发嘛( echo '1' > /proc/sys/net/ipv4/ip_forward )?
    代理工具默认开启了转发,我再改会有冲突吧。
    MinonHeart
        11
    MinonHeart  
    OP
       2023-01-14 22:08:11 +08:00
    @cpstar Router1 不能装代理。dhcp 按 mac 分配适当的网关地址,这个有什么资料可以参考下嘛
    MinonHeart
        12
    MinonHeart  
    OP
       2023-01-14 22:10:31 +08:00
    @sealinfree Router 和替换 AP 的设备桥接?这样拨号是不是变成 AP 位置的设备了?
    MinonHeart
        13
    MinonHeart  
    OP
       2023-01-14 22:10:56 +08:00
    @garibellee 有资料可以参考下嘛
    smallfount
        14
    smallfount  
       2023-01-14 22:40:06 +08:00   1
    @MinonHeart 你完全没理解网络 2 层转发的做法。。。
    你这个拓扑我啥都不用动。。就单独挂一个旁路由或者虚拟机,IP 跟你所有内网 IP 同一段,网关配置为你 router1.
    剩下的就是把需要 FQ 的网关都指向旁路由就解决所有问题了。。。
    完全没任何操作难点。。。就一个纯 2 层的转发而已。。。至于你 FQ 怎么牵引流量那是 3 层的事情了。。
    跟 NAT 一毛线关系的没有。。因为根本用不上
    jacy
        15
    jacy  
       2023-01-14 23:24:27 +08:00   1
    AP1 设备替换为网络代理,这个多网口设备的 lan 桥接到 Router1 ,这个多网口设备的 wan 口 ip 做网关和 DNS (旁路由)
    sealinfree
        16
    sealinfree  
       2023-01-15 00:57:17 +08:00   1
    @MinonHeart 还是由 Router 负责拨号,所有内网端口加入到同一个 bridge 中,可启用生成树协议避免打环,但是建议不用。这样 AP1 和 Device2 都在同一个二层内,再把 Device1 连接 AP1 的端口在 AP1 上加入 bridge 中,三个设备都处于同一个二层内,自然就不需要二次 Nat 了,可以直接通过 arp 请求互通了
    nothingistrue
        17
    nothingistrue  
       2023-01-15 10:08:14 +08:00   1
    无线 AP 在第二层数据链路层;所有代理,最低只到第四层传输层; NAT 比较复杂,这是脱离 OSI 7 层模型之外的,他是解决 IP 问题的,应当属于第三层传输层,但因为不是标准实现实际上会影响很多层。路由器也很复杂,它是物理层,但它是不是单一物理层设备,它是第三层 IP 协议的物理层,它也是第二层无线 AP 协议、LAN 协议的物理层,它也是直接物理层的交换机 /集线器。

    你的图,重新画吧,看你下面的回复,实际场景,跟你的图,是驴头不对马嘴。你现在是不是有 Modem1 、Router1 (只有 LAN ,没开代理),Router2 (无线路由器,跟 Router1 桥接,也就是你现在图上的 AP1 ),想总体加上代理。这玩意其实没那么复杂,只动 Router1 就行了,要么直接动 Router1 为其加上代理功能,要么给 Router1 加个树莓派旁路由(这时候 Router1 就降格成交换机了,路由功能都交给旁路有处理了)让旁路由搞代理。

    不过,最后还是建议一下,透明代理有两个必要条件,Linux 基本操作能力,基本的网络编程能力,没这两项知识就不要搞了。
    MinonHeart
        18
    MinonHeart  
    OP
       2023-01-15 12:48:49 +08:00
    @smallfount
    @jacy
    @sealinfree
    谢谢老哥们,搞定了,不过 DNS 还是使用 Router1 。这样全网流量都会经过代理设备,有没有方法只让部分设备经过(比如通过 MAC Addr 过滤下)?

    另外配置完,路由第一跳始终超时,正常吗?

    ```
    > tracert baidu.com

    通过最多 30 个跃点跟踪
    baidu.com [39.156.66.10] 的路由:

    1 * * * 请求超时。
    2 1 ms 1 ms 1 ms 192.168.1.1
    3 6 ms 4 ms 6 ms 100.81.0.1
    ```

    @nothingistrue 谢谢,讲的很明白
    systemcall
        19
    systemcall  
       2023-01-15 18:21:51 +08:00
    Router1 能不能修改路由表?能不能修改自身的上游 DNS 服务器?
    如果可以的话,就把 Router1 加几条路由规则,让 192.18.0.0/16 的流量路由到 AP1 ,上游 DNS 也指向 AP1
    AP1 上开 Fake-ip 模式的代理,DNS 的话就要用可以实现分流的 DNS 服务器,有一些 DNS 软件是可以实现的,OpenClash 和 Clash 本身最近也支持了类似的功能,不过很弱。Clash 的话,可以通过 Fake-IP Filter 来做
    这样的话,理想情况下可以实现国内网站直接通过 Router1 建立连接,IPv4 只经过一次 NAT ,IPv6 直连;国外网站通过解析到 Fake-IP 来与 AP1 建立连接,节点支持的情况下是可以使用 IPv6 的,如果要实现对纯 IP 的连接进行代理要手写路由表
    garibellee
        20
    garibellee  
       2023-01-15 21:13:41 +08:00
    @MinonHeart 内网得有环境搭建 dns 服务器 我用的是 pve-debain mosdons+v2ray 实现分流,https://github.com/IrineSistiana/mosdns ,抄我师傅成熟方案哈哈
    garibellee
        21
    garibellee  
       2023-01-15 21:14:37 +08:00
    @garibellee 需要科学的直接改 dns 就行
    SgtPepper
        22
    SgtPepper  
       2023-01-16 10:09:51 +08:00
    router1 改成 R2 就行了 router1 不要了
    你 R2 既然都能代理,那 DHCP NAT PPPOE 应当不在话下
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3804 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 00:52 PVG 08:52 LAX 16:52 JFK 19:52
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86