在之前的文章里我们讨论了SDN Overlay 网络中5个不同场景下虚机数据包如何转发,今天我们将继续讨论处于Overlay网络中的虚机如何与物理机进行数据转发。有关于微软网络虚拟化HNV的相关概念,如RDID、VSID、虚机网络、虚拟子网、默认网关等,可以参考http://ichbinleo.blog.51cto.com/11948851/1902265和http://ichbinleo.blog.51cto.com/11948851/1903866  进一步了解。

在开始今天的讨论之前,我们需要引入一个概——HNV网关,也即转发网关,转发网关在SDN Overlay场景中的主要目的有3个:

  1. 通过NAT实现Overlay网络中虚机访问外部网络(Internet)

  2. 通过NAT或直接路由功能实现Overlay网络中虚机访问物理网络上的设备

  3. 外部网络到Overlay网络的S2S ×××。

HNV网关可由启用了RRAS功能的Windows Server (2012及后续版本)虚机实现,也可以由支持NVGRE/VXLAN的物理网络设备来支持,如Cisco、F5、Iron Network以及nAppliance等都提供相应的网络设备。

我们这次设定的场景如下图所示,2台虚机VM1和VMgwca在不同的虚拟子网,分别运行在不同的物理机上,VMgwca作为VM1所在的虚拟子网的转发网关。VMgwca具备至少2个网卡:一个网卡关联HNV逻辑网络,连接和VM1相同的虚机网络(RDID相同),一个网卡连接物理网络(我们可称之为外部网络)。启用了HNV网关特性也意味着2块网卡所在的子网也默认启用了静态路由。

VM1的IP地址为172.16.188.2,MAC地址为MACvm1, VSID为11111。

VMgwca的内部IP地址为192.168.188.2,MAC地址为MACgwca,VSID为22222;外部地址为10.1.21.16,外部网卡MAC地址为MAClan。

当虚机VM1需要和外部网络的主机10.1.21.18通信时,数据流是怎样的呢,下面我们对这一场景的数据流进行详细的描述:

  1. 因为源和目的IP地址不在同一个子网,所以VM1发送ARP消息询给默认网关,而不是直接发送给目标IP地址。

  2. Hyper-V虚拟交换机广播ARP到HNV Filter

  3. HNV Filter返回默认网关的MAC地址MACdfgw,MACdfgw就是HNV Filter自身。

  4. VM1学习到默认网关的MAC地址为MACdfgw,其VSID为11111 (默认网关的MAC地址MACdfgw包含在OOB数据里)。

  5. VM1封装IP数据包,目的IP为默认网关的IP地址,目的MAC地址为MACdfgw。

  6. IP数据包发送到Hyper-V虚拟交换机,虚拟交换机获取到发送虚机的网卡VSID 11111的OOB数据。

  7. HNV Filter 查询到去往10.1.21.xx子网的客户路由的下一跳为192.168.188.2(转发网关)。

  8. HNV Filter 使用其查找记录来确定下一跳虚机(转发网关)的PA地址。如果没有找到PA地址记录,那么数据包将被丢弃。

  9. 接着HNV Filter 重写数据包,以将目的MAC地址更改为MACgwca(转发网关的MAC地址)

  10. HNV Filter 在查找记录里查询到gwca的CA地址为192.168.188.2,MAC地址MACdfgw,VSID为22222,PA地址为10.2.41.206,于是HNV Filter将获取到的这些信息和原始IP数据包使用NVGRE/VXLAN进行二次封装。外部数据包中,目的IP地址为gwca的的PA地址10.2.41.206,目的MAC地址为MACdfgw,VSID为22222,如下图绿色部分所示。

  1. 二次封装的数据包通过传输网络栈传输到网络上。

  2. IP地址为10.2.41.206以及MAC地址为MACPA2的Hyper-V物理机接收到数据包,然后发送到HNV Filter

  3. HNV Filter拆开封装的包,获取到原始数据包,以及包含了VSID 22222的OOB数据。

  4. HNV Filter将原始数据包转发到具有VSID为22222的Hyper-V虚拟交换机。

  5. Hyper-V虚拟交换机按照访问控制策略将原始数据包发送到目标虚机(转发网关虚机)。在整个过程中,源和目标虚机都没能感知封装的存在。而此时,数据包已经到达转发网关虚机gwca。

  6. 转发网关虚机将数据包在自己2块不同的网卡之间转发(连接内部网络的网卡转发到连接外部网络的网卡)

  7. 转发网关虚机的连接到物理Underlay网络的网卡将当前MAC地址更改为目的物理服务器的MAC地址MACphy

  8. 物理服务器接收到数据包,但是并不知道该数据包来自虚拟网络。

转载于:https://blog.51cto.com/ichbinleo/1945255

