1
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

OSPF【OSPFの設定】

Last updated at Posted at 2021-01-17

CCNAの試験に向けて学習中。
復習に見返せるようにメモしていきます。
ほぼ自分の勉強メモです。
過度な期待はしないでください。

前回投稿記事

こちらの「OSPF【OSPFの概要】」投稿記事の続きです。

2.OSPFの設定と確認

2-1.OSPFの設定

■2-1-1.ワイルドカードマスク

OSPFでは、動作を有効にしたいインターフェイスを指定する際に ワイルドカードマスクという
ものを使用します。ワイルドカードマスクは、直前に指定されたセットとなっているIPアドレスの
どこまでを比較の対象とするのかを指定する為に使用されます。
直前に指定されたIPアドレスのうち、条件とする部分を 0、任意の値で良い部分を 1
指定します。

具体的に確認してみましょう。

例えば「172.16.1.0/24」のネットワークに属するインターフェイスでOSPFの動作を有効に
したい場合、172.16.1.0/24のネットワーク内に属するIPアドレスは、172.16.1.0〜172.16.1.255
ですので、最初の3オクテットの 172.16.1が条件とする部分で、最後の1オクテットは任意である
IPアドレスとなります。
ワイルドカードマスクは、IPアドレスのうち、条件とする部分を 0、任意の値で良い部分を 1とする為、
ワイルドカードマスクは、「0.0.0.255」となります。よって、IPアドレスとワイルドカードマスクは、「172.16.1.0 0.0.0.255」と指定します。


##### ■2-1-2.OSPFの有効化 ダイナミックルーティングを行うには、ルータでOSPFを有効化する必要があります。 OSPFを有効化するには、グローバルコンフィギューレションモードで 次のrouter ospfコマンド を実行します。
(config)# router ospf <プロセスID>

OSPFは1台のルータで、複数のOSPFプロセスを起動することができます。
その際に他のプロセス区別する為にプロセスIDを指定する必要があります。
プロセスIDは、1 ~ 65,535の値を指定可能です。

このプロセスIDはローカルルータのみで使用する値であるため、ネイバールータとプロセスIDを
一致させる必要はなく、範囲内のいずれかの値を指定しておけば問題ありませんが、
分かりやすい設計/管理という観点でネイバールータとプロセスIDは同じの方が望ましいです。

コマンドを実行するとルータコンフィギューレションモードに移行し、
プロンプトが「(config-router)#」となります。


##### ■2-1-3.インターフェイスの指定 インターフェイスでOSPFを有効にするには、ルータコンフィギューレションモードで 次の networkコマンドを実行します。
(config-router)# network < IPアドレス > < ワイルドカードマスク > area < エリアID >

<エリアID>には、有効にするインターフェイスが所属するエリア番号を指定します。

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


また、IOSのバージョンによっては、インターフェイスコンフィギューレションモード
次の ip ospf areaコマンドを実行する事で有効にする事も出来ます。

(config-if)# ip ospf < プロセスID > area < エリアID >

このコマンドではインターフェイス事にOSPFを有効にする事が出来ます。
<プロセスID>は、どのプロセスを起動させるかを指定します。

※ IPアドレスを「0.0.0.0」、ワイルドカードマスクを「255.255.255.255」にすると
IPアドレスとしてどのような値でもかまわないという意味になり、全てのインターフェイスで、
OSPFが有効になります。


##### ■2-1-4.パッシブインターフェイスの設定 パッシブインターフェイスの設定をする事で、OSPFを動作させる必要があるものの Helloパケットがを送信する必要がないインターフェイスから、Helloパケットが送信されなく なります。

パッシブインターフェイスの設定するには、ルータコンフィギューレションモードで、
次の passive-interfaceコマンドを実行します。

(config-router)# passive-interface < インターフェイス >

##### ■2-1-5.ルータIDの指定 OSPFでは、各ルータを識別する為にルータIDが必要になります。 ルータIDは設定しなくても、IPアドレスが設定されていればそこから自動で設定します。 しかし、手動で設定したい場合は、ルータコンフィギューレションモードで、 次の router-idコマンドを実行します。
(config-router)# router-id < ルータID >

<ルータID>には、32ビットの値をIPアドレスと同じ形式で指定します。

