フローティングスタティックルートについての概要とCisco機器での設定方法を説明します。経路制御(ルーティング)に関する説明は下記のページを参照してください。
フローティングスタティックルートとは
概要説明
フローティングス タティックルートとは、AD値を変更することにより、障害時などの迂回経路としてスタティックルートを利用する技術です。障害時にスタティックルートがルーティングテーブル上に浮かび上がる(Floating)ため、フローティングスタティックルートと呼ばれています。
通常、スタティックルートのAD値は「1」のため、他の経路情報よりも優先されます。AD値を他の経路情報よりも大きい値に設定することで、正常時はルーティングテーブルにはインストールされず、他の経路情報が無くなった時のみ利用されるようになります。
ルーティングの優先ルール(AD値)の詳細については、下記を参照してください。
フローティングスタティックルートの用途
フローティングスタティックルートは、上述のように障害時の迂回経路(バックアップルート)として利用されるのが一般的です。ダイナミックルーティングを利用すれば自動切り替わりは可能ですが、以下のような場合にフローティングスタティックルートが利用されます。
- 小規模なネットワークで、ダイナミックルーティングを利用せずに切り替えたい場合
- WAN回線が従量課金制で、ダイナミックルーティングを利用できない場合 ※ISDN回線など
フローティングスタティックルートの基本的な設定方法
Cisco機器でのフローティングスタティックルートの設定方法を説明します。
設定方法
フローティングスタティックルートは、通常のスタティックルートにAD値を付与して設定します。
ip route [宛先アドレス] [宛先サブネットマスク] [転送先アドレス] [AD値]
- 宛先アドレス 〜 宛先となるIPアドレス(IPセグメント)を指定
- 宛先サブネットマスク 〜 宛先IPアドレス(IPセグメント)のサブネットマスクを指定
- 転送先アドレス 〜 転送先となる機器のIPアドレスを指定
- AD値 〜 1-255の間で指定 ※指定しない場合のデフォルト値は”1″
下記のネットワークを例に、ルーター1にフローティングスタティックルートを設定します。
サーバー(172.16.1.1)宛てのスタティックルートを下記の通り設定します。
通常のスタティックルート:ルーター2をネクストホップに指定
ip route 172.16.1.1 255.255.255.255 10.1.1.2
フローティングスタティックルート:ルーター3をネクストホップに指定
ip route 172.16.1.1 255.255.255.255 10.2.2.3 200
設定確認
ルーター1の設定を確認します。
ルーター1のコンフィグに設定されていることを確認します。
show run | inc ip route
Router1#show run | inc ip route
ip route 172.16.1.1 255.255.255.255 10.1.1.2
ip route 172.16.1.1 255.255.255.255 10.2.2.3 200
コンフィグ 上は、2つのスタティックルートが設定されています。
ルーター1のルーティングテーブルを確認します。
show ip route
Router1#show ip route
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
C 10.1.1.0/24 is directly connected, GigabitEthernet0/0
L 10.1.1.1/32 is directly connected, GigabitEthernet0/0
C 10.2.2.0/24 is directly connected, GigabitEthernet0/1
L 10.2.2.1/32 is directly connected, GigabitEthernet0/1
172.16.0.0/32 is subnetted, 1 subnets
S 172.16.1.1 [1/0] via 10.1.1.2
ルーティングテーブル上には、ネクストホップがルーター2(10.1.1.2)の経路のみインストールされていることが分かります。
動作確認
ルーター2をネクストホップとするスタティックルートを削除すると、ルーター3をネクストホップとするフローティングスタティックルートが有効になることを確認します。
ルーター2をネクストホップとするスタティックルートを削除
no ip route 172.16.1.1 255.255.255.255 10.1.1.2
ルーティングテーブルを確認
Router1#show ip route
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
C 10.1.1.0/24 is directly connected, GigabitEthernet0/0
L 10.1.1.1/32 is directly connected, GigabitEthernet0/0
C 10.2.2.0/24 is directly connected, GigabitEthernet0/1
L 10.2.2.1/32 is directly connected, GigabitEthernet0/1
172.16.0.0/32 is subnetted, 1 subnets
S 172.16.1.1 [200/0] via 10.2.2.3
ネクストホップがルーター3(10.2.2.3)の経路がインストールされたことが分かります。
設定〜動作確認を動画で確認 ※クリックで再生
デバッグログの確認
スタティックルーティングが有効・無効になる様子は下記のデバッグを実行すると分かります。
debug ip routing static detail
debug ip routing static db
デバッグコマンドを実行すると、機器の負荷が高くなる可能性があります。そのため、本番環境では基本的に実行しないように注意しましょう。
デバッグコマンドを有効にした状態で、設定→動作確認を実行します。
通常のスタティックルートを設定
Router1(config)#ip route 172.16.1.1 255.255.255.255 10.1.1.2
〜〜抜粋〜〜
11:29:09.435: IP-ST-DB(default): ip_addstatic_route(), succeed
11:29:09.435: 172.16.1.1/32 via 10.1.1.2 ,tag 0,fg 0x40020004,dis 1,name ,lfg 0x0,own M
11:29:09.438: IP-ST(default): 172.16.1.1/32 [1], 10.1.1.2 Path = 1 2 3 7, add succeed, active state
- ip_addstatic_route(), succeed:スタティックルートの追加が成功
- active state:ルートが有効状態
フローティングスタティックルートを設定
Router1(config)#ip route 172.16.1.1 255.255.255.255 10.2.2.3 200
〜〜抜粋〜〜
11:29:16.168: IP-ST-DB(default): ip_addstatic_route(), succeed
11:29:16.168: 172.16.1.1/32 via 10.2.2.3 ,tag 0,fg 0x40020004,dis 200,name ,lfg 0x0,own M
11:29:16.170: IP-ST(default): 172.16.1.1/32 [200], 10.2.2.3 Path = 1 2 3 7, no change, not active state
- ip_addstatic_route(), succeed:スタティックルートの追加が成功
- not active state:ルートが無効状態
通常のスタティックルートを削除→フローティングスタティックルート有効
Router1(config)#no ip route 172.16.1.1 255.255.255.255 10.1.1.2
〜〜抜粋〜〜
11:29:25.869: IP-ST-DB(default): ip_remove_static_no_free_sre() sre: 0xFD77798
11:29:25.870: 172.16.1.1/32 via 10.1.1.2 ,tag 0,fg 0x40020004,dis 1,name ,lfg 0x402,own M
11:29:25.885: IP-ST(default): callbackup route, 172.16.1.1/32
11:29:25.885: IP-ST(default): updating same distance on 172.16.1.1/32
11:29:25.886: IP-ST(default): 172.16.1.1/32 [200], 10.2.2.3 Path = 1 2 3 7, add succeed, active state
- ip_remove_static:通常のスタティックルート削除
- 172.16.1.1/32 [200], 10.2.2.3 ・・・ active state:ルーター3向けのルートを有効状態に変更
デバッグログを動画で確認 ※クリックで再生
フローティングスタティックルートの具体的な利用例
フローティングスタティックルートは、ダイナミックルーティングのバックアップルートとして利用されることが多いです。ここでは、冗長化されたWAN構成で、BGPのバックアップルートとして、フローティングスタティックルートを利用する例を紹介します。
ネットワーク構成
下記のネットワークを例に、ルーター1にフローティングスタティックルートを設定します。
各ルーターの設定
各ルーターの設定は下記の通りです。
interface GigabitEthernet0/0
ip address 192.168.1.253 255.255.255.0
standby 254 ip 192.168.1.254
standby 254 priority 105
standby 254 preempt
interface GigabitEthernet0/1
ip address 10.1.1.1 255.255.255.252
router bgp 64512
timers bgp 15 45
redistribute connected
neighbor 10.1.1.2 remote-as 64513
ip route 172.16.1.0 255.255.255.0 192.168.1.252 200
「宛先:172.16.1.0/24」に対して、フローティングスタティックルートを設定しています。ネクストホップは、ルーター2のLANアドレスを指定します。
interface GigabitEthernet0/0
ip address 192.168.1.252 255.255.255.0
standby 254 ip 192.168.1.254
standby 254 preempt
interface GigabitEthernet0/1
ip address 10.2.2.1 255.255.255.252
ip route 0.0.0.0 0.0.0.0 10.2.2.2
interface GigabitEthernet0/0
ip address 172.16.1.253 255.255.255.0
standby 254 ip 172.16.1.254
standby 254 priority 105
standby 254 preempt
interface GigabitEthernet0/1
ip address 10.1.1.2 255.255.255.252
router bgp 64513
timers bgp 15 45
redistribute connected
neighbor 10.1.1.1 remote-as 64512
interface GigabitEthernet0/0
ip address 172.16.1.252 255.255.255.0
standby 254 ip 172.16.1.254
standby 254 preempt
interface GigabitEthernet0/1
ip address 10.2.2.2 255.255.255.252
ip route 0.0.0.0 0.0.0.0 10.2.2.1
PC→サーバーへの通信経路
PCからサーバーへの通信経路は下記の通りです。
正常時
正常時は、ルーター1→ルーター3を経由して通信を行います。
ルーター3の障害時
ルーター3から「172.16.1.0/24」への経路情報が受け取れなくなると、フローティングスタティックルートがルーティングテーブルにインストールされ、下記の通信経路となります。※ルーター1→ルーター2→ルーター4を経由します。
動作確認
ルーター3に障害が発生した場合の動作を確認します。ここでは、簡易的に障害状態とするため、ルーター3のWAN/LANインターフェースをシャットダウンします。
※以下のデバッグを有効にしています。
debug ip routing static detail
debug ip routing static db
「ルーター1のルーティングテーブル」と「PCからのTraceroute」の結果を確認します。
ルーター1のルーティングテーブルを確認します。
Router1#show ip route
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 10.1.1.0/30 is directly connected, GigabitEthernet0/1
L 10.1.1.1/32 is directly connected, GigabitEthernet0/1
172.16.0.0/24 is subnetted, 1 subnets
B 172.16.1.0 [20/0] via 10.1.1.2, 00:02:05
192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.1.0/24 is directly connected, GigabitEthernet0/0
L 192.168.1.253/32 is directly connected, GigabitEthernet0/0
172.16.1.0/24宛ての経路はBGPで受信しており、ネクストホップはルーター3(10.1.1.2)となっています。
PCからサーバーへTracerouteを実施して、通信経路を確認します。
PC:~$ traceroute -n 172.16.1.1
traceroute to 172.16.1.1 (172.16.1.1), 30 hops max, 46 byte packets
1 192.168.1.253 11.605 ms 10.521 ms 14.920 ms
2 10.1.1.2 20.455 ms 11.146 ms 14.231 ms
3 172.16.1.1 15.741 ms 43.720 ms 35.791 ms
ルーター1(192.168.1.253)→ルーター3(10.1.1.2)を経由して、サーバーへ通信していることが分かります。
ルーター3のWAN/LANインターフェースをシャットダウンします。
int range Gi0/0 - 1
shutdown
Router3(config)#int range Gi0/0 - 1
Router3(config-if-range)#shut
Feb 12 2023 08:36:32.202: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/0, changed state to down
Feb 12 2023 08:36:32.246: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/1, changed state to down
ルーター1のデバッグログを確認します。
Router1#
Feb 12 2023 08:37:13.865: %BGP-3-NOTIFICATION: sent to neighbor 10.1.1.2 4/0 (hold time expired) 0 bytes
Feb 12 2023 08:37:13.866: %BGP-5-NBR_RESET: Neighbor 10.1.1.2 reset (BGP Notification sent)
Feb 12 2023 08:37:13.867: %BGP-5-ADJCHANGE: neighbor 10.1.1.2 Down BGP Notification sent
Feb 12 2023 08:37:13.867: %BGP_SESSION-5-ADJCHANGE: neighbor 10.1.1.2 IPv4 Unicast topology base removed from session BGP Notification sent
ルーター3で障害が発生してから約45秒後(BGPのHoldタイマーの値)、BGPネイバーが切断されていることが分かります。
Feb 12 2023 08:37:13.868: IP-ST(default): callbackup route, 172.16.1.0/24
Feb 12 2023 08:37:13.868: IP-ST(default): updating same distance on 172.16.1.0/24
Feb 12 2023 08:37:13.868: IP-ST(default): 172.16.1.0/24 [200], 192.168.1.252 Path = 1 2 3 7, add succeed, active state
ルーター2(192.168.1.252)をネクストホップとするフローティングスタティックルートが、”active state”になったことが分かります。
「ルーター1のルーティングテーブル」と「PCからのTraceroute」の結果を確認します。
ルーター1のルーティングテーブルを確認します。
Router1#show ip route
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 10.1.1.0/30 is directly connected, GigabitEthernet0/1
L 10.1.1.1/32 is directly connected, GigabitEthernet0/1
172.16.0.0/24 is subnetted, 1 subnets
S 172.16.1.0 [200/0] via 192.168.1.252
192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.1.0/24 is directly connected, GigabitEthernet0/0
L 192.168.1.253/32 is directly connected, GigabitEthernet0/0
172.16.1.0/24宛ての経路がスタティックルートに変わり、ネクストホップはルーター2(192.168.1.252)となっていることが分かります。
PCからサーバーへTracerouteを実施して、通信経路を確認します。
PC:~$ traceroute -n 172.16.1.1
traceroute to 172.16.1.1 (172.16.1.1), 30 hops max, 46 byte packets
1 192.168.1.253 7.770 ms 2.982 ms 4.470 ms
2 192.168.1.252 8.269 ms 12.419 ms 9.557 ms
3 10.2.2.2 13.596 ms 19.601 ms 31.234 ms
4 172.16.1.1 25.456 ms 13.377 ms 10.024 ms
ルーター1(192.168.1.253)→ルーター2(192.168.1.252)→ルーター4(10.2.2.2)を経由して、サーバーへ通信していることが分かります。
フローティングスタティックルートの注意点
AD値の設計を慎重に行う
フローティングスタティックルートは、AD値で経路情報の優先度を決定します。そのため、AD値の設計は他のルーティングプロトコルよりも大きくなるように設計する必要があります。AD値の値を誤ると、意図した経路切り替わりとならない可能性があるため、慎重に設計を行う必要があります。
各ルーティングプロトコルのAD値は下記を参照してください。
双方向の通信経路を確保する
フローティングスタティックルートで経路を制御する場合、双方向での通信経路が異経路になることがあります。通信経路が異経路になると、ファイアウォールやSLBなどのセッションを管理する機器が間にいる場合に、通信が不可となる可能性があるため、ネットワーク全体の冗長性を考慮した設計が必要です。
多用すると設計が複雑になる
フローティングスタティックルートを多数利用すると、ネットワークの設計が複雑になります。管理者でもどのような冗長経路となっているのかが分からなくなり、障害対応が遅くなるなど、管理しきれないネットワーク環境となってしまいます。レイヤ3ネットワークについては、可能な限り「HSRP」と「ダイナミックルーティング」などの技術で冗長化するべきです。
以上で、フローティングスタティックルートの説明と設定方法の解説は完了です!