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

举报
Tom forever 发表于 2019/12/13 14:38:49 2019/12/13
【摘要】 在之前我们讨论了SDN Overlay 网络中5个不同场景下虚机数据包如何转发,今天我们将继续讨论处于Overlay网络中的虚机如何与物理机进行数据转发。有关于微软网络虚拟化HNV的相关概念,如RDID、VSID、虚机网络、虚拟子网、默认网关等,可以参考:1. http://www.epubit.com.cn/article/988(网络虚拟化HNV Overlay子网和分布式路由 )2. ...

在之前我们讨论了SDN Overlay 网络中5个不同场景下虚机数据包如何转发,今天我们将继续讨论处于Overlay网络中的虚机如何与物理机进行数据转发。有关于微软网络虚拟化HNV的相关概念,如RDID、VSID、虚机网络、虚拟子网、默认网关等,可以参考

1. http://www.epubit.com.cn/article/988(网络虚拟化HNV Overlay子网和分布式路由 )

2. http://www.epubit.com.cn/article/1021 (微软软件定义网络HNV Overlay网络PA和CA地址 )


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


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

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

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


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


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


17106e69db9054adce7c

图1


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通信时,数据流是怎样的呢,下面我们对这一场景的数据流进行详细的描述:


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

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

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

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

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

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

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

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

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

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,如图2绿色部分所示。

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

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

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

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

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

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

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

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




本文转载自异步社区。

文链接:hhttps://www.epubit.com/articleDetails?id=NC7E3EF95463000018976FE6019E9DAA0


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200