第0層:前言
VRRP這樣的知識點並不是很密集,但是VRRP在各種場合卻經常出現,比如在端口安全這一小節當中,比如在LINUX的集群當中,會有應用來調用VRRP協議從而實現某種功能,在這里我們不講LINUX,所以不拿LINUX集群來舉例子。有一次我去我們兄弟公司那邊,他那連兩台防火牆SEC PATH 1030連接雙運營商用的也是用的VRRP。
VRRP還在端口安全那一章節當中的全局MAC地址漂移那小節當中出現過,VRRP有時會出現mac地址漂移現象,這個漂移是正常的,我們可以將其排除。還有VRRP的組與MSTP實例有點類似,track與靜態路由當中的BFD和NQA有點類似。
第一層:基礎
- 為什么要使用VRRP?
主要用來解決網關的冗余性
- VRRP的全稱是什么?
虛擬網關冗余協議
- 虛擬出的路由器是否擁有自己的IP和掩碼?
是的,虛擬出的路由器擁有自己的IP和掩碼
- 虛擬路由器的MAC地址的格式是?組播的MAC地址的前24位是多少來着?
0000-5e00-01XX、組播是01005e
- VRRP使用的組播IP是:
224.0.0.18
- 默認搶占是否打開?
是打開的
- 一個VRRP是否可以有多個VRRP虛擬地址?
是可以的
- 選舉優先級比大還是比小,如果優先級一樣比什么?
比大,比IP地址的大小
- 在什么情況下,設備發送的VRPP報文中的優先級為0?什么時候是255
當接口主動放棄VRRP配置的時候,這時候就會發現一個優先級等於0的通知報文,目的是告訴對方自己已經放棄。
255的最大的優先級,是當虛擬IP和接口的物理IP一樣時,物理接口會把自己的優先級提高到255,這時候流量肯定會這邊。
- 談一談VRRP的狀態機(這部分沒有詳細描寫,寫的比較粗暴)
我們在學習TCP/IP的三次握手的時候,學過TCP的有限狀態機,這個狀態機的翻譯是有些奇怪,其實這個有狀態機就是在不同狀態下的不同的名字而已。VRRP比較簡單,只有三種:init(初始狀態)、backup、master,我們要注意這三個狀態並不是VRRP在完全收斂完成后的BACKUP和MASTER,完成收斂的VRRP當中的MASTER和BACKUP是指的角色,面這里的master和backup只是狀態,並且這個狀態是不穩定的,所以我們不能理解錯誤。
初始狀態
那什么情況下會進入到初始狀態呢?很簡單,那就是初始的時候,當接口剛配置好VRRP時,這時候接口就處於初始狀態,只要配置了VRRP就是初始狀態,接口沒有上電也是初始狀態,正常情況下,在初始狀態呆一會就會進入到backup狀態(所謂的正常狀態就是優先級不是255),但就是有不正常的情況下,在初始狀態下,如果VRRP發現配置當中的虛擬IP與自己物理接口的IP是一樣的,那就立馬將自己的優先級拉滿,所謂的拉滿就是將自己的優先級調整成最優、最大,就是255,並且立馬由初始狀態轉換成master狀態。
backup狀態
看了BACKUP狀態之后,發現這個狀態與上面這個表情包有點像,BAKCUP狀態會暗中觀察master,這時候可能還沒選舉出master,但是它不管,它會為master生成個計時器,然后等着master發心跳報文,正常發送的話會刷新這個計時器,正常情況下,如果收到真正master發送的心跳報文,這時候就開始對比優先級,如果對方的優先級經自己小,那就搶占對方的master,如果對方比自己大,自己則按兵不同,暗中觀察。
- 關於免費arp
獲勝者master要向下游的交換機發送一個免費arp,用來刷新交換機的MAC地址表,這時候會出現一個正常的MAC漂移現象。
第二層:故障與適配
- 說一個VRRP面對常見的故障是如何應對的?
VRRP本身是一個非常成熟的協議,如果VRRP所在鏈路工作正常,流量全都會走某A端,A端這一鏈路沒有問題,但A端的上游如果接口或協議down掉,VRRP是無感知的,流量還是正常走A端,可是這時候如果走A端已經沒有任何的意義了。
其實說對這里,我們應該能回憶起路由基礎那一章節,在那一章節當中,靜態路由同樣存在類似的問題,但靜態路由是通過借助BFD或NQA這兩種協議來解決的,在VRRP當中也類似,VRRP雖然沒有借用任何的其它協議,但是VRRP本身帶有一個檢測工具,在配置的的時候我們可以通過track(跟蹤)上行鏈接的某個接口,如果上行鏈接的某個接口或協議down掉,那VRRP的A端優先級立馬會減去30(默認是100),這樣backup路由器會自動頂上。
其實這個track的原理也非常簡單,這一點又和zabbiz的監控項、觸發器、動作這三者是比較類似的,監控項在VRRP的track當中先用可能就是調用了ICMP不斷探測上行的IP,當請求超時的時候會觸發觸發器的當中的規定,然后執行動作,動作是什么呢?動作其實其實立馬將接口減去優先級,目的是將master的身份讓出來,讓流量走對端。
- 談一談VRRP本身存在的浪費問題和應對辦法?
其實第一次看到VRRP的配置有一些奇怪的,我們配置的主體並不是VRRP本身,而是VRRP的一個組,這種現象也很常見,我們可以聯想到在MSTP的時候我們配置的主體也並不是MSTP而是一個實例,有點類似於VRRP當中的一個組,為什么要這么做呢?
一個VRRP組里面只能一個MASTER路由器,那這樣的話,所有的流量都走master這一端,如果我們局域網內部有很多的vlan,所有的vlan都走A端,那B端就會一直閑着,這就是VRRP的浪費行為 ,針對這種浪費行為,我們可以通過組的方式將不同的vlan加入到不同的組里面,不組的組設置不同的master,這樣兩邊的鏈路互為主備,並且同時都在工作。
- 如果我們采用上面的辦法,將不同的vlan划入到不同VRRP組,然后不同的組設置不同的master,那與之對接的上游的設備應該如何配置呢?
如果上游是兩個路由器,我們就得在路由器的接口上配置子接口並且交換機與路由器連接的接口肯定 是配置trunk。
如果上游是兩個三層交換機,那三層交換機的接口也要配置成trunk,然后內部起vlanif接口,下游與之相連的接口肯定也是trunk接口,這一點非常好理解。
第三層:MSTP結合
當VRRP與MSTP結合的時候我們要流量一些問題,要么是VRRP順着MSTP, 要么是MSTP順着VRRP,這個順着是什么意思呢?就是VRRP的組與MSTP的實例要統一起來,因為無論是VRRR的組還是MSTP的實例都擁有改變流量走向的能力,當我們把A這個運行VRRP的三層交換機配置為master,vlan10-20的流量全都走這台交換機,那在vlan10-20所屬的mstp實例當中我們也要將A這個三層交換機配置成根橋 ,這樣的話,流量也要走A這一端,否則,你想想,肯定會出大問題。