IPv6について
今回も前回に引き続きIPv6について記載していきたいと思います。
ipv6アドレスの設定の仕方について
RAを使用してアドレスを設定
今回はRAを使用して自動でルータにアドレスを設定する方法について記載します。
IPv6にはIPv4でいうARPの代わりにNeighbor Discoveryというプロトコルを使用しています。
(IPv6ではARPは使われていません)
Neighbor DiscoveryはIPv6 ICMPの一種なのですが、以下の用途で使用されています。
・IPv6アドレスからMACアドレスを解決する
(ICMP Type135 ネイバーソリシテーション、 ICMP Type136 ネイバーアドバタイズメントを使用します)
・IPv6アドレスを自動設定する(ステートレス自動設定と呼ばれている)
(ICMP Type133 ルータソリシテーション、 ICMP Type134 ルータアドバタイズメントを使用します)
・重複したIPv6アドレスを持つ機器がいないかを調べる(DADと呼ばれている)
IPv6アドレスからMACアドレスを解決する場合は、
NS(ネイバーソリシテーション)という要求と、NA(ネイバーアドバタイズメント)という要請を返すことによって
リンクローカルアドレスを元に、MACアドレスを解決しています。
RAはRouter Advertisementと呼ばれておりNeighbor Discoveryプロトコルの一種で、
端末がIPv6アドレスを自動設定する際に使用されています。
RAを使用したIPv6アドレスの自動設定はステートレス自動設定とも呼ばれています。
この方法では RSというメッセージとRAというメッセージをやり取りすることによって
自動でIPv6アドレスを設定しています。
RSメッセージはルータ要請ともよばれ、アドレスを割り当ててもらいたい側が、ルータなどに送るメッセージです。
RAはルータアドバタイズメントとよばれ、ルータなどがアドレスを割り当てるために、プレフィックスやデフォルトゲートウェイなどの情報を
RSを送ってきた機器に渡すためのメッセージです。
RSやRAメッセージは実際にはICMPv6を使用しています。
RSとRAのメッセージをやりとりするためにはリンクローカルユニキャストアドレスが
双方の機器に設定されている必要があります。
Ciscoルータではデフォルトで200秒おきにルータはRAを送信しています。
RAを有効にするには以下のコマンドをまず実行する必要があります。
1 | (config) # ipv6 unicast-routing |
このコマンドを実行しないとRAがルータから送信されません。
またルータがRAを受信してインターフェースに自動でIPv6アドレスを設定したい場合は以下のコマンドを実行します。
1 | (config- if ) # ipv6 address autoconfig |
実際の設定例
[styled_images width=”498px” height=”268px”] [image title=”1″]https://www.sakc.jp/blog/wp-content/uploads/2015/03/ipv6-1.png[/image] [/styled_images] [clearboth]以下の例では R1 と R2 を使用して R2側で RA を受信して、プレフィックス部分を取得して、アドレスを設定しています。
まず先に R2 側で以下のコマンドを実行してみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | R2(config) # int f0/0 R2(config- if ) # ipv6 address autoconfig すると、リンクローカルユニキャストアドレスのみが設定されました。 R2 #show ipv6 interface f0/0 FastEthernet0 /0 is up, line protocol is up IPv6 is enabled, link- local address is FE80::C001:17FF:FE90:0 [TEN] No global unicast address is configured Joined group address(es): FF02::1 FF02::1:FF90:0 MTU is 1500 bytes ICMP error messages limited to one every 100 milliseconds ICMP redirects are enabled ND DAD is enabled, number of DAD attempts: 1 ND reachable time is 30000 milliseconds |
次にR1側で以下のコマンドを実行してRAの情報を送信できるようにしてみます。
1 2 3 | R1(config) #ipv6 unicast-routing R1(config) #int f0 R1(config- if ) #ipv6 address 2001:1::/64 eui-64 |
R1の f0 のインターフェースの状態を確認してみると RA が有効化されているのが確認できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | R1 #sh ipv6 interface f0 FastEthernet0 is up, line protocol is up IPv6 is enabled, link- local address is FE80::217:95FF:FE9E:F9B4 No Virtual link- local address(es): Global unicast address(es): 2001:1::217:95FF:FE9E:F9B4, subnet is 2001:1:: /64 [EUI] Joined group address(es): FF02::1 FF02::2 FF02::1:FF9E:F9B4 MTU is 1500 bytes ICMP error messages limited to one every 100 milliseconds ICMP redirects are enabled ICMP unreachables are sent ND DAD is enabled, number of DAD attempts: 1 ND reachable time is 30000 milliseconds (using 30000) ND advertised reachable time is 0 (unspecified) ND advertised retransmit interval is 0 (unspecified) ND router advertisements are sent every 200 seconds ND router advertisements live for 1800 seconds ND advertised default router preference is Medium Hosts use stateless autoconfig for addresses. |
続いてR2のほうを確認してみます。
するとR1と同じプレフィックスがR2に割り当てられて、自動でグローバルユニキャストアドレスが設定されました。
インターフェースID部分はEUI-64フォーマットを使用して生成されています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | R2 #sh ipv6 int f0 FastEthernet0 is up, line protocol is up IPv6 is enabled, link- local address is FE80::21B:54FF:FE92:D142 No Virtual link- local address(es): Stateless address autoconfig enabled Global unicast address(es): 2001:1::21B:54FF:FE92:D142, subnet is 2001:1:: /64 [EUI /CAL/PRE ] valid lifetime 2591901 preferred lifetime 604701 Joined group address(es): FF02::1 FF02::1:FF92:D142 MTU is 1500 bytes ICMP error messages limited to one every 100 milliseconds ICMP redirects are enabled ICMP unreachables are sent ND DAD is enabled, number of DAD attempts: 1 ND reachable time is 30000 milliseconds (using 30000) Default router is FE80::217:95FF:FE9E:F9B4 on FastEthernet0 |
またR2のルーティングテーブルを確認すると以下のようにRAを受信した際に、
そのRAを送ってきたルータをデフォルトが設定されています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | R2 #sh ipv6 route IPv6 Routing Table - default - 4 entries Codes: C - Connected, L - Local, S - Static, U - Per-user Static route B - BGP, HA - Home Agent, MR - Mobile Router, R - RIP D - EIGRP, EX - EIGRP external, NM - NEMO, ND - Neighbor Discovery l - LISP O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 S :: /0 [2 /0 ] via FE80::217:95FF:FE9E:F9B4, FastEthernet0 C 2001:1:: /64 [0 /0 ] via FastEthernet0, directly connected L 2001:1::21B:54FF:FE92:D142 /128 [0 /0 ] via FastEthernet0, receive L FF00:: /8 [0 /0 ] via Null0, receive |
ちなみに下記のコマンドを実行するとルータは自動的にインターフェースからRAを
200秒おきに送信するようになりますが、
1 | (config) # ipv6 unicast-routing |
もしもR1のf0のインターフェースでRAを定期的に送信するのを
無効化したい場合は以下のようにします。
1 | (config- if ) # ipv6 nd ra suppress |
また上記のコマンドを実行してもRSが送信されてきた場合には応答を返すので、
もしこれも無効化したいなら以下のコマンドを実行します。
1 | (config- if ) # ipv6 nd ra suppress all |