变形金刚外传0x06:实现跨VMware与KVM的逻辑路由

简介: 在之前的几篇分享中,我的演示环境已经就绪了主机传输节点和Edge传输节点,并且利用Geneve Overlay,实现了跨VMware与KVM异构化平台的逻辑交换功能。在今天的分享中,我将演示如何实现跨异构化平台的逻辑路由功能,并为最终实现Web-App-DB(后文称3-Tier-App)与外部网络的三层互访打下基础。

在NSX-V的架构中,逻辑路由组件由三大件组成:

  • 数据平面的“分布式逻辑路由器”,也叫作DLR Instance,是运行在Hypervisor内核中的组件,连接多个逻辑交换机后,实现不同网络的三层路由互访。
  • 数据平面的“边界服务网关”(后文简称ESG),是运行在Hypervisor用户空间的一台虚拟机,打通物理网络和逻辑网络,并提供多种网络服务虚拟化功能,如网络地址转换、负载均衡器等。
  • 控制平面的“分布式逻辑路由器控制虚拟机”,也叫作DLR CVM,是运行在Hypervisor用户空间的一台虚拟机,借助OPSF或者BGP动态路由协议,实现与ESG以及物理网络的三层路由互访。

在NSX-T的架构中,逻辑路由组件发生了比较大的变化(我们再来回顾一下上一篇的内容)

  • 逻辑路由器可分为Tier-0和Tier-1两个分级(后文称T0和T1);
  • 每个逻辑路由器可以分为分布式路由器角色DR和服务路由器角色SR;做个不恰当的比喻,NSX-T架构中的DR相当于NSX-V架构中的DLR,SR相当于ESG;其中SR角色必须由NSX-T的Edge传输节点来承载。

0x06-01:部署T1DR,实现逻辑网络三层路由

===================

对于小型环境而言,管理员可以只部署T0LR实现逻辑路由和物理-逻辑互访,以3-Tier-App环境为例:

  • 部署T0DR,实现Web、App、DB三个逻辑交换网络的三层路由
  • 部署T0SR,实现逻辑网络与物理网络的三层互访

有人会问,为什么不可以只使用一个T0DR,即实现逻辑网络三层路由,又实现物理-逻辑互访?

请注意:只有T0SR角色才能连接VLAN类型的逻辑交换机,实现物理-逻辑互访,因此在一个标准NSX-T的架构中,至少需要T0DR和T0SR两个角色。

但是在多租户场景中,由于逻辑网络拓扑高复杂度和可能存在的网络地址段重叠,建议采用T0和T1两个分级,现在我先演示如何部署T1DR角色,率先实现Web、App、DB三个逻辑网络的三层路由。

  • 在实现逻辑路由之前,先确认逻辑交换的状态是否正常

image.pngimage.png


  • 在高级网络和安全-网络-路由器界面,添加一个Tier-1路由器

image.png

  • 定义该逻辑路由器命名为T1-LR_T1
    注:对于Tier-1级路由器,在不配置Edge群集的情况下,默认不会创建T1SR
    同时,各位也会发现,在NSXMGR的配置页面,不会区分添加DR或者SR角色;当管理员添加一个逻辑路由器实例的时候,系统会自行判断并创建DR或者SR角色

image.png

  • 等待T1LR完成创建后,进入配置-路由器端口,添加内部接口

image.png

  • 添加内部接口,连接到T1-dev-web-tier,并设置网关地址为10.0.10.1

image.png

image.png


  • 重复上述操作,完成其他内部接口的设置,包括:
    T1-dev-app-tier:10.0.20.1
    T1-dev-db-tier:10.0.30.1

image.png

  • 完成T1LR(T1DR)创建后,web-01a与其他网络的虚拟机,包括app-01a和db-01a三层通信已经可以正常建立

image.png

  • 此时访问主机节点命令行,对于有虚拟机承载的Hypervisor主机,无论是KVM和vSphere,都可以看到三个逻辑交换机和一个逻辑路由器,并且逻辑路由器的角色是T1DR

image.png

  • 在Edge节点,只有1个逻辑交换机,用于Overlay流量,目前没有任何T1的DR生成
    注:在创建T1SR之后,Edge节点会生成对应的T1DR实例

image.png

经过上述步骤,我部署了一台T1DR,实现了vSphere和KVM不同Hypervisor主机上,不同逻辑网络虚拟机的三层互访。 其实单从配置的角度而言,NSX-T的逻辑路由配置并不复杂,但是底层实现和SR、DR、T0、T1多种组合的理解,是需要花一番心思研究摸索的。在后续的分享中,我也非常愿意和各位探讨这些问题。


0x06-02:部署T0LR,实现物理-逻辑网络互访

===================

在上文分享中,我提及想要实现物理-逻辑网络互访,必须借助于T0SR角色,因为只有T0SR才能连接VLAN类型的逻辑交换机。现在我的环境中,已经部署了T1DR角色,自然有2个问题:

  • T1DR如何连接T0SR,是否可以直接连接
  • 如何部署T0SR角色

在接下来的演示中,我们一起来回答这两个问题:

  • 与T1LR创建相类似,选择创建Tier-0路由器

image.png

  • 命名Tier-0逻辑路由器,并选择sa-edge-cluster1作为该逻辑路由器的SR角色承载群集
  • 如果需要在T0SR开启NAT等有状态的服务,必须选择Active-Standby的高可用模式,故障切换模式选择非主动,不需要指定首选Edge承载

image.png

  • 完成T0LR创建后,在没有任何接口配置的情况下,Hypervisor和Edge底层都不会生成实例
    此时,我们依旧无法回答上述两个问题

