V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
venster
V2EX  ›  WireGuard

请教一个 WireGuard 组网的问题

  •  
  •   venster · 2021-03-14 19:58:45 +08:00 · 3376 次点击
    这是一个创建于 1346 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目的是想把两个独立子网通过 WrieGruad 建立隧道链接实现互通。设计架构如下

    subnet A<------>WireGuard-A<-------->WireGuard-B<--------->subnet B

    其中 WrieGuard 是本地子网中的一台主机,有独立公网 IP 。

    目前遇到的问题:WireGuard-A 可以访问 B 端所有资源,但是 subnet A 则只能访问到 WireGuard-A,无法进一步继续,B 端也是同样的问题,子网中的普通计算机无法越过 A 与 B 之间的网络。

    子网中的普通计算机已经写了路由表,将对端的网络名网关设定为本端 WrieGurad 主机。WireGuard 主机也开了转发的功能,百思不得其解

    WireGuard 的配置如下,网上比较常见一个配置,本身 WireGuard 运行时没问题的。似乎问题出在 WireGuard 主机的设定上?

    [Interface]
    Address=10.0.100.2/24
    ListenPort=58520
    PrivateKey=gEnXfTQag6VbRnR30KvjzC5uN=====
    Mtu = 1500
    PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
    
    [Peer]
    PublicKey = RWRVltya0gK40qA4oQcdb1nt=====
    AllowedIPS = 10.0.100.0/24,172.31.16.0/20
    EndPoint = 1.2.3.4:58520
    8 条回复    2021-03-16 16:40:56 +08:00
    whywhywhy
        1
    whywhywhy  
       2021-03-14 20:47:24 +08:00
    如果 AB 客户端都能访问对方子网,说明连接是没问题的,

    如果 AB 客户端都只能访问对方,不能访问对方子网,说明 AB 客户端的转发是有问题的,或者对方子网的计算机的路由表不对,

    如果是 Windows 环境,下次重启后,会取消转发,在设置里看到转发设置还在
    但是实际上不会转发了

    我觉得你还是用虚拟机搭 2 个 openwrt x86 比较好,先抛开外部因素搭建好,然后再去找原因。
    defunct9
        2
    defunct9  
       2021-03-14 22:42:44 +08:00 via iPhone
    开 ssh,让我上去看看
    defunct9
        3
    defunct9  
       2021-03-14 22:43:39 +08:00 via iPhone
    ipforward 没打开
    pcmid
        4
    pcmid  
       2021-03-15 00:49:31 +08:00 via iPhone
    我猜八成是 allowed ips 的原因,以前好像也遇到过。后来是关掉 wiregurad 的路由表,allowed ips 0.0.0.0/0,然后用 ospf 处理路由的。时间久远,忘记原因具体是什么了。
    venster
        5
    venster  
    OP
       2021-03-15 08:34:35 +08:00 via Android
    @defunct9 碰到 ssh 大佬了^_^,如果你指的是 net ipv4 ip_forward 的话,我开了。回头我可以再确认一下。可以把 ssh 私钥给你。云端全测试环境无任何资料,随便整。
    @pcmid 因为是 AWS 的虚拟机,我怕把 allowips 改成 0.0.0.0/0 后断网还得从头折腾一次,AWS 似乎没有独立于网络的虚拟机 Web 终端。我狠心改成 0.0.0.0 试试看。其实,实际使用环境为一端是云,另一端是本地网络。AWS 自己有解决方案,纯粹是想自己折腾一下做一个通用方案出来。
    defunct9
        6
    defunct9  
       2021-03-15 09:38:47 +08:00
    我的 idc 实际做法是:
    subnet A ( Locate A)<---tap--->openvpn<----tap----->subnet A(Locate B)
    两边 ip 同段,这样比较有意义
    venster
        7
    venster  
    OP
       2021-03-15 23:33:39 +08:00
    @defunct9 @whywhywhy 折腾一晚上终于搞定了,我的整个测试环境是在 AWS 上的,将 WireGurad 的 EC2 实例主网卡“源 /目标检查”功能关闭后没有做任何其他进一步修改使用正常。
    defunct9
        8
    defunct9  
       2021-03-16 16:40:56 +08:00
    嗯,这个理由其他没用过 aws 的人是打死也猜不到的。上去 dump 一下才能知道。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3196 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 13:25 · PVG 21:25 · LAX 05:25 · JFK 08:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.