为什么我 ping 同一个 WireGuard 子网内的设备,还需要经过网关?

2023-01-05 11:33:36 +08:00
 villivateur

我有两台设备(一台 Windows ,一台 Android 手机),连接了同一个 WireGuard 服务,都处于 192.168.3.0/24 网段内,其中 Windows 设备的信息如下:

Unknown adapter wg:

   Connection-specific DNS Suffix  . :
   IPv4 Address. . . . . . . . . . . : 192.168.3.50
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . :

然后我在 Windows 上执行 tracert ,输出如下:

$ tracert 192.168.3.21

Tracing route to 192.168.3.21 over a maximum of 30 hops

  1    16 ms    16 ms    15 ms  192.168.3.1
  2   309 ms    51 ms    47 ms  192.168.3.21

Trace complete.

发现这个包会经过网关 192.168.3.1 。

我的理解是,既然本机的子网掩码是 /24 ,然后对方的 IP 处于同一个子网内,应该就不需要经过网关了。难道 Wireguard 并没有真正完全将数据链路层虚拟化?

1861 次点击
所在节点   WireGuard
5 条回复
rrfeng
2023-01-05 11:39:32 +08:00
wireguard 是个『应用层』协议的 VPN ,怎么能做到『数据链路层』虚拟化……
villivateur
2023-01-05 11:41:46 +08:00
@rrfeng 理解了,我以为这个跟 L2TP 是一样的
bingfengfeifei
2023-01-05 13:45:18 +08:00
@rrfeng
zerotier 也是应用层的,但是 tracert 时就不需要经过网关啊。

tracert 192.168.200.3

通过最多 30 个跃点跟踪
nas.io [192.168.200.3] 的路由:

1 14 ms 6 ms 5 ms nas.io [192.168.200.3]
rrfeng
2023-01-05 15:12:08 +08:00
@bingfengfeifei
你是端到端直连吧,op 那个两个终端连同一个节点,肯定要中转。

就算能通,端到端的隧道也不能称为『数据链路层虚拟化』,你看看 arp 能不能过去就行了……
leonshaw
2023-01-05 15:31:05 +08:00
wireguard 是三层隧道,L2TP 顾名思义是二层的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/906701

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX