next up previous contents
Next: 8.6 演習課題1 Up: 8. OSPF Previous: 8.4.3 interfaceの設定

8.5 OSPFの動作の確認

OSPFの動作の確認にはいくつかの注意が必要です。まず、OSPFが正しく 動いた結果の経路の変化について理解していなくてはいけません。 次に、それらの経路を実際に確認することが必要になります。 その際に、利用するコマンドが traceroute です。他の章で解説した ように traceroute は UDP パケットのTTLを1つづつ大きくしながら ネットワーク上に送り、返って来たICMPのunreachableを見て、経路を 表示します。従って、原理的に往路の経路を調べている事になりますので、 往路と復路が異なる場合には、両方で調べないといけません。勿論、 往路と復路が同じ場合であっても、両端で調べるのは基本ですが(OSPFでは こうしたことが簡単に起こってしまいます)。

次に、同じネットワーク内のOSPFルータが経路の変更に伴い、他の OSPFルータに変わった場合には注意が必要です。何故ならば、クライアントは デフォルトルータを静的に設定しているために、経路の変更は ICMP redirect によってなされます。ところが、経路が復旧しても、クライアントは一定時間 は ICMP redirect の結果を保持しますので、クライアントから見た経路が 元に戻るまでにはそれなりの時間がかかってしまいます。こうした場合には、 明示的にクライアントのルーティングテーブルをフラッシュする必要があり ます(なお、OSPFなどの動的ルーティングプロトコルが走っていない場合には テーブルが消えますので、default は最低再設定が必要です)。

   # route flush

また、OSPFは収束性が良いと言っても、経路の復元や、リンク断の検出などには それなりの時間がかかります。こうした場合に役立つのが、ospf の持つ 各種の情報です(実際にはLSAです)。 まず、こうした情報を確認し、同時にインターフェースの状態をチェックした 後で、設定の不具合を疑って下さい。

以下では、実際にospfの出す情報について少し見て行くことにします。

