👻

OSPFの発展的な設定

2024/04/19に公開

経路集約

初期設定

R1(config)#router ospf 1                       
R1(config-router)#network 192.168.0.1 255.255.255.0 area 10
R1(config-router)#network 192.168.1.1 255.255.255.0 area 10
R1(config-router)#network 172.16.0.1 255.255.255.0 area 10
R2(config)#router ospf 1
R2(config-router)#network 172.16.0.254 255.255.255.0 area 10
R2(config-router)#network 172.16.100.1 255.255.255.0 area 0
R3(config)#router ospf 1
R3(config-router)#network 172.16.100.254 255.255.255.0 area 0
R3(config-router)#network 10.0.0.1 255.255.255.0 area 0
R3(config-router)#network 10.0.1.1 255.255.255.0 area 0

ルーティングテーブルは以下の通り。

R1#sh  ip route
     172.16.0.0/24 is subnetted, 2 subnets
C       172.16.0.0 is directly connected, FastEthernet1/0
O IA    172.16.100.0 [110/2] via 172.16.0.254, 00:01:09, FastEthernet1/0
     10.0.0.0/24 is subnetted, 2 subnets
O IA    10.0.0.0 [110/3] via 172.16.0.254, 00:01:04, FastEthernet1/0
O IA    10.0.1.0 [110/3] via 172.16.0.254, 00:01:04, FastEthernet1/0
C    192.168.0.0/24 is directly connected, FastEthernet0/0
C    192.168.1.0/24 is directly connected, FastEthernet0/1

10.0.0.0/24と10.0.1.0/24のルートがある。

R3#sh ip route
     172.16.0.0/24 is subnetted, 2 subnets
O IA    172.16.0.0 [110/2] via 172.16.100.1, 00:01:38, FastEthernet1/0
C       172.16.100.0 is directly connected, FastEthernet1/0
     10.0.0.0/24 is subnetted, 2 subnets
C       10.0.0.0 is directly connected, FastEthernet0/0
C       10.0.1.0 is directly connected, FastEthernet0/1
O IA 192.168.0.0/24 [110/3] via 172.16.100.1, 00:01:38, FastEthernet1/0
O IA 192.168.1.0/24 [110/3] via 172.16.100.1, 00:01:38, FastEthernet1/0

192.168.0.0/24と192.168.1.0/24のルートがある。

経路集約後

R2(config)#router ospf 1
R2(config-router)#area 10 range 192.168.0.0 255.255.254.0
R2(config-router)#area 0 range 10.0.0.0 255.255.254.0
R1#sh ip route
     172.16.0.0/24 is subnetted, 2 subnets
C       172.16.0.0 is directly connected, FastEthernet1/0
O IA    172.16.100.0 [110/2] via 172.16.0.254, 00:13:46, FastEthernet1/0
     10.0.0.0/23 is subnetted, 1 subnets
O IA    10.0.0.0 [110/3] via 172.16.0.254, 00:01:37, FastEthernet1/0
C    192.168.0.0/24 is directly connected, FastEthernet0/0
C    192.168.1.0/24 is directly connected, FastEthernet0/1

10.0.0.0/24と10.0.1.0/24のルートが、10.0.0.0/23に集約された。

R3#sh ip route
     172.16.0.0/24 is subnetted, 2 subnets
O IA    172.16.0.0 [110/2] via 172.16.100.1, 00:13:30, FastEthernet1/0
C       172.16.100.0 is directly connected, FastEthernet1/0
     10.0.0.0/24 is subnetted, 2 subnets
C       10.0.0.0 is directly connected, FastEthernet0/0
C       10.0.1.0 is directly connected, FastEthernet0/1
O IA 192.168.0.0/23 [110/3] via 172.16.100.1, 00:01:57, FastEthernet1/0

192.168.0.0/24と192.168.1.0/24のルートが、192.168.0.0/23に集約された。

デフォルトルートの配布

OSPFでは、デフォルトルートは勝手に配布されない。以下の通り、明示的にデフォルトルートを配布する。

R1にデフォルトルートを設定

R1(config)#ip route 0.0.0.0 0.0.0.0 192.168.0.254

デフォルトルートをOSPFに配布

R1(config)#router ospf 1
R1(config-router)#default-information originate

R2のルーティングテーブル

R2#sh ip route
     172.16.0.0/24 is subnetted, 2 subnets
C       172.16.0.0 is directly connected, FastEthernet0/0
C       172.16.100.0 is directly connected, FastEthernet0/1
     10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks
O       10.0.0.0/24 [110/2] via 172.16.100.254, 00:11:52, FastEthernet0/1
O       10.0.0.0/23 is a summary, 00:11:52, Null0
O       10.0.1.0/24 [110/2] via 172.16.100.254, 00:11:52, FastEthernet0/1
O    192.168.0.0/24 [110/2] via 172.16.0.1, 00:06:34, FastEthernet0/0
O*E2 0.0.0.0/0 [110/1] via 172.16.0.1, 00:06:35, FastEthernet0/0
O    192.168.0.0/23 is a summary, 00:06:35, Null0

R3のルーティングテーブル

R3#sh ip route
     172.16.0.0/24 is subnetted, 2 subnets
O IA    172.16.0.0 [110/2] via 172.16.100.1, 00:12:30, FastEthernet1/0
C       172.16.100.0 is directly connected, FastEthernet1/0
     10.0.0.0/24 is subnetted, 2 subnets
C       10.0.0.0 is directly connected, FastEthernet0/0
C       10.0.1.0 is directly connected, FastEthernet0/1
O*E2 0.0.0.0/0 [110/1] via 172.16.100.1, 00:07:02, FastEthernet1/0
O IA 192.168.0.0/23 [110/3] via 172.16.100.1, 00:12:26, FastEthernet1/0

0.0.0.0/0のルートはR2, R3にも伝わっている。Next HopもR2, R3のそれぞれで到達可能なIPアドレスが設定されている。
これは、OSPFがリンクステート型のプロトコルで、トポロジ全体を把握しているからこそできる。BGPだとNEXT_HOPを書き換えるなどの設定をしてあげる必要がある。

静的ルートの配布

デフォルトルートは上記のように設定できることはわかった。それ以外の静的ルートはどうなるのか。
以下のように、2.2.2.2をR2に設定する。

2.2.2.2の静的ルートをR1に登録したときに、R3にもルートが伝搬するかを確認

初期状態

R1のルーティングテーブル

R1#sh ip route
     172.16.0.0/24 is subnetted, 2 subnets
C       172.16.0.0 is directly connected, FastEthernet1/0
O IA    172.16.100.0 [110/2] via 172.16.0.254, 00:07:46, FastEthernet1/0
     10.0.0.0/23 is subnetted, 1 subnets
O IA    10.0.0.0 [110/3] via 172.16.0.254, 00:07:42, FastEthernet1/0
C    192.168.0.0/24 is directly connected, FastEthernet0/0
S*   0.0.0.0/0 [1/0] via 192.168.0.254

設定

R1に静的ルートを追加

R1(config)#ip route 2.2.2.2 255.255.255.255 172.16.0.254

ルーティングテーブルは以下のようにに変わる。

R1# sh ip route
     2.0.0.0/32 is subnetted, 1 subnets
S       2.2.2.2 [1/0] via 172.16.0.254
     172.16.0.0/24 is subnetted, 2 subnets
C       172.16.0.0 is directly connected, FastEthernet1/0
O IA    172.16.100.0 [110/2] via 172.16.0.254, 00:10:45, FastEthernet1/0
     10.0.0.0/23 is subnetted, 1 subnets
O IA    10.0.0.0 [110/3] via 172.16.0.254, 00:10:40, FastEthernet1/0
C    192.168.0.0/24 is directly connected, FastEthernet0/0
S*   0.0.0.0/0 [1/0] via 192.168.0.254

当然2.2.2.2へのpingも疎通できる。

R1#ping 2.2.2.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/16/24 ms

OSPFとしてはLSA Updateは走らない。

当然、R3には2.2.2.2へのルートは伝搬しない。(上記の検証でデフォルトルートが追加されているから疎通はできる)

R3#sh ip route
     172.16.0.0/24 is subnetted, 2 subnets
O IA    172.16.0.0 [110/2] via 172.16.100.1, 00:12:56, FastEthernet1/0
C       172.16.100.0 is directly connected, FastEthernet1/0
     10.0.0.0/24 is subnetted, 2 subnets
