概要

IPv6アドレスとRIPngについての設定ミスの切り分けと修正を行います。

ネットワーク構成

下記のネットワーク構成でIPv6を利用して、ホスト間の通信ができるようにします。

ルーティングプロトコルにはRIPngを利用します。また、ホストはルータのLoopback0インタフェースとしています。R2 Fa0/0のIPv6アドレスはRAメッセージにより自動的に設定するものとします。

設定概要

各ルータのIPv6に関する設定は以下のとおりです。これらの設定には、一部設定ミスが含まれています。

R1

ipv6 unicast-routing
!
interface Loopback0
 ipv6 address 2001:1:1:1::1/64
 ipv6 enable
!
interface FastEthernet0/0
 ipv6 address 2001:12:12:12::1/64
 ipv6 address FE80::1 link-local
 ipv6 enable
 ipv6 nd suppress-ra
 ipv6 rip RIP enable
!
ipv6 router rip RIP

R2

ipv6 unicast-routing
!
interface Loopback0
 ipv6 address 2001:2:2:2::2/64
 ipv6 enable
 ipv6 rip RIP enable
!
interface FastEthernet0/0
 ipv6 address FE80::2 link-local
 ipv6 address autoconfig
 ipv6 enable
 ipv6 rip RIP enable
!
ipv6 router rip RIP

トラブルの症状

現在のR1、R2の設定ではホスト間の通信を行うことができません。ホスト間の通信ができない原因を調べるために、R1、R2で以下のshowコマンドを実行しました。

  • show ipv6 interface brief
  • show ipv6 rip
  • show ipv6 route

R1

R1#show ipv6 interface brief
FastEthernet0/0            [up/up]
    FE80::1
    2001:12:12:12::1
Loopback0                  [up/up]
    FE80::CE00:24FF:FE48:0
    2001:1:1:1::1
R1#show ipv6 rip
RIP process "RIP", port 521, multicast-group FF02::9, pid 156
     Administrative distance is 120. Maximum paths is 16
     Updates every 30 seconds, expire after 180
     Holddown lasts 0 seconds, garbage collect after 120
     Split horizon is on; poison reverse is off
     Default routes are not generated
     Periodic updates 35, trigger updates 3
  Interfaces:
    FastEthernet0/0
  Redistribution:
    None
R1#show ipv6 route
IPv6 Routing Table - 7 entries
Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP
       U - Per-user Static route
       I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary
       O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
       ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
C   2001:1:1:1::/64 [0/0]
     via ::, Loopback0
L   2001:1:1:1::1/128 [0/0]
     via ::, Loopback0
R   2001:2:2:2::/64 [120/2]
     via FE80::2, FastEthernet0/0
C   2001:12:12:12::/64 [0/0]
     via ::, FastEthernet0/0
L   2001:12:12:12::1/128 [0/0]
     via ::, FastEthernet0/0
L   FE80::/10 [0/0]
     via ::, Null0
L   FF00::/8 [0/0]
     via ::, Null0

R2

R2#show ipv6 interface brief
FastEthernet0/0            [up/up]
    FE80::2
Loopback0                  [up/up]
    FE80::CE01:24FF:FE48:0
    2001:2:2:2::2
R2#show ipv6 rip
RIP process "RIP", port 521, multicast-group FF02::9, pid 156
     Administrative distance is 120. Maximum paths is 16
     Updates every 30 seconds, expire after 180
     Holddown lasts 0 seconds, garbage collect after 120
     Split horizon is on; poison reverse is off
     Default routes are not generated
     Periodic updates 31, trigger updates 3
  Interfaces:
    Loopback0
    FastEthernet0/0
  Redistribution:
    None
R2#show ipv6 route
IPv6 Routing Table - 5 entries
Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP
       U - Per-user Static route
       I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary
       O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
       ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
C   2001:2:2:2::/64 [0/0]
     via ::, Loopback0
L   2001:2:2:2::2/128 [0/0]
     via ::, Loopback0
R   2001:12:12:12::/64 [120/2]
     via FE80::1, FastEthernet0/0
L   FE80::/10 [0/0]
     via ::, Null0
L   FF00::/8 [0/0]
     via ::, Null0

問題

  • ホスト間の通信ができない原因は何ですか。
  • ホスト間の通信ができるようにするために、R1、R2でどのように設定を修正すればよいですか。

解答

  • ホスト間の通信ができない原因は何ですか。

R2 F0/0にRAによってIPv6アドレスが自動的に設定されていないため。また、R1 Loopback0でRIPngが有効化されていないため、R2からHost1へパケットをルーティングできないため。

  • ホスト間の通信ができるようにするために、R1、R2でどのように設定を修正すればよいですか。

R1

interface loopback0
 ipv6 rip RIP enable
!
interface FastEthernet0/0
 no ipv6 nd suppress-ra

ワンポイント

  • デフォルトでルータはRAメッセージを生成する
  • RIPngはインタフェース単位で有効化する

解説

IPv6の通信をするためには、すべての機器にIPv6アドレスが正しく設定されていることと、経路上のルータで正しくルーティングテーブルに必要なルート情報が登録されていなければなりません。この点は、IPv4での通信と全く同じです。今回の設定ミスは、次の2点です。

  • IPv6アドレスが正しく設定されていない
  • RIPngが正しく設定されていない

【IPv6アドレスが正しく設定されていない】

R2 F0/0のIPv6アドレスを確認すると、リンクローカルアドレスのみでグローバルアドレスが設定されていません。

R2

