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

2023 年 1 月 5 日
 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 并没有真正完全将数据链路层虚拟化?

2801 次点击
所在节点   WireGuard
5 条回复
rrfeng
2023 年 1 月 5 日
wireguard 是个『应用层』协议的 VPN ,怎么能做到『数据链路层』虚拟化……
villivateur
2023 年 1 月 5 日
@rrfeng 理解了,我以为这个跟 L2TP 是一样的
bingfengfeifei
2023 年 1 月 5 日
@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 年 1 月 5 日
@bingfengfeifei
你是端到端直连吧,op 那个两个终端连同一个节点,肯定要中转。

就算能通,端到端的隧道也不能称为『数据链路层虚拟化』,你看看 arp 能不能过去就行了……
leonshaw
2023 年 1 月 5 日
wireguard 是三层隧道,L2TP 顾名思义是二层的。

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

https://v2ex.xtra.eu.org/t/906701

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

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

© 2021 V2EX