image.png

image.png

  • 选择将T1-LR_T1连接到T0-LR_T1-T2,选中T1-LR_T1,点击操作-连接到Tier-0路由器即可

image.png

image.png

  • 完成T1LR和T0LR的互联后,可以看到如下变化:
    对于T1LR而言,多了一个自动创建的逻辑网络,并且自动设置了一个100.64.0.0/24的网络地址;这一点与NSX-V的配置略有不同,在NSX-V架构下,管理员需要手动配置一个Transit逻辑交换机,用于连接DLR和ESG(相当于DR和SR连接)
    如:在我的环境中,T1-LR_T1的Uplink口,分配了一个100.64.112.1/31地址;相应地,T0-LR_T1-T2的下联地址一定是100.64.112.0/31

image.png

image.png

  • 在Edge节点,由于尚未创建T0SR角色,因此依旧不会创建任何逻辑路由器实例

image.png

  • 但是对于Hypervisor主机节点,由于T1DR已经连接到T0DR,因此在原来T1DR实例的基础上,多了一个T0DR的实例
    现在,我们可以回答第一个问题了,T1DR无法直接连接到T0SR,连接的逻辑必须是T1DR连接到T0DR,T0DR连接到T0SR。

image.png

  • 在配置T0LR的上联VLAN物理网络之前之前,需要创建一个用于VLAN上联的逻辑交换机,命名为T0-dev-uplink-external,VLAN为0
    注:如果该逻辑交换机用于T0LR的上联网络,VLAN不可以是中继,如1-4094

image.png

  • 选择T0-LR_T1-T2逻辑路由器,选择配置-路由器端口,添加一个上联到物理VLAN网络的接口

image.png

  • 定义该路由器端口信息,实现T0LR到VLAN网络的互通,必须部署T0SR角色,因此必须要从Edge群集中指定一个Edge作为传输节点

image.png

  • 设置T0LR的Uplink地址为172.18.11.100/24
    注:在我的环境中,最终的uplink地址为172.18.12.100/24,此处定义为172.18.11.100/24是为了静态路由演示配置

image.png

  • 在完成T0LR的上联配置后,相当于部署了T0SR角色,因此在Edge节点,可以看到T1DR、T0DR和T0SR角色
  • 现在我们可以回答另一个问题,T0LR的创建,与T1LR相类似,在配置上联到VLAN物理网络的过程中,系统会自动判断这是T0SR角色实现的功能,会自动创建T0SR角色

image.png

  • 由于T0LR模式为Active-Standby,在选择sa-edge-01作为传输节点的情况下,sa-edge-02内核不会创建T0SR角色,自然也不会有T0DR和T1DR

image.png

  • 在主机节点内核,由于T1SR和T0SR角色只能在Edge节点生成,因此不会出现T0SR角色

image.png

  • 虚拟机Edge流量还要经过ESXI主机的虚拟交换机,因此必须开启虚拟交换机的“伪传输"
    注:混杂模式开启的情况下,可能会出现PING DUP!情况

image.png

  • 在172.18.11.0/24的网关ping T0LR的上联,可以看到接口已经激活,二层可达

image.png

经过了上述演示,我们已经为实现物理-网络互通打下了基础,接下来要思考以下几个问题:

  • 在NSX-V的架构中,DLR和ESG之间需要配置静态/动态路由,DLR连接的逻辑网络虚拟机才能PING通ESG的Uplink地址,在NSX-T的架构中,是否也有类似的配置步骤。
  • 在NSX-V的架构中,ESG与上联物理核心之间,同样需要配置静态/动态路由,实现物理-逻辑网络互通,在NSX-T的架构中,如何来实现这些需求。

在后续的若干分享中,我将依次演示如下路由场景:

  • T0SR Active-Standby模式下,静态路由实现物理-逻辑网络互访
  • T0SR Active-Standby模式下,BGP动态路由实现物理-逻辑网络互访
  • T0SR Active-Active模式下,BGP动态路由实现物理-逻辑网络互访

届时,再与各位细细探索和讨论NSX-T逻辑路由的奇妙,敬请关注。


相关文章
变形金刚外传0x04:实现跨VMware与KVM的逻辑交换
现在我们所说的NSX DC,早已不是之前那个狭义的、只面向VMware虚拟化的软件定义网络和安全产品。在市场上,依托专有硬件,配套软件实现SDN的产品也可称得上多家争鸣、各有千秋;而VMware NSX最与众不同的优势可归纳为: NSX软件不受到底层硬件的限制,适用于ANY NETWORK或者说ANY TRANSPORT; 强大的分布式防火墙策略适用于任意虚拟化指标,提供全面的端到端安全防护
|
安全 Java Linux
|
7月前
|
监控 Linux KVM
kvm和vmware有什么区别?如何选择?
最终的选择取决于你的组织需求、预算和技术偏好。在做出决策之前,最好进行详细的比较和评估,以确保选择适合你的虚拟化环境。
607 3
|
安全 Java Linux
懂了!VMware/KVM/Docker原来是这么回事儿
懂了!VMware/KVM/Docker原来是这么回事儿
331 0
懂了!VMware/KVM/Docker原来是这么回事儿
|
Web App开发 Linux 索引
VMware migration to openstack kvm
http://serverascode.com/2012/11/26/converting-vmware-windows-to-openstack.html https://access.
1001 0
|
1月前
|
Ubuntu 网络安全 虚拟化
VMware虚拟机ping不通原因排查及分析
下面以 VMware 虚拟机为例进行介绍。
838 3