また、手動で設定していない場合は、ループバックインターフェイス、物理インターフェイスの順で、
IPアドレスから設定されます。
ループバックインターフェイスの作成は、グローバルコンフィギューレションモードで、
次の interface Loopbackコマンドを実行します。

(config)# interface Loopback <番号>

<番号>には、0 ~ 2,147,483,647の値を指定します。作成したインターフェイスには、
IPアドレスを設定します。

またルータID設定した後、再度設定変更するには、
router-idコマンドで再設定した後、再起動する必要があります。
再起動のコマンドは、特権EXCEモードで、次の clear ip ospf processコマンド
実行します。

# clear ip ospf process

##### ■2-1-5.OSPFの設定の流れ
(config)# interface Loopback 0                           // ループバックインターフェイスの作成
(config-if)# ip address 10.10.10.1 255.255.255.255       // IPアドレスの設定
(config-if)# exit
(config)# router ospf 10
(config-router)# network 192.168.100.0 0.0.0.255 area 0  //インターフェイスでOSPFの有効化
(config-router)# network 172.16.10.1 0.0.0.0 area 0      //インターフェイスでOSPFの有効化

※ ワイルドカードマスクを、「0.0.0.0」に指定すると全てのビットを条件とする為、
IPアドレスそのものを指定します。


2-2.OSPFの設定の確認

■2-2-1.ネイバーの確認

OSPFでは、ネイバーとして隣のルータを認識しないとLSDBの同期を始めません。
なので、まずネイバーテーブルの確認をします。ネイバーテーブルを確認するには、
特権EXCEモードで、次の show ip ospf neighborコマンドを実行します。

# show ip ospf neighbor

show ip ospf neighborコマンドの実行結果を確認していきます。 ファイル名
項目 説明
①Neighbor ID 認識しているネイバーのルータID
②Pri ネイバーのルータプライオリティ
③State 隣接関係を表す。「FULL」または「2Way」と表示。 / の後ろはDR、BDR、DROTHERかそれ以外(-)が表示される
④Dead Time 後何秒間、Helloパケットが到達しなかったらネイバーダウンとみなすかを表す
⑤Address ネイバーのIPアドレス
⑥Interface 隣接関係を結んだインターフェイス

show ip ospf neighborコマンドでネイバーテーブルを確認出来ますが、自身のルータ情報ではなく、 隣接するネイバーのルータの情報である事に注意。
##### ■2-2-2.LSDBの要約情報の確認 LSDBの要約情報であるトポロジテーブルを確認します。 特権EXCEモードで、次の show ip ospf databaseコマンドを実行します。
# show ip ospf database

詳細は、CCNA試験の範囲外なので割愛します。

※興味がある方はOSPFデータベースの概要と読解という記事参照して見て下さい


##### ■2-2-3.ルーティングテーブルの確認 OSPFでルートを学習出来ているかどうかの確認をするには、 特権EXCEモードで、次の show ip routeコマンドを実行します。
# show ip route

show ip routeコマンドの実行結果を確認していきます。
ファイル名

項目 説明                                   
ルートの情報源。「O」であることからOSPFにより宛先ルート
宛先ネットワーク。
アドミニストレーティブディスタンス。OSPFの場合はAD値が「110」。
OSPFの場合、メトリック値はコスト
ネクストホップアドレス。
宛先ルートを受信してから経過時間。
宛先ネットワークに転送するための出力インターフェース。

##### ■2-2-4.OSPFのプロトコルの確認 OSPFのプロトコルの確認をするには、 特権EXCEモードで、次の show ip protocolsコマンドを実行します。
# show ip protocols

show ip protocolsコマンドの実行結果を確認していきます。
ファイル名

項目 説明
①Routing Protocol 通信プロトコル
②Router ID ルータID
③Number of area このルータの所属するエリアは1つで標準エリアに接続していることを表示。スタブエリア、NSSAエリアには所属なし。
④Maximum path 等コストロードバランシングの数
⑤Routing for Networks 定義したnetworkコマンドの情報を表示
⑥Reference コスト計算式の分子の値
⑦Routing Information Sources エリア内でLSAを交換しているルータの情報を表示
⑧Distance アドミニストレーティブディスタンス値

