【網絡】葉脊(Spine-Leaf)網絡拓撲下全三層網絡設計與實踐(六) - 虛擬機路由方案及配置

6. 虛擬機路由方案及配置

在虛擬化的數據中心中,虛擬機承載着關鍵業務,其相互之間的通信必不可少,虛擬機的網卡橋接在宿主機的網橋上,以宿主機的IP地址作爲默認網關,同一物理機上的虛擬機之間的通信,直接通過宿主機網橋可二層互通,不同宿主機上的虛擬機通信經過三層轉發互通。

6.1 本節目標

  1. 理解VM直接的通信過程;
  2. 學習在leaf交換機上配置VM的路由;
  3. 學習在VM及其宿主機上配置VM的路由;

6.2 拓撲結構

本節在上一節的基礎上增加了3個VM:ks0,ks1,ks2. 其宿主關係和網絡結構如下圖所示。

6.3 測試資源創建

  1. 按上圖所示,在三臺物理機上創建3個VM(ks0,ks1,ks2);
  2. 將VM的網卡橋接到前面章節創建的宿主機網橋br0上。

6.4 路由方案及配置

以ks1和ks2之間通信爲例,ks2發往ks1的包,源地址爲ks2的IP,目標地址爲ks1的IP,流量路徑如下:

  1. 在ks2上查詢路由表,將包發往宿主機devopsr01n01;
  2. devopsr01n01收到包後,查詢路由表,將包發往leaf交換機;
  3. leaf交換機收到包後,查詢路由表,發往devopsr01n02;
  4. devopsr01n02收到包後,查詢路由表,將包發往ks1;

如果是ks2和ks0之間的通信,則還需經過spine,在流量途徑的所有設備上,都必須要有目標IP地址的路由,才能夠成功建立通信,這些設備包含:

  1. VM
  2. 宿主機
  3. leaf
  4. spine

由於spine上的路由條目全部通過BGP協議從leaf學習而來,因此不需要在spine上進行額外配置,而上述其餘設備上,則都需要對VM的路由進行配置,接下來講解具體的配置方法,大致步驟爲:

  1. 物理機配置網橋,將虛擬機橋接到網橋上;
  2. 物理機開啓內核轉發功能;
  3. 物理機配置路由表,以等價多路徑方式將默認路由指向兩個物理網口;
  4. 交換機上配置虛擬機的路由條目;

6.4.1 VM網絡規劃與路由配置

  1. 按下表爲3個VM分配ip地址:

    VM hostname VM IP 宿主機IP
    ks0 10.10.20.24 10.10.10.24
    ks1 10.10.20.22 10.10.10.22
    ks2 10.10.20.21 10.10.10.21
  2. 根據上面的ip地址爲三個VM配置ip地址,以ks2爲例,ks0,ks0按例配置即可,從VM上發出的所有流量都發送給宿主機進行處理,因此將網關配置爲宿主機IP即可。

    # 將/etc/network/interfaces文件內容替換爲如下
    auto lo
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet static
      address 10.10.20.21                   # ks1
      netmask 255.255.255.255		# 32位掩碼
      gateway 10.10.10.21			# 網關爲宿主機IP
  3. 在三個VM上重啓networking服務

    service networking restart
  4. 查看VM上的路由表

    root@ks2:~# ip route
    default via 10.10.10.21 dev eth0 onlink

6.4.2 宿主機路由配置

VM的網卡橋接在宿主機的網橋br0上,因此將目標地址爲VM的包發往br0即可,以ks2的宿主機devopsr01n01爲例,注意,需要在宿主機上開啓內核轉發

sysctl -w net.ipv4.ip_forward=1
ip route replace 10.10.20.21 dev br0

查看宿主機的路由條目如下:

root@devopsr01n01:~# ip route
default  src 10.10.10.21 
	nexthop via 169.254.0.1  dev eth1 weight 1
	nexthop via 169.254.1.1  dev eth0 weight 1
10.10.20.21 dev br0  scope link 
169.254.0.0/30 dev eth1  proto kernel  scope link  src 169.254.0.2 
169.254.1.0/30 dev eth0  proto kernel  scope link  src 169.254.1.2 

請按例對其他兩個VM的宿主機配置路由。

6.4.3 在leaf上配置VM的路由

在leaf上配置目標地址爲VM的路由下一跳爲VM的宿主機業務ip, 以在leaf01上配置ks1的路由爲例

ip route 10.10.20.22/32 10.10.10.22

與前面的章節中配置物理機一樣,對於VM的路由,同樣有必要判斷路由的有效性,通過上文的分析及拓撲圖,可以看出,僅當leaf與宿主機相連的鏈路up時,流量可以直接從leaf發往宿主機,因此判斷方法與前面物理機路由有效性一樣,是以leaf與物理機的互聯鏈路狀態爲依據的,前文我們通過PingCheck這個擴展模塊來監控鏈路狀態,並在鏈路狀態變化時進行路由切換,leaf01與ks1的宿主機devopsr01n02之間的鏈路監測進程爲PingCheck4,查看其當前的配置與狀態

leaf01#sh daemon PingCheck4
Agent: PingCheck4 (running with PID 1751)
Uptime: 2 days, 5:47:05 (Start time: Sat Dec 07 17:01:42 2019)
Configuration:
Option              Value                               
------------------- ----------------------------------- 
CHECKINTERVAL       1                                   
CONF_FAIL           /mnt/flash/pingcheck/failed_4.conf  
CONF_RECOVER        /mnt/flash/pingcheck/recover_4.conf 
HOLDDOWN            1                                   
HOLDUP              1                                   
IPv4                169.254.0.6                         
PINGCOUNT           2                                   
PINGTIMEOUT         2                                   
SOURCE              et4                                 

Status:
Data                  Value                               
--------------------- ----------------------------------- 
CHECKINTERVAL:        1                                   
CONF_FAIL:            /mnt/flash/pingcheck/failed_4.conf  
CONF_RECOVER:         /mnt/flash/pingcheck/recover_4.conf 
HOLDDOWN:             1                                   
HOLDUP:               1                                   
Health Status:        GOOD                                
IPv4 Ping List:       169.254.0.6                         
PINGCOUNT:            2                                   
PINGTIMEOUT:          2                                   
Status:               Administratively Up                 

因此,在鏈路狀態由UP變爲DOWN時,應使到ks1的路由失效,則需在/mnt/flash/pingcheck/failed_4.conf中加入下面的內容

no ip route 10.10.20.22/32 10.10.10.22

當鏈路狀態由DOWN變爲UP時,應使到ks1的路由恢復,則需在/mnt/flash/pingcheck/recover_4.conf中加入下面的內容

ip route 10.10.20.22/32 10.10.10.22

同理,在leaf01/02/03/04上完成三個VM的路由配置。

6.5 測試

完成上面的配置後,測試VM之間是否能互相ping通。

6.6 小結

本節介紹了在spine leaf網絡中如何配置VM的路由,需要在VM,宿主機和leaf交換機上都進行相關的配置。與物理機路由一樣,在leaf上同樣需要檢測到VM的路由的有效性,本文也介紹了檢測原理與具體配置。接下來的章節將介紹在spine leaf網絡中的服務高可用及負載均衡方案。

 

上一節:葉脊(Spine-Leaf)網絡拓撲下全三層網絡設計與實踐(五) - 物理服務器路由方案及配置
下一節:葉脊(Spine-Leaf)網絡拓撲下全三層網絡設計與實踐(七) - 負載均衡及高可用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章