ICMPv6の解説:IPv6を機能させるプロトコル
IPv6ネットワークに不可欠なプロトコルであるICMPv6を理解します。近隣探索、ルーター広告、そしてなぜICMPv6をブロックするとネットワークが壊れるかを学びます。
ICMPv6はオプションではない#
IPv4では、ICMPが診断を処理します。それをブロックしても、ほとんどのことは機能します。IPv6はそのようには機能しません。
TL;DR - 要点まとめ
重要ポイント:
- ICMPv6は必須(IPv4のICMPのようなオプションではない);NDP、ルーター検出、PMTUDを処理
- 近隣探索プロトコル(タイプ133-137)がARPを置き換えSLAACを可能に
- タイプ2(Packet Too Big)はパスMTU検出に重要 — ブロックすると接続が壊れる
- 許可すべき必須タイプ:1(Unreachable)、2(Too Big)、128-129(Ping)、133-137(NDP)
ジャンプ: 近隣探索プロトコル | パスMTU検出 | ファイアウォールルール
ICMPv6はIPv6の神経系です。エラー報告、診断、近隣探索、ルーター探索、アドレス解決を処理します。間違ったICMPv6メッセージタイプをブロックすると、基本的な接続性が壊れ、ホストがデフォルトゲートウェイを見つけられなくなり、デバッグに何時間もかかる不可解な接続ハングが発生します。
IPv6仕様はICMPv6をアドオンとして扱っていません。必須で不可欠なコンポーネントです。ICMPv6を理解することは、IPv6が実際にどのように機能するかを理解することです。
ICMPv6とICMP(IPv4)#
ICMPv6はIPv4のICMPから進化しましたが、大幅に多くの責任を負いました。
| 機能 | ICMPv4 | ICMPv6 | 影響 |
|---|---|---|---|
| プロトコル番号 | 1 | 58 | 異なるIP次ヘッダー値 |
| エラーメッセージ | 宛先到達不可能、時間超過など | 同じエラー、洗練 | 類似機能 |
| 診断 | エコー要求/応答(ping) | エコー要求/応答(ping) | 同一目的 |
| アドレス解決 | ARP(別プロトコル) | 近隣探索(ICMPv6) | ICMPv6がARPを完全に置き換え |
| ルーター探索 | ICMPルーター探索(オプション) | ルーター広告(必須) | 自動設定に不可欠 |
| フラグメンテーション | ルーターによって黙って処理 | パケット過大メッセージ | パスMTU検出が必要 |
| マルチキャスト管理 | IGMP(別プロトコル) | MLDメッセージ(ICMPv6) | ICMPv6がIGMPを置き換え |
主な違い:ICMPv6は、IPv4で別々のプロトコルを使用していた機能を吸収しました。ARPはIPv4でレイヤー2で実行されます。IPv6にはARPはありません——代わりに近隣探索がICMPv6を使用します。IGMPはIPv4でマルチキャストグループを管理していました。IPv6はICMPv6内でマルチキャストリスナー発見(MLD)メッセージを使用します。
この統合によりプロトコルスタックが簡素化されましたが、ICMPv6が絶対に不可欠になりました。コア機能を壊さずにそれをブロックすることはできません。
メッセージタイプ構造#
ICMPv6メッセージは単純な構造を持っています:タイプ、コード、チェックサム、メッセージ固有のデータ。タイプフィールドがメッセージカテゴリを決定します。
タイプ番号範囲:
- 0-127:エラーメッセージ
- 128-255:情報メッセージ
この分割によりフィルタリングが容易になります。エラーメッセージはパケット配信の問題を報告します。情報メッセージはクエリ、応答、近隣/ルーター探索を処理します。
一般的なメッセージタイプ#
| タイプ | コード | 名前 | カテゴリ | 目的 |
|---|---|---|---|---|
| 1 | 0-6 | 宛先到達不可能 | エラー | ポート閉鎖、ルート利用不可など |
| 2 | 0 | パケット過大 | エラー | パス上でMTU超過 |
| 3 | 0-1 | 時間超過 | エラー | ホップ制限到達またはフラグメントタイムアウト |
| 4 | 0-2 | パラメータ問題 | エラー | 不正な形式のパケットヘッダー |
| 128 | 0 | エコー要求 | 情報 | Ping要求 |
| 129 | 0 | エコー応答 | 情報 | Ping応答 |
| 133 | 0 | ルーター要請 | 情報 | ルーター情報要求 |
| 134 | 0 | ルーター広告 | 情報 | ルーターが存在と設定を通知 |
| 135 | 0 | 近隣要請 | 情報 | アドレス解決と到達可能性 |
| 136 | 0 | 近隣広告 | 情報 | 要請への応答 |
| 137 | 0 | リダイレクト | 情報 | より良い最初のホップルーターが存在 |
タイプ番号は重要
ICMPタイプが散在する番号を使用するIPv4とは異なり、ICMPv6の組織化されたタイプスペースはファイアウォールルールをより明確にします。タイプ133-137は近隣探索プロトコルを処理し、グループとしてNDPを許可またはブロックすることが容易です。
近隣探索プロトコル(NDP)#
近隣探索プロトコルはIPv4のARPを置き換え、IPv4が複数のプロトコルを通じて処理していた機能を追加します。NDPは完全にICMPv6上で実行され、5つの重要な機能を処理します:
- アドレス解決 - IPv6アドレスをMACアドレスにマッピング(ARPを置き換え)
- ルーター探索 - 設定なしでローカルルーターを見つける
- プレフィックス探索 - 自動設定のネットワークプレフィックスを学習
- パラメータ探索 - MTU、ホップ制限、その他のパラメータを取得
- 次ホップ決定 - 宛先に最適なルーターを識別
5つのNDPメッセージタイプ#
ルーター要請(タイプ133)#
次のスケジュールされたルーター広告を待つ代わりに、ルーターに即座に自分自身を通知するよう要求するためにホストによって送信されます。
送信されるとき:
- ホストが起動
- インターフェースがオンライン
- ホストが迅速に設定を必要とする
形式:
送信元:リンクローカルアドレスまたは::
宛先:ff02::2(全ルーターマルチキャスト)
ホップ制限:255ルーター要請により、ホストは定期的な広告を待つ代わりに数秒以内にネットワーク設定を取得できます。
ルーター広告(タイプ134)#
ルーターによって送信され、その存在を通知し、SLAAC用のプレフィックスを広告し、設定パラメータを提供します。
送信されるとき:
- 定期的(数分ごと)
- ルーター要請への応答
- ルーター設定が変更されたとき
含まれる内容:
- ルーター有効期間(このルーターを使用する期間)
- ネットワークプレフィックスとその有効性
- MTU推奨
- ホップ制限提案
- SLAACとDHCPv6のフラグ
形式:
送信元:ルーターのリンクローカルアドレス
宛先:ff02::1(全ノードマルチキャスト)または要請ホスト
ホップ制限:255ルーター広告は、ホストがネットワーク設定を自動的に学習する方法です。DHCPは不要です——ルーターがホストが自身を設定するために必要なすべてをブロードキャストします。
SLAACはルーター広告に依存
ステートレスアドレス自動設定(SLAAC)は完全にルーター広告に依存します。タイプ134をブロックすると、ホストは自動設定できません。リンクローカルアドレスのみで、デフォルトルートもグローバルにルーティング可能なアドレスもありません。
近隣要請(タイプ135)#
IPv6のARP要求相当です。近隣のMACアドレスを発見するか、近隣がまだ到達可能であることを確認するために送信されます。
送信されるとき:
- IPv6アドレスをMACアドレスに解決
- 近隣がまだ到達可能であることを確認
- 重複アドレス検出(アドレスがすでに使用されているかどうかを確認)
形式:
送信元:送信者のアドレス(DADの場合は::)
宛先:要請ノードマルチキャストアドレスまたはターゲットアドレス
ホップ制限:255近隣要請メッセージは、ブロードキャストではなく要請ノードマルチキャストアドレスを使用します。これにより不要な処理が削減されます——ターゲットホストと類似アドレスを持つホストのみがパケットを受信します。
近隣広告(タイプ136)#
近隣要請への応答。送信者のMACアドレスを提供するか、到達可能性を確認します。
送信されるとき:
- 近隣要請への応答
- アドレス変更の非要請通知
形式:
送信元:送信者のリンクローカルまたはグローバルアドレス
宛先:要請者のアドレスまたは全ノードマルチキャスト
ホップ制限:255リダイレクト(タイプ137)#
ルーターによって送信され、特定の宛先に対してより良い最初のホップルーターが存在することをホストに通知します。
送信されるとき:
- ホストがルーターにパケットを送信
- ルーターが同じリンク上により良い次ホップを知っている
- ルーターがパケットを転送し、リダイレクトを送信
形式:
送信元:ルーターのリンクローカルアドレス
宛先:元の送信者
ホップ制限:255リダイレクトは、ホストが複雑なルーティングテーブルを維持する必要なく、ルーティングを最適化します。
アドレス解決の仕組み#
ホストがローカルリンク上の別のIPv6アドレスにパケットを送信する必要がある場合:
- 近隣キャッシュをチェック - MACアドレスはすでに知られているか?
- 近隣要請を送信 - そうでない場合、要請ノードマルチキャストアドレスにNSを送信
- 近隣広告を受信 - ターゲットがMACアドレスで応答
- キャッシュを更新 - 将来の使用のためにマッピングを保存
- パケットを送信 - 元のパケットを配信
要請ノードマルチキャストアドレスは、ターゲットのIPv6アドレスから計算されます:
ff02::1:ff + IPv6アドレスの最後の24ビット
例:
IPv6:2001:db8::a4b2:c3d4:e5f6:7890
要請ノード:ff02::1:ff:f6:7890このマルチキャストアプローチは、IPv4のブロードキャストベースのARPと比較してネットワークトラフィックを削減します。
重複アドレス検出
アドレスを使用する前に、ホストは送信元を::とし、ターゲットを使用したいアドレスに設定した近隣要請を送信します。別のホストが応答した場合、アドレスはすでに使用中です。これにより、SLAACでのアドレス競合が防止されます。
ルーター探索の詳細#
ルーターはルーター広告メッセージを通じて自身とネットワーク設定を広告します。ホストはこれらの広告を聞き、それに基づいて自動設定します。
ルーター広告の内容#
典型的なRAには以下が含まれます:
ルーター情報:
- ルーター有効期間(0-9000秒、0は「デフォルトルーターではない」を意味)
- 到達可能性時間(近隣を到達可能と見なす期間)
- 再送信タイマー(近隣要請間の遅延)
プレフィックス情報:
- ネットワークプレフィックス(例:2001:db8:1234::/64)
- 有効期間(アドレスが有効である期間)
- 優先期間(新しい接続に使用する期間)
- フラグ:
- L(オンリンク):プレフィックスはローカルリンク上
- A(自律):SLAACに使用
その他のオプション:
- MTU推奨
- DNSサーバー(RDNSSオプション)
- DNS検索ドメイン(DNSSLオプション)
SLAACアドレス形成#
ホストがAフラグが設定されたRAを受信すると:
- プレフィックスを取る - 例:
2001:db8:1234::/64 - インターフェース識別子を生成 - MACまたはランダムから派生した64ビット
- それらを結合 -
2001:db8:1234::a4b2:c3d4:e5f6:7890 - 重複アドレス検出を実行 - 他の誰も使用していないことを確認
- アドレスを設定 - インターフェースに追加
- デフォルトルートを設定 - 次ホップとしてルーターを使用
これはユーザーの介入やDHCPサーバーなしで自動的に発生します。
設定を制御するフラグ#
ルーター広告には、ホストに自身をどのように設定するかを指示するフラグが含まれています:
- M(管理):アドレスにDHCPv6を使用(SLAACではない)
- O(その他):その他の設定(DNS、NTPなど)にDHCPv6を使用
一般的な組み合わせ:
| M | O | 動作 |
|---|---|---|
| 0 | 0 | SLAACのみ、DHCPv6なし |
| 0 | 1 | アドレスにSLAAC、DNSなどにDHCPv6 |
| 1 | 0 | アドレスにDHCPv6(珍しい) |
| 1 | 1 | すべてにDHCPv6 |
ほとんどのネットワークはM=0、O=0(純粋なSLAAC)またはM=0、O=1(SLAAC + DNSにDHCPv6)を使用します。
パスMTU検出#
IPv6ルーターはパケットをフラグメント化しません。送信元は、パス全体に収まるほど小さなパケットを送信する必要があります。ここでICMPv6タイプ2が重要になります。
PMTUDの仕組み#
- ホストがパケットを送信 - インターフェースMTUを使用(通常1500バイト)
- ルーターがより小さいMTUに遭遇 - IPv6ではフラグメント化できない
- ルーターがパケットをドロップ - ICMPv6パケット過大メッセージを返送
- メッセージにMTUが含まれる - 許可される最大サイズを送信者に伝える
- ホストがパケットサイズを削減 - より小さいMTUで再送信
- 接続が続行 - 適切なパケットサイズを使用
パケット過大メッセージ形式:
タイプ:2
コード:0
MTU:1280(または次ホップがサポートする値)
元のパケット:ドロップされたパケットの最初の部分最小IPv6 MTUは1280バイトです。すべてのリンクは少なくともこのサイズをサポートする必要があります。より大きなパケットはPMTUDが機能する必要があります。
タイプ2をブロックすると何が起こるか#
パケット過大メッセージがブロックされたときの接続症状:
- 初期接続が機能 - SYN、SYN-ACK、ACKパケットは小さい
- データ転送がハング - 大きなパケットが黙ってドロップされる
- エラーメッセージなし - 接続が停止するだけ
- 数分後にタイムアウト - TCPが最終的に諦める
これは、接続が失敗する前に正常に確立されるため、デバッグするのが最もイライラする問題の1つです。
実際のシナリオ:
$ curl -6 https://example.com/
# TLSハンドシェイク後に接続がハング
# ブラウザが「読み込み中...」を永遠に表示
# SSHは接続するがバナー交換中にハングすべては何らかのミドルボックスがICMPv6タイプ2をブロックしたためです。
パケット過大を決してブロックしない
ICMPv6タイプ2をブロックすると、微妙でアプリケーション固有の方法で接続が壊れます。ファイアウォールとルーターの両方向でこのメッセージタイプを常に許可してください。
エコー要求とエコー応答(Ping)#
タイプ128(エコー要求)とタイプ129(エコー応答)は、IPv4 pingとまったく同じように機能します。
形式:
タイプ:128(要求)または129(応答)
コード:0
識別子:任意(要求/応答と一致)
シーケンス:各pingで増分
データ:任意のペイロード診断用途#
Pingは最もシンプルな接続テストです:
# 基本ping
ping6 2001:4860:4860::8888
# 送信元アドレスを指定
ping6 -I 2001:db8::10 2001:4860:4860::8888
# PMTUDをテストするための大きなパケット
ping6 -s 1400 google.com
# フラッドping(rootが必要)
sudo ping6 -f 2001:4860:4860::8888レート制限の考慮事項#
多くの管理者は、偵察とDoS攻撃を防ぐためにpingをレート制限します。これは本番サーバーには合理的ですが、完全にブロックするとトラブルシューティングが困難になります。
推奨アプローチ:
- エコー要求/応答を許可
- 悪用を防ぐためにレート制限
- 過度の試行をログに記録
Linux の例:
# pingを許可するがレート制限
ip6tables -A INPUT -p ipv6-icmp --icmpv6-type 128 \
-m limit --limit 10/sec --limit-burst 20 -j ACCEPT
ip6tables -A INPUT -p ipv6-icmp --icmpv6-type 128 -j DROPこれにより、1秒あたり10回のpingが許可され、最大20回までバーストでき、過剰なトラフィックをドロップします。
ファイアウォールの考慮事項#
ICMPv6フィルタリングには、どのタイプが不可欠でどのタイプがオプションかを理解する必要があります。
許可する必要がある(接続性を壊す)#
タイプ2:パケット過大
- 方向:インバウンドとアウトバウンドの両方
- 理由:それなしではパスMTU検出が壊れる
- 範囲:すべての接続
タイプ133-136:近隣探索
- 方向:リンクローカルのみ(ホップ制限255)
- 理由:アドレス解決とルーター探索が失敗
- 範囲:ローカルネットワークのみ
タイプ1:宛先到達不可能
- 方向:インバウンド(トラフィックへの応答)
- 理由:TCPはポート/ルートが存在しないことを知る必要がある
- 範囲:すべての接続
許可すべき(診断を壊す)#
タイプ3:時間超過
- 方向:インバウンド
- 理由:それなしではTracerouteが失敗
- 影響:ルーティング問題を診断できない
タイプ128-129:エコー要求/応答
- 方向:両方
- 理由:Pingは主要な接続性テスト
- 影響:基本的な到達可能性を確認できない
ブロックできる(情報のみ)#
タイプ130-132:マルチキャストリスナー発見
- 範囲:ローカルネットワークのみ
- 影響:マルチキャストが最適に機能しない可能性がある
タイプ137:リダイレクト
- 影響:ローカルネットワーク上の次善のルーティング
- セキュリティ:一部の管理者はルート操作を防ぐためにブロック
iptablesルールの例#
最小限のホストファイアウォール:
# 不可欠なICMPv6
ip6tables -A INPUT -p ipv6-icmp --icmpv6-type 1 -j ACCEPT # 宛先到達不可能
ip6tables -A INPUT -p ipv6-icmp --icmpv6-type 2 -j ACCEPT # パケット過大
ip6tables -A INPUT -p ipv6-icmp --icmpv6-type 3 -j ACCEPT # 時間超過
ip6tables -A INPUT -p ipv6-icmp --icmpv6-type 128 -j ACCEPT # エコー要求
ip6tables -A INPUT -p ipv6-icmp --icmpv6-type 129 -j ACCEPT # エコー応答
# 近隣探索(リンクローカルのみ、ホップ制限255)
ip6tables -A INPUT -p ipv6-icmp --icmpv6-type 133 -m hl --hl-eq 255 -j ACCEPT
ip6tables -A INPUT -p ipv6-icmp --icmpv6-type 134 -m hl --hl-eq 255 -j ACCEPT
ip6tables -A INPUT -p ipv6-icmp --icmpv6-type 135 -m hl --hl-eq 255 -j ACCEPT
ip6tables -A INPUT -p ipv6-icmp --icmpv6-type 136 -m hl --hl-eq 255 -j ACCEPTホップ制限チェック(--hl-eq 255)により、近隣探索パケットがローカルリンクから発信されることが保証されます。正当なNDPは常にホップ制限255を使用します。ルーターからのパケットは減少した値を持ちます。
nftables相当:
# 不可欠なICMPv6
nft add rule ip6 filter input icmpv6 type { destination-unreachable, packet-too-big, time-exceeded, echo-request, echo-reply } accept
# ホップ制限チェック付き近隣探索
nft add rule ip6 filter input icmpv6 type { nd-router-solicit, nd-router-advert, nd-neighbor-solicit, nd-neighbor-advert } ip6 hoplimit 255 accept一般的なミス:すべてのICMPv6をブロック
最も一般的なIPv6ファイアウォールミスは、すべてのICMPv6をブロックすることです。管理者はすべてのICMPをブロックするIPv4ルールを移植し、なぜIPv6が壊れるのか疑問に思います。ICMPv6はオプションではありません——不可欠なタイプを許可するか、接続性の失敗を期待してください。
ICMPv6を使用したトラブルシューティング#
エラーメッセージの読み取り#
接続が失敗した場合、tcpdumpでICMPv6エラーメッセージをチェックします:
# すべてのICMPv6をキャプチャ
sudo tcpdump -i eth0 -n ip6 and icmp6
# 特定のタイプ
sudo tcpdump -i eth0 -n 'ip6 and icmp6 and ip6[40] == 1' # タイプ1(宛先到達不可能)
sudo tcpdump -i eth0 -n 'ip6 and icmp6 and ip6[40] == 2' # タイプ2(パケット過大)一般的なエラーシナリオ:
タイプ1、コード1:管理上禁止された通信
# ファイアウォールがトラフィックをブロック
18:23:45.123456 IP6 2001:db8::1 > 2001:db8::10: ICMP6, destination unreachable,
administratively prohibited, length 68ファイアウォールまたはアクセス制御リストが接続をブロックしています。
タイプ1、コード4:ポート到達不可能
# サービスが実行されていない
18:23:45.234567 IP6 2001:db8::10 > 2001:db8::1: ICMP6, destination unreachable,
port unreachable, length 68ターゲットポートで何もリスニングしていません。
タイプ2:パケット過大
# MTUの問題
18:23:45.345678 IP6 2001:db8:1234::1 > 2001:db8::10: ICMP6, packet too big,
mtu 1280, length 1240パスMTUが送信者が想定したものより小さい。送信者はパケットサイズを1280バイトに削減する必要があります。
NDP用のWireshark#
Wiresharkはディスプレイフィルターを使用してNDP分析を容易にします:
# すべてのICMPv6
icmpv6
# 近隣探索のみ
icmpv6.type >= 133 && icmpv6.type <= 137
# ルーター広告
icmpv6.type == 134
# 特定のアドレスの近隣要請
icmpv6.type == 135 && icmpv6.nd.ns.target_address == 2001:db8::10ルーター広告を監視して、ネットワークが提供する設定を確認します:
# RAをフィルタリングし、パケット詳細でICMPv6レイヤーを展開
# 確認:
# - フラグ(M、O)
# - プレフィックス情報
# - DNSサーバー(RDNSSオプション)
# - MTUオプション一般的な問題と解決策#
*問題:ホストにグローバルIPv6アドレスがなく、fe80::のみ
診断:
# ルーター広告をチェック
sudo tcpdump -i eth0 -n 'icmp6 && ip6[40] == 134'原因:
- ネットワーク上にルーターがない
- ルーターがRAを送信していない
- ファイアウォールがタイプ134をブロック
解決策: ルーターでIPv6を有効にし、RA設定を確認し、ファイアウォールルールをチェックします。
問題:Pingは機能するが大きな転送がハング
診断:
# 大きなpingパケットでテスト
ping6 -s 1400 target.example.com原因:
- ICMPv6タイプ2がどこかでブロックされている
- パス内のMTU不一致
- ファイアウォールがパケット過大をフィルタリング
解決策: すべてのファイアウォールを通じてタイプ2を許可し、MTU設定を確認します。
問題:同じサブネット上の近隣に到達できない
診断:
# 近隣キャッシュをチェック
ip -6 neigh show
# 近隣要請を監視
sudo tcpdump -i eth0 -n 'icmp6 && ip6[40] == 135'原因:
- ファイアウォールがタイプ135/136をブロック
- スイッチがマルチキャストをフィルタリング
- ターゲットでIPv6が無効
解決策: ファイアウォールを通じてNDPを許可し、スイッチマルチキャスト設定を確認します。
問題:ホストがルーター広告を無視
診断:
# RAが到着していることを確認
sudo tcpdump -i eth0 -n 'icmp6 && ip6[40] == 134'
# accept_ra設定をチェック(Linux)
sysctl net.ipv6.conf.eth0.accept_ra原因:
- accept_raが無効(Linux)
- ホストでIPv6転送が有効(RA処理を無効にする)
- RAのホップ制限が無効(!= 255)
解決策: accept_raを有効にし、エンドホストで転送を無効にし、ルーター設定を確認します。
関連記事#
- IPv6基礎 - IPv6アドレッシングの基本とIPv6が存在する理由を学ぶ
- IPv6ファイアウォール設定 - セキュリティを維持しながら不可欠なICMPv6を許可するようにファイアウォールを設定する
- IPv6を有効にする方法 - 適切なNDP設定でデバイスとネットワーク上でIPv6を機能させる
ネットワークをテスト
Pingツールを使用してICMPv6接続性をテストし、Tracerouteツールを使用してICMPv6時間超過メッセージの実際の動作を確認してください。
よくある質問#
IPv4 ICMPと同じようにICMPv6 pingをブロックできますか?
エコー要求/応答(タイプ128-129)をレート制限またはブロックしても接続性を壊すことはありませんが、トラブルシューティングがはるかに困難になります。ICMPが主に診断的であるIPv4とは異なり、ICMPv6には近隣探索やパスMTU検出などの決してブロックしてはならない不可欠な機能が含まれています。pingをブロックしたい場合はそうできますが、タイプ1、2、または133-136は決してブロックしないでください。
なぜNDPはARPのようなブロードキャストではなくマルチキャストを使用するのですか?
マルチキャストはより効率的です。IPv4 ARPはブロードキャストを送信し、ネットワーク上のすべてのホストがターゲットでなくても処理する必要があります。IPv6 NDPは、ターゲットのIPv6アドレスから計算された要請ノードマルチキャストアドレスを使用します。一致するアドレスを持つホストのみがパケットを処理します——他のすべてのホストはハードウェアでフィルタリングします。これにより、特に大規模ネットワークでCPU負荷とネットワークノイズが削減されます。
ルーター要請とルーター広告の違いは何ですか?
ルーター要請(タイプ133)は、ホストによって送信される要求で、ルーターに即座に自分自身を通知するよう求めます。ルーター広告(タイプ134)は、ルーターによって送信される応答で、ネットワークプレフィックス、設定パラメータ、ルーター情報が含まれます。ルーターは要請なしで定期的にRAも送信します。RSにより、ホストは次の定期的なRAを待つ代わりに、起動時に迅速に設定を取得できます。
ルーターはどのくらいの頻度でルーター広告を送信すべきですか?
RFC 4861は、200〜600秒(3.3〜10分)間隔のRAを推奨しています。ほとんどの実装はデフォルトで200秒です。ルーターはルーター要請にも即座に応答します。間隔は、新しいホストの迅速な設定と最小限のネットワークオーバーヘッドのバランスを取ります。頻繁すぎると帯域幅を無駄にし、頻繁すぎないと自動設定が遅れます。
なぜ一部のICMPv6メッセージはホップ制限255を必要とするのですか?
ホップ制限255の要件により、リンク外の攻撃者が偽造された近隣探索メッセージを送信することを防ぎます。正当なNDPパケットはローカルリンクから発信され、常にホップ制限255を使用します。リモート攻撃者からのパケットはルーターを通過し、ホップ制限が減少します。ホップ制限が255未満のパケットを拒否することにより、ホストはローカルネットワークの外部からの悪意のあるルーター広告と近隣広告から保護されます。