DLC: Frame 3 arrived at 18:13:30.0877; frame size is 60 (003c hex) bytes.
DLC 数据链路层 帧到达时间 18:13:30.0877。 帧的大小为 60字节。
DLC:Destination = Multicast 01005E000012
目的地址为 多播地址 01005e000012 该地址应为VRRP多播MAC地址
DLC: Source = Station USC 00016E
源地址 USC 00016E USC 应该为MAC地址分配的厂商(查询无结果)
DLC
IP----- IP Header -----
IP
IP:Version = 4 , header length = 20 bytes
IP 版本 4 , 头部长度为 20 字节
IP:Type of service = C0
IP: 110 = internetwork control
0 = normal delay
0 = normal throughput
0 = normal reliability
0 = ECT bit - transport protocol will ignore the CE bit
0 = CE bit - no congestion
这部分为QOS参数 ,用来设置QOS 值
IP:Total length = 40 bytes
IP字段总长度是 40 bytes
IP:Identification = 16088
文件头的标识符部分,当数据报被划分为几段传送时用来重新组装数据
IP: Flags = 0X
0 = may fragment
0 = last fragment
说明数据包是否分段
IP: Fragment offset = 0 bytes
0 表明是数据包的最后一段
IP: Time to live = 255 seconds/hops
TTL 值255
IP: Protocol = 112(VRRP)
协议类型 112 VRRP 包
IP:Source address = [10.192.30.125]
源IP地址
IP:Destination address = [224.0.0.18]
目的IP地址
IP:No options
没有选项
IP:
VRRP ---- Virtual Router Redundency Protocol Header ----
虚拟路由器冗余协议头部
VRRP:
VRRP:Version = 2
VRRP 版本为2
VRRP:Virtual Router ID = 110
虚拟路由器ID 110
VRRP:Priority = 100
优先级 100
VRRP:Ip Address Count = 1
包含在通告中的IP地址数
VRRP:Authentication Type = 0 (No Authentication)
验证类型 没有验证
VRRP:Advertisement Interval = 2
通告发送间隔 2秒
VRRP:VRRP Checksum = 51CD
VRRP 数据包校验和 51CD
VRRP:IP address = 10.192.30.1
VRRP 虚拟出的地址 10.192.30.1
VRRP:Authentication ID (1)= 0
未知:怀疑为1类(simple)验证方式的ID
VRRP:Authentication ID (2) = 0
未知:怀疑为2类(MD5)验证方式的ID
DLC: Frame padding = 6bytes
帧填充字节 6byte
这里说明一点VRRP只适用于IPV4版本的路由器,对与IPV6版本的路由器将会有新的规范来规定相关内容。
----------------------------------------------------------------------------------------------------------------------
以下为整理网上内容
1. 前言I |F\^c@X\
VRRP(Virtual Router Redundancy Protocol)协议是用于实现路由器冗余的协议,最新协议在RFC3768中定义,原来的定义RFC2338被废除,新协议相对还简化了一些功能。yT&^bC1i
NE"EJS9]#p-NU 2. 协议说明0ln]+b!y+SY3@'z
:V2s(n8?+@(XV6[ 2.1 协议cr1nw}/_5gP6h~
@7D%NujwWU{
VRRP协议是为消除在静态缺省路由环境下的缺省路由器单点故障引起的网络失效而设计的主备模式的协议,使得在发生故障而进行设备功能切换时可以不影响内外数据通信,不需要再修改内部网络的网络参数。VRRP协议需要具有IP地址备份,优先路由选择,减少不必要的路由器间通信等功能。~x.r4U6U
n3y3xU N pEu:} VRRP协议将两台或多台路由器设备虚拟成一个设备,对外提供虚拟路由器IP(一个或多个),而在路由器组内部,如果实际拥有这个对外IP的路由器如果工作正常的话就是MASTER,或者是通过算法选举产生,MASTER实现针对虚拟路由器IP的各种网络功能,如ARP请求,ICMP,以及数据的转发等;其他设备不拥有该IP,状态是BACKUP,除了接收MASTER的VRRP状态通告信息外,不执行对外的网络功能。当主机失效时,BACKUP将接管原先MASTER的网络功能。vi*C&z lVo2X!A"O
/j7BLN R8QPs] 配置VRRP协议时需要配置每个路由器的虚拟路由器ID(VRID)和优先权值,使用VRID将路由器进行分组,具有相同VRID值的路由器为同一个组,VRID是一个0~255的正整数;同一组中的路由器通过使用优先权值来选举MASTER,优先权大者为MASTER,优先权也是一个0~255的正整数。,i5c0m\Um"B
(tx;j-gt"D |Q$~n
VRRP协议使用多播数据来传输VRRP数据,VRRP数据使用特殊的虚拟源MAC地址发送数据而不是自身网卡的MAC地址,VRRP运行时只有MASTER路由器定时发送VRRP通告信息,表示MASTER工作正常以及虚拟路由器IP(组),BACKUP只接收VRRP数据,不发送数据,如果一定时间内没有接收到MASTER的通告信息,各BACKUP将宣告自己成为MASTER,发送通告信息,重新进行MASTER选举状态。
E^^z2~:i%X 5Vd)y1s EB
2.2 MASTER选举
~ H2]Yd,R] 如果对外的虚拟路由器IP就是路由器本身配置的IP地址的话,该路由器始终都是MASTER;否则如果不具备虚拟IP的话,将进行MASTER选举,各路由器都宣告自己是MASTER,发送VRRP通告信息,如果收到其他机器的发来的通告信息的优先级比自己高,将转回BACKUP状态,如果相等的话,将比较路由器的实际IP,IP值较大的优先权高。不过如果对外的虚拟路由器IP就是路由器本身的IP的话,该路由器始终将是MASTER,这时的优先级值为255。
mA%KP B-U0j;y(e5E0Y*F2E t xj/iusY T
2.3 协议状态机l(E9~J j(?#Dq \UZ
/d$`(bI'fWX b
VRRP协议状态比较简单,就三种状态,初始化,主机,备份机。
@GS"?M+u XE/C +---------------+
3YLQi$BBhY +--------->| |<-------------+ `!A r.?/f%J%m
| | Initialize | |*~hLslM7]RMQM
| +------| |----------+ |
E5`sp8h!] | | +---------------+ | |teYAKU
| | | |
M{XO0{eWz | V V |
3b Fj'vm|!C? +---------------+ +---------------+7s K'T?/\"DK^%~
| |---------------------->| |
2blNo OFj~ | Master | | Backup |GCw)@|2Q
| |<----------------------| |#i%xCpWd:D y
+---------------+ +---------------+ [3FD,g5z rj Sw
v)L5B2jYBR 初始化:2w;p#ajm K4s\ F&T
路由器启动时,如果路由器的优先级是255(最高优先级,路由器拥有路由器地址),要发送VRRP通告信息,并发送广播ARP信息通告路由器IP地址对应的MAC地址为路由虚拟MAC,设置通告信息定时器准备定时发送VRRP通告信息,转为MASTER状态;否则进入BACKUP状态,设置定时器检查定时检查是否收到MASTER的通告信息。(n rf3En-US g
L@(csc$g*L
主机:-t H#r|Z2rl)J-p
主机状态下的路由器要完成如下功能:R,YT0OJ
设置定时通告定时器;
zI p kpu+PP3h 用VRRP虚拟MAC地址响应路由器IP地址的ARP请求;ae,WxN/dn"Y
转发目的MAC是VRRP虚拟MAC的数据包;;_`!oE9H1]br*Ge
如果是虚拟路由器IP的拥有者,将接受目的地址是虚拟路由器IP的数据包,否则丢弃;
5sI&VS!h0`?(h P 当收到shutdown的事件时删除定时通告定时器,发送优先权级为0的通告包,转初始化状态;'BixmTxDf
如果定时通告定时器超时时,发送VRRP通告信息;0V;P'N}R!d
收到VRRP通告信息时,如果优先权为0,发送VRRP通告信息;否则判断数据的优先级是否高于本机,或相等而且实际IP地址大于本地实际IP,设置定时通告定时器,复位主机超时定时器,转BACKUP状态;否则的话,丢弃该通告包;
Zr"O,B)[*{ ![k&f)u*Q
备机:U\ NCN*rn
备机状态下的路由器要实现以下功能:"c"sq*q;Z"y*d
设置主机超时定时器;0L.{p%S$w Q.{`w$E
不能响应针对虚拟路由器IP的ARP请求信息;#QjB,h4?
丢弃所有目的MAC地址是虚拟路由器MAC地址的数据包; v t8Z"f!Z(v"iY
不接受目的是虚拟路由器IP的所有数据包;
Am(a Y*uX!mI 当收到shutdown的事件时删除主机超时定时器,转初始化状态;n+b-\/|)Y}e uA
主机超时定时器超时的时候,发送VRRP通告信息,广播ARP地址信息,转MASTER状态;4RVNUI`-v#C
收到VRRP通告信息时,如果优先权为0,表示进入MASTER选举;否则判断数据的优先级是否高于本机,如果高的话承认MASTER有效,复位主机超时定时器;否则的话,丢弃该通告包;
/dq`!X:p3I&o z7_:@!BOY3i5WN4WU
2.4 ARP查询处理
z"j _'@3dB8@(zG { p
9J U$?$I:[,qh 当内部主机通过ARP查询虚拟路由器IP地址对应的MAC地址时,MASTER路由器回复的MAC地址为虚拟的VRRP的MAC地址,而不是实际网卡的MAC地址,这样在路由器切换时让内网机器觉察不到;而在路由器重新启动时,不能主动发送本机网卡的实际MAC地址。如果虚拟路由器开启的ARP代理(proxy_arp)功能,代理的ARP回应也回应VRRP虚拟MAC地址;
F{0yQ(H-h @
7C`3?KH"f$D#j r7[ 2.5 VRRP应用举例1~j0x#x/\ ENTs'j*J
|%Z.SNI:G|w#? +-----------+ +-----------+
q)C(R4WT | Rtr1 | | Rtr2 |1u o*K7f6k+I"J/~&Tc
|(MR VRID=1)| |(BR VRID=1)|w/Rxt{ Si
|(BR VRID=2)| |(MR VRID=2)|
`u0v~t7]O\ VRID=1 +-----------+ +-----------+ VRID=2
EK%e%Ct`N IP A ---------->* *<---------- IP B*TadD k7l`K+vF
| |{G?*GEDg { x2d
| |+SEq1u|
------------------+------------+-----+--------+--------+--------+--Ac7i [m8T:Z
^ ^ ^ ^
\ Y#O9]J{D2K+Z | | | |"y1T$W!ac{)Y(s
(IP A) (IP A) (IP B) (IP B)0zp4`LO z+N)hr
| | | |l;o$Q%W1~8p1AU*e
+--+--+ +--+--+ +--+--+ +--+--+!Q#k`1};A
| H1 | | H2 | | H3 | | H4 |](fHA"S&`l`
+-----+ +-----+ +--+--+ +--+--+
-X5^$V-C6Od+X%b Legend:0V&b5r$h4m\&pon
---+---+---+-- = Ethernet, Token Ring, or FDDI
d1D1oP5S-G5|s H = Host computer
1b+VK;[N]*H+V}H MR = Master Router
6i%jR"K+LVE BR = Backup Router
Y EE$?)i LIuc * = IP Address
j~4Yi6}v)T[w (IP) = default router for hostsH@*Y{,BY ~Nq
:X\n%YY#SC
这是通常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,如果一台路由器发生故障,所有数据将走另一台路由器。
C7_Zx4v(gZ6p
IWj(]Vo K%]NA 3. 协议定义mw+o3uho)@
Cg_yz8h*d,v
3.1 以太头
}&N WZ@H0x~|}Z;Bw2M
n;n#}$?)W(a 源MAC地址必须为虚拟MAC地址:00-00-5E-00-01-{VRID},VRID为虚拟路由器ID值,16进制格式,所以同一网段中最多有255个VRRP路由器;目的MAC为多播类型的MAC。-pB4i#| `^zjt
r j0|'u&G+W O!q 3.2 IP头参数dBH~%Q/MmOJ
l)x*~*k|5j&D
VRRP包的源地址是本机地址,目的地址必须为224.0.0.18,为一多播地址;IP协议号为112;IP包的TTL值必须为255。Nc%jbu4K
P0~!_z%l/^(J)q 3.3 VRRP协议数据格式
IX-G7Y"`8y([ 0 1 2 3
.kl6k.QaC 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 15N$qn(}0^ p
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
f!xa0_;B"w?%B;fkT |Version| Type | Virtual Rtr ID| Priority | Count IP Addrs|H/M%d@&]Cw8h
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+Tzn"DK2F.T m
| Auth Type | Adver Int | Checksum |
ZZoo X/h +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
ZR$R\+A/n S9_ | IP Address (1) |
g5KYqz&P(C"_9RrA +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
d&I5^Qgp1C | . |;{#LR"B3l8M(m&f
| . |WV}b X(X?e A7f
| . |
yu N#b9tO +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
}K*aq$yc@ | IP Address (n) |/xE7zS0H7Al }
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
YT'A8R5`P5K#g | Authentication Data (1) |
bX#GT!~FERj4_ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
rgv;\CBa | Authentication Data (2) |
5DJl U5py%[4a&{ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ v ?{Zc!o
c,Z%~._b6A{:{A 其中:
x+P0qc*A version:版本,4位,在RFC3768中定义为2;6@k}0v9@ R
Type:类型,4位,目前只定义一种类类型:通告数据,取值为1;
vJg-L8G1@&i Virtual Rtr ID:虚拟路由器ID,8位h$L9b0N;}LV)P
Priority:优先级,8位,具备冗余IP地址的设备的优先级为255;
.U~y9xBRP-Z1i:tZ Count IP Addrs:VRRP包中的IP地址数量,8位;
Mg8M)L-Q4V,n3d Auth Type:认证类型,8位,RFC3768中认证功能已经取消,此字段值定义0(不认证),为1,2只作为对老版本的兼容;
0~C.IQz&|M Adver Int:通告包的发送间隔时间,8位,单位是秒,缺省是1秒; E}.Y |\&X/F-Dl
Checksum:校验和,16位,校验数据范围只是VRRP数据,即从VRRP的版本字段开始的数据,不包括IP头;
*z%m.[&M,N*z9^ IP Address(es):和虚拟路由器相关的IP地址,数量由Count IP Addrs决定ZD+U7tA(R
Authentication Data:RFC3768中定义该字段只是为了和老版本兼容,必须置0。"mNo&B6n/u"v
,P-?(h0x*]'V
3.4 接收数据时的必须检查
J2x9IG+iq F6o#Y2o6S;uA
收到VRRP数据包时要进行以下验证,不满足的数据包将被丢弃:;i}5} t'K9aU}
- TTL必须为255;7\7Jl` |?{1G&M
- VRRP版本号必须为2;a0g"q!Q%XVV*D:a je
- 一个包中数据字段必须完整;#\V+V3S7lf9[so
- 校验和必须正确;
)V*fTSJY+M0D,@)P - 必须验证在接收的网卡上配置了VRID值,而且本地路由器不是路由IP地址的拥有者
(Vt vXy@qF(S - 必须验证VVRP认证类型和配置的一致;
9lN4_u m$R} g_ jXt
L"Eh'Kr0TS#o 4. 结论
&lv/u1g;|&Rq|r&A0L ;~ kF4g@$oh | ?{
VRRP实现了对路由器IP地址的冗余功能,防止了单点故障造成的网络失效,VRRP本身是热备形式的,但可以通过互相热备实现路由器的均衡处理,新版的VRRP较老版简化了认证处理,实际不再进行数据的认证,这是因为在实际应用中经常出现认证成为造成多个MASTER同时使用的异常情况。