分布式路由

分布式路由:开启分布式路由功能,系统会尝试优化东西向网络流量,以提高吞吐量和降低网络延迟。还可加强云主机之间通信的可靠性,内网跨三层流量不会因为云路由故障而失效。

分布式路由的典型场景:
  • 用户存在三台物理机,VM-1和VM-2在不同的物理机上,分别在 vxlan1: 192.168.1.0/24vxlan2: 192.168.2.0/24 两个网络上。由于二、三层网络均不同,两个云主机之间的流量需要经过第三台物理机上的VPC路由器进行路由来完成。
  • 开启分布式路由后,VM-1发送报文通过传统路径发送到VPC路由器,VPC路由上的网络代理通过 ZSNP 协议发送优化指令到计算节点上的网络代理,之后VM-1的报文将直接发送到VM-2,不再通过VPC路由。
    Note: ZSNP 协议:基于IP协议,用于解决路由器代理无法得知云主机所在的计算节点信息的问题。
本场景主要介绍使用分布式路由的流程,以VXLAN网络为例:
  1. 创建VPC路由器;
  2. 添加VXLAN Pool;
  3. 创建二层私有网络L2-VXLAN1、L2-VXLAN2(用于创建三层的VPC网络),并加载二层网络到相应集群。
  4. 指定VPC路由器,创建三层的VPC网络1和VPC网络2。
  5. 使用VPC网络1在物理机1上创建VM-1;使用VPC网络2在物理机2上创建VM-2。
  6. 开启分布式路由,验证VPC网络1与VPC网络2的互通性,监测流量走向。
Note: 所有私有网络段不可重叠。
假定客户环境如下:
  1. 公有网络
    Table 1. 公有网络配置信息
    公有网络 配置信息
    网卡 em01
    VLAN ID 非VLAN
    IP地址段 10.108.10.100~10.108.10.200
    子网掩码 255.0.0.0
    网关 10.0.0.1
    DHCP IP 10.108.10.101
  2. 管理网络
    Table 2. 管理网络配置信息
    管理网络 配置信息
    网卡 em02
    VLAN ID 非VLAN
    IP地址段 192.168.29.10~192.168.29.20
    子网掩码 255.255.255.0
    网关 192.168.29.1
    Note:
    • 出于安全和稳定性考虑,建议部署独立的管理网络,并与公有网络隔离。
    • 此管理网络与ZStack私有云中的管理网络为相同概念(即:管理物理机、主存储、镜像服务器的网络),如果已创建可直接复用。
  3. VPC网络1
    Table 3. VPC网络1配置信息
    私有网络 配置信息
    网卡 em01
    VLAN ID 2800
    IP CIDR 192.168.1.0/24
    DHCP IP 192.168.1.2
  4. VPC网络2
    Table 4. VPC网络2配置信息
    私有网络 配置信息
    网卡 em01
    VLAN ID 2900
    IP CIDR 192.168.2.0/24
    DHCP IP 192.168.2.2
分布式路由拓扑图如Figure 1所示:
Figure 1. 分布式路由拓扑图