ospfd のVTYに入っているとします(viewモードでも特権モードでもどちらでも 構いません)。

  1. show ip ospf

    OSPFの現在の状態を表示する。

    以下は実行例である。
    ospfd# show ip ospf
     OSPF Routing Process, Router ID: 202.11.98.17
     Supports only single TOS (TOS0) routes
     This implementation conforms to RFC2328
     RFC1583Compatibility flag is disabled
     SPF schedule delay 5 secs, Hold time between two SPFs 10 secs
     Refresh timer 10 secs
     Number of external LSA 1
     Number of areas attached to this router: 1
    
     Area ID: 0.0.0.0 (Backbone)
       Number of interfaces in this area: Total: 2, Active: 4
       Number of fully adjacent neighbors in this area: 3
       Area has no authentication
       SPF algorithm executed 40 times
       Number of LSA 9
    

    最初に RouterIDがあり、AS external LSAが一つ保持して、このルータに は一つのエリアがあること、そしてそのエリアは areaID:0 のバックボーン であることが分かる。同時に、隣接ルータが3つこのエリアにあり( Number of fully adjacent neighbors in this area:)、 格納されているLSAが9個であることが分かる。

  2. show ip ospf interface

    ホストのインターフェースと、そこに結合されたリンクの状態を 表示する。

    ここで表示されるのは少し長いので分割して、ゆっくり見てみよう。

    ospfd# show ip ospf interface
    sk0 is up, line protocol is up
      Internet Address 202.11.98.17/28, Area 0.0.0.0
      Router ID 202.11.98.16, Network Type BROADCAST, Cost: 10
      Transmit Delay is 1 sec, State Backup, Priority 1
      Designated Router (ID) 202.11.98.30, Interface Address 202.11.98.30
      Backup Designated Router (ID) 202.11.98.17, Interface Address 202.11.98.17
      Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
        Hello due in 00:00:01
      Neighbor Count is 2, Adjacent neighbor count is 2
    

    まず、インターフェース sk0 に関する情報のみを掲げた。 ここから sk0 は 202.11.98.17/28 のIPアドレスを持ち、area 0 に 属していて、RouterIDは 202.11.98.17 で、リンクコストは 10 である ことが分かる。更に次の行の State Backup. の表示から、 自身がバックアップルータであることも分かる。これは、更にその 2行下の Backup Designated Router のIDが自身のID に等しい ことからも見て取れる。一方、DR はその上の行にあり、 DR ID が 202.11.98.30 で、IPアドレスは 202.11.98.30であるホストで ある。その下の Timer intervals はこれまで説明して来なかったが、 Hello パケットの間隔が 10秒毎で、隣接ルータへのリンクが落ちているか 否かの Dead の判断が 40 秒(Deadの値を使ってWaitTimerが設定される)、 応答のないルータに対してLSAを再送する までの時間が5秒であることが分かります。これらの時間は設定で変更出来ます が、全てが同じ設定でなければなりません。従って、これらの値の変更は あまり推奨されていません。

    最後に、近隣ルータの数が2で、それらの近隣ルータとは完全な隣接 関係(adjacent neighbor) であることが分かります(adjacent neighbor は データベース同期を完了しているルータです。これが近隣ルータの値と 異なっていると同期が完了していないか、同期に失敗している可能性が あります)。

    次の情報は fxp0 についてのものです。

    fxp0 is up, line protocol is up
      Internet Address 202.11.97.17/28, Area 0.0.0.0
      Router ID 202.11.98.16, Network Type BROADCAST, Cost: 10
      Transmit Delay is 1 sec, State DR, Priority 1
      Designated Router (ID) 202.11.98.17, Interface Address 202.11.97.17
      Backup Designated Router (ID) 202.11.98.33, Interface Address 202.11.97.18
      Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
        Hello due in 00:00:02
      Neighbor Count is 1, Adjacent neighbor count is 1
    

    fxp0 との大きな違いは、自身が代表ルータ(DR)であることです。

    その他の情報は、自身のループバックインターフェース(lo0)を除いて、 全てリンクがないものの情報です。

    faith0 is down, line protocol is down
      OSPF not enabled on this interface
    lo0 is up, line protocol is up
      OSPF not enabled on this interface
    ppp0 is down, line protocol is down
      OSPF not enabled on this interface
    sl0 is down, line protocol is down
      OSPF not enabled on this interface
    

  3. show ip ospf neighbor

    このコマンドは近隣ルータを表示します。

    ospfd# show ip ospf neighbor
    
    Neighbor ID  Pri State        Dead Time Address    Interface RXmtL RqstL DBsmL
    202.11.98.30 1   Full/DROther 00:00:32 202.11.98.30  sk0:202.11.98.17  0  0  0
    202.11.98.33 1   Full/DR      00:00:32 202.11.97.17 fxp0:202.11.97.17  0  0  0
    202.11.98.49 1   Full/Backup  00:00:34 202.11.97.18 fxp0:202.11.97.17  0  0  0
    

    この表示で重要なのは、Stateが Full か twoway のどちらかでなければ ならない点です。通常、近隣関係は Full あるいは twoway(DRとだけ通信している) かのどちらかです。それ以外の場合は近隣関係に問題があると思って良いでしょう。 勿論、近隣に DR がない場合や、Bakcupがない場合も問題があります。

  4. show ip ospf route

    これはospfのルーティングテーブルを表示します。 もし、ここに本来あるべき経路がなかったならば、そのLSAが届いていない ことになります。従って、LSAの伝播を発生源から順に追いかけてみる 必要があります。恐らく、どれかのDRが公告していないのが理由です。 公告をしないのは、いくつもの原因が考えられます。インターフェースや、 リンクなど基本的な接続にまで遡って、調査が必要です。

    更に、最後とその一つ手前のテーブルから、 AS external LSAが202.11.98.65 によって生成されていると考えられます。

    ospfd# show ip ospf route
    ============ OSPF network routing table ============
    N    202.11.97.16/28       [10] area: 0.0.0.0
                               directly attached to fxp1
    N    202.11.97.32/28       [20] area: 0.0.0.0
                               via 202.11.98.18, fxp0
    N    202.11.98.16/28       [10] area: 0.0.0.0
                               directly attached to fxp0
    N    202.11.98.32/28       [20] area: 0.0.0.0
                               via 202.11.97.18, fxp1
    N    202.11.98.48/28       [20] area: 0.0.0.0
                               via 202.11.98.30, fxp0
    
    ============ OSPF router routing table =============
    R    202.11.98.49          [10] area: 0.0.0.0, ASBR
                               via 202.11.98.30, fxp0
    
    ============ OSPF external routing table ===========
    N E2 0.0.0.0/0             [10/10] tag: 0
                               via 202.11.98.30, fxp0
    

  5. show ip ospf database

    最後に LSDB(LinkStatus Database)全体を表示するのが、このコマンドです。

    異常の際には、 バックボーンのルータでは全てのルータからのLSAが来ているかどうかや、 あまりにも古いAgeのLSAがないかなどを見ます。

    Ageは LSA発行からの経過時間(秒単位)を表します。OSPFでは、 LSAの寿命は3600sec(1時間)ですが、通常30分(1800sec)経つと発行元が 新しいLSAを出す筈です。時間はOSPFでは少しいい加減ですので、正確に 1800secではありませんが、1時間近く経っても来ない場合にはその発行 について調査した方が良いでしょう。

    ospfd# sh ip ospf database
    
           OSPF Router with ID (202.11.98.17)
    
                    Router Link States (Area 0.0.0.0)
    
    Link ID         ADV Router      Age  Seq#       CkSum  Link count
    202.11.98.17    202.11.98.17     960 0x80000019 0x193f 2
    202.11.98.18    202.11.98.18     460 0x80000017 0x6a32 2
    202.11.98.33    202.11.98.33     959 0x80000013 0xaf6b 2
    202.11.98.34    202.11.98.34     971 0x80000006 0x0d60 2
    202.11.98.49    202.11.98.49     459 0x80000018 0xfb12 2
    255.0.0.2       255.0.0.2        968 0x8000001a 0xea04 2
    
                    Net Link States (Area 0.0.0.0)
    
    Link ID         ADV Router      Age  Seq#       CkSum
    202.11.97.17    202.11.98.17     955 0x80000005 0xed45
    202.11.98.30    202.11.98.65     459 0x80000004 0x2264
    202.11.98.46    255.0.0.2        968 0x80000008 0x1d23
    
                    AS External Link States
    
    Link ID         ADV Router      Age  Seq#       CkSum  Route
    0.0.0.0         202.11.98.65     367 0x80000004 0x8fbc E2 0.0.0.0/0 [0x0]
    0.0.0.1
    


next up previous contents
Next: 8.6 演習課題1 Up: 8. OSPF Previous: 8.4.3 interfaceの設定
Noriyo Kanayama