• Floating Static RouteとRecursive Lookup

 
 
Print Friendly, PDF & Email

はじめに

OSPFやBGPなどダイナミックルーティングを利用することで冗長構成を設計することができますが、ファイアウオールや各種ネットワークアプライアンスではダイナミックルーティングの利用が制限されることがあります。こうした場合、Static routeを複数設定し、Admin Distanceを指定してプライマリ経路、セカンダリ経路と設定することができます。このようなStatic routeの利用をFloating Static Routeと呼びます。EOSでは、デフォルトでStatic RouteのNexthopでRecursive Lookupが動作することを理解して、設定を行うことが必要です。ここでは、Recursive Lookupの動作を踏まえて、Floating Static Routeを設定することを説明します。

Floating Static Route

図1のような構成で、Router-AからRouter-B経由で172.16.0.0/16へ到達する経路をプライマリ、Router-AからRouter-C経由で172.16.0.0/16へ到達する経路をセカンダリとする場合、Static RouteのAdmin Distanceを使うことで制御できます。

図1

172.16.0.0/16 -> 10.0.0.2 : Admin Distance=1 (Static RouteのAdmin Distanceは、デフォルト’1’です)
172.16.0.0/16 -> 10.0.1.2 : Admin Distance=10

Router-A(config)#show running-config section 172.16.0.0/16
ip route 172.16.0.0/16 10.0.0.2
ip route 172.16.0.0/16 10.0.1.2 10

プライマリ経路が選択されていることがわかります。

Router-A(config)#sho ip route 172.16.0.0/16
<...>
 S 172.16.0.0/16 [1/0] via 10.0.0.2, Ethernet2

また、Router-C(10.0.1.2)経由のセカンダリ経路はshow rib routeコマンドで有効になっていないことが確認できます。

Router-A(config)#sh rib route ip static
VRF name: default, VRF ID: 0xfe, Protocol: static
Codes: C - Connected, S - Static, P - Route Input
       B - BGP, O - Ospf, O3 - Ospf3, I - Isis
       > - Best Route, * - Unresolved Nexthop
       L - Part of a recursive route resolution loop
>S 172.16.0.0/16 [1/0]
    via 10.0.0.2 [0/1]
       via Ethernet2, directly connected
 S 172.16.0.0/16 [10/0]
    via 10.0.1.2 [0/1]
    via Ethernet3, directly connected

Router-AでEt2のインタフェースがダウンさせると、Router-B(10.0.0.2)経由のプライマリ経路のがなくなり、Router-C(10.0.1.2)経由のセカンダリ経路が有効となります。

Router-A(config)#int et2
Router-A(config-if-Et2)#shut
Router-A(config-if-Et2)#sho ip route 172.16.0.0/16
<...>
 S 172.16.0.0/16 [10/0] via 10.0.1.2, Ethernet3

Recursive Lookup

EOSでは、Static RouteのNexthopに対して、Recursive Lookupが行われます。Recursive Lookupとは、Nexthopのアドレスをルーティングテーブルで検索します。

例)
Router-A(config)#ip route 172.17.0.0/16 172.17.1.1
Router-A(config)#ip route 172.17.1.1/32 null0

上のような設定を行うと、172.17.0.0/16の宛先は、Recursive LookupによりNull0となります。

Router-A(config)#sh ip route 172.17.0.0/16
<...>
 S 172.17.0.0/16 is directly connected, Null0

下図のようなケースで、先ほどと同様にFloating Staticを設定してみます。このケースでは、Router-AのEt1の先に10.0.0.0/8のネットワークが見えています。

図2

Router-A(config)#show running-config section 172.16.0.0/16
ip route 172.16.0.0/16 10.0.0.2
ip route 172.16.0.0/16 10.0.1.2 10

Router-A(config)#sh rib route ip static
VRF name: default, VRF ID: 0xfe, Protocol: static
Codes: C - Connected, S - Static, P - Route Input
       B - BGP, O - Ospf, O3 - Ospf3, I - Isis
       > - Best Route, * - Unresolved Nexthop
       L - Part of a recursive route resolution loop
>S 0.0.0.0/0 [6/0]
    via 192.168.10.102 [0/1]
       via Ethernet1, directly connected
>S 172.16.0.0/16 [1/0]
    via 10.0.0.2 [0/1]
       via Ethernet2, directly connected
 S 172.16.0.0/16 [10/0]
    via 10.0.1.2 [0/1]
       via Ethernet3, directly connected

