文档章节

数据中心网络(1)-VXLAN

o
 osc_a22drz29
发布于 2019/03/27 22:37
字数 2018
阅读 11
收藏 0

想写个DC系列的文章,站在传统路由交换网络基础上谈谈数据中心网络,一方面是给自己的学习做下总结,另一方面也想分享一些东西。

谈到数据中心网络,能想到的东西无非就VXLAN、SDN、NFV、EVPN这些概念。先从基础协议开始再谈整体架构,才疏学浅,有不对的地方请评论告知。首先针对性地抛出几个问题:

1、为什么用VXLAN?使用场景有哪些?

    在传统网络中分二层三层。随着云计算的普及,云主机无缝迁移的需求成了常态。为解决云主机跨三层网络的迁移,并且要满足迁移后云内网络架构包括云主机IP地址不能发生改变的要求孕育了大二层技术。要实现跨三层的二层网络通信实际上就要用到隧道技术。隧道技术的解决方案也有很多,其中包括本文要讲的VXLAN,还有NVGRE、STT、TRILL、VPLS等。NVGRE是由微软提出的,只支持服务器使用。STT是Nicira这家公司提出的,Nicira已经被VMWARE收购,STT也不支持交换机使用。提到Nicira,除了STT最大的成就就是开发了Open vSwitch和Neutron(Openstack的网络组件),而TRILL和VPLS仅仅交换机支持。所以用VXLAN解决大二层问题最为合理,而且还符合IETF标准。

    很多人在刚接触云平台架构的时候会有个疑问,拿Openstack举例来说,在Neutron组件中可以启用VXLAN,那这里与交换机的VXLAN有什么关系?前面说到VXLAN是通用协议,可以在网络设备上使用,也可以在服务器上使用。先假设这个世界还没有Openstack等云架构,那么一台虚拟机要实现大二层迁移,怎么办?这个时候VXLAN是做在上层交换设备上。那么Neutron组建的VXLAN功能有什么用?有些云网络中,可以借助Neutron的VXLAN功能实现大二层需求满足云主机迁移和互访,然后用另一张网卡实现互联网的访问,如图1。阿里云飞天架构大二层网络也是用VXLAN实现,封装与解封装均在服务器侧,不同的是出公网的方式采用的是在一台服务器解封装后做了NAT转换的形式。

图1 Openstack VXLAN网络

    实际上一般较大型的数据中心架构,云主机依靠VLAN进行隔离,不,准确的来说是租户标识。拿Openstack来说,Neutron使用了VLAN功能,而上千个VLAN号对应租户量已经足够使用。云主机带着VLAN TAG出来后,再由交换机根据不同的VLAN TAG进行VXLAN封装隧道来实现大二层,如图2。这里专门映射VXLAN和VLAN的对应关系称为桥接域。拿国产设备来说,叫bridge-domain。租户的隔离则是通过路由标识来实现。

图2 交换机实现大二层网络    

     在谈到什么时候用VXLAN的时候,从云计算角度出发,以上举的例子都是IAAS层面的情景,还有PAAS层面的。例如容器编排调度工具kubernetes,有几套网络模型用来实现容器之间的互相通信,我们称为CNI(container network interface),包括Flannel、Calico、macvlan、OpenvSwitch等,其中Flannel网络模型就是用VXLAN来实现不同容器在宿主机的隧道模式通信的。

2、VXLAN报文格式

    VXLAN数据包也可以称为MACINUDP数据包,原本数据链路层允许的最大以太网数据包长度是1500字节,然而数据包经过VTEP(VXLAN的隧道端点)封装后数据包会增加50字节,数据包格式如图3。那么VXLAN报文长度最大达到了1550,现在有些VTEP在处理VXLAN报文的时候并不接受分片,这就需要配置设备MTU1550了。

图3 VXLAN报文

   报文的详细分解可以看图4,所以VXLAN是使用UDP封装在了传输层,目标端口是4789,源端口是随机的,根据源MAC地址进行HASH产生。至于为什么源端口随机,有一个很大的好处就是可以实现ECMP,如果源端口一成不变将导致网络只走一条路。而用来封装数据包的三层IP地址一般是设备的环回口地址,至于环回口地址的发布用OSPF、ISIS、BGP都可以,只要满足三层互通就可以。

图4 VXLAN报文分解

3、怎么配?

列举了一个VTEP端的华为配置,基本上看到配置就明白什么意思了,另一端配置同理。

