一个头痛的 ipv6 ssh 故障...

2021-11-23 11:18:56 +08:00
 abbottcn
A 机器, 科研网;
B 机器, 教育网.

A 机器运行 CentOS7.9; B 机器运行 Ubuntu 20.04.
两台机器采用 ssh key 验证访问, 非 22 端口.

经由 ipv6 网络, A 和 B 可以畅快的相互访问, 已经稳定工作 2 年多了....

近一周,
忽然发现,
A ping 不到 B 机器, B 机器 ping 不到 A 机器.
@A, ssh B, 无法登录;
@B, ssh A, 无法登录.
但是, 只要使用 ssh -vvv B, 或者 ssh -vvv A, 均可以访问.
不过使用 ssh -v A 或者 B, 无法访问.
无法访问, 就是终端里面 输入 ssh A 或者 ssh B 之后, 就没有动静了....

又找了另一台 Linux 机器, C, 和 B 机器在同一个交换机后面.
B 和 A 互通有问题的同时, C 和 A 经由 ipv6, 互通正常.

经过查验,
三台机器上, 防火墙都是开放的,
root@soft:~# ip6tables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT


后续测试,
找了一台亚马逊的机器, 具有 ipv6 地址,
A 和 C 均可以访问, ssh 正常, ping 测试正常.

B 机器, ping 无反应, ssh 登录无反应, 需要使用 ssh -vvv 模式才可以登录.

其中, A 机器已经开机运行了 60 多天, B 机器, 系统重启也是故障依旧.

虽然使用 Linux 十多年,
不过就是当作桌面和字符界面的服务器来用的,
这次这个网络故障, 实在头疼....

以上三台机器的网络线缆, 均未动过...
当然, 三台机器上, sshd 配置文件, 未曾修改过.
看了一下 sshd 内容, 所用选项, 三台机器基本一致.

诸位朋友, 能提供一点 debug 的思路吗?

补充一下,
ping 测试国内公开的 ipv6 DNS, 三台机器表现如下:
A 和 C, 结果一致.
B, 部分线路不通.

获取 ipv6 的方式.
墙壁接口-----网络线缆-----交换机----网线----服务器网卡, 服务器自动模式.
会自动获取到一个合法的 ipv6 地址.
手动设定 DNS, 比如采用 2a11::, 即可以 ipv6 网络畅通.
B 和 C 在同一个办公室.
A, B, C 在同一个城市.

顺路吐槽一下各种标注支持 ipv6 的手机 App.
在纯 ipv6 模式下, 基本都无法工作.
3891 次点击
所在节点    Linux
21 条回复
defunct9
2021-11-23 11:21:33 +08:00
B 机器有毛病了
KaynW
2021-11-23 11:23:23 +08:00
@defunct9 这不得开下机器, 让我 ssh 上去看看吗
xarthur
2021-11-23 11:27:40 +08:00
「在纯 ipv6 模式下, 基本都无法工作.」
是的,好像他们的主网址有 AAAA 解析了就可以标准支持 IPv6 ,实际上完全无法正常访问,有的是可以打开,但是所有的资源文件都加载不出来。
abbottcn
2021-11-23 11:32:39 +08:00
@KaynW 我也想让你上来访问.... 可是, 教育网和科研网的 ipv6 地址, 不是所有地方都可以访问进来的.... 很早之前, 至少教育网的 ipv4, ipv6, 从大陆以外的网络, 只要是大陆以外的网络, 均可以直接访问. 2,3 年前, 通过 ipv4 就彻底不行了. ipv6, 部分线路依旧可以访问, 比如同城的电信网络就可以.
abbottcn
2021-11-23 11:33:43 +08:00
@defunct9 我也推测是 B 机器故障了, 但是无法定位到故障原因. 重新灌系统, 又是特别头疼的问题. 系统安装与 6 年前, 前前后后, 配置了很多东西, 头疼....
KaynW
2021-11-23 11:34:04 +08:00
@abbottcn 哈哈哈, 不是说我想上去访问, 我是问 1 楼为啥不 ssh 上去 XD
ungrown
2021-11-23 11:41:34 +08:00
我也觉得 B 肯定哪里不对劲,可能硬件可能软件。
另外,别以为设置了对照变量,重复了多次,就不会因为随机性引起假象而做出误判,我收藏夹里就有一个笑死人的 https://www.bilibili.com/video/BV1qq4y1T7Eu
另外,凡是遇到这种“灵异”的问题,如果可以绕开或者可以替代的话,请毫不犹豫的选择绕过它,大家都是常年折腾的经验丰富人士,应该明白很多事情就算搞明白了也只会抽自己大嘴巴或者哭笑不得。
defunct9
2021-11-23 11:44:01 +08:00
开 ssh ,让我上去看看。应 2 楼的要求。
abbottcn
2021-11-23 11:45:06 +08:00
@ungrown 你说的对...我倾向于怀疑, B 机器硬件有问题, 前几天遭遇了重启后, 部分数据丢失. 差了一下, 固态盘都 7 年多了... 好在现在有备用机器可以提供两个工作室的 ipv6 互联访问, 要不然就彻底歇菜了...
abbottcn
2021-11-23 11:52:37 +08:00
补充一下,故障是出现在某次突发断电之后。
B 经历过突发断电; A 和 C 供电正常,uptime 均在一个月以上。

