
目的是想把两个独立子网通过 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 1 whywhywhy 2021-03-14 20:47:24 +08:00 如果 AB 客户端都能访问对方子网,说明连接是没问题的, 如果 AB 客户端都只能访问对方,不能访问对方子网,说明 AB 客户端的转发是有问题的,或者对方子网的计算机的路由表不对, 如果是 Windows 环境,下次重启后,会取消转发,在设置里看到转发设置还在 但是实际上不会转发了 我觉得你还是用虚拟机搭 2 个 openwrt x86 比较好,先抛开外部因素搭建好,然后再去找原因。 |
2 defunct9 2021-03-14 22:42:44 +08:00 via iPhone 开 ssh,让我上去看看 |
3 defunct9 2021-03-14 22:43:39 +08:00 via iPhone ipforward 没打开 |
4 pcmid 2021-03-15 00:49:31 +08:00 via iPhone 我猜八成是 allowed ips 的原因,以前好像也遇到过。后来是关掉 wiregurad 的路由表,allowed ips 0.0.0.0/0,然后用 ospf 处理路由的。时间久远,忘记原因具体是什么了。 |
5 venster OP |
6 defunct9 2021-03-15 09:38:47 +08:00 我的 idc 实际做法是: subnet A ( Locate A)<---tap--->openvpn<----tap----->subnet A(Locate B) 两边 ip 同段,这样比较有意义 |
7 venster OP |
8 defunct9 2021-03-16 16:40:56 +08:00 嗯,这个理由其他没用过 aws 的人是打死也猜不到的。上去 dump 一下才能知道。 |