Cisco VRRPの設定方法

Cisco VRRPの設定方法

Cisco VRRPの設定方法

VRRP設定について記載します。
GNS3で設定しました。


参照サイト




GNS3上にCisco7200を構成

GNS3上にCisco7200を置いて、それぞれ
スロット0にC7200-IO-2FE
スロット1にPA-2FE-TX
を構成しました。
イーサネットスイッチも置きました。



Idle PC設定

Idle PC設定を行ないます。



色々な設定

全ルーターにいつのもやつを入れておきます。


Router(config)#hostname R1


R1(config)#no ip domain-lookup


R1(config)#line console 0


R1(config-line)#exec-timeout 0 0


R1(config-line)#logging synchronous


R1#wr mem



IP設定

全ルーターにIPアドレスを割り振り、スイッチを
含め結線しno shutしておきます。



冗長構成前の構成で検証していきます。


※まずルーターとスイッチともに冗長構成前の構成で試行しますが
WEBサーバー見立てのルーター2台だけは例外的にVRRPを
設定しておきます。


R3(config)#int fa 1/0


R3(config-if)#vrrp 10 ip 192.168.0.200


R6(config)#int fa 1/0


R6(config-if)#vrrp 10 ip 192.168.0.200


R6(config-if)#vrrp 10 priority 50



デフォルトゲートウェイ設定

WEBサーバー見立て(R3,R6)と、クライアントPC見立て(R5)に
デフォルトゲートウェイを設定します。



2台のWEBサーバーにて設定

R3(config)#ip route 0.0.0.0 0.0.0.0 192.168.0.1


R6(config)#ip route 0.0.0.0 0.0.0.0 192.168.0.1


※まずはR1の物理IPアドレスに設定しておきます。



クライアントPCに設定

R5(config)#ip route 0.0.0.0 0.0.0.0 10.0.0.1



ルーティング設定


スタティックでルーティングするなら


R1(config)#ip route 10.0.0.0 255.0.0.0 172.16.0.1


R4(config)#ip route 192.168.0.0 255.255.255.0 172.16.0.2


OSPFでルーティングするなら


R1(config)#router ospf 1


R1(config-router)#network 0.0.0.0 255.255.255.255 area 0


R1(config-router)#passive-interface FastEthernet 1/0


R4(config)#router ospf 1


R4(config-router)#network 0.0.0.0 255.255.255.255 area 0


R4(config-router)#passive-interface FastEthernet 1/0


以下の図のようになりました。



疎通確認

クライアントPC(R5)からWEBサーバーの仮想IPアドレスへpingが通ることを確認します。


R5#ping 192.168.0.200

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


この時、ルーター「R1」が壊れてもスイッチ「SW1」が壊れても
通信断になります。
そこで冗長構成にしておくことが望ましいとされています。



VRRP設定


SW2を増設

SW2を増設しました。



ルーター「R2」の追加、IP設定、ルーティング設定

ルーター「R2」を追加し、IP設定、ルーティング設定を行ないます。
スタティックでルーティングするなら


R2(config)#ip route 10.0.0.0 255.0.0.0 172.17.0.1


R4(config)#ip route 0.0.0.0 0.0.0.0 172.17.0.2


※「R4」の設定です。
「R1」の停止、「R1」 - 「R4」間の断線、「R4」のfa0/0のポート障害等で
R4のルーティングテーブルから

C 172.16.0.0/16 is directly connected, FastEthernet0/0
S 192.168.0.0/24 [1/0] via 172.16.0.2

が消え去った時のためにデフォルトゲートウェイを設定しています。


※GNS3では「R1」の停止、「R1」 - 「R4」間の断線では以上のルーティング
情報は消え去りませんし、keepaliveが有効になっていたとしてもR4から
R4自体のfa0/0へpingを打つと疎通が出来てしまいます。
なので今後発生させる障害テスト時は、代替方法としてfa0/0をシャットダウンし、
ルーティングテーブルから消し去っています。
実際の機器のCisco1812Jでそれっぽい事をしたところ、意図通りに
ルーティング情報は消え去りました。


OSPFでルーティングするなら


R2(config)#router ospf 1


R2(config-router)#network 0.0.0.0 0.0.0.0 area 0


R2(config-router)#passive-interface fastethernet 1/0




VRRP設定、2台のルータへ仮想IPアドレス設定

R1(config)#int fa 1/0


R1(config-if)#vrrp 1 ip 192.168.0.100


R2(config)#int fa 1/0


R2(config-if)#vrrp 1 ip 192.168.0.100


※デフォルトのプライオリティ値は100です。プライオリティ値が高いものが
Masterとなります。


※同じプライオリティの場合

・最後に仮想IPアドレスを設定した方がMasterとなります。
・最後に起動した方がMasterとなります。



プライオリティ値の変更

ルーター「R1」をMasterにしたいため、
ルーター「R2」のプライオリティ値を低くします。


R2(config-if)#vrrp 1 priority 50

*Oct 24 20:10:31.359: %VRRP-6-STATECHANGE: Fa1/0 Grp 1 state Master -> Backup



VRRPアドバタイズの送信確認

VRRPアドバタイズの送信元は
Masterルーター内のVRRPの仮想IPアドレスを設定したインターフェースで、
宛先はマルチキャストアドレスの224.0.0.18です。
デフォルトでは1秒間隔で送信して、
3回受信出来なかった場合はダウンとみなします。