ssh 登录,可以的,等我回头创建一个用户,并合理规制一下访问权限。
超级权限,不行。机器瘫痪了,一堆白嫖资源的人,会骂娘的。
dreamage
2021-11-23 12:56:10 +08:00
ssh -vvv B, ssh -v B
两端抓包,看看哪里不一样
kav2007
2021-11-23 21:40:33 +08:00
1. ssh -vvv B 登录上去,检查系统负载、内存使用率,磁盘空间使用率等等;查看日志 /var/log/auth.log 和 /var/log/syslog ,还有 lastb 是否有被黑的迹象
2. tcpdump 抓包, 分别看一下 ping 和 ssh 时,B 是否能收到包
3. 在同一网段的 C 和 B 之间能 ping 通吗,从 C 能直接 ssh 连上 B 吗?
4. 根据 man 手册,ssh -v 参数只是打印调试信息,按说不影响通与不通
-v Verbose mode. Causes ssh to print debugging messages about its progress. This is helpful in debugging connection, authentication, and configuration
problems. Multiple -v options increase the verbosity. The maximum is 3.
ResidualBlood
2021-11-24 09:24:28 +08:00
@abbottcn BYR: 你直接念我身份证得了
abbottcn
2021-11-24 11:09:06 +08:00
@kav2007 多些提醒。
B 和 C 是互通的。

机器负载都正常。

仅仅是 B 机器,可以访问的 IPv6 线路,比 A 和 C 要少。 我找了一堆公开的 IPv6 DNS ,不同机构提供的,我认为是不同的线路。

我回头看看如何抓包做分析。

虽然用 Linux 很久,不过各位大佬说的技巧,我一概不会。
我仅仅用 Linux 机器来干活。因为我用到的很多软件只工作在 Linux 平台。
用 ssh ,也仅限于登录机器,会点 scp 。其他都没有接触过。
abbottcn
2021-11-24 11:22:48 +08:00
@ResidualBlood 抱歉,没明白你的意思……
ResidualBlood
2021-11-24 14:11:06 +08:00
@abbottcn 这是一个吐槽,针对教育网 v6 站点环大陆开放=-=
kav2007
2021-11-24 23:26:17 +08:00
@abbottcn #14 前面你说过 B 和 C 在同 1 个办公室、同 1 个交换机。B 和 C 的 IPv6 地址属于同一网段吗?
如果同一网段,B 部分线路不通,而 C 线路通。是不是中间设备对 B 的 IPv6 地址做了限制?
可以试着给 C 手动换个 IPv6 地址,看看是否问题还存在

然后分别从 B 和 C 上执行 traceroute -6 目的 IPv6 命令,对比一下返回结果,看看中间哪一跳出现的问题
abbottcn
2021-11-26 17:47:12 +08:00
@kav2007 多谢你的建议.
补充一下, C 和 B, 都是接在学校提供的交换机上, 但是不在一个房间, 应该是对应的“学校交换机”端口不同.

找了一个备用的 Mac mini, 运行的是 ubuntu 20.04. 由于 B 机器所在的房间, 之后一个教育网接口. 因此采用墙壁接口---线缆---8 口千兆交换机--线缆---机器 B, Mac mini.

发现, Mac mini 也具有同样的网络故障.
修改网卡物理地址, 重启机器后, 自动获取到新的 ipv6 地址, B 机器, 和 Mac mini 依旧同样的网络故障.

推测, 可能交换机端口上, 有人做了其他设定.

