概要

シンプルなネットワーク構成でOSPFv3の設定ミスの切り分けと修正を行います。

ネットワーク構成

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

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

設定概要

R1、R2の現在のIPv6に関する設定は以下のとおりです。

R1

ipv6 unicast-routing
!
interface Loopback0
 no ip address
 ipv6 address 2001:1:1:1::1/64
 ipv6 enable
 ipv6 ospf 1 area 0
!
interface FastEthernet0/0
 ipv6 address 2001:12:12:12::1/64
 ipv6 address FE80::1 link-local
 ipv6 enable
 ipv6 ospf 1 area 0
!
ipv6 router ospf 1
 router-id 1.1.1.1
 log-adjacency-changes

R2

ipv6 unicast-routing
!
interface Loopback0
 no ip address
 ipv6 address 2001:2:2:2::2/64
 ipv6 enable
 ipv6 ospf 1 area 0
!
interface FastEthernet0/0
 ipv6 address FE80::2 link-local
 ipv6 address autoconfig
 ipv6 enable
 ipv6 ospf 1 area 0
!
ipv6 router ospf 1
 log-adjacency-changes

トラブルの症状

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

show ipv6 interface brief
show ipv6 ospf interface
show ipv6 ospf neighbor
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:AFF:FE64:0
    2001:1:1:1::1
R1#show ipv6 ospf interface
Loopback0 is up, line protocol is up 
  Link Local Address FE80::CE00:AFF:FE64:0, Interface ID 6
  Area 0, Process ID 1, Instance ID 0, Router ID 1.1.1.1
  Network Type LOOPBACK, Cost: 1
  Loopback interface is treated as a stub Host
FastEthernet0/0 is up, line protocol is up 
  Link Local Address FE80::1, Interface ID 3
  Area 0, Process ID 1, Instance ID 0, Router ID 1.1.1.1
  Network Type BROADCAST, Cost: 1
  Transmit Delay is 1 sec, State DR, Priority 1 
  Designated Router (ID) 1.1.1.1, local address FE80::1
  No backup designated router on this network
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    Hello due in 00:00:05
  Index 1/2/2, flood queue length 0
  Next 0x0(0)/0x0(0)/0x0(0)
  Last flood scan length is 0, maximum is 0
  Last flood scan time is 0 msec, maximum is 0 msec
  Neighbor Count is 0, Adjacent neighbor count is 0 
  Suppress hello for 0 neighbor(s)
R1#show ipv6 ospf neighbor

R1#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:1:1:1::/64 [0/0]
     via ::, Loopback0
L   2001:1:1:1::1/128 [0/0]
     via ::, Loopback0
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
    2001:12:12:12::2
Loopback0                  [up/up]
    FE80::CE01:AFF:FE64:0
    2001:2:2:2::2
R2#show ipv6 ospf interface
%OSPFv3: Router process 1 is INACTIVE, please configure a router-id
R2#show ipv6 ospf neighbor
%OSPFv3: Router process 1 is INACTIVE, please configure a router-id
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

問題

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

解答

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

R2のOSPFv3ルータIDを決定できずにOSPFv3プロセスが正しく動作していないから。

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

R2

ipv6 router ospf 1
 router-id 2.2.2.2

ワンポイント

  • OSPFv3でもルータIDは32ビット
  • OSPFv3でもOSPFv2と同様にルータIDを決定する
  • ルータIDを決定できなければOSPFv3プロセスは正しく動作しない

解説

IPv6のルーティングプロトコルとして、OSPFv3を利用することができます。OSPFv3の基本的な仕組みはIPv4向けのOSPFv2とほとんど同じです。ネイバーを発見して、LSDBの同期をとり、SPFアルゴリズムより適切なルートを計算します。OSPFv3は、OSPFv2の基本的な仕組みを基にして、IPv6アドレスを扱えるようにしています。

OSFv3でも各ルータの識別にルータIDを利用します。IPv6対応だからといって、ルータIDが128ビットになっているわけではありません。OSPFv3でもルータIDは32ビットです。ルータIDの決定方法もOSPFv2と同じです。つまり、OSPFv3のルータIDは以下のように決定されます。

  • 手動設定
  • アクティブなループバックインタフェースのうち最大のIPv4アドレス
  • アクティブなインタフェースのうち最大のIPv4アドレス

