前文我們瞭解了鏈路高可用技術鏈路聚合相關話題,回顧請參考https://www.cnblogs.com/qiuhom-1874/p/16279078.html;今天我們來聊一聊另一種高可用技術,閘道器高可用vrrp相關話題;
技術背景
提示:通常一個網段內只有一個閘道器,當然一旦閘道器出現故障,對應網段內的主機將無法正常和其他網段主機通訊,這也意味著該網段就被孤立了;那該怎麼辦呢?我們可以不可以提供多臺閘道器呢?
提示:我們知道一個閘道器就對應一個ip地址,多臺閘道器就意味著有多個ip地址且彼此都是不同的ip地址;雖然多臺閘道器可以有冗餘備份的效果,但是如果預設閘道器宕機,誰來通知使用者,或者誰來更改使用者側主機的閘道器地址呢?很顯然需要某種協同機制,比如閘道器1是預設閘道器,當預設閘道器宕機以後,對應備份閘道器能夠知道,並且能夠接管預設閘道器的工作的同時,讓使用者無所感知;
VRRP:Virtual Router Redundancy Protocol,虛擬路由器冗餘協定,一般路由器在網路中就是充當閘道器的作用,所以該協定也叫虛擬閘道器冗餘協定;
提示:vrrp它能夠將多臺物理閘道器加入到一個裝置組中,形成一臺虛擬閘道器,承擔物理閘道器的功能;只要裝置組中有任意一臺物理閘道器能夠正常工作,虛擬閘道器就能正常工作;該協定有兩個版本,v2和v3;v2基於IPV4,v3基於IPV6;
提示:當鏈路或裝置發生故障,對應備份閘道器將充當虛擬閘道器,持續為使用者提供閘道器服務;這也提高了整網段的可靠性;
VRRP備份組:VRRP Group
所謂備份組就是將區域網內的一組閘道器劃分在一起;該備份組裡的裝置由一個主裝置(master)和多個備份裝置(backup)組成,功能上相當於一臺虛擬閘道器;虛擬閘道器有一個虛擬ip地址,作為該虛擬閘道器的ip地址,也是使用者端指定的ip地址;
提示:有了虛擬閘道器,對應使用者側就不能設定物理閘道器地址,因為虛擬ip是可以在兩個物理裝置間相互移動,也就是說誰是master,對應誰就擁有虛擬ip的身份(能響應對應虛擬ip的arp請求和資料轉發的能力);
提示:正常情況下,如果一個裝置組中有master存活,對應backup會一直監聽master的心跳,如果在一定時間段裡,backup沒有收到master的心跳,對應backup就會認為master不存在,它就會主動承擔起master的角色,向外傳送心跳,表示它是master,同時也告訴別人master還活著;正因為是這樣的屬性,當master宕機以後,對應backup就能通過監聽心跳來判斷對應master是否存活,一旦master宕機,backup就會立刻轉變為master角色,為使用者提供閘道器服務;
VRRP選舉規則
VRRP選舉規則是根據各閘道器傳送到vrrp報文中的優先順序確定,優先順序最大者稱為master,其他閘道器稱為backup:master主要負責應答對虛擬ip地址的ARP請求,轉發發往虛擬閘道器的封包;backup主要負責監聽master的心跳,在master故障以後,接替master的工作;vrrp的優先順序範圍是0-255,預設是100,數位越大越優先;其中優先順序255保留給ip地址擁有者使用,所謂ip地址擁有者是指物理閘道器的ip地址和虛擬閘道器的ip地址相同,此時我們手動設定的優先順序就不生效了,它會自動將對應ip地址擁有者的優先順序改成255;優先順序0用於觸發backup立即成為master,如主動退出VRRP組,對應傳送的優先順序就是0;如果優先順序一樣,就比較ip地址,ip地址越大越優先;搶佔規則,預設是開啟;這裡需要注意搶佔只會比較優先順序,如果優先順序一樣,對應不會觸發vrrp master重新選舉;只有在裝置組中收到了更高優先順序的裝置傳送的vrrp報文後,對應才會觸發master的重新選舉;
提示:預設先比較優先順序,優先順序大者成為master,其他裝置成為backup;如果優先順序一樣,則比較ip地址,ip地址大者成為master;
提示:如果物理閘道器的ip地址和虛擬閘道器的ip地址一樣,這對應物理閘道器就是ip地址擁有者,成為master;同時對應裝置的優先順序會自動變為255;
虛擬MAC規則
提示:虛擬mac規則我們只需要知道後面兩個16位元數位表示的是vrrp的組編號,範圍是0-255;前面的00-00-5e是IANA分配的,00-01表示vrrp協定;
VRRP工作流程
提示:預設裝置組裡的裝置都會是backup的狀態傳送vrrp報文,選舉master;如果裝置組裡只有一臺裝置,那麼等待計時器超時以後,對應狀態會從backup轉變為master;如果有多臺裝置,首先會根據優先順序選舉出master,如果優先順序一樣則比較ip地址,ip地址大者成為master;
提示:根據優先順序比較,如果對應裝置優先順序高,對應裝置就會立刻成為master,其他裝置將成為backup,成為master的裝置會週期性傳送vrrp報文,意思就是告訴backup master還活著;
提示:成為master的裝置首先會傳送一個免費ARP,告訴交換機虛擬mac地址;對應交換機收到免費ARP以後,對應就會在mac地址表項中記錄對應虛擬mac對應的埠;後續交換機收到虛擬mac封裝的包,會自動轉發到對應的介面,傳送給master;
提示:當pc請求虛擬閘道器的mac時,首先pc會傳送arp廣播,交換機收到arp廣播以後,會泛洪所有埠,但是隻有master會應答該arp請求;
提示:當pc收到虛擬閘道器mac以後,就會封裝目標mac為虛擬閘道器mac進行封包傳送,當交換機收到對應報文以後,會根據自己記錄的mac地址表項,從對應介面轉發出去給master;後續master收到對應資料包文後,就會進行處理(因為master擁有虛擬mac和虛擬ip的使用權,即它可以解封裝虛擬mac的包和虛擬ip的包,同時重新封裝,簡單講使用者的報文到達master後會進行解封裝、和再次封裝的過程,當然回來的包也會經歷這個過程);
提示:當master發生故障以後,對應backup會等待一段時間,如果在這個等待的時間裡沒有收到master的心跳,此時backup就會認為對應master應該是故障了,backup就會切換成master,接替master繼續工作;
提示:當然當backup成為master以後,對應也會向交換機傳送免費arp告訴交換機更新自己的mac地址表項;對應交換機收到免費ARP報文以後,就會記錄虛擬mac地址和收到免費ARP的介面做對應;
提示:當pc再次向交換機傳送虛擬mac地址封裝的包後,對應交換機就會根據自己的mac地址表項記錄的介面,轉發pc的封包;
提示:如果master恢復以後,對應沒有設定搶佔,即便自己的優先順序高,對應master角色也不會恢復;只有開啟了搶佔模式以後,對應vrrp裝置組中有更高優先順序的裝置傳送vrrp報文,才會觸發master的重新選舉;
VRRP定時器
VRRP定時器有兩種,一種是通告間隔定時器,一種是搶佔延時定時器;所謂通告間隔定時器就是指master每隔多久傳送一次心跳;預設是1秒一次;正常情況下master會定時傳送VRRP通告報文,告訴backup自己還活著;如果backup在等待3個間隔時間後,依然沒有收到master的通告報文,則認為master故障,此時backup會將狀態切換成master,並對外傳送vrrp通告報文,重新進行master的選舉;
搶佔延時定時器是指開啟了搶佔模式,對應master故障後,又恢復了,是隔多久將狀態切換成master;預設是0秒,即只要master恢復就立刻搶佔;為了避免頻繁的主備切換,讓backup有足夠的時間收集必要的資訊,backup接收到優先順序更低的vrrp通告報文後,不會立即搶佔成為master,而是等待一定時間才會對外傳送vrrp通告報文取代原來的master;
VRRP報文格式
提示:version表示版本,有v2和v3,v2基於ipv4,v3基於ipv6;其中type表示對應的型別;virtual Rtr ID表示vrrp 組的編號;priority表示對應裝置的優先順序;count ip addrs表示虛擬ip地址的數量;auth type表示認證型別;adver Int表示通告間隔時長;後面的就是校驗和,ip地址,認證等資訊;vrrp是屬於網路稱協定,其協定號為112,組播地址為224.0.0.18;各網路協定層次劃分可以參考https://images.cnblogs.com/cnblogs_com/qiuhom-1874/1989985/o_220529161814_Layer%20division%20of%20network%20protocols.jpg;
VRRP狀態機制
提示:VRRP的狀態有三種,分別是backup、master、Initialize;其中預設最開始時都會是backup的狀態,當收到優先順序大於本地優先順序的裝置傳送的vrrp報文後,或者收到優先順序和本地優先順序一樣,且ip地址大於本地介面ip地址的報文後,對應裝置會處於backup狀態;當在3個週期沒有收到master傳送的心跳,或者收到優先順序小於本地優先順序的報文,且開啟了搶佔的情況下,對應裝置會從backup狀態切換至master狀態;如果是ip地址擁有者,最開始它不是backup狀態而是Initialize狀態,然後直接轉變為master狀態;如果master/backup對應介面down掉以後都會回到Initialize狀態;當然如果原來是backup,由於介面down掉變為Initialize狀態,在介面恢復後還是會恢復成backup(master存活的情況下,如果master down,會觸發新的master選舉,會從backup轉變為master)
VRRP設計方案注意事項
提示:我們知道在二層網路里,如果開啟了STP,那麼所有流量都會先到根橋,然後從根橋網其他地方轉發;如果master和stp根橋不在同一裝置,則會出現次優路徑;所以為了避免次優路徑,對應vrrp裡的master和stp裡的root應該保持一致,即都在同一裝置;
VRRP應用
提示:主備備份是最常見的VRRP應用,即在一個裝置組裡,一個master工作多個backup看著master工作,監聽master的心跳;很顯然這種是很浪費裝置,同時master的壓力也是比較大;
提示:負載分擔是合理的規劃,將多個裝置組在同一臺裝置上設定不同的角色,比如組1裡R1為master,R2和R3為backup;在組2裡R2為master,R1和R3為backup;在組3裡R3為master,R1和R2為backup;這樣一來使得每個路由器都得到了應用,同時多個路由器兩兩備份,其中一臺或兩臺宕機都不會影響業務的存取;
VRRP跟蹤
提示:所謂vrrp跟蹤是指非vrrp介面宕掉以後,對應vrrp介面能夠感知;如上圖所示如E0口是master介面,如果G1口down掉以後,對應vrrp並不會感知,對應pc的資料還是會轉發至RA的E0口;這樣一來對應pc的資料就會繞路;所以為了避免因非vrrp介面down造成次優路徑;我們可以在master上vrrp介面上繫結一個介面,如果一旦該介面down掉,對應vrrp的優先順序自動降低至能夠觸發master選舉,讓backup成為master;
提示:如上,master上游鏈路故障後,自動將優先順序降低30,使得master的優先順序小於backup即可,對應backup 收到小於自己本地優先順序的vrrp報文,它會自動切換成master,從而避免次優路徑的發生;這裡需要master 降低後的優先順序要小於backup才行,如果降低後的優先順序大於backup,對應不會觸發master選舉,沒有意義;
提示:除了master優先順序降低後要小於backup的優先順序之外,對應backup要開啟搶佔才行,如果backup沒有開啟搶佔,對應即便收到優先順序小於自己本地優先順序的vrrp報文,對應backup也不會成為master;所以使用vrrp追蹤必須滿足兩點,master降低後的優先順序要小於backup,其次是backup上必須開啟搶佔;