在上一篇里,我们介绍了NSX控制平面的组件,包括NSX Controller集群、DLR-CVM控制虚拟机和很容易被忽略的netcpa。

通过一个简单的实验,我们一同验证了在没有DLR-CVM的前提下,管理员配置静态路由并更新的流程:

  • 管理员通过vCenter Web Client配置静态路由,通过NSX Manager将静态路由配置推送给NSX控制器(Internal API)

  • NSX控制器将Routing Information Base (RIB)转发到集群每一台ESXi的netcpa

  • netcpa通过vmkIink,将更新的路由表FIB写入到DLR-Instance内核中

那么,对于有DLR-CVM参与的情况,管理员配置静态路由并更新的流程,又是如何的呢?

  • 管理员通过vCenter Web Client配置静态路由,通过NSX Manager将静态路由配置推送给DLR-CVM所在ESXi的vsfwd

  • vsfwd通过VMCI,将静态路由配置推送给DLR-CVM

  • DLR-CVM通过VMCI,将Routing Information Base (RIB)报告给netcpa

  • netcpa通过TCP1234连接,将Routing Information Base (RIB)报告给Controller控制器集群

  • NSX控制器将Routing Information Base (RIB)转发到集群每一台ESXi的netcpa

  • netcpa通过vmkIink,将更新的路由表FIB写入到DLR-Instance内核中

可以看到,在上述情况下,管理平面组件vsfwd也参与了静态路由配置并更新的流程。

我们通过第二个实验来验证我们的观点:

1.部署一台DLR逻辑路由器,接口定义如下:

  • Dev-Web-Tier-0118:172.18.10.1/24(Internal)

  • Dev-App-Tier-0118:172.18.20.1/24(Internal)

  • Dev-DB-Tier-0118:172.18.30.1/24(Internal)

  • Dev-Transit-0118:172.18.0.2/29(Uplink)

2.选择新部署的Edge类型是逻辑路由器DLR,勾选“部署Edge设备”,即同时部署DLR-CVM控制虚拟机

3.选择DLR-CVM部署的位置,一般建议部署在Edge Cluster边界集群

4.根据拓扑规划,配置DLR直连的网络

5.为了验证静态路由流程,不配置默认网关

6.确认各项参数设置无误后,开始部署DLR

7.在完成DLR-Instance部署后,相比无DLR-CVM的情况,可以看到2个明显的不同

  • 多了一台DLR-CVM控制虚拟机

  • DLR-Instance的部署状态是Deployed已部署

8.SSH访问ESXi命令行,查看ESXi内核空间中,创建的逻辑路由器实例DLR-Instance

在ESXi主机使用命令:# net-vdr -l --instance

  • 可以看到Edge Active状态已经是Active

  • 新创建的DLR-Instance的VDR ID是0x00001771,VDR Name是default+edge-31

9.管理员通过Web Client添加一条静态路由

10.很快,我们就能看到JUMP虚拟机可以PING通172.20.5.180

11.访问NSX Controller,检查路由的更新源;可以看到路由的更新源从原来的API,变成了CONTROL_VM

12.查看DLR-Instance的路由表,可以看到多了一条静态路由条目

13.对比有无DLR-CVM的两种情况,不难发现:两种模式下,netcpad在路由更新的过程中,都扮演着无法替代的角色,现在我们通过命令行,停止在用户空间运行的netcpad服务

14.此时可以看到DLR-instance的路由条目没有发生改变,JUMP虚拟机也可以继续PING通172.20.5.180,说明NSX架构中,控制平面与转发平面完全隔离

注:这并不代表说,DLR-CVM控制虚拟机的故障不会影响DLR-Instance的无状态转发,相反,在配置动态路由的情况下,南北向流量可能会因为DLR-CVM的故障受到严重的影响。

15.管理员保持ESXi用户空间的netcpad停止服务状态的同时,通过Web Client删除静态路由

16.在保持netcapd停止的情况下,JUMP虚拟机可以继续PING通172.20.5.180