ルータIDは32ビットなので、手動設定していなければルータのもつ「IPv4アドレス」に基づいて決定されます。IPv4アドレスを持たないルータは、OSPFv3のルータIDを決定できなくなってしまう可能性があることに要注意です。IPv6のみのネットワークを構築するときには、当然、IPv4アドレスの設定を行うことはないでしょう。すると、IPv4アドレスに基づいてOSPFv3のルータIDを決定できなくなってしまいます。ルータIDを決定できなければ、OSPFv3のプロセスは正しく動作せず、ルーティングテーブルを構成することができません。ルータIDを決定できないことがないように、OSPFv3ではルータIDを手動設定する方がよいでしょう。今回のトラブルはOSPFv3のルータIDを決定することができないため、OSPFv3のプロセスが正しく動作していないことが原因です。

R2でshow ipv6 ospfを確認すると、そのことがよくわかります。

R2

R2#show ipv6 ospf 
%OSPFv3: Router process 1 is INACTIVE, please configure a router-id

OSPFv3のプロセスが「INACTIVE」となっています。そして、ルータIDの設定を促していることがわかります。R2にはIPv4アドレスを持つアクティブなインタフェースがありません。また、ルータIDの手動設定も行っていないので、ルータIDを決定できない状態です。その結果、OSPFv3プロセスは「INACTIVE」の状態です。R2のOSPFv3プロセスが正しく動作できるようにルータIDを手動で設定します。

R2

ipv6 router ospf 1
 router-id 2.2.2.2

R2でルータIDを手動で設定すると、R1との間でネイバーを確立しLSDBの同期をとり、ルーティングテーブルに必要なIPv6プレフィクスが登録されるようになります。そして、ホスト間のIPv6通信が可能です。R2でOSPFv3のshowコマンドとホスト間の通信に関する出力は次のようになります。

R2

R2#show ipv6 ospf 
 Routing Process "ospfv3 1" with ID 2.2.2.2
 SPF schedule delay 5 secs, Hold time between two SPFs 10 secs
 Minimum LSA interval 5 secs. Minimum LSA arrival 1 secs
 LSA group pacing timer 240 secs
 Interface flood pacing timer 33 msecs
 Retransmission pacing timer 66 msecs
 Number of external LSA 0. Checksum Sum 0x000000
 Number of areas in this router is 1. 1 normal 0 stub 0 nssa
 Reference bandwidth unit is 100 mbps
    Area BACKBONE(0)
        Number of interfaces in this area is 2
        SPF algorithm executed 2 times
        Number of LSA 8. Checksum Sum 0x02C7B7
        Number of DCbitless LSA 0
        Number of indication LSA 0
        Number of DoNotAge LSA 0
        Flood list length 0

R2#show ipv6 ospf interface 
Loopback0 is up, line protocol is up 
  Link Local Address FE80::CE01:13FF:FE24:0, Interface ID 6
  Area 0, Process ID 1, Instance ID 0, Router ID 2.2.2.2
  Network Type LOOPBACK, Cost: 1
  Loopback interface is treated as a stub Host
FastEthernet0/0 is up, line protocol is up 
  Link Local Address FE80::2, Interface ID 3
  Area 0, Process ID 1, Instance ID 0, Router ID 2.2.2.2
  Network Type BROADCAST, Cost: 1
  Transmit Delay is 1 sec, State BDR, Priority 1 
  Designated Router (ID) 1.1.1.1, local address FE80::1
  Backup Designated router (ID) 2.2.2.2, local address FE80::2
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    Hello due in 00:00:05
  Index 1/2/2, flood queue length 0
  Next 0x0(0)/0x0(0)/0x0(0)
  Last flood scan length is 2, maximum is 2
  Last flood scan time is 0 msec, maximum is 0 msec
  Neighbor Count is 1, Adjacent neighbor count is 1 
    Adjacent with neighbor 1.1.1.1  (Designated Router)
  Suppress hello for 0 neighbor(s)
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
O   2001:1:1:1::1/128 [110/1]
     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 = 4/9/20 ms