1.はじめに
VRRP(仮想ルータ冗長プロトコル)プロトコルは、ルータ冗長プロトコルを達成するために使用され、RFC3768で定義されている最新のプロトコル、RFC2338元の定義が廃止された、比較的新しい契約はまた、いくつかの機能を簡素化します。
【0002】プロトコル
2.1プロトコル
VRRPバックアップモード故障の静的デフォルトルーティング環境における障害のデフォルトルータネットワークの単一点を排除するために設計されたプロトコルは、スイッチデバイス機能が失敗しないかもしれない場合にように行わ発生させ内部および外部のデータ通信の効果は、パラメーターは、内部ネットワークのネットワークを変更する必要はありません。VRRPバックアップのIPアドレスは、ルータが機能間の不要な通信を低減するために、優先ルーティングを有する必要があります。
VRRPデバイスにプロトコル仮想二つ以上のルータ装置を、ルータ内部グループながら、外部の仮想ルータIP(一つ以上)を提供し、外部IPルータの物理的な所有場合。これが動作する場合、その後、マスタであるか、またはこのようなARP要求、ICMP、および転送データ等の仮想ルータIPマスター各種ネットワーク機能のために実装され、アルゴリズムによって選出され、IPを所有していない他のデバイスは、バックアップ状態、受信VRRPのマスタ状態広告情報に加えて、外部のネットワーク機能を実行しません。ホストに障害が発生した場合は、BACKUP MASTERは、元のネットワーク機能を引き継ぎます。
各ルータ(VRID)のVRRP仮想ルータIDと優先度値を設定する際に設定する必要があり、グループVRIDルータを使用して、同一のVRIDグループについて同じ値を有するルータは、VRIDは、0から255までの正の整数であり;同MASTERを選出する優先値のセットを使用してルータは、優先度がMASTER大きいほど、優先順位は、0から255までの正の整数です。
VRRPプロトコルはVRRPデータ、VRRPデータ伝送データの特別な仮想送信元MACアドレスを使用してのではなく、独自のネットワークカードのMACアドレスを送信したマルチキャストデータを使用して、VRRPはマスタルータがマスターワークと仮想ルータIPを示すVRRP広告情報を送信し実行しますデータが送信されない時間の情報マスタ一定期間の通知を受信しなかった場合(群)は、VRRPバックアップがデータのみを受信し、それぞれは、通知情報を送信し、バックアップ・マスターとして、マスターの再選択状態を自分自身を宣言します。
2.2 MASTER選挙
外部の仮想ルータのIPはルータ自体、IPアドレスの設定がある場合は、ルータは常にMASTERであり、
そうでない場合、あなたは仮想IPを持っていない場合、それはMASTERの選挙になり、ルータが自分自身にMASTERを宣言し、VRRP情報を送ります;
;あなたが受け取る場合は、他のマシンに送信された優先順位がアドバタイズ情報は、BACKUP状態に戻ってくる、自分自身よりも大きい
同じ優先度が、それは、IP高い値より大きい優先実際のIPルータを比較する場合は、
しかし、外部の場合仮想ルータのIPはIPルータ自体で、その後、ルータは常にMASTERになり、その後、優先順位は255です。
2.3プロトコルステートマシン
VRRPプロトコル状態が、それは三つの状態、初期設定、ホスト、バックアップ・マシンで、比較的簡単です。
1 + --------------- +
2 + ---------> | | <------------- +
3 | | 初期化| |
4 | + ------ | | ---------- + |
5 | | + --------------- + | |
6 | | | |
7 | VV |
8 + --------------- + + --------------- +
9 | | ----------------------> | |
10 | マスター| | バックアップ|
11 | | <---------------------- | |
12 + --------------- + --------------- +
初期化:
ルータがルータの優先順位が255である場合にVRRP広告情報を送信するために、(最も高い優先度は、ルータがルータのアドレスを持っている)、開始し、通知を設定し、ルーティング仮想MACに対応するMACアドレスをブロードキャストARP情報円形ルーターのIPアドレスを送信します;準備情報タイマーは、定期的にMASTER状態を回し、VRRPアドバタイズメント情報を送信し
、そうでない場合はBACKUP状態に入り、定期的にチェックし、それが情報MASTERの通知を受けたかどうかを確認するためにタイマーを設定します。
ホスト:
以下の機能へのホスト状態のルータ:
タイミング広告タイマを設定し、
ARP要求に応答して、VRRPルータのIPアドレスの仮想MACアドレス、
宛先MACを転送するには、仮想MAC VRRPパケットである。
もし仮想IPルータの所有者、送信先アドレスは、IPパケットを受信した仮想ルータがドロップされますされ、
シャットダウンイベントのタイミングを受信したときに広告タイマーを削除し、広告パケット0の送信の優先順位は、初期化状態を回し、
タイムアウトタイマータイマー広告場合VRRP広告メッセージを送信するステップと、
優先度がVRRP広告情報を送信し、0の場合、VRRP広告メッセージを受信した場合、そうでない場合、データの優先度が単位よりも高いか否かを決定することは、実際のIPアドレスとローカルIP実際以上である、タイマ広告を設定しますホストをリセットするタイマーのタイムアウトタイマー、バックアップターン、それ以外の場合は、広告パケットを破棄し、
スタンバイ・マシン:
実装するためにスタンバイ状態マシンのルータ:
ホストのタイムアウトタイマーを設定し、
仮想IPルータのARP要求に応答することはできません情報;
すべてのパケットの宛先MACアドレスは、仮想ルータのMACアドレスで廃棄し;
ありません 目的は、仮想ルータのIPパケットの全ての対象となります。
あなたがイベントのホストのシャットダウンタイムアウトタイマーを受信すると削除、初期化状態を回し、
出たホストタイムアウトタイマー時間、ARPは、アドレス情報を放送するVRRPアドバタイズメントメッセージを送信する、MASTERステータスを回し、
VRRP広告メッセージを受信したときに、優先順位がある場合ホストのタイムアウトタイマーをリセットするのに効果的な高、その後、認識MASTERあればそうでない場合は、データの優先順位を判断することは、単位以上である;そうでない場合は、広告パケットを破棄し、マスターの選挙を入力0、
2.4 ARPクエリー処理を
ARPクエリを介して内部ホスト対応する仮想ルータのIPアドレスのMACアドレスは、MASTERの応答ルータMACアドレスではなく、ネットワークカードの実際のMACアドレスでは、仮想VRRPのMACアドレスであるので、ルータが切り替わった時に知覚できないネットワーク内のマシンを聞かせたときに、ルータを再起動しますとき、あなたはネットワークカードの実際のMACアドレスを送信することはできません。仮想ルータオープンプロキシARP(proxy_arp)関数場合、プロキシARP応答はVRRPの仮想MACアドレスをエコー;
2.5 VRRP応用例
1 +-----------+ +-----------+
2 | Rtr1 | | Rtr2 |
3 |(MR VRID=1)| |(BR VRID=1)|
4 |(BR VRID=2)| |(MR VRID=2)|
5 VRID=1 +-----------+ +-----------+ VRID=2
6 IP A ---------->* *<---------- IP B
7 | |
8 | |
9 ------------------+------------+-----+--------+--------+--------+--
10 ^ ^ ^ ^
11 | | | |
12 (IP A) (IP A) (IP B) (IP B)
13 | | | |
14 +--+--+ +--+--+ +--+--+ +--+--+
15 | H1 | | H2 | | H3 | | H4 |
16 +-----+ +-----+ +--+--+ +--+--+
17 Legend:
18 ---+---+---+-- = Ethernet, Token Ring, or FDDI
19 H = Host computer
20 MR = Master Router
21 BR = Backup Router
22 * = IP Address
23 (IP) = default router for hosts
这是通常VRRP使用拓扑,两台路由器运行VRRP互为备份,路由器1作为VRID组1的MASTER,IP地址A,VRID组2的BACKUP,路由器2作为VRID组2的MASTER,IP地址B,VRID组1的BACKUP,内部网络中一部分机器的缺省网关地址是IP地址A,一部分是IP地址B,正常情况下以A为网关的数据将走路由器1,以B为网关的数据将走路由器2,如果一台路由器发生故障,所有数据将走另一台路由器。
3. 协议定义
3.1 以太头
源MAC地址必须为虚拟MAC地址:00-00-5E-00-01-{VRID},VRID为虚拟路由器ID值,16进制格式,所以同一网段中最多有255个VRRP路由器;目的MAC为多播类型的MAC。
这里可以看出VRID非常重要
3.2 IP头参数
VRRP包的源地址是本机地址,目的地址必须为224.0.0.18,为一多播地址;IP协议号为112;IP包的TTL值必须为255。
3.3 VRRP协议数据格式
1 0 1 2 3
2 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
3 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
4 |Version| Type | Virtual Rtr ID| Priority | Count IP Addrs|
5 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
6 | Auth Type | Adver Int | Checksum |
7 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
8 | IP Address (1) |
9 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
10 | . |
11 | . |
12 | . |
13 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
14 | IP Address (n) |
15 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
16 | Authentication Data (1) |
17 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
18 | Authentication Data (2) |
19 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
其中:
version:版本,4位,在RFC3768中定义为2;
Type:类型,4位,目前只定义一种类类型:通告数据,取值为1;
Virtual Rtr ID:虚拟路由器ID,8位
Priority:优先级,8位,具备冗余IP地址的设备的优先级为255;
Count IP Addrs:VRRP包中的IP地址数量,8位;
Auth Type:认证类型,8位,RFC3768中认证功能已经取消,此字段值定义0(不认证),为1,2只作为对老版本的兼容;
Adver Int:通告包的发送间隔时间,8位,单位是秒,缺省是1秒;
Checksum:校验和,16位,校验数据范围只是VRRP数据,即从VRRP的版本字段开始的数据,不包括IP头;
IP Address(es):和虚拟路由器相关的IP地址,数量由Count IP Addrs决定
Authentication Data:RFC3768中定义该字段只是为了和老版本兼容,必须置0。
3.4 接收数据时的必须检查
收到VRRP数据包时要进行以下验证,不满足的数据包将被丢弃:
- TTL必须为255;
- VRRP版本号必须为2;
- 一个包中数据字段必须完整;
- 校验和必须正确;
- 必须验证在接收的网卡上配置了VRID值,而且本地路由器不是路由IP地址的拥有者
- 必须验证VVRP认证类型和配置的一致;
4. 结论
VRRP实现了对路由器IP地址的冗余功能,防止了单点故障造成的网络失效,VRRP本身是热备形式的,但可以通过互相热备实现路由器的均衡处理,新版的VRRP较老版简化了认证处理,实际不再进行数据的认证,这是因为在实际应用中经常出现认证成为造成多个MASTER同时使用的异常情况。
参考资料:https://blog.csdn.net/u010391029/article/details/48311699