但し、このケースではOSPFで10.0.0.0/8を受け取っています。

Router-A(config-if-Et1)#sh ip route ospf
<...>
 O E2 10.0.0.0/8 [110/1] via 192.168.10.102, Ethernet1

ここでRouter-AのプライマリStatic Routeの宛先のEt2をダウンさせてみます。

Router-A(config)#int et2
Router-A(config-if-Et2)#shut
Router-A(config-if-Et2)#sh ip route 172.16.0.0/16
<...>
 S 172.16.0.0/16 [1/0] via 192.168.10.102, Ethernet1

Router-AのプライマリStatic RouteのNexthopは、10.0.0.2がRecursive LookupによりOSPFで受け取っている経路10.0.0.0/8で解決され、Et1側の192.168.10.102となります。

Router-A(config-if-Et2)#sh rib route ip static
VRF name: default, VRF ID: 0xfe, Protocol: static
Codes: C - Connected, S - Static, P - Route Input
       B - BGP, O - Ospf, O3 - Ospf3, I - Isis
       > - Best Route, * - Unresolved Nexthop
       L - Part of a recursive route resolution loop
>S 0.0.0.0/0 [6/0]
    via 192.168.10.102 [0/1]
       via Ethernet1, directly connected
>S 172.16.0.0/16 [1/0]
    via 10.0.0.2 [110/1]
       via 192.168.10.102, Ethernet1
 S 172.16.0.0/16 [10/0]
    via 10.0.1.2 [0/1]
    via Ethernet3, directly connected

10.0.0.2/32がOSPFの経路(10.0.0.0/8)で解決されています。

Router-A(config-if-Et2)#sh ip route 10.0.0.2/32
<...>
 O E2 10.0.0.0/8 [110/1] via 192.168.10.102, Ethernet1

Recursive Lookupを考慮したFloating Static Route

EOSでは、BGPと同様にStatic routeのNexthopについてRecursive lookupが行われることを理解して設定します。
図2の場合、Et2がダウンした場合にプライマリStatic Routeを無効にして、セカンダリStatic Routeを有効にするには、以下のようにInterfaceオプションをつけておくことで設定可能です。

Router-A(config)#sh ru section 172.16.0.0
ip route 172.16.0.0/16 Ethernet2 10.0.0.2
ip route 172.16.0.0/16 Ethernet3 10.0.1.2 10

Router-A(config)#sh ip route
<...>
Gateway of last resort:
 S 0.0.0.0/0 [6/0] via 192.168.10.102, Ethernet1

 C 10.0.0.0/24 is directly connected, Ethernet2
 C 10.0.1.0/24 is directly connected, Ethernet3
 C 10.0.2.0/24 is directly connected, Management1
 O E2 10.0.0.0/8 [110/1] via 192.168.10.102, Ethernet1
 S 172.16.0.0/16 [1/0] via 10.0.0.2, Ethernet2
 C 192.168.10.0/24 is directly connected, Ethernet1

ここでRouter-AのInterfafce Et2をダウンさせると、プライマリStatic Routeは無効となり、セカンダリStatic Routeが有効となります。

Router-A(config)#int et2
Router-A(config-if-Et2)#shut

Router-A(config-if-Et2)#sh ip route 172.16.0.0/16
<...>
 S 172.16.0.0/16 [10/0] via 10.0.1.2, Ethernet3

Router-A(config-if-Et2)#sh rib route ip static
VRF name: default, VRF ID: 0xfe, Protocol: static
Codes: C - Connected, S - Static, P - Route Input
       B - BGP, O - Ospf, O3 - Ospf3, I - Isis
       > - Best Route, * - Unresolved Nexthop
       L - Part of a recursive route resolution loop
>S 0.0.0.0/0 [6/0]
    via 192.168.10.102 [0/1]
       via Ethernet1, directly connected
>S 172.16.0.0/16 [10/0]
    via 10.0.1.2, Ethernet3

さらに、EOSでは単純なInterfaceオプションだけでなく、ポリシーを定義して、Recursive Lookupの動作を詳細に制御することもできます。詳しくは以下に記載されています。

RIB Route Control: Route Resolution Policy

Follow

Get every new post on this blog delivered to your Inbox.

Join other followers: