V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
abbottcn
V2EX  ›  Linux

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

  •  
  •   abbottcn · 222 天前 · 2897 次点击
    这是一个创建于 222 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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, 互通正常.

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

    ssh 登录,可以的,等我回头创建一个用户,并合理规制一下访问权限。
    超级权限,不行。机器瘫痪了,一堆白嫖资源的人,会骂娘的。
    dreamage
        11
    dreamage  
       222 天前
    ssh -vvv B, ssh -v B
    两端抓包,看看哪里不一样
    kav2007
        12
    kav2007  
       222 天前
    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
        13
    ResidualBlood  
       221 天前
    @abbottcn BYR: 你直接念我身份证得了
    abbottcn
        14
    abbottcn  
    OP
       221 天前 via iPhone
    @kav2007 多些提醒。
    B 和 C 是互通的。

    机器负载都正常。

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

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

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

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

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

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

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

    比如测试访问 2a11::, 这是一个 DNS.
    同一个楼里面网络正常的机器上, 结果如下:
    [email protected]:~# 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
    [email protected]:~#


    网络不正常的 B 机器, 测试如下:
    [[email protected] ~]$ 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
        19
    kav2007  
       219 天前
    @abbottcn 从 traceroute6 的结果对比,说明 B 和 C 分别走了 2 个不同的网络路径。从第 3 跳开始路径不同,第 11 跳后路径又不同。相当于先后出现 2 个岔路口。IPv6 地址通常前 64 位是网络前缀,B 和 C 属于同一网段。

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

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

    或者在 C 上用 iptables 或第三方程序配个端口转发,把 C 上的某个端口映射到 B 的 ssh 端口。
    abbottcn
        20
    abbottcn  
    OP
       218 天前 via iPhone
    @kav2007 感谢分析解读。

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

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

    再次感谢帮我分析解读。

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

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

    再次感谢大家的协助。
    kav2007
        21
    kav2007  
       218 天前
    @abbottcn 不用客气
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1496 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 00:00 · PVG 08:00 · LAX 17:00 · JFK 20:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.