17.ESXi底层命令行查看DLR-Instance实例的信息,也可以看到路由条目没有发生变化

18.由于netcpad服务的停止,不会影响NSX Manager通过vsfwd,将路由配置下发到DLR-CVM,因此在DLR-CVM的底层,我们是可以看到“172.20.5.0/24      NH=172.18.0.1”这条静态路由已经不存在了

19.管理员通过命令行,重新启动netcpad服务

20.可以看到,在netcpad服务重新启动后,DLR-instance的路由条目发生了更新

21.相对应的,JUMP虚拟机也无法再PING通172.20.5.180地址

22.下面我们关闭DLR-CVM控制虚拟机电源

23.管理员重新添加一条静态路由

24.表面上看,似乎没有什么问题,但是在Publish Changes之后,再次刷新页面,这条静态路由会自动消失

25.很明显,这条静态路由并没有下发到DLR-CVM,当然也就不存在DLR-CVM报告给Controller,最终转发到DLR-Instance的后续步骤了,因此JUMP肯定无法PING通172.20.5.180

26.在ESXi底层,查看DLR-Instance信息,也可以证明这一点

27.访问Controller底层,也可以看到没有任何路由更新的信息

28.重新打开DLR-CVM控制虚拟机的电源,同时停止ESXi用户空间运行的vsfwd服务,验证vsfwd对于静态路由更新流程的影响

29.管理员添加一条静态路由

30.在这种情况下,管理员刷新Web Client,这条静态路由的配置是不会自动消失的

31.在Controller底层查看路由更新的信息,由于DLR-CVM没有收到vsfwd转发过来的路由配置,因此DLR-CVM也没有新的路由更新报告给Controller

32.在DLR-CVM命令行,确认没有收到静态路由配置的更新

33.我们在ESXi命令行,重新启动vsfwd服务

34.这时,DLR-CVM马上就收到了静态路由配置条目,这条路由更新是NSX Manager通过管理平面组件vsfwd下发给DLR-CVM的

35.在Controller底层,可以看到DLR-CVM通过netcpad报告的路由更新

36.集群每一台ESXi主机的netcpad在收到Controller的路由表更新后,转发给DLR-Instance

根据上文的描述,我们验证了在部署DLR-CVM的情况下,管理员配置静态路由后的更新流程:

vCenter------API------NSX Manager-----Internal API-----vsfwd-----VMCI-----DLR CVM-----VMCI-----netcpa-----TCP1234-----Controller-----TCP1234-----netcpa-----vmklink-----DLR Instance

通过前后两篇文字的讨论,相信各位对NSX控制平面组件及静态路由更新的流程,有了比较深入的了解,