VRRPアドバタイズのパケットキャプチャは以下の図です。


仮想ルータは”00-00-5E-00-01-XX”というMACアドレスを使用します。
最後の”XX”部分はVirtual Router IDentifier(VRID) です。
今回は「vrrp 1」として設定したため、最後の”XX”部分は「01」です。
「Source」が「192.168.0.198」のものはWEBサーバー見立てのR3(192.168.0.198)が
WEBサーバー見立てのR6(192.168.0.199)へ向けて送信しているパケットです。
こちらは「vrrp 10」で設定したため最後の”XX”部分は「0a」です。



デフォルトゲートウェイ変更

2台のWEBサーバーのデフォルトゲートウェイを
192.168.0.1(ルーター「R1」のFastEthernet 1/0)から
192.168.0.100(「R1」「R2」で構成するVRRPの仮想IPアドレス)へ
変更します。


R3(config)#no ip route 0.0.0.0 0.0.0.0 192.168.0.1


R3(config)#ip route 0.0.0.0 0.0.0.0 192.168.0.100


R6(config)#no ip route 0.0.0.0 0.0.0.0 192.168.0.1


R6(config)#ip route 0.0.0.0 0.0.0.0 192.168.0.100



以下の図のようになりました。



SW1とSW2の渡りケーブルを付けたのはWEBサーバー同士、及びルーター
「R1」 - 「R2」間のVRRPアドバタイズ(224.0.0.18宛)ができるようにです。


OSPF運用の場合はこれで終了です。
SW1の障害時は、クライアントからサーバーへの通信時にR2を経由します。
R4のルーティングテーブルが変更されるため。


※GNS3の場合は多分、SW1の障害時にR1のルーティングテーブルは
変わらないためOSPFでのルート切替は発生せず、通信不可となります。


スタティックルート運用の場合はSW1の障害時、R4のルーティングテーブルに
変更は無いため通信不可となります。


そのために「R1」 - 「R2」間に渡りケーブルを追加し
R1でデフォルトルートをR2へ設定します。


R1(config)#int fa 1/1


R1(config-if)#ip add 1.1.1.1 255.255.255.0


R1(config-if)#no shut


R1(config)#ip route 0.0.0.0 0.0.0.0 1.1.1.2


R2(config)#int fa 1/1


R2(config-if)#ip add 1.1.1.2 255.255.255.0


R2(config-if)#no shut





トラックインターフェース


「R1」のfa 0/0や「R4」のfa 0/0に関する障害が起きたときは、
行きと帰りのルートが異なります。VRRPの仮想IPアドレスを持っているのは「R1」のままであるため。
行きと帰りのルートを同じにする必要が有る場合にはトラックインターフェース設定を追加します。



FastEthernet0/0をトラッキング対象とします。

R1(config)#track 1 interface FastEthernet0/0 line-protocol



interface FastEthernet1/0の設定で、トラック対象のインターフェース

(今回はFastEthernet0/0)がダウンした際にプライオリティを60減少させる。


R1(config)#interface FastEthernet1/0


R1(config-if)#vrrp 1 track 1 decrement 60



※R1のプライオリティ値はデフォルトの100でR2のプライオリティ値は
50であるため、60減少させるということは、結局40になってR2の50よりも低くなる
=R2がMasterになる。ということです。


トラックインターフェース設定前と後の通信経路は以下のようになります。


トラックインターフェース設定前




トラックインターフェース設定後



プリエンプト設定

プリエンプト自体はデフォルトで有効です。


R1の障害復旧時、R2からR1へ切り戻しが発生しますが、デフォルトでは
その際に0秒で切り戻されます。R1のルーティングテーブルが動的で有った
場合、完成を待たずに切り戻される事になります。
なので、そのような場合には切り戻し時の待ち時間(秒数)を設定します。
preemptとは「先取りする」という意味です。


R1(config)#int fa 1/0


R1(config-if)#vrrp 1 preempt delay minimum 45


以下の「R1」の起動時のパケットキャプチャで、最初の物理アドレスが出す
Gratuitous ARPから仮想アドレスが出すGratuitous ARPまでの間隔が
約45秒であることが分かりますね。



VRRP切替時の動作

VRRP切替時は以下の図のGratuitous ARPが出ます。


・送信元MAC


・送信元IP


・送信元MAC


・送信先IP

を見ると分かりやすいですね。


※サーバー見立てのものも別VRIDでVRRPアドバタイズを送出させているため
パケットキャプチャ時に見やすくするため、サーバー見立てのものは停止させています。




Gratuitous ARP/グラチュータスARP/余計な,無償ARP

自身のIPアドレスをリクエストするためのARPパケットのこと。
同一ネットワーク内のIPアドレスの重複をチェックする。
ネットワーク上の他のホストに対してARPテーブルを更新するよう通知する。
引用元


参照サイト



このパケットによってL2スイッチのMACアドレステーブルも変わるため、
正常に通信が出来るようになります。


SW2のMACアドレステーブルは以下のように変わりました。

R1からR2へ切り替わる前のSW2のMACアドレステーブル


R1からR2へ切り替わった後のSW2のMACアドレステーブル

上記の切り替わる前から変化しました。