コンテンツにスキップ

4. ルーティングの設定とOSPF

4.1. ネットワークの設定

4.1.1. IPアドレスの設定と確認

IPアドレスをインターフェイスに設定するにはinterface fastEthernet <インターフェイス番号>を入力する。なおint f/g<インターフェイス番号>で省略可能である。

(config)#interface fastEthernet <インターフェイス番号>
(config-if)#ip address <ipアドレス> <サブネットマスク>
(config-if)#end

またインターフェイスの状態確認はshow interface fastEthernet <インターフェイス番号>で行う。 使用例は以下の通り。

show interfaces
show int f0

一応show protocolsも使用可能。

4.1.2. インターフェイスの有効化

インターフェイスは設定後に有効化する必要がある。

(config-if)#no shutdown

4.2. ルーティングの設定

4.2.1. スタティックルーティングの設定

それぞれのルータのインターフェイスに対してIPアドレスを設定した後、ip routeコマンドでそれぞれの方向のルートを登録する。

(config)#ip route <対象IP> <対象サブネットマスク> <データが来る方向IP>

4.2.2. ダイナミックルーティングの設定

OSPFを使用したダイナミックルーティング

それぞれのルータのインターフェイスに対してIPアドレスを設定した後、それぞれのルータに OSPFの有効化とネットワークへの登録の設定を行う。

(config)#router ospf <プロセスID>
(config-router)#network <ネットワーク範囲> <ワイルドカードマスク> area <エリアID>

エリアIDはルータ全体で統一する必要がある。 また確認はshow ip route ospfで可能

設定例は以下の通り。

(config)#router ospf 1
(config-router)#network 192.168.0.0 0.0.0.255 area 0
(config-router)#network 10.0.0.252 0.0.0.3 area 0

RIPv1を使用したダイナミックルーティング

それぞれのルータのインターフェイスに対してIPアドレスを設定した後、それぞれのルータに RIPv1の有効化とネットワークへの登録の設定を行う。

(config)#router rip
(config-router)#network <ネットワーク範囲>

注意点としてRIPはクラスフルルーティングをするが特徴ある。 つまりOSPFと異なり、サブネットマスクを意識しない。 そのためnetworkコマンドで設定するネットワークは必ずクラスフルで記述する。

例えばネットワークが172.16.1.0の場合、クラスBアドレスなので172.16.0.0と設定する必要がある。

RIPv2を使用したダイナミックルーティング

それぞれのルータのインターフェイスに対してIPアドレスを設定した後、それぞれのルータに RIPv2の有効化とネットワークへの登録の設定を行う。

(config)#router rip
(config-router)#version 2
(config-router)#network <ネットワーク範囲>

変更後にshow ip protocolsコマンドでルータ上で動作しているルーティングプロトコルを確認すると良い。

4.2.3. デフォルトルーティングの設定

デフォルトゲートウェイは宛先のないパケットを送る先であり、デフォルトゲートウェイに送る設定をすることはデフォルトルーティングと呼ばれる。

デフォルトルートの追加は以下コマンドで行える。

(config)#inteface <インターフェイス>
(config-if)#ip route 0.0.0.0 0.0.0.0 <インターフェイスのIPアドレス>

また確認はshow ip routeで可能。

デフォルトルーティングを行うにはクラスレスルータとしてルータを動作する必要があり、これはクラスの概念をルータに追加するものとなる。なお現行のルータはデフォルトではクラスレスルータとして動作するため、もしルータをクラスフルルータの場合はクラスレスルータにする必要がある。コマンドはip classlessで行える。

4.3. OSPFの設定と確認

4.3.1. OSPFの有効化

OSPFの有効化は以下のコマンドで行える。

(config)#router ospf <プロセスID>

プロセスIDは複数のプロセスを識別するためのIDで1~65535まで指定可能となっている。 これはプロセスを識別するためのIDであるだけなのでルータごとに異なっていても良い。

4.3.2. インターフェイスの指定

OSPFをインターフェイスで有効化するとhelloパケットを送信し始める。 またインターフェイスに関するLSAも通知する。

(config)#network <ネットワーク範囲> <ワイルドカードマスク> area <エリアID>

エリアIDはインターフェイスが所属するエリア番号を指定する。 またIOSバージョンによっては以下コマンドでインターフェイスごとにOSPFを設定可能。

(config)#inteface <インターフェイス>
(config-if)#ip ospf <プロセスID> area <エリアID>

4.3.3. パッシブインターフェイスの設定

パッシブインターフェイスを指定するとOSPF動作するものでHelloパケットを送信を停止できる。そのためこの設定を行とネイバー関係が構築できなくなる。

(config)#router ospf <プロセスID>
(config-router)#passive-interface <インターフェイス>

4.3.4. ルータIDの設定

OSPFではルータを識別するためのルータIDが必要となる。 ルータIDはIPアドレスが設定してあれば自動で決定するが、以下コマンドにより手動でも設定可能。

(config)#router ospf <プロセスID>
(config-router)#router-id <ルータID>

ルータIDは32bitのアドレスと同じ形で指定し他ルータと重複しない値を設定する必要がある。 またループバックインターフェイスは以下コマンドで設定できる。

(config)#interface Loopback <番号>

番号は0~2147483647の範囲から設定可能で作成したインターフェイスにはIPアドレスを設定する。

4.3.5. OSPFの設定確認

OSPFが問題なく動作しているか確認するには以下フローで確認できる。

  1. ネイバー情報の確認
  2. LSDBの要約情報確認
  3. ルーティングテーブルの確認
  4. インターフェイスの確認

ネイバー情報の確認

ネイバーテーブルを確認することでネイバーが登録されている確認できる。 表示される情報は隣接ルータの情報である。

