AW-INC. 研究開発室

with secure communication

Rock 5B の IPv6 で、同じ LAN からは届くのに外からだけ届かないときの原因

本記事にはアフィリエイト広告(Amazon アソシエイト)が含まれます。

実測日: Wed Aug 26 2026 09:00:00 GMT+0900 (Japan Standard Time)

2 台の Rock 5B のうち 1 台だけが、ある日から外の VPS からつながらなくなった。
同じ LAN からはつながり、もう 1 台の Rock 5B からもつながる。
IPv4 では問題なく、IPv6 だけが外からだけ落ちるという紛らわしい症状だった。
本記事では、原因だった経路表の状態と、確認の手順を示す。

症状の形

  • 同じ LAN の機械からは、ping6 も SSH も通る
  • 別拠点の VPS からは、ping6 も SSH も同時に落ちる
  • IPv4 は内外とも問題ない

「同じ LAN からは通る」ので、対象の機械も LAN も生きている。
「外からだけ落ちる」ので、ルータか VPS 側を疑いたくなる。
しかし原因は対象の機械の経路表にあった。

IPv6 のデフォルト経路が無いと何が起きるか

対象の機械で ip -6 route show を見ると、default が無かった。
IPv6 でデフォルト経路が無いと、on-link(同じ /64 のプレフィックス内)の相手には届くが、off-link(それ以外)の相手には届かない。

外からの SYN は、ルータを経由して対象の機械まで届く。
届くのに応答が返らないのは、応答の宛先が off-link で、対象の機械に戻り道が無いからである。
Network is unreachable を返すのは対象の機械自身で、ルータでも対向でもない。
同じ理由で ping も SSH も同時に落ち、IPv4 は独立に生きているので「網は動いている」ように見える。

経路が消えた経緯

この機械は systemd-networkd 管理で、netplan の設定では IPv6 のデフォルト経路がコメントアウトされたままだった。
つまり RA(ルータ広告)だけに頼っていた。
ある日 networkd が次のログを残して経路の設定に失敗し、インターフェースの SETUP が failed に落ちて、経路が消えた。

Could not set route: Connection timed out

netplan に静的なデフォルト経路を書き戻して解消した。
ゲートウェイはルータのリンクローカルアドレスで、on-link を明示する。

routes:
  - to: "::/0"
    via: "fe80::xxxx:xxxx:xxxx:xxxx"
    on-link: true
    metric: 100

RA の経路(metric 1024)は残るので、静的経路を小さい metric で置けば両方が共存する。

2 台で管理系が違うと、症状の出方も違う

同じ役割の 2 台なのに、片方は NetworkManager、もう片方は systemd-networkd で動いていた。

管理系 IPv6 デフォルト経路
1 台目 NetworkManager static、metric 425
2 台目 systemd-networkd static、metric 100 に加えて RA の metric 1024

NetworkManager 側は接続プロファイルがデフォルト経路を持つので、RA の失敗だけでは消えない。
networkd 側は netplan に書いていなければ RA 頼みになり、1 回の失敗で消える。
同じ症状が出るかどうかは、管理系の違いで決まる。

確認の手順

外から届かないと言われたら、対象の機械で次の 2 つを見る。

  1. ip -6 route show に default があるか
  2. networkctl list の SETUP が configured か(networkd の場合)

default が無ければ、ルータや対向を調べる前に経路表を直す。
対象の機械自身が Network is unreachable を返す場合、原因は対象の機械の経路表にある。

この記事で扱った機材

Radxa ROCK 5B(RK3588)

RK3588 搭載の ARM64 ボード。本サイトの制御ノードもこのボードで動いている。


投稿日

カテゴリー:

投稿者: