OSPFの設定 - Catalyst

CatalystでOSPFを設定するコマンドの使い方について説明したページです。OSPFの動作や意味については「OSPF」をご参照下さい。

OSPFの基本設定

 以下の図を例に設定を説明します。

OSPFの設定1

 スイッチA〜B間でOSPFにより経路情報をやりとりできるように設定を行います。

 最初にスイッチAの設定ですが、OSPFの設定をする前にVLANにアドレスを設定したり、インターフェースにVLANを割り当てたり、ルーティングを有効にする必要があります。

【VLAN間ルーティングの設定】
Switch# configure terminal
Switch(config)# interface vlan 10
Switch(config-if)# ip address 172.16.1.1 255.255.255.0
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface vlan 20
Switch(config-if)# ip address 172.16.2.1 255.255.255.0
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface gigabitethernet1/0/1
Switch(config-if)# switchport
Switch(config-if)# switchport mode access
Switch(config-if)# switchport access vlan 10
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface gigabitethernet1/0/2
Switch(config-if)# switchport
Switch(config-if)# switchport mode access
Switch(config-if)# switchport access vlan 20
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# ip routing

 上記は「スタティックルーティングの設定」で示した通り、VLAN間でルーティング出来るようにする設定です。

 スイッチAのOSPFの設定は以下の通りです。

【OSPFの設定】
Switch(config)# router ospf 1
Switch(config-rouer)# network 172.16.0.0 0.0.255.255 area 0
Switch(config-rouer)# exit

 router ospfの後の1はプロセス番号です。OSPFを複数動作させる場合はrouter ospf 2等複数指定出来ますが、企業や研究所のネットワークでは通常は1つだけ動作させると思います。

 networkはOSPFを使うネットワークを指定します。例えば192.168.1.0のネットワークでも使う場合は別途network 192.168.1.0 0.0.0.255 area 0を指定します。エリアを分ける場合は異なるエリア番号を設定するとABRになります。指定は複数可能です。

 スイッチBでも設定は同様です。

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

 ルーティングテーブルはshow ip routeコマンドで確認出来ます。

【ルーティングテーブルの確認】
Switch# show ip route
Codes:L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
      D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
      N1 - OSPF NSSA external type 1, N2 - OSPF external type 2
      E1 -OSPF external type 1, E2 - OSPF external type 2
      i IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
      ia - IS-IS inter area, + - candidate default, U - per-user static route
      o - ODR, P - periodic downloaded static route, H -NHRP, l - LISP
      + - replicated route, % - next hop override

      Gateway of last resort is not set

    172.16.0.0 is variably subnetted, 3 subnets, 2 masks
C       172.16.1.0/24 is directly connected, Vlan10
L       172.16.1.1/32 is directly connected, Vlan10
C       172.16.2.0/24 is directly connected, Vlan20
L       172.16.2.1/32 is directly connected, Vlan20
O       172.16.3.0/24 [110/2] via 192.168.2.2, 00:00:20 Vlan20

 上記で赤字部分のOがOSPFで受信した経路を示しています。OSPFを設定した後は、このOの経路が表示されている事を確認します。

 因みに、Cは自身が接続されているサブネット、Lは自身に設定されたIPアドレスを示します。

 ルーティングテーブルに表示されない場合、原因は様々ですが、フィルタリングによりOSPFの制御パケットが遮断されている可能性もあります。大丈夫と思っても一旦フィルタリングを外してみると反映される事も多い気がします。

コストの設定

 以下の図のようにスイッチAからスイッチDに至る経路が2通りあり、スイッチBの経路を優先したい場合を例にコストを追加する設定を示します。

OSPFの設定2

 インターフェースやVLAN、OSPFの設定はこれまでと同じです。スイッチAではコストを追加するために以下の設定を追加します。

【コスト追加の設定1】
Switch(config)# interface vlan20
Switch(config-if)# ip ospf cost 100
Switch(config-if)# exit

 インターフェースがギガビットイーサネットだった場合、コストのデフォルトは1ですが、上記の設定で100に設定されます。このため、スイッチAはスイッチCの経路が遠いと判断します。

 スイッチDでも同様の設定をすればスイッチA〜D間は行きも帰りもスイッチBの経路が優先されます。

 尚、Catalystでは100Mbpsでも1000Mbpsでもデフォルトでコストが1になります。これは以下の式で計算しているためです。

 コスト=100Mbps/帯域 ※小数点以下繰り上げ

 コストはインターフェース単位で設定しても大丈夫ですが、1000Base-LXをActive、100Base-FXをStandbyと一括して設定したい場合は以下のようにします。

【コスト計算の変更】
Switch(config)# router ospf 1
Switch(config-router)# auto-cost reference-bandwidth 1000
Switch(config-router)# exit

 この設定で計算式はコスト=1000Mbps/帯域になるため、1000Base-LXはコスト1、100Base-FXはコスト10になり、1000Base-LXの方の経路が優先されます。10GBase-SR等10Gbps以上のインターフェースを使う場合は10000等に設定が必要です。

スタティックルートやRIPの経路を反映する設定

 以下の図のようにスイッチBで172.16.1.0/24への経路をスタティックルートで設定しているとします。

OSPFの設定3

 スイッチBはスイッチAとの間ではOSPFでやりとりしているため、このスタティックルートもOSPFで配信したい場合はスイッチBで以下の設定を追加します。

【経路の再配布(スタティックルート)】
Switch(config)# ip route 172.16.1.0 255.255.255.0 172.16.2.1
Switch(config)# router ospf 1
Switch(config-router)# redistribute static metric 10 subnets
Switch(config-router)# exit

 上記ではスタティックルート172.16.1.0をコスト10でOSPFの送信を行う設定をしています。metricの後の数字を変える事でコストを変更出来ます。

 デフォルトルートを再配布する時は設定を追加する必要があります。

【OSPFのデフォルトルート再配布】
Switch(config)# ip route 0.0.0.0 0.0.0.0 172.16.2.1
Switch(config)# router ospf 1
Switch(config-router)# default-information originate
Switch(config-router)# exit

 redistribute staticではデフォルトルートはOSPFに再配布されないため、赤字部分の設定が必要です。

 又、スタティックルートではなくRIPを再配布する場合は以下のように設定します。

【経路の再配布(RIP)】
Switch(config)# router rip
Switch(config-router)# network 172.16.0.0
Switch(config)# router ospf 1
Switch(config-router)# redistribute rip metric 10 subnets
Switch(config-router)# exit

 スタティックルートの時と設定の仕方は同じで赤字部分の指定がripに変わります。

 RIPで受信した経路をOSPFで流す際にフィルタリングしたい場合は以下のように設定します。

【経路の再配布時のフィルタリング(RIP)】
Switch(config)# access-list 1 permit 172.16.3.0 0.0.0.255
Switch(config)# route-map rip-to-ospf deny 10
Switch(config-route-map)# match ip address 1
Switch(config-route-map)# exit
Switch(config)# route-map rip-to-ospf permit 20
Switch(config-route-map)# exit
Switch(config)# router ospf 1
Switch(config-router)# redistribute rip metric 1 route-map rip-to-ospf subnets
Switch(config-router)# exit

 上記の設定でRIPで受信した内、172.16.3.0/24の経路を除きOSPFで送信するようになります。

 留意点としてはaccess-listでpermitになっていてroute-mapでdenyになっている点です。access-listでは172.16.3.0/24をpermitして限定し、route-mapではそれを拒否する事でその経路を除く設定になっています。

OSPFの設定4

 これはスタティックルートに対しても設定可能で以下のようになります。

【経路の再配布時のフィルタリング(スタティック)】
Switch(config)# access-list 2 permit 172.16.4.0 0.0.0.255
Switch(config)# route-map static-ospf deny 10
Switch(config-route-map)# match ip address 2
Switch(config-route-map)# exit
Switch(config)# route-map static-ospf permit 20
Switch(config-route-map)# exit
Switch(config)# router ospf 1
Switch(config-router)# redistribute static metric 10 route-map static-ospf subnets
Switch(config-router)# exit

 上記の設定でスタティックルートからの再配布は172.16.4.0/24を除き再配送されます。

 尚、OSPFでは再配布された経路はデフォルトではOSPFエリア内でコストが加算されません。これはデフォルトでメトリックタイプが2に設定されているためです。

OSPFの設定5

 エリア内でコストを加算するためには以下のようにメトリックタイプを1に設定する必要があります。

【メトリックタイプの変更】
Switch(config)# router ospf 1
Switch(config-router)# redistribute rip metric 1 metric-type 1 subnets
Switch(config-router)# exit

 上記でripからの再配布はエリア内でコストが加算されるようになります。又、route-mapとも併用可能です。

デフォルトルートを常に送信

 ルーティングテーブルにデフォルトルートがあればOSPFで送信しますが、デフォルトルートがない場合でも送信したい場合があります。

 例えば以下の図のようにスイッチBのデフォルトルートはスタティックルーティングやRIP等でスイッチAに向いており、スイッチCへはスイッチBから再配送によりOSPFでデフォルトルートだけを送信しているとします。

OSPFの設定6

 この場合、スイッチCからスイッチDへの通信でもデフォルトルートを使っていて、スイッチAがダウンするとスイッチBのデフォルトルートがルーティングテーブルからなくなり、スイッチCのデフォルトルートも消えてしまう可能性があります。スイッチCのデフォルトルートが消えるとスイッチDとの間で通信不可になってしまいますが、これを防ぐ為にスイッチBからスイッチCに常にデフォルトルートを配信する事が出来ます。

 スイッチBの設定は以下の通りです。インターフェースやVLAN、OSPFの初期設定は省略しています。