##### ■2-2-5.インターフェイスの確認 OSPFが動作しているインターフェイスの情報を確認するには、 特権EXCEモードで、次の show ip ospf interfaceコマンドを実行します。
# show ip ospf interface  [<インターフェイス>]

インターフェースの所属エリア、ネットワークタイプ、コスト値、Hello/Deadタイマー間隔を確認できます。
例えば、Fa 1 のOSPFの動作状況を確認したい場合は、下記のように入力します。

# show ip ospf interface FastEthernet 1

show ip ospf interfaceコマンドの実行結果を確認していきます。 ファイル名
項目 説明
このインターフェースのIPアドレスと、インターフェースの所属エリア ※1
このルータのOSPFプロセスID、ルータID、このインターフェースのネットワークタイプとコスト値 ※2
このインターフェースのプライオリティ値及びDR/BDR/DROTHERなのかを示す
このインターフェースのセグメント上のDRのルータIDとIPアドレス
このインターフェースのセグメント上のBDRのルータIDとIPアドレス
このインターフェースのHelloタイマー、Deadタイマー、Waitタイマー、Retransmitタイマー ※3
このインターフェースのセグメントにおけるネイバー関係の数、アジャセンシ―関係の数
アジャセンシー関係が確立されたネイバールータのルータIDと、ネイバールータがDRであることの情報

※1 エリアIDやサブネットマスクが対抗ルータと異なっているとネイバーにはなりません
※2 ネットワークタイプが「ブロードキャストマルチアクセス」の場合、「BROADCAST」と表示さ、
 ネットワークタイプが「ポイントツーポイント」の場合、「POINT_TO_POINT 」と表示される。
※3 これらの値が隣接ルータとずれていると隣接関係が築けません


#### 2-3.OSPF関連のパラメータの調整
■2-3-1.ルータプライオリティ

マルチアクセス環境では、DRとBDRを選択します。その際に比較されるのが、
ルータプライオリティとルータIDです。

● ルータプライオリティの変更
ルータプライオリティを設定するには、インターフェイスコンフィギューレションモードで、
次の ip ospf priorityコマンドを実行します。

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

<ルータプライオリティ値>のデフォルト値は 1です。変更したい場合は、0 ~ 255の値を
指定します。0を設定すると、DR及びBDRに選出されなくなります。

ルータプライオリティを変更する事で、意図するルータにDRの役割を持たせる事が出来ます。

● ルータプライオリティの変更の注意点
例えば、既にDRに選定されているルータがあり、ip ospf priorityコマンドを使用して、
ルータプライオリティ値を設定して新たに別のルータをDRを選定しようとした場合、
DRの変更されない可能性があります。

理由は、既にDRとして選定されているルータが稼動している為です。
DRが頻繁に変更されるとそのたびにマルチアクセスネットワーク上の他のルータとアジャセンシーを
確立しなおさなければいけないので、なるべくDRは変更されないように動作
しているからです。
なので、プライオリティの高いルータが新たに追加されたとしても、DRは変更されません。

そこで、既にDRとして選定されているルータのプライオリティをip ospf priorityコマンドを使用して、
0に変更してしましょう。0を設定すると、DR及びBDRに選出されなくなります。
そうすれば、DRではなくなり、プライオリティの高いルータが新たにDRに選定されます。

また、OSPFのプロセスを再始動して、OSPFの動作を初めからやり直すというやり方もあります。
OSPFのプロセスを再始動するには、特権EXCEモードで、次の clear ip ospf processコマンド
実行します。

# clear ip ospf process

プロセスを再始動すると、隣接するルータとネイバーの関係を一度解消し、
OSPFの動作を初めからやり直す事が出来ます。


##### ■2-3-2.OSPFのコスト

インターフェイスのコスト値を変更する事で、最適ルートを任意に変更する事が出来ます。
インターフェイスのコスト値を変更するには、インターフェイスコンフィギューレションモードで、
次の ip ospf costコマンドを実行します。

(config-if) #ip ospf cost <コスト値>

<コスト値>は、 1 ~ 65535 の範囲で指定する。

例えば、interface GigabitEthernet 0/1 にコスト値を 「10」 とする設定例は以下。

(config) # interface GigabitEthernet 0/1
(config-if) # ip ospf cost 10