SW1:
interface nve1(NVE是实现网络虚拟化的设备,也就是隧道的端点)
  source 2.2.2.2(vxlan隧道封装的源点,loopback地址,事先得做三层互通)
  vni 5010 head-end peer-list 3.3.3.3(5010是vni号,也就是vxlan隧道编号,3.3.3.3是对端loopback)
 
bridge-domain 10(VLAN和VXLAN之间的联系,用BD来做,也就是称为桥接域,这里的10只是本地有效,并不是VLAN)
  vxlan vni 5010(对应的vxlan隧道是5010)
 
interface 10GE1/0/3
  port link-type trunk
  port trunk allow vlan 1-9,11-100(这里就不能写10了,10要写在单独的子口里,access的就用pvid来做咯)
 
interface 10GE1/0/3.1 mode l2(二层端口vlan10划入DB10里)
  encapsulation dot1q vid 10
  bridge-domain 10

 4、EVPN是什么?和VXLAN是什么关系?

    EVPN要讲的东西很多,会专门用一章来讲,至于为什么要用,这里先说下VXLAN的广播泛洪问题。首先介绍下BUM报文,BUM即broadcast unicast multicast,数据包在发送到一个VTEP端的时候会进行头端复制,怎么理解头端复制呢?其实有点类似二层广播泛洪,一个数据包到了VTEP以后,VTEP设备根据VLAN信息找到了对应的二层广播域,前面看配置知道,有了二层广播域以后,对应的VNI编号也知道了,也就是知道了所有隧道列表,然后会把数据包进行报文复制,然后进行VXLAN封装转发到对端的多个VTEP上。对端VTEP收到报文后对VNI等信息核对,核对完后解封装。解封装后进行广播处理。数据中心网络中,特别是云平台网络中,终端数量是成百上千的,每个终端都发起一个ARP请求,每个请求都进行一次头端复制那是很不合理的呀,由此就引入了ARP抑制。

    ARP抑制是一种优化机制,由于VXLAN的引入,就有了二层网关的说法,在二层网关上会存在一个IP和MAC对应关系的表,称为ARP抑制表。当二层ARP请求发起的时候,会查找目标MAC地址有没有在这个ARP抑制表里,如果有,目标泛洪广播帧中FFFFFFFF会就改成实际目标MAC地址,变成一个单播帧。而有些网络设备,比如思科的做法是代答的方式,当发现抑制表里有,就直接由二层代答,不进行头端复制泛洪。那么问题来了,ARP抑制表怎么来的?综上所述,VXLAN是没有控制平面的,所有转发都是通过泛洪获得转发信息,那么二层路由信息的获取,用来找到对应的VTEP来避免泛洪,实现VXLAN的控制层面,就要借助EVPN了。EVPN依靠BGP扩展团体属性,用于控制IP地址和MAC的路由信息的发布与接收。EVPN的更多技术细节包括与VXLAN的配合使用在第二章分享。而在第三章中分享的是Data Center Interconnection的实现。

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

在云函数 SCF 里为 Next.js 跑 SSR

很多时候我们都希望首屏速度快,SEO 友好,那么相比于客户端渲染,SSR 渲染将是这方面的优势。Next.js、Nuxt.js 都是 SSR 框架。本篇文章将介绍 Next.js。 通常我们在部署 SSR 的时候,会担心...

腾讯云Serverless
56分钟前
19
0
一文带你初窥软件测试行业

三大原始问题一——软件测试是什么? 在一定条件下对软件系统进行审核、运行、评估,检验软件系统是否满足规定需求或者找出预期结果与实际结果之间的差别。为软件产品的质量和评价提供依据。...

a伟正是在下
今天
17
0
如何避免APK文件的反向工程? - How to avoid reverse engineering of an APK file?

问题: I am developing a payment processing app for Android, and I want to prevent a hacker from accessing any resources, assets or source code from the APK file. 我正在开发适用......

富含淀粉
今天
13
0
python 抓取 微信公众号文章

1、下载 Fiddler 安装 具体操作传送门 2、第一步已完成,入门开始吧 首先确保有微信客户端(推荐PC,移动端会多一些操作) 启动微信、Fiddler ,然后找到需要抓取的公众号(还是关注一下吧,...

acclea
今天
9
0
JS深拷贝

let arr1 = [1, 2, 3, 4, { name: 'hh'}]/浅克隆****/// 1,展开运算符let arr2 = [...arr1]// 2.splicelet arr3 = arr1.splice(0)/深克隆****/// 1.基...

何祯粮
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部