OSPFの基本設定サンプル
サンプルを以下に示します。
① | (config)# router ospf 1 |
プロセス番号 1 の OSPF プロセスを起動 | |
② | (config-router)# network 10.0.0.0 0.0.0.255 area 0 |
10.0.0.0~10.0.0.255 のレンジ内の IP アドレスを持つ IF にて OSPF のエリア 0 を有効化 | |
③ | (config-router)# router-id 1.1.1.1 |
(任意) ルータ ID を 1.1.1.1 にセット |
基本的には①と②の設定を隣接するルータ同士で入れれば OSPF のルート情報を交換し始めます。
router ospf [process-id]
プロセス番号 (process-id) は 1~65535 の値であれば任意のものでよく、また、隣接ルータと異なっていても問題ありません。
(EIGRP の場合は router eigrp の後は [AS 番号] が来るので、隣接ルータと同じ AS 番号を指定する必要がありますが)。
OSPF はプロセス ID を分けることで、1 つのルータに複数プロセスを起動できます (主に VRF 環境で利用されます)。
network [nw-address] [wild-card] area [area#]
例えば FastEthernet 0/0 の IP アドレスが 10.0.12.1/24 であれば、"network 10.0.12.1 0.0.0.0 area 0" であっても "network 10.0.12.0 0.0.0.255 area 0" であっても、同じ意味合いになります。
好みの問題ではありますが、当方はワイルドカードをサブネットに合わせる、後者好みです (隣接ルータと同じ設定が入れられるので)。
全てのインタフェースで有効にしたいのであれば、"network 0.0.0.0 255.255.255.255 area 0"という指定も有りです。
("network 0.0.0.0 0.0.0.0 area 0"と指定しても何故か 0.0.0.0 255.255.255.255 と変換され、正しく動作します。)
また、IF で OSPF を有効化するコマンドはこれ以外に、(config-if)# モードで以下コマンドを打つことで、IF のみの指定も可能です。L3 スイッチの場合は VLAN インタフェース (SVI) で実行することになりますが、特に注意点は無いです。
(config-if)# ip ospf 1 area 0
これを使えば、例えば Serial IF や Tunnel IF で物理 IF から IP を借りている場合 (同じ IP になっている場合) であっても片方の IF のみを OSPF 有効化することができます。
router-id [router-id]
OSPF のルータ ID は「IP アドレスと同じ形式の X.X.X.X というドット区切りの 32 bit の情報」になりますが IP アドレスやルーティングには関係しません。あくまでもただのルータの識別子です。
以下の優先順位により決まります。
- router-id コマンドで指定されているもの
- 指定されていない場合はループバック IF の IP アドレスの中で最大値のもの (OSPF が有効でなくてもよい)
- ループバック IF が無い場合はその他の IF の IP アドレスの中で最大値のもの (OSPF が有効でなくてもよい)
設定はしなくても動作に問題はありませんが、運用管理の面においては以下の理由で設定したほうがよいです。
- show コマンドで OSPF の状態確認するときにはルータ ID で表示されるが、例えばルータ #1 のルータ ID を 1.1.1.1 としておけば、どのルータなのかが分かり易くなります。
- Virtual-Link の設定コマンド上で、対向ルータの指定はルータ ID を設定するため、ルータ ID を指定しないと別作業 (例えば Loopback IF の IP アドレスを設定) が影響し、OSPF 再起動時に Virtual Link の設定が崩れる可能性があります。
なお、ルータ ID は OSPF プロセス起動時に上記ルールで決まり、プロセス起動中はそのルータ ID を使い続けます。
なので router-id コマンドを打った後は以下コマンドでプロセス再起動しないとルータ ID は変わりません。
# clear ip ospf proccess
基本設定の例として下記構成での設定と確認コマンド結果を見ます。
また、OSPF の基本確認コマンド 2 つを紹介します。
① | # show ip ospf neighbor | ネイバーの状態を確認します。 |
② | # show ip ospf database | OSPFにより交換されたLSAの情報を確認します。 |
各ルータでこれらを実行した結果は以下の通りです。
[R1]
[R2]
[R3]
[R4]
[R5]
show ip ospf neighbor
R2 以外のルータは Loopback の IP がルータ ID になっています。他に Loopback の IF がなく、それが最大のものだからです。
R4 では Loopback で OSPF を有効にしていませんが、それでもルータ ID として使われています。
R1 ~ R4 のマルチアクセス環境で、R2 が DR となっています。これはプライオリティが全て同じなため、ルータ ID が一番大きいものが選出されたためです。
詳細については以下をご参照下さい。
R3 ⇔ R5 は『ポイントtoポイント』接続のため、FULL/ の後に DR や BDR, DROTHER の表記がありません。ポイントtoポイント接続環境では IP アドレスのサブネットを揃える必要はありません。
R4 ⇔ R5 は R4 の s0/0 で OSPF が有効になっていないため、ネイバーは張れません。
show ip ospf database
今回は全て同一エリアなので、全て同じ情報を持っていることが分かります。
show ip route
R2 で show ip route を見ると下記のようになっています。
以下コマンドにより、何も接続されていない fa 0/1 インタフェースをリンクアップさせることができます。
(config-if)# no keepalive
また、R3 や R5 のループバックの IP アドレスが /24 のはずなのに /32 で伝わってきているのが見えます。
OSPF において Loopback-IF のルート情報はデフォルトでサブネットが /32 に変換されます。
ですが "ip ospf network point-to-point" コマンドを設定することでによって、/32 になるのを防ぐことができます。
R1 の Loopback の NW アドレスは正しく /24 で伝わってきていることから、このことが分かります。
コメント