比如测试访问 2a11::, 这是一个 DNS.
同一个楼里面网络正常的机器上, 结果如下:
root@dog:~# traceroute6 -m 60 2a11::
traceroute to 2a11:: (2a11::) from 2001:da8:b000:2206:12dd:b1ff:febf:f2a3, 60 hops max, 24 byte packets
1 cernet2.net (2001:da8:b000:2206::1) 17.0783 ms 1.0144 ms 0.7626 ms
2 2403:8c00:aaaa:40::1 (2403:8c00:aaaa:40::1) 16.0906 ms 1.4839 ms 1.2509 ms
3 2403:8c00:aab:1::1 (2403:8c00:aab:1::1) 9.7193 ms 5.2405 ms 1.6415 ms
4 2403:8c00:aab::1 (2403:8c00:aab::1) 8.3758 ms 1.6429 ms 1.0023 ms
5 * * *
6 * * *
7 2001:da8:2:113::1 (2001:da8:2:113::1) 1.6793 ms 3.4028 ms 1.2467 ms
8 2001:da8:2:21::1 (2001:da8:2:21::1) 5.9035 ms 5.9346 ms 5.5936 ms
9 2001:da8:2:7::1 (2001:da8:2:7::1) 16.2851 ms 16.1681 ms 16.1665 ms
10 cernet2.net (2001:252:0:2::101) 15.8865 ms 15.9538 ms 16.4155 ms
11 cernet2.net (2001:252:0:100::2) 15.5133 ms 15.3729 ms 15.3900 ms
12 * * *
13 * * *
14 public-dns-b.dns.sb (2a11::) 50.6001 ms 50.4106 ms 50.5090 ms
root@dog:~#


网络不正常的 B 机器, 测试如下:
[wang@lab-itc ~]$ traceroute6 -m 60 2a11::
traceroute to 2a11:: (2a11::) from 2001:da8:b000:2206:230:7dff:fec2:643f, 60 hops max, 24 byte packets
1 cernet2.net (2001:da8:b000:2206::1) 7.2841 ms 0.8311 ms 0.6703 ms
2 2403:8c00:aaaa:40::1 (2403:8c00:aaaa:40::1) 8.0636 ms 1.5823 ms 1.2270 ms
3 2403:8c00:aaa:4::2 (2403:8c00:aaa:4::2) 12.1945 ms 5.0208 ms 1.5310 ms
4 2403:8c00:aab:6::2 (2403:8c00:aab:6::2) 8.5477 ms 12.7846 ms 1.0708 ms
5 * * *
6 * * *
7 2001:da8:2:113::1 (2001:da8:2:113::1) 1.6558 ms 1.5946 ms 1.3102 ms
8 2001:da8:2:21::1 (2001:da8:2:21::1) 6.0097 ms 6.0898 ms 6.0468 ms
9 2001:da8:2:7::1 (2001:da8:2:7::1) 16.4969 ms 16.3196 ms 16.0699 ms
10 * * *
11 cernet2.net (2001:252:0:100::2) 15.4671 ms 15.4544 ms 15.4313 ms
12 cernet2.net (2001:252:0:106::2) 16.2406 ms 16.6229 ms 21.0131 ms
13 xtom2-10g.hkix.net (2001:7fa:0:1::ca28:a0fb) 50.1439 ms 50.3652 ms 50.2926 ms
14 * * *
15 * * *
后面都是 * * *

技能有限, 看不懂如上的信息都是啥意思.

B 和 C, ipv4 都是在同一个网关下面的, 采用 MAC+IP 地址绑定方式, ipv6 是自动获取的.
所以, 推测, B 和 C 得到的 ipv6 地址是一个地址段(?), 只是猜测....
但是, 两者访问 2a11::的表现, 显然是不同的.


也有尝试, 在网络故障的机器上, 更换其他 PCIe 网卡, 更换 USB 外接网卡, 故障依旧.

尝试联系 学校网络中心, 暂时未得到任何有用的信息. 只有一位接线员提到, ipv6 是测试网络, 可用性不保证.

这个网络故障太闹心了....
我还是搞一个电信的无线路由器, 方便简单.

感谢大家的意见和建议.
再次感谢.
kav2007
2021-11-26 21:53:55 +08:00
@abbottcn 从 traceroute6 的结果对比,说明 B 和 C 分别走了 2 个不同的网络路径。从第 3 跳开始路径不同,第 11 跳后路径又不同。相当于先后出现 2 个岔路口。IPv6 地址通常前 64 位是网络前缀,B 和 C 属于同一网段。

条条大路通罗马,如果找网络中心不好解决,自己加电信路由器是个办法。

也可以用 C 当跳板机,mac 或 Linux 新版 openssh 支持 ProxyJump ,加一行配置能用跳板机。

或者在 C 上用 iptables 或第三方程序配个端口转发,把 C 上的某个端口映射到 B 的 ssh 端口。
abbottcn
2021-11-27 15:00:28 +08:00
@kav2007 感谢分析解读。

是有在使用 ProxyJump 来暂时解决问题。

我相信官方肯定能说明白为何会这样,可能是我目前没有找到官僚机构里面的技术人员。

再次感谢帮我分析解读。

另,我检查了所有 key ,以及 sshd 相关设定,应该没有被入侵。

之前,允许普通用户密码登录+AllowUser 设定。拒绝 root 密码登录。如果是采用系统漏洞拿到了 root 权限,这位大神也可以去显摆一下了。机器上,是有一个针对内线开放的 wordpress 页面,有 cockpit ,有 netdata ,似乎没啥別的了。

再次感谢大家的协助。

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

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

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

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

© 2021 V2EX