C       10.0.0.0 is directly connected, FastEthernet0/0
C       10.0.1.0 is directly connected, FastEthernet0/1
O*E2 0.0.0.0/0 [110/1] via 172.16.100.1, 00:12:51, FastEthernet1/0
O IA 192.168.0.0/23 [110/3] via 172.16.100.1, 00:12:52, FastEthernet1/0

R2でOSPFのnetworkコマンドで再配布するか、redsitributeするか

networkコマンド

2.2.2.2をOSPFのarea0として登録したら、即座にOSPFでLSA Updateされる

R2(config)#router ospf 1
R2(config-router)#network 2.2.2.2 255.255.255.255 area 0

ルーティングテーブルにも登録されている。OSPFエリア0として配布しているため、OSPF内部ルートとして登録されている

R3#sh ip route
     2.0.0.0/32 is subnetted, 1 subnets
O       2.2.2.2 [110/2] via 172.16.100.1, 00:00:10, FastEthernet1/0

redistributeコマンド

再配布すると、即座にOSPFでLSA Updateされる

R1(config)#router ospf 1
R1(config-router)#redistribute static subnets

これは、LSAタイプ5で、非OSPFエリアのルートとして認識される。

ルーティングテーブルにも登録されている。以下のO E2はOSPF外部ルートの証。

R3#sh ip route
     2.0.0.0/32 is subnetted, 1 subnets
O E2    2.2.2.2 [110/20] via 172.16.100.1, 00:01:24, FastEthernet1/0
     172.16.0.0/24 is subnetted, 2 subnets

バーチャルリンク

OSPFでは、すべてのエリアがエリア0(バックボーンエリア)に接続されていないといけない。

上記ではArea 20がバックボーンエリアに接していない。
そのため、R1のルーティングデーブルにはOSPFのルートは載っていない。

R1#sh ip route
C    192.168.1.0/24 is directly connected, FastEthernet0/0

設定

R2とR4の間で仮想リンクを設定する。

事前準備: ルーターIDを設定する

R2(config)#router ospf 1
R2(config-router)#router-id 2.2.2.2

R2#sh ip ospf
 Routing Process "ospf 1" with ID 2.2.2.2
R4(config)#router ospf 1
R4(config-router)#router-id 4.4.4.4

仮想リンクを張る。このとき、Area10を仮想リンクが通過するため、Area10はトランジットエリアになる。

R2(config)#router ospf 1
R2(config-router)#area 10 virtual-link 4.4.4.4
R2(config-router)#network 192.168.1.1 0.0.0.0 area 20
R2(config-router)#network 192.168.100.1 0.0.0.0 area 10
R4(config)#router ospf 1
R4(config-router)#area 10 virtual-link 2.2.2.2
R4(config-router)#network 192.168.200.1 0.0.0.0 area 10
R4(config-router)#network 172.16.100.1 0.0.0.0 area 0

以上の設定をすることで、OSPFのルートがR1に伝搬している(=バックボーンエリアに接続された)ことが確認できる。

R1#sh ip route
     172.16.0.0/24 is subnetted, 1 subnets
O IA    172.16.100.0 [110/4] via 192.168.1.254, 00:02:10, FastEthernet0/0
O IA 192.168.200.0/24 [110/3] via 192.168.1.254, 00:04:30, FastEthernet0/0
C    192.168.1.0/24 is directly connected, FastEthernet0/0
O IA 192.168.100.0/24 [110/2] via 192.168.1.254, 00:04:30, FastEthernet0/0

なお、このときR2とR4は直接のリンクを持つ必要はない。あくまでか仮想リンクは論理的なもの。
OSPFのネイバーとしては、対向のルータIDとそのIPが表示されている。

R2#sh ip ospf neighbor 

Neighbor ID     Pri   State           Dead Time   Address         Interface
4.4.4.4           0   FULL/  -           -        192.168.200.1   OSPF_VL0
192.168.200.254   1   FULL/DR         00:00:39    192.168.100.254 FastEthernet0/1
192.168.1.1       1   FULL/DR         00:00:36    192.168.1.1     FastEthernet0/0

Discussion