show ip ospf neighbor

なおOSPFネイバー関係を確立するために一致させる必要があるのは以下の情報となる。

  • Hello/Deadの間隔
  • エリアID
  • 認証パスワード
  • サブネットマスク
  • スタブエリアフラグ
  • MTUサイズ

LSDBの要約情報確認

LSDBの要約情報であるLSAリストのトポロジテーブルを確認する。 表示される情報は各ルータで同じとなる。

show ip ospf database

ルーティングテーブルの確認

ルーティングテーブルを確認してダイナミックルーティングが適用されているか確認を行う。 また念のためospfが動作しているかshow ip protocolで確認する。

show ip route
show ip protocol

インターフェイスの確認

OSPFが動作しているインターフェイス情報を以下コマンドで確認する。

show ip ospf interface <インターフェイス>

確認できる情報は以下の通り。

  • IPアドレスと所属エリア
  • プロセスIDとルータID、ネットワークタイプ、コスト
  • リンク状態とプライオリティ
  • DRとBDRのルータIDとIPアドレス
  • HelloインターバルとDeadインターバル

4.4. マルチエリアOSPFの設定と確認

4.4.1. マルチエリアOSPFの設定

マルチエリアOSPFを作成する場合4.3.2項のエリアIDを分けるエリアで別々にする。 ただ注意点として向かい合うルータが同じエリアにならないようにする。

4.4.2. マルチエリアOSPFの確認

確認は4.3.5. OSPFの設定確認の通りで可能。 具体的には以下の点を確認する。

  • LSDB要約情報で異なるエリアが作成されている
  • ルーティングテーブルでコード部分がO IAになっている

O IAは異なるエリアからルートを伝えられていることを示す。

4.5. OPSFの関連パラメータの調整設定

4.5.1. ルータプライオリティ

マルチアクセスのOSPF環境ではDRとBDRを選出するが、DRになるルータ位置の調整が必要な場合ルータプライオリティの変更で実現できる。 ルータプライオリティの変更は以下コマンドで実現できる。

(config)#inteface <インターフェイス>
(config-if)#ip ospf priority <ルータプライオリティ値>

以上のコマンドを使いこなすことで意図するルータにDR(代表ルータ)の役割を持たせることができる。

4.5.2. OSPFのコスト

OSPFのメトリックは帯域幅から計算するコスト値となる。 コスト値を変更するとルートの変更が可能になる。

(config)#ip pspf cost <コスト値>

4.5.3. 帯域幅

コストの計算に使用する帯域幅は以下コマンドで変更できる。

(config)#bandwidth <帯域幅>

インターフェースの帯域幅の設定は以下の通り。

(config)#inteface <インターフェイス>
(config-if)#bandwidth <帯域幅>

4.5.4. 基準帯域幅

OSPFのコストは基準帯域幅(Default値は100Mbps)/インターフェイスの帯域幅で算出される。 基準帯域幅は以下コマンドで変更できる。

(config)#inteface <インターフェイス>
(config-if)#auto-cost reference-bandwidth <帯域幅>

4.5.5. Hello/Deadインターバルの変更

ネイバー認識に使用されるHelloインターバルとDeadインターバルはインターフェイスごとに設定できる。

(config)#ip ospf hello-interval <秒数>
(config)#ip ospf dead-interval <秒数>

注意点として隣接ルータでHello/Deadインターバルが一致しないとネイバーとして認識されないので気にしながら設定する必要がある。

4.5.6. MTUのミスマッチ検出機能の無効化

ネイバーとなるルータのインターフェイスのMTUが自身のインターフェイスと一致しない場合、完全隣接関係にならない。 そのためMTUを合わせるかMTUの不一致の検出する機能を無効化する必要がある。

MTUの不一致検出の無効化は以下コマンドで行える。

(config)#inteface <インターフェイス>
(config-if)#ip ospf mtu-ignore

4.5.7. デフォルトルートの配布

インターネットへの接続にはデフォルトゲートウェイへのルート(デフォルトルート)の設定を行う。 すべてのルータにいちいち設定すると手間になる場合がある。 そのため1台のルータに設定後にOSPFで他ルータで配布する機能がある。

デフォルトルートをOSPFを通じて他のルータに配布するには以下コマンドで行える。

(config)#router ospf <プロセスID>
(config-router)#default-information originate [always]

確認はshow ip routeで行える。

alwaysをつけるとルーティングテーブルにデフォルトルートが存在しなくてもデフォルトルートを広告する。

4.5.8. 等コストロードバランシングの最大数の設定

等コストロードバランシングで使用する経路の数(デフォルトでは4)を変更するには以下のコマンドを使用する。

(config)#router ospf <プロセスID>
(config-router)#maximum-paths <最大数>

4.6. OSPFのトラブルシューティング

OSPFの設定をしたにもかかわらず宛先まで通信できない場合、基本的には以下のことを確認する必要がある。

  • ルータ間の接続
  • ルーティングテーブルの確認
  • ACLが設定してあればACLの設定確認
  • ネイバーテーブルの確認

4.7. IPv6のネットワーク設定

4.7.1. IPv6ルーティングの有効化

IPv6ルーティングを有効化するには以下コマンドで行う。

ipv6 unicast-routing ipv6

4.7.2. インターフェイスにIPv6を設定する

IPv6インターフェイスには2つIPv6アドレスを設定する必要がある。 確かにリンクローカルアドレスは必ず設定する必要がある。

(config)#inteface <インターフェイス>
(config-if)#ipv6 address <リンクローカルアドレス> link-local
(config-if)#ipv6 address <ユニークローカルアドレス | グローバルアドレス> 

4.7.3. IPv6のルーティングテーブルを確認する

show ipv6 route