【デフォルトルートを常に送信する設定】
Switch(config)# router ospf 1
Switch(config-router)# default-information originate always
Switch(config-router)# exit

 この設定でスイッチAがダウンしてスイッチBのデフォルトルートがルーティングテーブルからなくなっても、スイッチBからスイッチCに対してデフォルトルートが送信されます。

 default-information originateはRIPでデフォルトルートを送信する際にも使われますが、OSPFの時と若干意味合いが異なります。以下にRIPとOSPFでの違いをまとめます。

【default-information originateの違い】
コマンド 説明
RIP default-information originate デフォルトルートがない場合でも常に送信
OSPF default-information originate デフォルトルートがない場合は送信しない
default-information originate always デフォルトルートがない場合でも常に送信

 つまり、OSPFではdefault-information originateがないとデフォルトルートを再配布しませんが、RIPではredistributeの設定でデフォルトルートを含めたスタティックルート全体を再配布出来ます。

 デフォルトルートがない場合でも配布したい場合はRIPではdefault-information originateになりますが、OSPFではdefault-information originate alwaysになります。

再配布された経路の確認

 再配布された経路はルーティングテーブルで確認出来ます。

【再配布された経路の確認】
Switch# show ip route
Codes:L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
      D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
      N1 - OSPF NSSA external type 1, N2 - OSPF external type 2
      E1 -OSPF external type 1, E2 - OSPF external type 2
      i IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
      ia - IS-IS inter area, + - candidate default, U - per-user static route
      o - ODR, P - periodic downloaded static route, H -NHRP, l - LISP
      + - replicated route, % - next hop override

      Gateway of last resort is not set

    172.16.0.0 is variably subnetted, 3 subnets, 2 masks
C       172.16.1.0/24 is directly connected, Vlan10
L       172.16.1.1/32 is directly connected, Vlan10
C       172.16.2.0/24 is directly connected, Vlan20
L       172.16.2.1/32 is directly connected, Vlan20
O E1    172.16.3.0/24 [110/21] via 192.168.2.2, 00:00:20 Vlan20
O E2    172.16.4.0/24 [110/20] via 192.168.1.1, 00:00:20 Vlan30

 上記で赤字部分はOの横にE1と付いています。これはメトリックタイプ1で再配布された経路です。緑の部分はOの横にE2が付いており、これがメトリックタイプ2で配布された経路です。

OSPFでHelloパケットを送信しないインターフェースの設定

 OSPFでHelloパケットを送信したくないインターフェースがある場合は以下のコマンドを追加します。

【OSPFのHelloパケットの送信停止】
Switch(config)# router ospf 1
Switch(config-router)# passive-interface vlan10
Switch(config-router)# exit

 上記はvlan10にHelloパケットを流さない設定ですがOSPF自体は有効になっています。RIPでやりとりするインターフェース等、OSPFが不要なインターフェースに対してフィルタリングの設定をする事なく簡単にOSPFを事実上停止出来ます。

 尚、passive-interface defaultと設定するとデフォルトでHelloパケットを流さないように出来ます。OSPFのやりとりが必要なVLANに対してはno passive interface vlan10等とする事で指定したVLANだけ有効になります。

 これはVLANインターフェースが多いエッジスイッチでコアスイッチと接続するVLANだけOSPFでやりとりしたい場合等、一部だけ有効にしたい時に便利です。

アドレスの集約

 エリア間は再配布のような設定をしなくてもルーティング情報のやりとりが行われますが、サブネット単位で経路が渡されます。

 以下の図のようにエリア0と1がある場合でエリア0のアドレスを集約してエリア1に流したいとします。

OSPFの設定8

 この場合、スイッチCで以下の設定を追加します。

【エリア間のアドレスの集約】
Switch(config)# router ospf 1
Switch(config-router)# area 0 range 172.16.32.0 255.255.224.0
Switch(config-router)# exit

 この設定によりエリア1では172.16.32.0/19の経路に集約してルーティングテーブルに反映されます。

 又、RIP等から経路の再配布を行った時にアドレスの集約を行う場合は、経路の再配布の設定と共にASBRのスイッチで以下の設定を追加します。

【経路の再配布時ののアドレスの集約】
Switch(config)# router ospf 1
Switch(config-router)# summary-address 172.16.32.0 255.255.224.0
Switch(config-router)# exit

 この設定により経路の再配布時に172.16.32.0〜172.16.63.0/24というサブネット単位ではなく、172.16.32.0/19という集約されたネットワーク範囲で経路が再配布されます。

OSPFの設定9

OSPF設定時の考慮点

 OSPFを動作させるだけであれば、最初に示した基本設定を行えば動作します。

 ある程度の規模になると、コアスイッチを2台でアクティブ、スタンバイにするためコストの変更が必要であったり、RIPやスタティックルーティングと併用している場合もあり、上記で説明したオプション設定のどれか、又は複数が必要になります。

サイト関連1

応用編「OSPF
  • このエントリーをはてなブックマークに追加