目的是想把两个独立子网通过 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 一下才能知道。
|