SDN Overlay网络中虚机到物理机的数据包的转发相关推荐

  1. vmware 虚拟工作平台(虚拟机--客户机) ---物理机(宿主机)

    day01 Redhat linux 操作系统初级课程 红帽认证管理员(RHCSA,全称为Red Hat Certified System Administrator)属于红帽Linux的初级入门认证 ...

  2. 远程桌面的分辨率最大不会超过本机真实物理机的分辨率

    远程桌面的分辨率最大不会超过本机真实物理机的分辨率 有时,在更换显示器,然后再使用远程时,容易发生这种不易察觉的问题. 所以要解决的问题点在真实物理机.因为远程桌面一般不可更改此项设置. the di ...

  3. 如何在linux系统上查看BIOS版本、机器型号、序列号?查看网卡驱动版本?查看载体为实体机还物理机...

    biosdecode命令 BIOS版本  查看服务器型号: dmidecode | grep 'Product Name'  查看主板的序列号: dmidecode |grep 'Serial Num ...

  4. 网络协议 一 路由的概念、简述数据包的传输过程、网络常见概念、公网、私网、NAT(私网转公网)

    目录 路由 实践1 - 让4台主机之间可以互相通信 实践2 - 让4台主机之间可以互相通信 数据包的传输过程(简) 第一个包的丢失 网络 (Network).互联网 (internet).因特网 (I ...

  5. 网络在20秒内没有下行RTP数据包,被叫终端主动中断VoLTE通话链路

    问题描述 被测终端在预定测试地点进行"语音数据业务并发的eSRVCC"测试时 终端A进行FTP上传和下载,数据业务在测试过程中一直保持: 终端A语音呼叫终端B,测试20次: 1次出 ...

  6. 浅浅的 使用网络调试助手和Mosquitto 分析MQTT协议数据包内容

    使用网络调试助手和Mosquitto 分析MQTT协议数据包内容 参考: 零.涉及到的主要的数据包: 一.环境搭建 二.connect数据包 根据数据包的内容逐个字节进行分析: 三.心跳包 四.订阅S ...

  7. 网络爬虫中Fiddler抓取PC端网页数据包与手机端APP数据包

    1 引言 在编写网络爬虫时,第一步(也是极为关键一步)就是对网络的请求(request)和回复(response)进行分析,寻找其中的规律,然后才能通过网络爬虫进行模拟.浏览器大多也自带有调试工具可以 ...

  8. 网络编程—使用C语言实现发送TCP数据包,以命令行形式运行:SendTCP source_ip source_port dest_ip dest_port;(原理和常见错误分析)

    任务要求: 1.以命令行形式运行:SendTCP source_ip source_port dest_ip dest_port: 2.头部参数自行设定,数据字段为"This is my h ...

  9. BLE MESH中标准的Light Lightness messages的数据包格式

    Light Lightness的操作OP:   动作 OP Light Lightness Light Lightness Get 0x82 0x4B Light Lightness Set 0x82 ...

最新文章

  1. java中printnb方法_java打印技术---javax.print
  2. 真·摸鱼带师!每天工作10分钟年薪57万,这位程序员火了
  3. C 语言编程 — 高级数据类型 — 共用体
  4. asch相关的linux基础知识分享
  5. IT项目管理总结:第十二章 项目采购管理
  6. Spring Cloud Feign注意点
  7. python123.io简单编程题合集
  8. tomcat8.5配置优化
  9. 我的常用数据软件大公开
  10. c语言生成 pdf文件,使用PDFLib生成PDF文档(C语言版)--使用指导
  11. 数学建模的13种常用的方法
  12. 指纹机和计算机无法连接,指纹考勤系统常见问题及解决办法
  13. 飞思卡尔单片机c语言编程详解,主流16位单片机学习详解:飞思卡尔MC9S12G系列...
  14. IntelliJ IDEA插件开发教程
  15. java选课系统代码_ssm+jsp开发java学生信息与选课系统(优化界面)
  16. 【UVA】1586 Molar mass
  17. 医学影像研究的重要性 计算机,计算机辅助医学影像诊查之关键学习技术研究.doc...
  18. 没有标准答案的GIS问题
  19. 喝豆浆对身体都有哪些好处?
  20. 「重磅」微信小程序再也不能打开APP了

热门文章

  1. 管理数据,应用程序和主机安全-A
  2. 关于陀螺仪 deviceorientation
  3. LR 监控mysql
  4. 基于柯西矩阵的Erasure Code技术详解
  5. 《神经网络》学习笔记
  6. Q104:怎么用ray tracing画基于磨边楔形的“花环(Rosette)”
  7. Q93:PLY文件对应图形法向量反向问题——以bunny10K为例
  8. C++算法学习(力扣:859. 亲密字符串)
  9. mybatis collection标签_MyBatis第二天(结果映射+动态sql+关联查询)
  10. 卫星轨道的估计问题(Matlab)(三):标准重采样粒子滤波(SIR)对新问题的尝试