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アドレステーブル

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