##### ■2-3-3.帯域幅

コスト計算で使用する帯域幅を変更する事でもルートを変更する事が出来ます。

インターフェイスの帯域幅を変更するには、インターフェイスコンフィギューレションモードで、
次の bandwidthコマンドを実行します。

(config-if) #bandwidth <帯域幅>

<帯域幅>は、kbps単位で指定します。

コスト値と帯域幅の変更を同時に行った場合、コスト値の変更で設定した値が優先されます。
その為、帯域幅でコスト値を変更する場合は、コスト値を変更するコマンドを先に実行しておく
必要があります。

bandwidthコマンドで帯域を変更する事で、コスト値を変更することも可能ですが、
このようなマイナー手法での設定変更は一般的に行いません。


##### ■2-3-4.Hellowインターバルの変更

OSPFは、Helloパケットによってネイバーを検出します。
Helloパケットを定期的に送信していて、ネイバーからのHelloパケットを受信出来ていれば、
そのネイバーが正常に動作していると判断します。

Helloパケットを送信する間隔をHelloインターバルと呼び、ネイバーがダウンしたとみなす時間が、
Deadインターバルです。これらの間隔はインターフェイス事に設定出来ます。

Helloインターバルを変更するには、インターフェイスコンフィギューレションモードで、
次の ip ospf hello-intervalコマンドを実行します。

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

Helloインターバルを変更すると、Deadインターバルは自動でその4倍の時間に設定されます。

● 下記が設定例

(config) #interface FastEthernet 0/0
(config-if) #ip ospf hello-interval 10

Helloインターバルを 10と設定したので、自動的にDeadインターバルは 40と設定される


Deadインターバルのみを変更するには、インターフェイスコンフィギューレションモードで、
次の ip ospf dead-intervalコマンドを実行します。

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

隣接するルータと、Helloインターバル、Deadインターバルが一致していないとネイバーとして認識 されない為、実行する際には注意が必要です。
##### ■2-3-5.MTUのミスマッチ検出機能の無効化 MTUのサイズが異なると、完全な隣接環境を築く事が出来ません。 その為、MTUを合わせるか、またはMTUの不一致を検出する機能を無効にする必要が、 あります。

MTUの不一致を検出する機能を無効にするには、インターフェイスコンフィギューレションモードで、
次の ip ospf mtu-ignoreコマンドを実行します。

(config-if) #ip ospf mtu-ignore

##### ■2-3-6.デフォルトルートの配布

● デフォルトルートの配布の設定

1台のルータにデフォルトルートの設定を行い、OSPFで他のルータに配布すると
いった方法を使う事があります。

デフォルトルートを他のルータに配布するには、ルータコンフィギューレションモードで、
次の default-information originateコマンドを実行します。

(config-router) #default-information originate [always]

alwaysのオプションを付けると、ルータにデフォルトルートの設定がされていなくても
デフォルトルートを他のルータに配布する事が出来ます。
つまり、デフォルトルートの設定を行う ip routeコマンドを行わなくても、デフォルトルートを
他のルータに配布するという事。

● デフォルトルートの配布の設定例

設定例1

RouterA(config) #ip route 0.0.0.0.0.0.0.0 FastEthernet 0/1
RouterA(config) #router ospf 10
RouterA(config-router) #network 192.168.1.0. 0.0.0.255 area 0
RouterA(config-router) #default-information originate

設定例2(alwaysのオプションを付けた場合)

RouterA(config)# router ospf 1
RouterA(config-router) #network 192.168.1.0. 0.0.0.255 area 0
RouterA(config-router)#default-information originate always

● 補足
ルーティングテーブルで確認した際、ルートの情報源が、「OE2」と表示されます。
」は、デフォルトルートを表し、「E2」は、OSPF以外で設定されたルートがOSPFで構成
されているネットワーク内で伝えられた事
を表します。このようなルートを外部ルートといいます。


参考記事 - ※[OSPF DR/BDR](https://server-network-note.net/2018/04/ospf-dr-bdr/)という記事参照 ※[OSPF - sh ip ospf neighbor / sh ip ospf database / sh ip route](https://www.infraexpert.com/study/ospfz11.html)という記事参照
1
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?