- A+
虛擬路由器冗余協議[原理篇]VRRP詳解
為什么要使用VRRP技術我們知道,為了實現不同子網之間的設備通信,需要配置路由。目前常用的指定路由方法有兩種:
第一種是通過路由協議 :RIP、OSPF動態學習
第二種是通過靜態路由: 對終端PC機配置靜態路由。
這兩種路由各有各的優缺點:
第一種路由可以自動尋找最優路徑,鄰居路由也可以通過學習來獲得路由表,但是動態路由占用線路帶寬和CPU處理時間。
第二種路由是不需要CPU處理時間同樣也不占用線路帶寬,但是這個路由需要對終端的PC機進行配置網關來實現,工作量是比較大的。
對于以上的兩種路由在現在來說都是廣泛應用的。
我們現在只來分析靜態路由的缺點,因為VRRP技術就是使用在靜態路由上,而不是動態路由上。
對于靜態路由來說,對終端PC機配置默認網關。如果作為默認網關的路由器出現故障,所有使用該網關為下一跳的主機的通信是要中斷的。如下圖所示;
在上圖中,主機A—D都配置了一個默認的網關:10.1.1.1,網關路由的下一跳指向主機所在網段內的一個路由器RouterA,RouterA將報文發送到外網,但是如果現在RouterA壞掉了,那么所有的主機將無法與其他網段進行通信了。
為了解決以上的問題,我們可以加一個路由器RouterB,如下圖所示:
當RouterA壞掉時,所有的PC機將網關切換到RouterB上的網關。這樣就實現了路由器的備份。這個技術就是VRRP技術---虛擬路由器冗余協議
VRRP簡介(轉發機制)1. VRRP(Virtual Router Redundancy Protocol,虛擬路由器冗余協議)將可以承擔網關功能的路由器加入到備份組中,形成一臺虛擬路由器,由VRRP的選舉機制決定哪臺路由器承擔轉發任務,局域網內的主機只需將虛擬路由器配置為缺省網關
2. VRRP是一種容錯協議,在提高可靠性的同時,簡化了主機的配置。在具有多播或廣播能力的局域網(如以太網)中,借助VRRP 能在某臺設備出現故障時仍然提供高可靠的缺省鏈路,有效避免單一鏈路發生故障后網絡中斷的問題,而無需修改動態路由協議、路由發現協議等配置信息
3. VRRP協議的實現有VRRPv2和VRRPv3兩個版本,VRRPv2于IPv4,VRRPv3基 于IPv6
4. VRRP路由器: 所有運行VRRP協議的路由器就叫做VRRP路由器
5. VRRP備份組: 多臺路由器被分到一個組中,在這個組中選舉出一臺主路由器,其他作為備份路由器。平常時候都是主路由器一個工作,備份路由器空閑,當主路由器故障后,從多臺備份路由器中選舉出一臺替代故障的主路由器工作。這一組中的路由器構成了一個備份組。
如下圖所示: 有兩個路由器,兩個網關,從兩個路由器中選舉出一個路由器作為主路由器,其他的都是備份路由器,主路由器負責發轉發數據報,而備份路由器處于空閑狀態,當主路由器出現故障后,備份路由器會成為主路由器,代替主路由器實現轉發功能。
6. 虛擬路由器:虛擬路由器是VRRP備份組中所有路由器的集合,它是一個邏輯概念,并不是正真存在的。從備份組外面看備份組中的路由器,感覺組中的所有路由器就像一個 一樣,你可以理解為 在一個組中: 主路由器+所有備份路由器=虛擬路由器。虛擬路由器有一個虛擬的IP地址和MAC地址。如果虛擬IP和備份組中的某臺路由器的IP相同的話,那么這臺路由器稱為IP地址擁有者,并且作為備份組中的主路由器。
如下圖所示: RA、RB和RC都是VRRP路由器,他們構成了一個VRRP備份組,RA為主路由器,RB和RC為備份路由器,這三臺路由器從外界來看就像一臺一樣,這樣構成一個虛擬路由器Router Group,虛擬路由器有一個虛擬的IP地址為10.1.1.1(RA主路由器的IP)。RA是IP地址擁有者,也是主路由器。
7. 虛擬IP地址和MAC地址:VRRP組(備份組)中的虛擬路由器對外表現為唯一的虛擬MAC地址,地址格式為00-00-5E-00-01-【VRID】,VRID為VRRP組的編號,范圍是0~255.
上圖中,三臺路由器在一個組中,這個組可以起一個0~255之間的編號。
注意:
1.虛擬路由器具有IP地址。局域網內的主機僅需要知道這個虛擬路由器的IP地址,并將其設置為缺省路由的下一跳地址
2.虛擬路由器的 IP 地址可以是備份組所在網段中未被分配的IP 地址,也可以和備份組內的某個路由器的接口IP 地址相同
3.接口 IP 地址與虛擬IP 地址相同的路由器被稱為“IP 地址擁有者” 在同一個 VRRP 備份組中,只允許配置一個IP 地址擁有者
VRRP狀態
VRRP路由器在運行過程中有三種狀態:
1. Initialize狀態: 系統啟動后就進入Initialize,此狀態下路由器不對VRRP報文做任何處
處理,可以理解為初始化
2. Master狀態: 路由器會發送VRRP通告,發送免費ARP報文。
3. Backup狀態: 接受VRRP通告。
一般主路由器處于Master狀態,備份路由器處于Backup狀態。
VRRP選舉機制VRRP使用選舉機制來確定路由器的狀態,運行VRRP的一組路由器對外構成了一個虛擬路由器,其中一臺路由器處于Master狀態,其他處于Backup狀態。所以主路由器又叫做Master路由器,備份路由器又叫做Backup路由器。
優先級選舉:
1.VRRP組中IP擁有者。如果虛擬IP地址與VRRP組中的某臺VRRP路由器IP地址相同,則此路由器為IP地址擁有者,這臺路由器將被定位主路由器。
2.比較優先級。如果沒有IP地址擁有者,則比較路由器的優先級,優先級的范圍是0~255,大的作為主路由器
3.比較IP地址。在沒有Ip地址擁有者和優先級相同的情況下,IP地址大的作為主路由器。
如下圖所示: 虛擬IP為10.1.1.254,在VRRP組中沒有IP地址擁有者,則比較優先級,很明顯RB和RA的優先級要大于RC,則比較RA和RB的IP地址,RB的IP地址大。所以RB為組中的主路由器。
VRRP定時器
①VRRP通告報文時間間隔定時器
1> VRRP備份組中的Master路由器會定時發送VRRP通告報文,通知備份組內的
路由器自己工作正常
2> 用戶可以通過設置VRRP定時器來調整Master路由器發送VRRP 通告報文的
時間間隔
3> 如果Backup路由器在等待了3個間隔時間后,依然沒有收到VRRP 通告報文,則認為自己是Master路由器,并對外發送VRRP通告報文,重新進行Master路由器的選舉
②VRRP搶占延遲時間定時器
1> 為了避免備份組內的成員頻繁進行主備狀態轉換,讓Backup路由器有足夠的
時間搜集必要的信息(如路由信息),Backup 路由器接收到優先級低于本地優 先級的通告報文后,不會立即搶占成為Master
2> 而是等待一定時間——搶占延遲時間后,才會對外發送VRRP通告報文取代原 來的Master路由器
VRRP報文格式
VRRP只使用VRRP通告報文。
VRRP通告報文使用Ip組播數據包進行封裝,組播地址為223.0.0.18,IANA給其分配的協議號為112。
VRRP通告報文的TTL值必須是255,如果VRRP路由器接受到TTL值不為255的VRRP通告報文,必須丟棄。
VRRP組中的主路由器會定期發送通告報文,備份路由器接受,他們通過這種方式來交流選舉
VRRP工作過程總結:
1. 路由器使能VRRP 功能后,會根據優先級確定自己在備份組中的角色。優先級高的路由器成為Master 路由器,優先級低的成為Backup 路由器。Master 路由器定期發送VRRP
通告報文,通知備份組內的其他設備自己工作正常;Backup 路由器則啟動定時器等待通告報文的到來。
2. 在搶占方式下,當Backup 路由器收到VRRP 通告報文后,會將自己的優先級與通告報 文中的優先級進行比較。如果大于通告報文中的優先級,則成為Master 路由器;否則將保持Backup狀態
3. 在非搶占方式下,只要Master 路由器沒有出現故障,備份組中的路由器始終保持Master 或Backup 狀態,Backup 路由器即使隨后被配置了更高的優先級也不會成為Master 路由器
4. 如果Backup 路由器的定時器超時后仍未收到Master 路由器發送來的VRRP 通告報文,則認為Master 路由器已經無法正常工作,此時Backup 路由器會認為自己是Master 路由器,并對外發送VRRP 通告報文。備份組內的路由器根據優先級選舉出Master 路由 器,承擔報文的轉發功能
VRRP基本配置
配置VRRP組 要啟用VRRP,最基本的配置就是要創建VRRP組,并為VRRP組配置虛擬IP地址
Vrrp group-number ip ip-address [secondary]
group-number 為VRRP組的編號。即VRID 范圍1~255,
ip-address 虛擬IP地址。
Secondary 輔助IP地址
需要在主路由器和備份路由器上配置
配置VRRP優先級
如果希望指定某臺路由器稱為主路由器,可以手工調整其優先級
Vrrp group-number priority number
Group-number VRRP組號 VIRD
Priority 表示優先級
Number 表示優先級 范圍,0~255,默認為100,但是0被保留為特殊用途,255表示IP地址擁有者。
優先級的配置在沒有IP地址擁有者的情況下。想讓哪臺路由器成為主路由器就在哪臺路由器上配置
配置VRRP接口跟蹤
如上圖所示:RA為主路由器,RB為備份路由器,但是當RA上的接口S0發生故障時,RA依然從接口E0發送通告報文,聲明自己為主路由器,但是RA實際上已經不能進行轉發了。也就是說路由器網路中不能判定路由器接口是否發生了故障。
VRRP接口跟蹤機制就是檢測接口故障的一種機制。配置了接口跟蹤機制的路由器,當自己的接口發生故障時會將自己的路由器優先級降低,從而使自己從主路由器變為備份路由器,然后原來的備份路由器此時將成為主路由器。
Vrrp group-nunmber track interface [priority-decrement]
priority-decrement為降低的優先級數
注意: priority-decrement是降低了多少而不是降低到多少,比如priority-decrement為30,那么此路由器的優先級在原來基礎上降低30.
配置VRRP搶占模式
搶占模式: 指當原來的路由器從故障中回復并接入到網絡層后,配置了VRRP搶占模式的路由器將奪回原來屬于自己的角色(主路由器),如果沒有配置,回復之后將保持備份路由器的狀態。
推薦使用啟用搶占模式
vrrp group-number preempt {delay [Delay-time] }
Delay 取值范圍為1~255之間,如果不配置delay時間,那么其默認值為0秒。
delay-time 為延遲搶占的時間即從該路由器發現自己的優先級大于MASTER的優先級開始 經過delay-time這樣長的一段時間之后才允許搶占。
在主路由器中配置該命令
配置VRRP定時器
VRRP定時器可以修改通告報文的發送時間
vrrp group-number timers advertise vrrp-advertise-interval
adver_interval為設置定時器adver_timer的時間間隔。MASTER每隔這樣一個時間間隔,就會發送一個advertisement報文以通知組內其他路由器自己工作正常,
vrrp-advertise-interval的取值范圍為0~254。
在主路由器上配置
配置VRRP定時學習功能
配置此命令的路由器會學習發送通告報文時間,進而計算出失效間隔,否則默認3s,
這條命令對于上面的配置VRRP定時器,在主路由器中配置了發送時間間隔,那么在備份路由器上就需要配置定時學習功能來計算失效間隔,因為失效間隔是發送時間的3倍
vrrp group-number times learn
VRRP負載均衡在一組VRRP組中,主路由器承擔數據轉發任務的同時,備份路由器的鏈路將處于空閑狀態,這必然造成了帶寬資源的浪費。為了避免這種浪費,使用VRRP負載均衡。
VRRP負載均衡
是通過實現將路由器加入到多個VRRP組實現的,使VRRP路由器在不同的組中擔任不同的角色。
如下圖所示:RA為組35的主路由器,同時又是組36的備份路由器
RB為組36的主路由器,同時又是組35的備份路由器。
在正常狀態下,PC1、PC2走RA,PC3和PC4走RB,但是兩個路由器一旦出現故障,就將網關切換到備份路由器。RA和RB可以說是相輔相成的。
VRRP并不具備對流量進行監控的機制,它的負載均衡只是通過使用多個VRRP組來實現的。
網站建設、網站維護及優化、網站托管、微信平臺托管、電子商務開發、微信商城開發、局域網構架;電腦及周邊產品、辦公耗材批發;系統集成、安防監控、門禁系統研發安裝!
H3CVSR1000虛擬路由器
為了順應業界發展趨勢及應對虛擬化與云計算技術發展中面臨的問題,H3C公司基于成熟的Comware V7平臺推出新一代的網絡功能虛擬化產品,包括:
1、 H3C VSR 1000虛擬路由器產品,運行在標準服務器的虛擬機上,提供和物理路由器相同的功能和體驗,包括路由、防火墻、VPN、QOS、及配置管理等,幫助企業建立安全、統一、可擴展的混合云,同時精簡分支基礎設施。
2、 H3C SecPath VMSG VLB1000產品,提供完善的服務器負載均衡功能,支持豐富的負載均衡調度算法、健康檢查算法、會話保持算法,實現對4-7層服務負載分擔,以保證服務的響應速度和業務連續性。
3、 H3C SecPath VMSG VFW1000產品,采用ASPF(Application Specific Packet Filter)應用狀態檢測技術,能夠監控和保護虛擬環境的安全,以避免虛擬化環境與外部網絡遭受內外部威脅的侵害,為虛擬化數據中心和云計算網絡帶來全面的安全防護,幫助企業構建完善的數據中心和云計算網絡安全解決方案。
NSX虛擬網絡部署實例(四):虛擬路由器配置演示(下)
步驟演示
第一步:為虛擬路由器配置默認路由
1、進入VMware vCenter Server的”Networking & Security“ > ”NSX Edges“后,雙擊Logical Router ”Distributed-Router“后。
2、在”Manage“ > ”Routing“ > ”Global Configuration“中,點擊”Edit“。
3、在彈出窗口輸入默認網關地址192.168.10.1。
4、在彈出窗口選擇”Publish Changes“。當設置被發布后,配置將會馬上生效。
技術轉移成功案例簡介之一:重慶郵電大學可編程虛擬路由器教研網絡項目
技術轉移成功案例簡介
重慶郵電大學可編程虛擬路由器教研網絡項目
技術簡介
隨著新型網絡應用的不斷涌現,現有的互聯網架構在容量、移動性、安全性、擴展性等方面面臨著嚴峻的挑戰。為了從本質上應對這些挑戰,研究人員近年來提出了許多關于未來網絡體系架構及相關算法。在未來互聯網的研究過程中,試驗床的角色尤為關鍵,因為新的網絡體系架構和相關算法需要在靈活的試驗床上進行試驗才能得以驗證。而作為實驗床核心設備的可編程虛擬路由器平臺顯得尤為重要。
本項目為重郵提供了3臺虛擬化可編程虛擬路由器,用于搭建其內部科研教學網絡,為其在實驗教學的過程中提供了靈活的環境配置能力,提高了其在科研教學環境中實驗環境的供給能力,并提高了其資源的使用率。并且,依賴于我們平臺的靈活性和高效處理能力,在本平臺上,重郵專門設置了一門網絡教學課程,培養學生們的實際操作配置能力。
團隊介紹
【SDN/NFV核心設備與系統團隊】
該團隊依托江蘇省未來網絡創新研究院組建而成,與中科院計算所團隊實現無縫對接,主研未來網絡體系結構、核心設備與系統、網絡業務應用、無線網絡關鍵技術等,是研究院的重點研究方向。
基于SDN以及云的概念,通過軟硬件解耦、虛擬化、統一管理等手段,實現了計算資源、存儲資源、帶寬資源和內存資源的分配與隔離,為試驗床提供了網絡虛擬化和設備虛擬化的能力,也為第三方虛擬網絡應用提供了標準的、開放的接入平臺;同時,其開放了虛擬化路由器控制平面、數據平面和管理平面的編程接口,為試驗床提供了可自定義和可擴展的編程能力。團隊持續推出了相應的硬件產品以及云服務產品。
重郵可編程虛擬路由器教研網絡
NSX虛擬網絡部署實例(三):虛擬路由器配置演示(上)
NSX虛擬路由將路由功能分布到軟件程序中,設計為虛擬交換機提供路由功能,并且可以在虛擬網絡中提供動態路由功能。下面是實驗拓撲圖,虛擬機DB和虛擬機APP建在同一臺物理機192.168.250.51上,分別屬于不同物理IP網段。在沒有部署虛擬路由器的情況下,如果二臺虛擬機需要通信,必須通過三層設備NSX Edge才能互通(紅色箭頭為二臺虛擬機間通信線路)。下面將首先演示刪除虛擬機DB和虛擬機APP與NSX Edge的通信連接,然后將二臺虛擬機綁定到虛擬網絡。
ZStack虛擬路由(VirtualRouter)工作流程
Virtual Router(VR,虛擬路由器)是ZStack中一個特別的網絡組件。目前ZStack里大部分的網絡服務都是由VR提供的。 VR實際上是一個用于提供服務的特殊虛擬機, 它只在用戶虛擬機需要網絡服務的時候,由ZStack自動創建和管理。今天我們介紹一下ZStack網絡服務里VR的工作流程。 當了解該工作流程后,用戶可以更好的規劃云環境里的網絡服務。一旦出現VR創建失敗的情況,也可以更快的定位和解決問題。
首先來看一下上圖,這個網絡環境是ZStack教程里典型內外網分離的網絡模型,可用于EIP,Port Forwarding,Security Group,Load Balancer等。 在這個模型里,我們有兩臺物理機器,左邊一臺是計算節點,用于創建各種虛擬機;右邊一臺用于安裝ZStack管控節點(Management Node)。 計算節點有兩塊物理網卡eth0和eth1(如果用戶只有一個網卡eth0,可以通過vlan創建一個eth0.x的網卡替代eth1)。 計算節點的eth0和管控節點的網卡相連,這個網絡在ZStack里面被稱為管理網絡(Management-l2)。該網絡可以直接連接到公網(Internet或者公司內網)。 在該模型中,公有網絡(Public-l2)和Management-l2公用一個eth0。當然為了更好的網絡隔離,用戶也可以再增加一個獨立等網卡eth2, 用于Public-l2(由于管控節點控制計算節點不需要走公有網絡,通過網絡分離,也可以保護管控節點的安全)。 在我們的例子中,我們需要確保ZStack管控節點可以正確的連接計算節點的eth0(圖中的10.0.0.1/24網段,我們需要給網卡配置上正確的IP地址)。 這樣在添加計算節點的時候,ZStack就可以通過計算節點eth0上的IP地址部署對應的Agent。 由于Public-l2和Management-l2共享了一個L2,所以在配置網絡環境的時候,我們只需要添加Public-l2和Public-l3。 隨后在創建VR的時候,管控節點會和VR上的eth0進行通訊,VR的eth0的IP地址將會從用戶設置的Public-l3中的IP Range取出一個。 在本例子里面,Publice-l3的IP Range一定是在10.0.0.1/24中的某一段。用戶在設置Public-l3的IP Range的時候必須確保設置的IP地址段 不和已有網絡中的網絡設備沖突,Gateway和NetMask也需要設置正確。
注意:當用戶只使用了單臺物理機做ZStack部署,并且單臺物理機的eth0是從DHCP拿到的IP地址的時候, 如果把eth0作為Public-l2的網卡設備,需要特別關注ZStack給VR分配的IP地址不能和網絡中的其他IP沖突。 如果使用沒有連接任何網絡的ethX作為單節點的Public-l2的網絡設備,那么需要在添加L2 Network之前,給ethX設置上相應的IP地址,否則之后無法連通VR的eth0。
在我們的模型里,計算節點上還有一個eth1用于用戶VM的私有網絡。該eth1可以通過交換機和同一個Cluster內的其他計算節點的eth1相連。 當ZStack添加計算節點的時候,會通過Ansible把KVM Agent安裝到計算節點上。當ZStack添加Publice-L2和Private-L2的時候, 會在計算節點上給eth0和eth1創建對應的網橋br_eth0和br_eth1。根據網橋工作原理,ZStack還會把eth0和eth1上的IP地址轉移到br_eth0和br_eth1上。
添加完成所有的資源,用戶在創建第一個VM的時候,如果用戶VM使用了VR的任何一種網絡服務(DHCP、DNS、SNAT、Port Forwarding、EIP、Load Balancer), ZStack會自動創建一個VR VM。這也是創建第一個VM的時候速度比較慢的原因之一。
ZStack創建VR VM的過程如下:
ZStack 根據 VR 模版創建一個VR VM,該VM有兩個網卡,一個連接到br_eth0負責連接管控節點和公網(如果有獨立的Public-l2,會多創建一個網卡),另一個連接到br_eth1負責連接用戶VM。
ZStack 給VR指定兩個特定的IP地址并注入VR VM中。
VR 啟動的最后會調用一個初始化的腳本把注入的IP地址設置到eth0和eth1上面
ZStack管控程序在創建VR之后就會輪詢的用ssh嘗試連接VR
如果ssh連接成功,ZStack管控程序就會通過Ansible 安裝和部署VR的管控程序
VR Agent啟動后,ZStack管控程序就會通過HTTP post命令給VR,例如設置即將啟動的用戶VM的IP地址,DNS之類。
VR啟動成功后,ZStack就會創建用戶VM。用戶VM的eth0通過br_eth1的網橋連接到VR的eth1上,并且可以和未來的用戶VM通訊。 用戶VM訪問公網的時候,通過VR的SNAT服務中轉。用戶VM需要EIP、Port Forwarding還有Load Balancer等服務的時候,也都是在VR上進行對應的配置。
用戶在使用ZStack的時候,有時候會遇到VR創建失敗的情況。經過分析,其中大多數失敗原因都是因為網絡配置導致的。具體來看,VR啟動失敗的故障可能有:
創建VR VM失敗:找不到合適的Host。可能是沒有處于Connected狀態的Host,或者Host上的空閑資源(CPU,內存)不足以啟動VR。
VR 操作系統啟動失敗:虛擬化軟件錯誤或者硬盤連接錯誤(NFS網絡不穩定)
ZStack ssh VR 失敗:ZStack管控節點無法連接VR。通常原因有:IP地址配置不對;交換機沒有允許對應的IP連接;使用了特別的vlan,但是交換機沒有設置Truck模式。
ZStack Ansible部署VR Agent失敗:部署VR的時候可能會連接Internet下載VR需要的系統庫,但是這步在0.9之后就不需要從互聯網上下載系統庫了,所以通常不會出錯。
VR Agent 啟動失敗:可能是使用了不匹配的VR Image。例如ZStack 0.9 需要使用 VR 0.9版本的Image,如果用戶沒有更新VR Image的話,會導致HTTP 404的錯誤。
上述錯誤中,最常見的錯誤是3。大家可以對照解決。
在VR啟動后,用戶再啟動同一Private L3上的VM的時候ZStack通常不會再次創建VR(除非是使用了獨立的負載均衡功能)。 如果在用戶VM運行的過程中,發生了VR連接錯誤,它的影響會是什么?我們該如何恢復呢?下表例舉了在多計算節點和不同存儲類型的情況下如何恢復失聯VR的方法。VR失效原因VR失效影響恢復VR方法VR VM網絡失聯,但是virsh list還可以看到VR 是running狀態扁平網絡:外網通訊中斷、無法創建新VM、內網連接不影響;扁平網絡:無法創建新VM,網絡連接不影響從ZStack UI中的Virtual Router中delete VR VM, 再去Instance的界面重新創建一個用戶VMVR VM 所在Host掛掉,之后手動重啟Host非扁平網絡:外網通訊中斷、無法創建新VM;扁平網絡:無法創建新VM,網絡不影響從ZStack UI中的Virtual Router中再次Start VR VMVR VM 所在Host掛掉,之后Host無法重啟,使用網絡共享主存儲非扁平網絡:外網通訊中斷、無法創建新VM、內網不影響;扁平網絡:無法創建新VM,網絡連接不影響使用zstack-cli UpdateVmInstance 把VR VM的狀態改成 Stopped,再從ZStack UI中的Virtual Router中再次Start VR VMVR VM 所在Host掛掉,之后Host無法重啟,使用本地主存儲非扁平網絡:外網通訊中斷、無法創建新VM;扁平網絡:無法創建新VM,網絡連接不影響使用zstack-cli UpdateVmInstance 把VR VM的狀態改成 Stopped,從ZStack UI中的Virtual Router中delete VR VM,然后再去Instance的界面創建一個新的用戶VM
未來ZStack的VR還會提供HA的功能,當一個VR失效的時候,會自動啟動一個VR接管之前VR的網絡服務。 通常虛擬路由已經可以滿足大多數用戶正常的網絡要求,但是如果用戶對網絡性能有更高的要求,ZStack也可以集成商業虛擬機交換機,甚至是物理交換機的網絡服務。 用戶可以在創建L3網絡的時候,選擇不同網絡服務的提供方。
【技術干貨】重啟OpenstackJuno版本的虛擬路由
一、通過neutron router-list命令查看router04的路由器對應的UUID。
UUID為:18a9989c-112d-4ec0-b471-f71a6093428a
二、查看路由所處位置:
neutron l3-agent-list-hosting-router router04 或者router04_UUID。
三、顯示虛擬路由router04詳細信息:
neutron router-show router04或者router04_UUID。
這里我們會獲取這個虛擬路由的ID:
18a9989c-112d-4ec0-b471-f71a6093428a
四、連接到node-1服務器:
查看這個虛擬路由器的ip地址信息:
ip netns exec qrouter-18a9989c-112d-4ec0-b471-f71a6093428a ip a
五、關閉這個虛擬路由器:
neutron router-update18a9989c-112d-4ec0-b471-f71a6093428a
--admin_state_up False
六、開啟虛擬路由器:neutron router-update 18a9989c-112d-4ec0-b471-f71a6093428a
--admin_state_up True
七、重新查看這個虛擬路由器的ip地址信息:
ip netns exec qrouter-18a9989c-112d-4ec0-b471-f71a6093428a ip a
八、這個文章中的兩個關鍵命令是重啟虛擬路由器及其接口的語句:
neutron router-update 18a9989c-112d-4ec0-b471-f71a6093428a --admin_state_up False和
neutron router-update 18a9989c-112d-4ec0-b471-f71a6093428a --admin_state_up True
當一個項目中的虛擬路由器發現外網接口是DOWN或者不能正常工作的時候,可以通過這個命令實現重啟,使虛擬路由器的接口恢復正常的工作,項目中的虛擬機系統網絡正常。
虛擬路由器
編輯\電子義務維修基地 宣傳部 劉逸倫 楊瑞佳
虛擬路由器
Virtual Router
解釋:在軟、硬件層實現物理路由器的功能仿真,屬于一種邏輯設備。每個VR應該具有邏輯獨立的路由表和轉發表,這樣就使不同VPN間的地址空間可以重用,并保證了VPN內部路由和轉發的隔離性。
簡介: 虛擬路由器以虛求實最近,一些有關IP骨干網絡設備的新技術突破,為將來因特網新服務的實現鋪平了道路。虛擬路由器就是這樣一種新技術,它使一些新型因特網服務成為可能。通過這些新型服務,用戶將可以對網絡的性能、因特網地址和路由以及網絡安全等進行控制。以色列RND網絡公司是一家提供從局域網到廣域網解決方案的廠商,該公司最早提出了虛擬路由的概念。
在一個物理路由器上,可以形成多個邏輯上的虛擬路由器,每個虛擬路由器都單獨地運行各自的路由協議實例,并且都有自己專用的I/O端口、緩存、地址空間、路由表和網絡管理軟件。虛擬骨干路由器,可以為客戶提供成本低廉的專用骨干網控制和安全管理功能。控制和管理虛擬路由設備的軟件是采用模塊化設計的,如果這些軟件運行在真正的、多進程的操作系統上(如:UNIX),那么它還支持多實例,也就是說它可以同時支持多個虛擬路由器。每個虛擬路由器的進程與其它路由器的進程都是相互分開的,其使用的內存也受到操作系統的保護,從而保證了數據的高度安全性;同時,還消除了由于軟件模塊的不完善所造成的與其它虛擬路由器之間的數據碰撞的可能性。
許多載波級路由器與高速的SONET/SDH網絡連接進行分組轉發時,都是靠硬件來實現線速性能的。而對于使用虛擬路由功能的系統而言,這些硬件功能都可以被邏輯細分;還可以靈活地將其配置給某一個專用的虛擬路由器。具有虛擬路由功能的軟件模塊,可以完全控制數據分組發送和接收的物理端口及交換路徑。虛擬路由器的分組緩存和交換表的大小,受到其所占用資源大小的限制,之所以這樣做,是為了保證虛擬路由器之間不會相互影響。虛擬路由技術使得每個虛擬路由器各自單獨地執行路由協議軟件實例(如:OSPF,BGP)和網絡管理軟件的實例(如:SNMP或命令行),因此,用戶對每個虛擬路由器都可以獨立地進行監視和管理。獨立運行網絡協議實例,使得每個虛擬路由器都擁有一個完全獨立的IP地址域,相互之間不會產生任何沖突。每個虛擬路由器都可以作為一個單獨運行的實體來進行管理。其提供的基于用戶的安全模塊,可以保證屬于某個虛擬路由器的所有網絡管理功能和信息都只對具有權限的用戶開放。另外,每個虛擬路由器的分組轉發路徑也都是相互獨立的,這使得管理員可以分別為每個虛擬路由器單獨配置性能。
通過虛擬路由器,大的通信突發數據流只會對本路由器產生影響,而不會影響到其它的路由器,從而為終端用戶能夠得到穩定的網絡性能提供了保障。此外,虛擬路由器同時還提供獨立的策略和IETFDS(Internet Engineering Task Force Differentiated Service)能力,使虛擬路由器可以為終端用戶提供完全的客戶化服務。通過給虛擬路由器的I/O端口進行配置,可以對接收的分組進行計數,這樣就能夠保證數據量不會超越預先確定的協議;同時虛擬路由器還可以根據數據分組的服務等級不同,將其數據分組分配到不同的隊列中,以實現不同的服務質量。
目前,虛擬路由器已經得到了實際的應用。Nortel的Accelar1000路由交換機就使用虛擬路由端口在VLANs之間路由,虛擬路由器端口能夠配置每個VLAN,在IP子網或VLANs之間實現路由。Accelar1000路由交換機支持虛擬路由器端口,且不降低其性能。
如果你覺得我們的推送還不錯,歡迎您將我們推薦給他人,歡迎您將此圖文消息轉發到朋友圈,也可以將我們的公眾號推薦給您的親人或朋友
日益重要的虛擬路由器商品PC可滿足基本需求
現在,“虛擬”事物的概念已經被大家所熟悉。例如最常見的虛擬機,在用戶看來它們就像 是真正的計算機,它具有實際的硬盤驅動器和內存。然而,在現實中,這些元素并沒有真實存在。只是,虛擬操作系統環境(通常是指VMware vSphere、Citrix Xen Server或者微軟Hyper-V)向我們呈現了這些元素。
虛擬路由器也是如此。虛擬路由器具有物理路由器的所有組成部分,并且,它們的工作方式也相同。但是,與虛擬機一樣,虛擬路由器并不是具有物理連接且真實存在的設備。
為了理解虛擬路由器,重要的是要了解物理路由器的元素。在其最簡單的形式中,路由器通過協議來連接兩個局域網,該協議會部署和了解子網絡,并在這些子網絡之間進行路由,即可路由的協議。此外,路由器還會通過廣域網(WAN)連接不同地理位置的子網絡。
因此,虛擬路由器需要三個組件:LAN接口、WAN接口和路由代碼—用于確定哪些流量需要穿過WAN以及如何相應地對其進行封裝。
在20世紀90年代,當WAN路由第一次成為連接不同地理位置的企業LAN的可行方法時,路由世界還處于“狂野西部”階段。我們可能會認為目前的網絡很復雜,但其實就基本路由而言,這已經相當簡單,互聯網和路由器都是通過IP運行。
連接位置不像第一代路由器那么簡單
然 而,對于早期路由器,并沒有那么簡單。很多這些路由器通過私有WAN(而不是互聯網)連接,并且,可能運行很多數量的可路由協議,例如DECNet、 Novell的IPX,甚至還有Banyan VINES。(例如當時,思科的營銷團隊就聲稱他們的產品通過十幾個協議進行路由)。因此,這可能需要非常高的處理能力和內存來處理這些協議,特別是相對 于當時的計算機能力。
WAN連接也不簡單。廣域接口通常是高級別數據控制或者幀中繼,這些需要專門的硬件接口,而只有專用路由器中才有這種接口。
而現在,我們的世界已經變得非常簡單。我們不僅只使用單個協議來路由,而且CPU已經顯著提升,內存也是如此--即使是在標準的商用服務器。
限制,WAN接口(通過有線供應商和DSL提供商部署)已經成為又一個標準以太網連接。并且,隨著10千兆以太網卡逐漸普及—甚至在現成的服務器中,為處理偶爾超過100 Mbps的互聯網速度提供帶寬并不是挑戰。
商品PC可很好地滿足基本路由需求
這意味著什么?現在具有兩個以太網連接的商品PC的性能水平已經完全可以滿足基本路由器要求(對于簡單的分支機構級路由器)。并且,這個商品PC不需要是真實的PC—它可以被虛擬化。
在虛擬化成為主流技術之前,Vyatta公司(現在屬于Brocade)就構建了可在標準戴爾PC運行的企業級路由器。而最近,思科、惠普等供應商也在其平 臺部署了代碼,以允許在單臺物理服務器生成多個獨立的路由器。這意味著,虛擬化方法將在多租戶環境特別有吸引力,因為每個租戶都可以擁有專門的路由器,盡 管是虛擬路由器。
(來源:TechTarget中國)
漫談虛擬路由方案 前言——關于虛擬路由
SDN,抑或是OpenFlow,能否為路由市場開辟一個新的時代?以OpenvSwitch為代表的開源軟件交換機,已經推動SDN界發展了一段路程,但是,開源的、基于軟件的路由器或路由方案卻顯得很少。為此,本文介紹了三種比較成體系的虛擬路由方案,并對其中一款做一個架構簡述。本文所介紹的虛擬路由方案主要是:OpenContrail,Vyatta,RouteFlow。OpenContrail
OpenContrail包含OpenContrail控制器和OpenContrail虛擬路由。
OpenContrail控制器是一個邏輯上集中但是物理上分布的SDN控制器,為虛擬網絡提供管理,控制和分析功能。
OpenContrail vRouter是一個分布式的路由服務,運行在虛擬服務器的hypervisor上,將網絡從一個數據中心的網絡的物理路由器和交換機擴展成一個虛擬的基于虛擬服務器主機之間通訊的overlay網絡。
在OpenContrail中,虛擬路由器和hypervisor緊密結合,借助MPLS over GRE/UDP或VXLAN實現Overlay網絡。penContrail的跨數據中心虛擬化是借助MPLS L3 VPN或者EVPN實現的,這種技術比較成熟可靠。OpenContrail虛擬路由器從概念上和現在vSwitch非常接近,但是它提供路由以及更高層的服務(使用vRouter替代vSwitch)。OpenContrail架構:
可以看到其中包含的分布式的控制器和vRouter。OpenContrail提供了完善的東西南北向接口。北向接口提供的REST接口能被供應商使用,或是集成至OpenStack之類的系統(ONOS也提供了類似功能的北向接口);南向接口主要是用于虛擬或物理網絡環境的通訊;東西向接口可以與其他控制器通訊。在OpenContrail中使用了多種協議,如BGP、XMPP、Netconf等,在圖中可以看到它們的用途。
實際上,控制器包含三個組件,可以部署在不同物理節點上的組件:配置節點、控制節點和分析節點。
配置節點:作為中介,在上層應用和下層基礎間提供轉換,即利用底層基礎實現上層應用的功能。
控制節點:主要負責網絡的信息同步,確保環境中的信息一致。
分析節點:提供的功能有點類似于統計分析,把收集回來的系統數據進行分析并進行展示。關于虛擬路由功能:
虛擬路由器是一個用戶空間進程,在Linux中運行,是一個本地的,輕量控制平面。并且每個虛擬路由器都會連接至少兩個控制節點,提供了路由的冗余。
虛擬路由器主要依靠XMPP接受來自控制節點上的配置狀態,并實現這些配置狀態,同時兼顧事件和日志等匯報工作。關于XMPP:
XMPP基于XML,原叫Jabber,OpenContrail系統使用XMPP作為一個計算節點和控制節點之間的通用信息總線。
RouteFlow:
RouteFlow是由巴西CPQD公司開發的一套虛擬IP路由服務。目前的網絡設備大多是專有軟件運行在專有硬件上,價格高昂,難以被編程,一定程度上限制了創新。RouteFlow的開發動機就是在開源路由工具的基礎上,結合開放api,在商用硬件上實現一個性能良好的,可定制的開放路由方案。
與傳統的路由架構比較:
現有方案:
Routeflow方案:
可以看到,控制邏輯位于控制器,分離數據平面與控制平面。這樣一來,硬件架構就可以進一步簡化。系統組成:
架構圖:
一套完整的Routeflow包含以下幾個主要組件:RF-Controller,RF-Server,RF-Slave
系統的關鍵特性:
1.分離的數據平面與控制平面
2.松耦合的架構
3.不變的路由協議堆棧
4.容易擴展為多控制器
5.支持多種虛擬化技術
6.支持多種交換機RF-Controller:
這是一個基于Openflow控制器的應用,為Openflow API扮演一個proxy的角色,同時與Openflow datapath相互作用,與RF-Server協同工作,接收flow相關的命令并通過OVS為VM傳送數據。RF-Server:
它作為Routeflow的核心,它負責的工作主要有管理VM,配置虛擬環境(virtual environment),接收來自RF-Controller的事件(如packet-in),使VM與Openflow交換機關聯起來決定VM的數據包的傳輸,請求在Openflow交換機中安裝或修改一個flow。RF-Slave:
它作為daemon在基于Linux的VM中運行,還負責把VM注冊到RF-server并配置VM,通過Linux netlink事件監聽ARP與IP表的更新,把路由更新(routing updates)轉換為flow規則,把ARP entry轉換為flow規則,它還可以發送flow updates至RF-Server。
它主要配置接口,啟用、關閉路由引擎,執行對接口配置和ARP或路由表的清理。Routeflow所依賴的一些軟件:Quagga:
Quagga是由一個日本開發團隊編寫的一個以GNU版權方式發布的軟件。該項目自1996年運作至今。
借助Quagga可以實現一臺功能完備的路由器。Quagga能夠同時支持RIPv1、RIPv2、RIPng、OSPFv2、OSPFv3、BGP-4和 BGP-4+等諸多TCP/IP協議。
Quagga的特性主要有:
模塊化設計:它使用了模塊化的架構,一種協議對應一個模塊。
運行速度快:基于模塊化的架構,速度很快。
可靠性高:可以在工作期間進行故障診斷和修復。
支持Ipv6:Quagga不僅支持Ipv4,還支持Ipv6。
容易上手:Quagga的配置方式和Cisco的IOS幾乎完全相同。
在Routeflow中提供基本的路由功能。
軟件官網:http://www.nongnu.org/quagga/MongoDB:
MongoDB是一個基于分布式文件存儲的數據庫。由C++語言編寫。旨在為WEB應用提供可擴展的高性能數據存儲解決方案。
特點:高性能、易部署、易使用,存儲數據非常方便。
主要功能特性有:
面向集合存儲
無模式
動態查詢
支持索引
支持復制和故障恢復
使用BSON格式儲存數據
能自動處理碎片,以支持云計算層次的擴展性
支持Python,Java等多種語言的綁定
在Routeflow中主要為RF-Serve儲存數據。
軟件官網:https://www.mongodb.org/Vyatta:
Vyatta公司在2002年提供了開源版本的虛擬路由,后來博科收購了Vyatta虛擬路由,后來更是推出了Vyatta控制器,野心不小,目的是能控制所有博科的硬件設備和符合ODL標準的相關硬件。目前Vyatta的相關資料并不多,但是博科提供了Vyatta 5400的60天免費試用。
試用鏈接:http://www1.brocade.com/forms/jsp/vyatta-download/index.jsp?src=WS&lsd=Banner&lst=BRCD&cn=SDN-GDG-14Q1-EVAL-WS-Vyatta-Download&gcn=&ggeo=
但是,出現了一個社區版fork,叫VyOS,可以參考官網:http://vyos.net/wiki/Main_Page
VyOS支持的平臺從KVM、XEN、VMware、Hyper-V到VirtualBox。支持IPv4和IPv6 BGP,OSPFv2及OSPFv3(尚不完全),RIP等,關于詳細的特性信息可以看這里:http://vyos.net/wiki/Feature_list結語:
目前市面上可供選擇的虛擬路由方案并不多,只有像Juniper收購的OpenContrail,Brocade的Vyatta。所屬Juniper的OpenContrail,的確在整體上都是非常給力的,但是Juniper似乎沒有好好地維護開源版的文檔及軟件源,部署有相當大的困難。
Brocade的Vyatta只有60天的試用,始終不是最好的研究對象,但生產環境可以考慮下。也可以考慮使用下由社區主導的VyOS。只剩CPQD的RouteFlow比較適合研究,但是要應用到生產環境就得花點功夫,文檔并不多。
在如今的虛擬路由市場,競爭并不健康,在傳統網絡硬件供應商的割據下,并不利于學術研究。本文在介紹其他兩種方案的同時對Routeflow的架構做了大體的介紹,希望本文能對各位研究者有所幫助。