R2#show ipv6 interface brief 
FastEthernet0/0            [up/up]
    FE80::2
Loopback0                  [up/up]
    FE80::CE01:19FF:FEE0:0
    2001:2:2:2::2

R2 F0/0では、ipv6 address autoconfigコマンドによって、RAメッセージから自動的にIPv6アドレスを生成する設定が行われています。

R2

R2#show running-config interface fastEthernet 0/0
Building configuration...

Current configuration : 165 bytes
!
interface FastEthernet0/0
 no ip address
 duplex auto
 speed auto
 ipv6 address FE80::2 link-local
 ipv6 address autoconfig
 ipv6 enable
 ipv6 rip RIP enable
end

RAメッセージを確認するために、R2でdebug ipv6 ndコマンドを有効にしてもデバッグの出力は出てきません。R1がRAメッセージを送信していないことが考えられます。R1のF0/0の設定を確認すると、次のようになっています。

R2

R1#show running-config interface fastEthernet 0/0
Building configuration...

Current configuration : 195 bytes
!
interface FastEthernet0/0
 no ip address
 duplex auto
 speed auto
 ipv6 address 2001:12:12:12::1/64
 ipv6 address FE80::1 link-local
 ipv6 enable
 ipv6 nd suppress-ra
 ipv6 rip RIP enable
end

デフォルトでは、設定したIPv6アドレスのプレフィクスをRAメッセージで送信します。ところが、R1 F0/0ではipv6 nd suppress-raコマンドでRAメッセージの送信が無効化されていることがわかります。R2 F0/0のグローバルアドレスを設定するためには、R1 F0/0でRAメッセージの送信を有効化します。そのためのコマンドは以下のとおりです。

R1

interface FastEthernet0/0
 no ipv6 nd suppress-ra

その後、R2 F0/0のIPv6アドレスを確認するとRAメッセージから自動的にグローバルアドレスが設定されるようになっていることがわかります。

R2

R2#show ipv6 interface brief 
FastEthernet0/0            [up/up]
    FE80::2
    2001:12:12:12::2
Loopback0                  [up/up]
    FE80::CE01:19FF:FEE0:0
    2001:2:2:2::2

【RIPngが正しく設定されていない】

R2 F0/0のIPv6アドレスが正しく設定されてもホスト間の通信ができません。R2のIPv6ルーティングテーブルを確認すると、次のようになっています。

R2

R2#show ipv6 route
IPv6 Routing Table - 6 entries
Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP
       U - Per-user Static route
       I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary
       O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
       ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
C   2001:2:2:2::/64 [0/0]
     via ::, Loopback0
L   2001:2:2:2::2/128 [0/0]
     via ::, Loopback0
C   2001:12:12:12::/64 [0/0]
     via ::, FastEthernet0/0
L   2001:12:12:12::2/128 [0/0]
     via ::, FastEthernet0/0
L   FE80::/10 [0/0]
     via ::, Null0
L   FF00::/8 [0/0]
     via ::, Null0

R2のルーティングテーブルにはHost1のプレフィクス 2001:1:1:1::/64が登録されていないことがわかります。R2では、以下のように正しくRIPngが有効化されています。

R2

R2#show ipv6 rip 
RIP process "RIP", port 521, multicast-group FF02::9, pid 163
     Administrative distance is 120. Maximum paths is 16
     Updates every 30 seconds, expire after 180
     Holddown lasts 0 seconds, garbage collect after 120
     Split horizon is on; poison reverse is off
     Default routes are not generated
     Periodic updates 64, trigger updates 3
  Interfaces:
    FastEthernet0/0
    Loopback0
  Redistribution:
    None

ところが、R1ではHost1のLoopback0でRIPngが有効化されていません。

R1

R1#show ipv6 rip 
RIP process "RIP", port 521, multicast-group FF02::9, pid 163
     Administrative distance is 120. Maximum paths is 16
     Updates every 30 seconds, expire after 180
     Holddown lasts 0 seconds, garbage collect after 120
     Split horizon is on; poison reverse is off
     Default routes are not generated
     Periodic updates 66, trigger updates 1
  Interfaces:
    FastEthernet0/0
  Redistribution:
    None

次のようにR1 Loopback0でRIPngを有効化して、R2へHost1のプレフィクスをアドバタイズします。

R1

interface loopback0
 ipv6 rip RIP enable

すると、R2のIPv6ルーティングテーブルにHost1のプレフィクス 2001:1:1:1::/64が登録されて、ホスト間のIPv6通信ができるようになります。

R2

R2#show ipv6 route
IPv6 Routing Table - 7 entries
Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP
       U - Per-user Static route
       I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary
       O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
       ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
R   2001:1:1:1::/64 [120/2]
     via FE80::1, FastEthernet0/0
C   2001:2:2:2::/64 [0/0]
     via ::, Loopback0
L   2001:2:2:2::2/128 [0/0]
     via ::, Loopback0
C   2001:12:12:12::/64 [0/0]
     via ::, FastEthernet0/0
L   2001:12:12:12::2/128 [0/0]
     via ::, FastEthernet0/0
L   FE80::/10 [0/0]
     via ::, Null0
L   FF00::/8 [0/0]
     via ::, Null0
R2#ping 2001:1:1:1::1 source loopback 0

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2001:1:1:1::1, timeout is 2 seconds:
Packet sent with a source address of 2001:2:2:2::2
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 0/8/24 ms

【設定ミスのまとめ】

次の図は、今回の設定ミスをまとめたものです。

図 設定ミスのまとめ
図 設定ミスのまとめ