今年春节在家里放了一个 armbian 盒子(Ubuntu),接入的移动宽带;在上海的电脑是 Windows ,接入的联通宽带。两台机器都安装了 ZeroTier 和 TailScale (以下简称 ZT 和 TS )。
春节结束返回上海以后发现 ZeroTier 和 TailScale 都能 ping 通 armbian ,但是 ssh 均无法连接。ping 延时都在 50ms 左右,说明都是直连。经过一番搜索,把目光投向了 MTU 。通过在 Windows 下执行ping x.x.x.x -l 1472 -f
指令( x.x.x.x 是组网工具分配的 IP ),并逐步缩小 ICMP 数据大小,发现 ZT 网络内的上限是 1166 ,TS 的上限是 1252 。算上 28 字节的 ICMP 头,即 ZT 的最大 MTU 为 1194 ,TS 的为 1280
执行netsh interface ipv4 show subinterfaces
查看各个网卡的 MTU ,发现电脑上 ZT 配置的 MTU 是惊人的 2800 ,TS 的为 1280 。修改 ZT 网卡的 MTU 为 1194 后能使用 ZT 网内的 IP 地址连上 ssh ,测试了一个网页服务也正常访问。但是 TS 这边,MTU 已经是正确的了,仍然无法 ssh 连接。
我不是科班背景也不熟悉网络这块的内容,请教一下专业的朋友:
我理解,当数据来到 ZeroTier 的网卡时,还要在 ZeroTier 网络内拆包然后借助真实的网卡发送出去,这种情况下 2800 的 MTU 似乎也并无不可。但是实际表现来看稍大的 MTU 网络就不能工作,为什么会有这样的表现?
TailScale 这边 MTU 已经是正确的了,但是仍然无法连通,希望大家能指点一下排查思路
题外:有没有什么推荐的书可以比较系统性地介绍一下类似的网络知识?不需要细致到能进行相应开发工作的程度,只需要能够在网络出现问题时能够定位大致方向和排查思路即可
提前谢谢各位~
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.