初めに
学習の一環として、BGPとVRRPを利用した経路冗長化ができるか考えてみました。
WEBで調べればやり方は色々あると思いますが、学習の一環として自分のBGPとVRRPの知見範囲で設計が出来るか考えてみました。
事前知識
- CCNPで勉強した程度
- 冗長構成のBGP設計経験なし
ネットワーク構成と論理図
正常時の通信フロー
Master側を通信が流れます。
障害時の通信フロー
Master側の回線に障害があった場合、VRRPのMaster/Backupが切り替わります。
R1を例に説明になりますが、対抗のR3も同様の考え方で切り替わります。
仕組みは以下になります。
- VRRPでトラッキング機能を利用してMaster/Backupの切り替え
- VRRP設定インターフェースのダウンによるMaster/Backupの切り替え
VRRPトラッキング機能
後述でIPSLAでのトラッキングにするので、ip routeでのトラッキング設定は無くても良い。ダメパターンの設定例として記載しました。
ルーティングテーブルから経路が消えたのを判別して、Master/Backupを切り替えられます。これは対抗のMasterルータ障害や経路障害時にBGPのアドバタイズがされなくなるのを利用して、Master/Backupを切り替えてます。
- 正常時
172.16.2.20の経路情報がBGPでアドバタイズされています。
Gateway of last resort is not set
172.16.0.0/24 is subnetted, 2 subnets
C 172.16.1.0 is directly connected, Ethernet1/0
B 172.16.2.0 [20/0] via 10.0.1.2, 00:03:24
10.0.0.0/24 is subnetted, 1 subnets
C 10.0.1.0 is directly connected, Ethernet1/1
- 障害時
172.16.2.20の経路情報がBGPでアドバタイズされずに、ルーティングテーブルからも消えます。
R1#sh ip ro | be Gat
Gateway of last resort is not set
172.16.0.0/24 is subnetted, 1 subnets
C 172.16.1.0 is directly connected, Ethernet1/0
-
R3障害
-
経路がR1にアドバタイズされずルーティングテーブルから消える。
-
R1とR3間の障害
-
R1とR3間の隣接関係が切れて、経路がルーティングテーブルから消える。
-
R1設定
track 1 ip route 172.16.2.0 255.255.255.0 reachability
int e1/0
vrrp 1 track 1 decrement 100
- R3設定
track 1 ip route 172.16.1.0 255.255.255.0 reachability
int e1/0
vrrp 1 track 1 decrement 100
VRRP設定インターフェースのダウンによるMaster/Backupの切り替え
##R1-SW1、R3-SW2間の障害時の切り替え。
スイッチのインターフェース障害やLANケーブルに障害があった場合に上記設定のみでは対応できない。
SW2のインターフェース障害の場合は、R3→R1への経路アドバタイズは行われる。
ルーティング情報がR1にある場合、R1-R2のMaster/Backupが切り替わらず以下のようになる。
- R3(backup)-R4(Master)
- R1(Master)-R2(Backup)
IPSLAでSWの管理IPを監視して、トラッキングでMaster/Backupの切り替えを行う事で対応できました。
①R1からIPSLAでSW2の管理IPを監視をする。
②R3-SW2間の障害が発生した場合、疎通が取れなくなる。
③疎通が取れなくなった場合、R1のVRRPのトラッキングで
R1のPriorityを下げる様に設定→Master/Backup切り替えされる。
- R1設定
ip sla 1
icmp-echo 172.16.2.254 source-interface e1/1
timeout 5000
frequency 10
ip sla schedule 1 life forever start-time now
track 1 ip sla 1 reachability
!
int e1/0
vrrp 1 track 1 decrement 100
- R3設定
ip sla 1
icmp-echo 172.16.1.254 source-interface e1/1
timeout 5000
frequency 10
ip sla schedule 1 life forever start-time now
track 1 ip sla 1 reachability
!
int e1/0
vrrp 1 track 1 decrement 100