ping6.net
ベストプラクティス

IPv6トラブルシューティング:一般的な接続問題の修正

このステップバイステップガイドでIPv6接続の問題を診断および修正します。「アドレスなし」から「動作するが遅い」まで、実際の問題を解決します。

ping6.net2024年12月14日2 min read
IPv6トラブルシューティング接続ネットワークデバッグ

IPv6が壊れると、症状はさまざまです:アドレスが割り当てられていない、一部のサイトへの接続のみ、またはすべてが機能するが遅いと感じる。このガイドは、最も迅速なチェックから深いネットワーク分析まで、体系的な診断を案内します。

TL;DR - 要点まとめ

重要ポイント:

  • 3つの質問から始める:アドレスはあるか?IPで到達できるか?ローカルで到達できるか?
  • グローバルアドレスがない場合(リンクローカルのみ)はルーターアドバタイズメントを確認
  • ICMPv6はブロックしてはいけない — IPv6動作に必須
  • パケットが止まる場所を見つけるにはtraceroute6を使用

ジャンプ: ローカル設定 | よくある問題 | ISPに連絡するとき

3つの質問から始める#

コマンドを実行する前に、問題を絞り込みます:

  1. **IPv6アドレスがありますか?**そうでない場合、問題は割り当てレベル(DHCP、SLAAC、またはルーターアドバタイズメント)にあります。
  2. **アドレスでIPv6サイトに到達できますが、名前では到達できませんか?**DNSが犯人です。
  3. **リンクローカルアドレスには到達できますが、それ以外には到達できませんか?**ルーティングまたはファイアウォールの問題です。

これら3つの質問により、トラブルシューティングパスの80%が排除されます。

ローカル設定を確認#

デバイスにIPv6アドレスがあり、ゲートウェイを知っていることを確認することから始めます。

Linux:

ip -6 addr show
ip -6 route show

macOS:

ifconfig
netstat -nr -f inet6

Windows:

ipconfig
netsh interface ipv6 show route

グローバルユニキャストアドレス(2または3で始まる)を探します。リンクローカルアドレス(fe80::で始まる)も表示されるはずです。リンクローカルのみがある場合、ホストは適切なIPv6プレフィックスを受信していません。

ルーターアドバタイズメントを確認#

ほとんどのIPv6ネットワークはSLAAC(ステートレスアドレス自動設定)を使用し、ルーターがその存在とネットワークプレフィックスをブロードキャストします。デバイスにグローバルアドレスがない場合、ルーターアドバタイズメントが到達していない可能性があります。

RA受信を確認(Linux):

sudo rdisc6 eth0

RA受信を確認(macOS/Windows): WiresharkまたはtcpdumpをICMPv6タイプ134(ルーターアドバタイズメント)パケットをキャプチャするために使用:

sudo tcpdump -i en0 'icmp6 and ip6[40] == 134'

30秒後にRAが表示されない場合、ルーターがアドバタイズしていないか、何かがそれらをフィルタリングしています。最初にルーターのIPv6設定を確認してください。

リンクローカル接続をテスト#

リンクローカルアドレスは、ルーター設定なしで機能します。これらが失敗した場合、レイヤー2の問題があります。

ゲートウェイのリンクローカルアドレスを見つけます:

# Linux
ip -6 route show default
 
# macOS/Windows
ルーティングテーブルに表示されているゲートウェイを使用

インターフェイスを指定してpingします:

# Linux
ping6 -c 4 fe80::1%eth0
 
# macOS
ping6 -c 4 fe80::1%en0
 
# Windows
ping -6 fe80::1%12

fe80::1を実際のゲートウェイアドレスに、eth0/en0/12をインターフェイス名/番号に置き換えます。これが失敗した場合、ケーブル、スイッチ、WiFi接続を確認してください。

インターネット接続をテスト#

既知の良好なIPv6アドレスを使用して、DNSを完全にバイパスします。

# Cloudflare DNS
ping6 2606:4700:4700::1111
 
# Google DNS
ping6 2001:4860:4860::8888
 
# ping6.net
ping6 2a07:8dc0:18:0:78:47ff:fe6e:da5a

これらが機能する場合、IPv6スタックは機能しており、DNSが問題です(先にスキップ)。失敗した場合、問題がローカルかアップストリームかをテストします。

DNS解決を確認#

多くの「IPv6が機能しない」という報告は、実際にはDNSの問題です。デバイスには接続があるかもしれませんが、AAAAレコードを解決できません。

AAAAレコードルックアップをテスト:

# システムリゾルバーを使用
nslookup -type=AAAA google.com
 
# 特定のDNSサーバーを使用
dig @2001:4860:4860::8888 AAAA google.com
 
# Windows
nslookup -type=AAAA google.com 2001:4860:4860::8888

AAAAクエリが失敗するが、A クエリ(IPv4)が成功する場合、DNSサーバーにIPv6接続がないか、AAAAレコードを処理するように設定されていない可能性があります。Cloudflare(2606:4700:4700::1111)またはGoogle(2001:4860:4860::8888)DNSサーバーに変更してみてください。

DNSサーバーがIPv6経由で到達可能であることを確認:

ping6 2606:4700:4700::1111

到達できない場合、IPv6対応DNSサーバーを設定するか、ネットワークがそれへの発信接続をブロックしています。

パスを分析#

一部の宛先にはpingできるが他にはpingできない場合は、tracerouteを使用してパケットが停止する場所を見つけます。

# Linux/macOS
traceroute6 google.com
 
# Windows
tracert -6 google.com

次を探します:

  • **ホップ1-2でのタイムアウト:**ローカルネットワークの問題(ゲートウェイ、ファイアウォール)
  • **数ホップ後のタイムアウト:**ISPルーティングの問題
  • **非対称ルートまたはループ:**BGP設定ミス(ISPに連絡)

Tracerouteツールを使用して、ホップごとのレイテンシを確認し、パケットがドロップされる場所を特定することもできます。

一般的な問題と修正#

IPv6アドレスが割り当てられていない#

症状:fe80::リンクローカルアドレスのみが表示されます。

原因:

  • ルーターがRAを送信していない
  • DHCPv6サーバーに到達できない
  • IPv6用にインターフェイスが無効

修正:

  1. ルーターがIPv6を有効にしており、プレフィックス委任が設定されていることを確認
  2. ネットワークインターフェイスを再起動:sudo ifdown eth0 && sudo ifup eth0(Linux)またはWiFiをオフ/オンに切り替え
  3. SLAACを強制:sudo dhclient -6 -r && sudo dhclient -6(Linux)
  4. Windowsの場合:netsh interface ipv6 resetして再起動

リンクローカルのみ(デフォルトルートなし)#

症状:fe80::アドレスがあり、ローカルリンクにpingできますが、インターネットがありません。

原因:

  • ルーターがプレフィックス情報なしでRAを送信
  • ファイアウォールがICMPv6をブロック
  • 静的ルート設定ミス

修正:

  1. ルーターが/64プレフィックスを委任していることを確認(自身をアドバタイズするだけでなく)
  2. ICMPv6がブロックされていないことを確認:sudo ip6tables -L(Linux)またはWindowsファイアウォール設定
  3. 手動でデフォルトルートを追加(一時的):sudo ip -6 route add default via fe80::1 dev eth0

アドレスはあるが接続なし#

**症状:**グローバルIPv6アドレスが割り当てられ、ルーティングテーブルが正しく見えますが、何にも到達できません。

原因:

  • ISPがトラフィックをブロック
  • MTUの問題(パケットフラグメンテーション障害)
  • ファイアウォールが確立された接続をドロップ

修正:

  1. ISPサポートラインでテスト(IPv6をアクティブ化する必要がある可能性があります)
  2. MTUを下げる:sudo ip link set eth0 mtu 1280(IPv6最小)
  3. ファイアウォールルールが発信IPv6を許可していることを確認
  4. IPv6を削除するCGNATの背後にいないことを確認

IPv6がIPv4よりも遅い#

**症状:**サイトは読み込まれますが、IPv4と比較して顕著な遅延があります。

原因:

  • トンネルオーバーヘッド(6to4、Teredo、6rd)
  • 最適でないルーティング(パケットが長いパスを通る)
  • Happy Eyeballsタイムアウトの問題

修正:

  1. トンネルを使用している場合は、ISPからネイティブIPv6に切り替え
  2. tracerouteホップを比較:traceroute google.comtraceroute6 google.com
  3. ネイティブが利用可能な場合はトンネルを無効化:netsh interface teredo set state disabled(Windows)
  4. IPv6 Pingツールでベースラインレイテンシを測定してテスト

一部のサイトで機能し、他では機能しない#

**症状:**Google、Cloudflareには到達できますが、多くのサイトが失敗します。

原因:

  • サイトにIPv6が壊れている(AAAAレコードの設定ミス)
  • パスMTU検出の障害
  • ファイアウォールが特定のプレフィックスをブロック

修正:

  1. サイトに実際にIPv6があるかテスト:dig AAAA example.comまたはDNSルックアップツールを使用
  2. AAAAレコードが存在するが失敗する場合、サイトのIPv6が壊れています(あなたの責任ではありません)
  3. IPv4を強制:/etc/hosts(Linux/macOS)またはC:\Windows\System32\drivers\etc\hosts(Windows)にエントリを追加
  4. サイトオペレーターに報告(知らない可能性があります)

ISPに連絡するタイミング#

次の場合はISPに電話してください:

  • ルーターに「IPv6サポートされていません」または「プレフィックス委任待ち」と表示される
  • プレフィックスが割り当てられているがルーティング可能ではない(外部pingでテスト)
  • ネットワークを離れた直後にTracerouteが障害を示す
  • 上記の修正のいずれも機能せず、設定が正しく見える

電話する前に、次を収集します:

  • ip addrまたはipconfigからの出力
  • 割り当てられたIPv6プレフィックス
  • ping6 2001:4860:4860::8888からの結果
  • 障害が発生する場所を示すTraceroute出力

これにより、サポートコールの時間が大幅に短縮されます。

関連記事#

実際に試してみましょう

診断ツールを使用してセットアップを確認:IPv6 PingTraceroute、およびMTR