以下介绍分布式路由的实践步骤。

  1. ZStack私有云界面创建VPC路由器。
    根据规划好的网络配置信息,在ZStack云平台创建VPC路由器,详情可参考本教程基本部署章节。
    1. 公有网络:10.108.10.100~10.108.10.200(与传统物理网络在同一网关,保证网络互通)
    2. VPC路由器名称:VPC路由器
  2. 创建VXLAN Pool
    ZStack私有云主菜单,点击网络资源 > 二层网络资源 > VXLAN Pool,进入VXLAN Pool界面,点击创建VXLAN Pool,弹出创建VXLAN Pool界面,可参考以下示例输入相应内容:
    • 名称:设置VXLAN Pool名称
    • 简介:可选项,可留空不填
    • 起始Vni:VxlanNetwork的起始ID,可输入1-16777214之间的数字
    • 结束Vni:VxlanNetwork的结束ID,可输入1-16777214之间的数字,需大于或等于起始Vni
      Note: ZStack将最后两个Vni(即:16777215、16777216)作为系统保留。
    • 集群:可选项,选择需要加载的集群
      Note:
      • 可在创建VXLAN Pool时加载集群,也可在创建VXLAN Pool后再加载集群;
      • 加载集群时,集群内计算节点上应该存在VTEP对应的子网内IP。
    • VTEP CIDR:输入VTEP对应的CIDR
    Figure 2所示:
    Figure 2. 创建VXLAN Pool


  3. ZStack私有云界面创建L2私有网络(用于创建三层的VPC网络)。
    ZStack私有云主菜单,点击网络资源 > 二层网络资源 > 二层网络,进入二层网络界面,点击创建二层网络,在弹出的创建二层网络界面,可参考以下示例输入相应内容:
    • 名称:设置为:L2-VXLAN1
    • 简介:可选项,可留空不填
    • 类型:选择VxlanNetwork
    • VXLAN网络池:选择所在的VXLAN Pool
    • Vni:可选项,可从VXLAN Pool中选择指定的Vni,若留空不填,则由ZStack动态随机分配
    Figure 3所示:
    Figure 3. 创建二层VXLAN网络


    同理,创建L2-VXLAN2。

  4. 指定VPC路由器,在ZStack私有云界面创建三层的VPC网络。
    ZStack私有云主菜单,点击网络资源 > VPC > VPC网络,进入VPC网络界面,点击创建VPC网络,在弹出的创建VPC网络界面,可参考以下示例输入相应内容:
    • 名称:设置为:VPC网络1
    • 简介:可选项,可留空不填
    • 二层网络:选择L2-VXLAN1
    • VPC路由器:可选项,VPC路由器可在创建VPC网络时指定,也可在创建VPC网络后再挂载
    • 关闭DHCP服务:选择是否需要DHCP服务
      Note:
      • 默认不勾选,表示启用DHCP服务,为云主机提供自动分配IP,此时DHCP IP支持自定义设置,也可由系统随机指定;
      • 勾选后,表示关闭DHCP服务,使用此网络的云主机将无法自动获取IP,需手动配置,此时DHCP IP不支持自定义设置,也不可由系统随机指定。
    • 添加网络段:选择添加网络段方法:IP范围、CIDR
      • 如选择IP范围,需设置以下内容:
        • 起始IP:输入网络段的起始IP,例如:192.168.1.2
        • 结束IP:输入网络段的结束IP,例如:192.168.1.254
        • 子网掩码:输入网络段的子网掩码,例如:255.255.255.0
        • 网关:输入网络段的网关,例如:192.168.1.1
        • DHCP IP:可选项,可按需设置DHCP IP,例如:192.168.1.10
          Note:
          • 若首次创建三层网络并启用DHCP服务,或对已启用DHCP服务的三层网络添加首个网络段,支持自定义设置DHCP IP;
          • 若三层网络已存在DHCP IP,添加网络段不允许自定义设置DHCP IP;
          • DHCP IP可以在添加的IP范围之内或之外,但必须在添加的IP范围所属的CIDR内,且未被占用;
          • 若留空不填,将由系统在添加的IP范围内随机指定。
        Note: 选择IP范围添加网络段需注意:
        • 不可将网关(例如:xxx.xxx.xxx.1)、广播地址(例如:xxx.xxx.xxx.255)和网络地址(例如:xxx.xxx.xxx.0)等包含在添加的IP段中;
        • 私有网络网络段,不可与云路由规格里的公有网络或管理网络重叠。
      • 如选择CIDR,需设置以下内容:
        • CIDR:输入网络段的CIDR,例如:192.168.1.0/24
        • DHCP IP:可选项,可按需设置DHCP IP,例如:192.168.1.10
          Note:
          • 若首次创建三层网络并启用DHCP服务,或对已启用DHCP服务的三层网络添加首个网络段,支持自定义设置DHCP IP;
          • 若三层网络已存在DHCP IP,添加网络段不允许自定义设置DHCP IP;
          • DHCP IP必须在添加的CIDR内,且未被占用;
          • 若留空不填,将由系统在添加的CIDR内随机指定;
          • CIDR内首个IP地址已被默认为网关,不可作为DHCP IP。
        Note: 选择CIDR添加网络段需注意:
        • CIDR内首个IP地址已被默认为网关;
        • CIDR包含网络段不允许包含链路本地地址 (169.254.0.0/16) 的IP地址;
        • 私有网络网络段,不可与云路由规格里的公有网络或管理网络重叠。
    Figure 4所示:
    Figure 4. 创建VPC网络




    同理,使用二层网络L2-VXLAN2创建VPC网络2,CIDR输入192.168.2.0/24

  5. 使用VPC网络1在物理机1上创建私有云云主机VM-1,使用VPC网络2在物理机2上创建私有云云主机VM-2,详情可参考本教程基本部署章节。
    创建的两台云主机如Figure 5所示:
    Figure 5. 使用VPC网络创建云主机


  6. 验证VPC网络1与VPC网络2的互通性,监测流量走向
    1. 登录VM-1,检查是否能够ping通VM-2,如Figure 6所示:
      Figure 6. VM-1 ping通 VM-2


    2. 登录VM-2,检查是否能够ping通VM-1,如Figure 7所示:
      Figure 7. VM-2 ping通 VM-1


    3. ZStack私有云主菜单,点击网络资源 > VPC > VPC路由器,进入VPC路由器界面,点击已创建的VPC路由器进入详情页,选择监控数据子页面,查看网卡监控,如Figure 8所示:
      Figure 8. 网卡监控数据


    如上所述,VM-1与VM-2能够互通,流量通过VPC路由器传输,网卡监控数据可以持续监测到流量。
  7. 开启分布式路由,验证VPC网络1与VPC网络2的互通性,监测流量走向
    1. ZStack私有云主菜单,点击网络资源 > VPC > VPC路由器,进入VPC路由器界面,点击已创建的VPC路由器进入详情页,在基本属性页面开启分布式路由,如Figure 9所示:
      Figure 9. 开启分布式路由


    2. 登录VM-1,检查是否能够ping通VM-2,如Figure 10所示:
      Figure 10. VM-1 ping通 VM-2


    3. 登录VM-2,检查是否能够ping通VM-1,如Figure 11所示:
      Figure 11. VM-2 ping通 VM-1


    4. 登录管理节点,使用如下api,输入VPC路由器的uuid,查看分布式路由启用情况,如Figure 12所示:
      GetVpcVRouterDistributedRoutingConnections uuid=dfa5adc643d34dc88b78153deb918dd8
      Figure 12. 启用分布式路由


      如上所示,分布式路由已成功开启,系统开始优化东西向流量。
    5. ZStack私有云主菜单,点击网络资源 > VPC > VPC路由器,进入VPC路由器界面,点击已创建的VPC路由器进入详情页,选择监控数据子页面,查看网卡监控,如Figure 13所示:
      Figure 13. 网卡监控数据


    如上所述,VM-1与VM-2能够互通,流量在首次通过VPC路由器连通后,之后的流量将在VM-1和VM-2之间直接发送,网卡监控数据未监测到流量,符合预期,说明分布式路由已成功启用。
至此,分布式路由的使用方法介绍完毕。