分布式路由

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

分布式路由的典型场景:
  • 用户存在三台物理机,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:
    • For security and stability reasons, we recommend that you deploy an independent management network and separate it from the public networks.
    • The management network we mentioned here is the same as that in ZStack Private Cloud. That is, the management network is the network used to manage hosts, primary storages, and backup storages. If a management network was created before, you can use it directly.
  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网络后再挂载
    • Stop DHCP server: Choose whether to enable the DHCP service.
      Note:
      • By default, this checkbox is unchecked, which means that the DHCP service is enabled, and IP addresses will be automatically assigned to VM instances. In this case, you can customize a DHCP IP address, or let the system randomly specify a DHCP IP address.
      • If selected, the DHCP service will be disabled, which means that VM instances that use this network cannot obtain IP addresses automatically, and need to be configured manually with IP addresses. In that case, you cannot customize the DHCP IP address. In addition, the system cannot randomly specify a DHCP IP address.
    • 添加网络段:选择添加网络段方法: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范围添加网络段需注意:
        • You must not include the gateway (for example, xxx.xxx.xxx.1), broadcast address (for example, xxx.xxx.xxx.255), and network address (for example, xxx.xxx.xxx.0) in the added IP range.
        • The network range of a private network cannot overlap with the public network or management network on a vRouter offering.
      • 如选择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添加网络段需注意:
        • The IP range specified in the CIDR cannot contain IP addresses of the link-local address (169.254.0.0/16).
        • The network range of a private network cannot overlap with the public network or management network on a vRouter offering.
    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之间直接发送,网卡监控数据未监测到流量,符合预期,说明分布式路由已成功启用。
至此,分布式路由的使用方法介绍完毕。