【网络】叶脊(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)网络拓扑下全三层网络设计与实践(七) - 负载均衡及高可用

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