NSX控制平面和静态路由更新流程2相关推荐

  1. NSX控制平面和静态路由更新流程1

    在上一篇里,借着对NSX分布式防火墙实现原理的讨论,我们熟悉了NSX管理平面中很容易被忽略的一个组件-vsfwd. 今天,我们一起讨论NSX控制平面的组件,并通过一个简单的实验来验证静态路由更新的流程 ...

  2. 华为设备配置组播静态路由改变RPF路由

    配置各接口IP地址 [LSW1]vlan batch 10 30 100 [LSW1-GigabitEthernet0/0/2]port link-type trunk [LSW1-GigabitEt ...

  3. 理解网络中的控制平面和转发平面,你就不再是网络小白了

    学习网络有一段时间了,记得当初在学到BGP选路时被控制平面和转发平面弄得一头雾水,甚至想到放弃,后来还是坚持了下来,今天终于鼓起勇气写这一篇博客,仅仅表示自己的一些看法和见解,希望能帮到其它网络小白理 ...

  4. 静态路由配置命令和完整流程

    静态路由配置实验 一 实验目的 •掌握静态路由的基本配置方法 •了解路由环路 •利用ensp实验平台完成路由器和交换机的基本配置 二 实验要求 •完成实验指导书中全部实验内容,记录实验结果: •写出实 ...

  5. Envoy Proxy构建控制平面指南

    作者:Christian Posta 译者:殷龙飞 审阅:孙海洲 原文:medium.com/solo-io/gui- [编者案] Envoy 作为最受欢迎的早期网络组件,现在已经可以说是云原生架构中 ...

  6. envoy api 网关_在边缘,作为网关或在网格中构建控制平面以管理Envoy代理的指南...

    envoy api 网关 最近, Envoy已成为流行的网络组件. 马特·克莱因( Matt Klein )在几年前写了一个博客,内容涉及Envoy的动态配置API,以及它如何成为Envoy的采用曲线 ...

  7. 在边缘,作为网关或在网格中构建控制平面以管理Envoy代理的指南

    最近, Envoy已成为流行的网络组件. 马特·克莱因( Matt Klein )在几年前写了一个博客,内容涉及Envoy的动态配置API,以及它如何成为Envoy的采用曲线向右移的原因之一. 他称该 ...

  8. 【计算机网络:自顶向下方法】Chapter5 网络层:控制平面

    本系列文章为笔者在学习b站中科大郑烇老师的计算机网络课程时(郑老师讲得很清晰!!),结合课程PPT与<计算机网络:自顶向下方法>(第七版)所作的学习笔记,部分图片源自课程PPT或书中,如有 ...

  9. latex如何使节标题居左_为使节构建控制平面的指南第3部分-特定于域的配置API...

    latex如何使节标题居左 这是探索为Envoy Proxy构建控制平面的系列文章的第3部分. 在本博客系列中,我们将研究以下领域: 采用一种机制来动态更新Envoy的路由,服务发现和其他配置 确定哪 ...

最新文章

  1. 5G NR - 总体架构与物理层
  2. 对三层架构的简单改进
  3. 【Python入门】Python字典的11个方法超级详解
  4. simulink怎么生成vxworks的执行程序_从EPB模型谈谈Simulink代码生成
  5. Mac idea中git igenore设置
  6. redis强一致性_Redis的8连击,验证你是否熟练掌握Redis核心知识点。
  7. MyBitis(iBitis)系列随笔之四:多表(多对一查询操作)
  8. JMS学习(三)JMS 消息结构之属性及消息体详解
  9. SQL服务器名称的更改
  10. uni-app两种方法解决跨域问题【已验证】
  11. 全国计算机OFFICE二级考试大纲,全国计算机等级考试二级MSOffice高级应用考试大纲...
  12. scrapy-redis的官方文档和源码位置
  13. 新唐 Nuvoton M031 入门 点亮板载LED
  14. mysql win10 优化设置_Win10电脑优化必做的几个优化技巧提升速度!
  15. 用Java语言实现文本内容对比的算法和程序
  16. Ubuntu 16.04 LTS设置屏幕分辨率并永久保存所设置的分辨率
  17. 软件接口测试工具篇(一)
  18. 802协议族太网帧格式
  19. 新华三培训3---交换基础,VLAN之间路由
  20. VPS主机适合干什么?

热门文章

  1. python接口自动化 一个变量 其他接口要用_python接口自动化(二)--什么是接口测试、为什么要做接口测试(详解)...
  2. mysql 长度为1 的空字符串_MYSQL,如果定义了一个字符串的字段,长度为255,那么当我添加一个空字符串数据时占用空间吗?...
  3. ctfmon是什么启动项_启动项里ctfmon是什么意思,干什么用的??
  4. python 文本框内容变化_监听文本输入框内容值的改变——4种方法
  5. word删除内容后不删除书签_Word涨薪88式第三式:书签的妙用
  6. Xmind快捷键笔记
  7. r spgm 语言_Spatial Simultaneous Equations空间联立方程 的R package和经典文献
  8. 计算机的智能化研究领域的是,科学网—第五代计算机为何在“智能化”阶段的发展像蜗牛般的徘徊前行? - 邹晓辉的博文...
  9. python mss_Python实现的连接mssql数据库操作示例
  10. mysql fulsh_mysql之备份和恢复(msyqldump、LVM、xtrabackup)