IPv6の有効化
CiscoルータでIPv6を使えるようにするためには、まずIPv6のルーティング機能をONにする必要があります。デフォルトでは無効化されているため、必ず次のコマンドを入力してください。
(config)# ipv6 unicast-routing
このコマンドを実行すると、ルータがIPv6パケットを中継できるようになります。試験でも「IPv6通信ができない原因」として、この設定忘れが問われやすいので要注意です。
IPv6アドレスの設定(グローバルユニキャストアドレス)
IPv6では、インターフェースごとにアドレスを割り当てる必要があります。基本の設定は次のように行います。
(config-if)# ipv6 address アドレス/プレフィックス長 [ eui-64 ] [ anycast ]
ここで重要なポイントを整理しておきます。
- 手動割り当て
管理者が明示的にアドレスを設定します。
例:(config-if)# ipv6 address 2001:1:1:1::1/64 - EUI-64による自動生成
インターフェースのMACアドレスを基にホスト部が自動生成されます。
例:(config-if)# ipv6 address 2001:1:1:1::/64 eui-64 - エニーキャストアドレス
複数の機器が同じアドレスを持ち、最も近い機器にトラフィックを届ける仕組みです。
例:(config-if)# ipv6 address 2001:2:2:2::/64 anycast
IPv6アドレスの設定(リンクローカルアドレス)
リンクローカルアドレスは、同一リンク内で必ず必要となるIPv6アドレスです。通常は自動的に生成されるため、特に指定する必要はありません。しかし、運用上の分かりやすさから、手動で設定する場合もあります。
手動設定の例:
(config-if)# ipv6 address FE80::1234:abc:12:1 link-local
また、次のコマンドを使うと、そのインターフェースで自動的にリンクローカルアドレスが有効になります。
(config-if)# ipv6 enable
ただし、実務や試験では「グローバルアドレスを設定すればリンクローカルは自動生成される」という理解が重要です。
IPv6アドレスの自動取得(オプション)
ルータのインターフェースにも、ホストと同様に自動設定を行うことができます。あまり一般的ではありませんが、知識として覚えておきましょう。
(config-if)# ipv6 address autoconfig default
default を付けると、RA(ルータアドバタイズメント)の情報をもとにデフォルトルートも登録されます。ただし、この設定は1台のルータに1つのインターフェースでしか有効にできません。
インターフェースのIPv6確認
設定した内容は、次のコマンドで確認できます。
# show ipv6 interface
ここで表示される内容には以下が含まれます。
- グローバルユニキャストアドレス
- リンクローカルアドレス
- 参加しているマルチキャストグループ
また、インターフェースが物理的にダウンしている場合、IPv6アドレスは「tentative(暫定)」と表示される点も試験で狙われやすいポイントです。
CatalystスイッチでのIPv6有効化
スイッチでは、IPv6を有効化する前に「SDMテンプレート」の設定が必要です。Catalyst3750シリーズなどでは、以下のように設定します。
(config)# sdm prefer dual-ipv4-and-ipv6 { default | routing | vlan }
選択肢の意味は以下の通りです。
- default … IPv4/IPv6のL2・L3機能をバランスよく利用
- routing … IPv4/IPv6のルーティング機能を最大限利用
- vlan … VLAN機能を最大限利用
例:IPv6ルーティングを重視する場合
Catalyst(config)# sdm prefer dual-ipv4-and-ipv6 routing
Catalyst# copy run start
Catalyst# reload
この設定は再起動後に反映されるため、忘れずに reload を実行してください。
この流れをしっかり押さえると、IPv6の基本設定はほぼマスターできます。特に「unicast-routing の有効化」「EUI-64 の仕組み」「リンクローカルの自動生成」の3点は試験で頻出です。
IPv6 RA(Router Advertisement)の基本
IPv6ネットワークでは、ルータが送信するRAメッセージ(Router Advertisement)が、ホスト側の自動設定に大きな役割を持ちます。RAにはデフォルトルータの情報や利用可能なプレフィックスが含まれ、ホストはそれを基にアドレスやデフォルトゲートウェイを自動的に設定します。ここではRAに関する主な設定コマンドを整理します。試験では「RAの動作と調整項目」が頻出ですので、仕組みと代表的なコマンドは確実に覚えておきましょう。
RAメッセージの送信間隔の調整
ルータが定期的にRAメッセージを送信する間隔を調整できます。デフォルトは 200秒 ですが、必要に応じて変更可能です。
(config-if)# ipv6 nd ra interval 最大値 [最小値]
- 最大値:4~1800秒
- 最小値:3~150秒(省略可)
ミリ秒単位で指定する場合は msec を使います。
例:300秒ごとにRAを送信
(config)# interface g0/0
(config-if)# ipv6 nd ra interval 300
ルータライフタイムの設定
ルータライフタイムは、「このルータをデフォルトルータとして利用できる時間」を表します。デフォルトは 1800秒(30分) です。
(config-if)# ipv6 nd ra lifetime 秒数
例:3600秒(1時間)に変更する場合
(config)# interface g0/0
(config-if)# ipv6 nd ra lifetime 3600
ホストは、この値をもとに「どのルータをデフォルトルータとして使うか」を判断します。
RA通知の停止
場合によっては、あるインターフェースからRAを送信したくないことがあります。その際は次のコマンドを使用します。
(config-if)# ipv6 nd ra suppress [all]
例:g0/0でRAを完全に無効化
(config)# interface g0/0
(config-if)# ipv6 nd ra suppress all
デフォルトルータの優先度(DRP)
複数のルータが同一リンク上にある場合、ホストがどのルータを優先してデフォルトルータに選ぶかを調整できます。
(config-if)# ipv6 nd router-preference { high | medium | low }
デフォルトは medium。
例:このルータを最優先にする場合
(config)# interface g0/0
(config-if)# ipv6 nd router-preference high
RAで通知するプレフィックスの定義
RAにはインターフェースで設定されたプレフィックスが自動的に含まれますが、有効期間(lifetime)を調整したい場合は以下のように設定します。
(config-if)# ipv6 nd prefix プレフィックス/長さ 有効期間 推奨期間
- valid lifetime:プレフィックスが有効とされる時間(デフォルト 30日)
- preferred lifetime:推奨される時間(デフォルト 7日)
例:有効期間60日、推奨期間14日とする場合
(config)# interface g0/0
(config-if)# ipv6 nd prefix 2001:1:2:3::/64 5184000 1209600
IPv6スタティックルートの設定
IPv6環境でも、IPv4と同様にスタティックルートを設定することができます。コマンドの基本構文は次の通りです。
(config)# ipv6 route prefix/length [ nexthop | interface ] [distance]
ここで指定できる要素を整理しておきましょう。
- prefix/length
宛先ネットワークとプレフィックス長を指定します。例:2001:1:2:3::/64 - nexthop
宛先に到達するためのネクストホップを指定します。
IPv6では、リンクローカルアドレスを指定することが推奨されます。 - interface
出力インターフェースを指定します。特にシリアルなどの ポイントツーポイント接続 ではインターフェース指定がよく使われます。 - distance
アドミニストレーティブディスタンスを指定できます。省略するとデフォルトの 1 が使われます。
設定例:スタティックルートの登録
(config)# ipv6 route 2001:1:2:3::/64 gigabitethernet0/0 fe80::2
この例では、宛先 2001:1:2:3::/64 へ到達するために、出力インターフェースを GigabitEthernet0/0、ネクストホップをリンクローカルアドレス fe80::2 として指定しています。
注意点:ネクストホップにリンクローカルアドレスを指定する場合、必ずインターフェースも併せて指定する必要があります。理由は、リンクローカルアドレスが同一リンク内で重複する可能性があるためです。
IPv6デフォルトルートの設定
IPv6では、全ての宛先を表すネットワークプレフィックスとして ::/0 を使用します。これを使ってデフォルトルートを設定します。
例:ネクストホップをリンクローカルアドレス fe80::1 として指定
(config)# ipv6 route ::/0 gigabitethernet0/0 fe80::1
この設定により、ルーティングテーブルに明示的なルートが存在しない宛先はすべて、このデフォルトルートを経由するようになります。試験では「IPv6におけるデフォルトルートの表記は ::/0」という点が狙われやすいです。
IPv6 Nullルートの設定
特定の宛先ネットワークへのトラフィックを破棄したい場合、ネクストホップとして null0 を指定することで、強制的にパケットを捨てることができます。これは「ブラックホールルート」とも呼ばれます。
例:2001:1:2:3::/64 宛のトラフィックを全て破棄
(config)# ipv6 route 2001:1:2:3::/64 null0
このような設定は、セキュリティ対策やルーティングループ防止のために利用されます。
IPv6 ACLの基本
IPv6 ACL(アクセスコントロールリスト)は、IPv6トラフィックを制御するための仕組みで、IPv4 ACLとほぼ同じ考え方で利用できます。条件として指定できるのは以下の要素です。
- 送信元IPv6アドレス
- 宛先IPv6アドレス
- ネクストヘッダ(IPv4におけるプロトコルフィールドに相当)
- 送信元ポート番号
- 宛先ポート番号
これらを組み合わせて、特定の通信を許可または拒否するルールを作成します。
IPv6 ACLの「暗黙のpermit」と「暗黙のdeny」
IPv4 ACLには「最後にすべて拒否する暗黙のdeny」が存在しますが、IPv6 ACLではそれに加えて、近隣探索(Neighbor Discovery, ND)を確実に動作させるための「暗黙のpermit」も存在します。
デフォルトで以下の3行が存在していると考えてください。
permit icmp any any nd-ns
permit icmp any any nd-na
deny ipv6 any any
nd-ns… Neighbor Solicitation(近隣要請)nd-na… Neighbor Advertisement(近隣通知)
つまり、IPv6 ACLを作るときは、最後に「全て拒否」してしまうとNDメッセージまで遮断してしまう危険があるため、必要に応じて明示的にpermit文を追加することが大切です。
IPv6 ACLの設定手順
IPv6 ACLは、次の手順で設定・適用します。
- グローバルコンフィグモードで
ipv6 access-listを使い、ACLルールを定義する - インターフェースモードで
ipv6 traffic-filterを使い、ACLを適用する
設定例
シナリオ:
- ホスト
2001:1:1:10::11からの SSH(22番ポート) と Telnet(23番ポート) を拒否 - ネットワーク
2001:1:1:10::/64からホスト2001:2:2:20::22への PING(ICMP echo-request) を拒否 - それ以外のトラフィックは許可
ACL名は TEST-V6ACL とします。
R1(config)# ipv6 access-list TEST-V6ACL
R1(config-ipv6-acl)# deny tcp host 2001:1:1:10::11 any eq 22
R1(config-ipv6-acl)# deny tcp host 2001:1:1:10::11 any eq 23
R1(config-ipv6-acl)# deny icmp 2001:1:1:10::/64 host 2001:2:2:20::22 echo-request
R1(config-ipv6-acl)# permit ipv6 any any
R1(config)# interface GigabitEthernet0/0
R1(config-if)# ipv6 traffic-filter TEST-V6ACL in
このように設定することで、不要な通信を制御しつつ、必要な通信は通すことができます。
IPv6 ACLの確認方法
設定後は、次のコマンドでACLの動作状況を確認できます。
- ACLのヒット回数確認
show ipv6 access-list※ カウンタをリセットしたいときはclear access-list countersを使用 - ACLの適用状況確認
show ipv6 interfaceインターフェースにどのACLがどの方向(in/out)で適用されているかが分かります。
IPv6 ACLで注意すべき点
- 必要最低限のdenyルールだけを書きたい場合は、最後に
permit icmp any any nd-na permit icmp any any nd-nsを入れておくことが重要です。 - 明示的に「permit ipv6 any any」を入れておくと、不要な遮断を避けられます。