SDNLAB技术分享(十一):VXLAN基础知识

之前Arista在欧洲阶段性的有ATF的类似技术论坛的会议, ARISTA TECHNICAL FORUM, 后来到了美国和APAC, 名字改了, 改为CLOUD BUILDER, 今年AMERICAS TEAM才正式开始搞, 从NYC开始, 到亚特兰大, 再到WASHINGTON DC,这些TOPIC和PPT都是总部批准过, 可以公开的.

本次分享主要就讲讲VXLAN基础知识, 包括VXLAN BRIDGING和VXLAN ROUTING, 另外再推点儿私货(无耻脸….)

网络架构方面, 其实相对简单, 业界认可了L3 LEAF SPINE用IP CLOS FABRIC的设计, 基本上把二层流量限制在同一RACK内部,spine leaf之间的协议是跑EBGP,然后拿VXLAN BRIDGING打二层的洞, 主要是VXLAN/VLAN SCALABILITY, 兼顾VM的move。

CVX应该属于厂家私有解决方案, 拿ARISTA EOS其中CVX软件做CONTROLLER(拿个VM装vEOS也行), 可以做VXLAN的MAC地址搬运, 集中管理, 状态维护, 与NSX和NUAGE可以联动, 还有OPENSTACK, 用ML2插件就行.目的是统一的, 就是维护MAC, VNI, HW VTEP这些的状态信息。

无控制器的解决方案呢, 基础架构就用VXLAN OVER IP CLOS FABRIC, 多宿主, 私有云和管理服务, 然后控制平面MAC学习是CVX(私有控制器解决方案), 或HER或普通IP组播, EVPN方案在做, 但是说实话, 比起JUNIPER的EVPN解决方案, 时间上比较靠后.

以前, 早先是IP MCAST实现MAC地址和FRAME FLOODING功能, 说白了VTEP和一个IP组播组关联/VNI, 然后BUM都通过IP MCAST方式转发, 这个是支持第三方VTEP的. 后来, 简单的做法, HER, HEADEND REPLICATION, BUM直接复制到REMOTE VTEP, 复制在INGRESS VTEP进行, 这个看起来很DUMB其实是最有效的, 就是得手工指定REMOTE VTEP FLOOD LIST. AGAIN, 这个是最有效率的, 也是现行的方法(你能有几个REMOTE VTEP需要FLOOD? 再大的DC, REMOTE VTP也最多不超过三四个)

VXLAN BRIDGING,二层跨三层路由网络, 允许端到端的LAYER 2 CONNECTIVITY

这是ARISTA的MLAG解决方案, 思科叫VPC, JUNIPER叫MCLAG, 是第一跳接入的 ACTIVE ACTIVE和冗余解决方案

简单说一下映射, 这个目前根据需求, 最普通的是一对一映射, 一个VLAN对应一个VNI, 这个映射只本地配置有效, VLAN ID是带不过去VXLAN tunnel的, 这里有个灵活性就是VLAN翻译, 本地VLAN 200可以翻译到对端VLAN ID 300, 但VNI必须一致, 这个是REQUIRED,对QINQ, 也就是VLAN STACKING, ARISTA目前操作的是外部S-TAG到VNI的映射,内部C-TAG直接是多个C-TAG放一个VNI里.

实际应用就是单一的VXLAN P2P LINK可以把你指定的多个CUSTOMER VLAN都发过去.再一个, 就是再加上INGRESS PORT, 这个容易, 不说了, 好处就是单一VTEP里冲突的VLAN可以映射到多个不同的VNI里

L2相关控制平面的协议也就是STP, BPDU是不带过去的. 所以, 每个VTEP的本地端口其实创建了多个STP DOMAIN, 这个没办法. 话说您都跨越L3 DOMAIN了耶 , 还非要放一个L2 STP DOMAIN干嘛.

QoS, 目前是对OUTER FRAME的DSCP VALUE/802.1P进行操作, rewrite只作用于INNER FRAME

TC-MAP是从OUTER FRAME的COS SETTING里得来的.

QoS本身就是比较乱, 再有就是各家实现方法各有千秋, 没必要细讲. 比如思科自己家设备自己家SE都搞不清楚, 某款设备多种板卡QOS啊队列啊, 都不一致. 所以, 多说无益.

跨地理位置DC互联, VM MOBILITY, 大嘟嘟老说没需求, 其实我看到的, 至少在美国东部投行, 还是真的很多的. Morgan Stanley, Goldman Sachs, Citi, Wells Fargo, Capital One甚至Fannie Mae, Freddi Mac都很多这种应用, 已经成为Data Center OPS engineer的日常.

第二类应用, 就是LEAF SPINE里的一种二层服务, 就好比EVPN或者VPLS似的,说白了不管你物理位置在哪儿, 都能提供一个逻辑上的多级网络,这个和早年JUNIPER提出的LSYS,LR组建分离式网络的概念, 从某种角度来讲有异曲同工之妙.说白了, 拿VNI当虚拟链路标识符来搞,反正一千六百万呢, 多的是VNI

下面说说VXLAN ROUTING, 这东西吧其实跟VLAN ROUTING没区别, 就看你是直接模式, 还是间接模式

概念性的东西, 大概来一把,你先在跑VXLAN的设备上起个SVI, 其实是多个SVI, 然后你VXLAN不就终结在这个VTEP上吗, 就是多个VLAN 路由/VXLAN 路由......另外即使本地主机是直接物理连接, 也得支持VXLAN ROUTING (感觉这句是废话, 你网段都不一样, 肯定要路由的啊)

你本地指向一个L3 GW, 做了SVI, 然后远程一台主机只想一个L3 GW, 指向的是本地的L3 GW(对远程主机来说, 本地的L3 GW=远程的L3 GW), 然后你还是得在一台VTEP设备上跑俩SVI, 保证网关都指对了, 就好做路由了.

原理自己看图, 我倒是觉得搞清楚什么时候启用路由更重要(destination mac = local L3 GW interface mac)

设备弱相关, 这里涉及到RECIRCULATION, 我澄清一下, ARISTA所有设备包括T2平台, 都支持VXLAN ROUTING

原理我大概说一下: 1, 路由查找, 需要过一次ASIC; 2, VXLAN封装, 需要过一次ASIC; 3, VXLAN解封装, 需要过一次ASIC

大伙儿再看一下我上面3个图, 每个图分别对应一种情况:

✔ 第一种,要做路由, 然后路由完了做VXLAN 封装,(这里, 默认是过一次ASIC, 要么VXLAN封装或解封装, 要么路由), 如果说到RECIRCULATION那么最少是过两次ASIC.

✔ 第二种, 远程主机先路由到本地主机, VTEP是远程主机的L3 GW, 这里, 先得解封装VXLAN , 然后做路由

✔ 第三种, 比较复杂, 两头都是VNI的情况, 都得先VXLAN解封装(完后还得再次封装, 卧槽有毛病啊, 本地做路由能死啊???!!!) , 然后路由, 然后再做VXLAN封装...

设备强相关, 个别平台如果需要做ALL PORTS Linerate VXLAN ROUTING的话, 需要DISABLE某些端口.

设备强相关.

这个图比较乱, 我慢慢说,LEAF NODE通过MLAG执行本地的冗余接入功能, 用VARP(类似思科GLBP的双ACTIVE, 比HSRP, VRRP要好)提供L3 REDUNDANCY. DC核心的交换机呢, SPINE LAYER, 也起个VLAN , 也起个SVI, 然后VTEP(就是LEAF) 直接VXLAN BRIDGING(VXLAN SWITCHING) 到DC CORE, 说白了就是打一个二层通道到DC CORE让DC CORE做VXLAN ROUTING , 这是DIRECT ROUTING MODEL, 直接路由模式.对某一个VNI, 一台LEAF和一台DC CORE(spine)特意给这个或多个主机开一个透明二层通道.把Ethernet frame放过去, 然后在SPINE上做路由

好坏分析, UNDERLAY OVERLAY分的层次清晰,VXLAN ROUTING在第一跳(for inter-rack routed traffic),缺点就是SPINE和LEAF都得配SVI(我个人挺烦这个的) , 完后LEAF上整出一堆ARP。

间接路由模式,LEAF NODE配一部分SVI, 共享VNI, 然后跑IGP,这个VNI就是专门打通本地多个VLAN和外部connectivity的,然后, SPINE也就是DC CORE, 只配与SHARE VNI对应的VLAN的SVI接口.

好坏分析, 最烦suboptimal routing,好处就是通过这个VNI保证了南北向的对称路由. 对了我说的次优路径指的是tenant之间的.

最后一张图, 本来是DEMO的一部分, 就当个小CASE, 不太熟悉的童鞋, 自己过一下PACKET FLOW流程吧.

原文发布于微信公众号 - SDNLAB(SDNLAB)

原文发表时间:2016-07-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程一生

架构师之路--从业务角度谈缓存的选型

1875
来自专栏Android自学

我是一个线程

1456
来自专栏Web 开发

我也来刷到CM7.1

2011年10月10日,著名的的Android第三方ROM团队CyanogenMod发布了最新的稳定版CM7.1,同时提供大量机型的支持~

810
来自专栏猿湿Xoong

怎么用TWRP刷LineageOS拯救我的Android手机?

8064
来自专栏机器人网

国外DIY牛人教你做Wifi机器人(最全教程)

一、前言 Wifi机器人(Wifi Robot):其实是一辆能通过互联网,或500米以外的笔记本无线设施来远程控制的遥控汽车。由于在车上配备了一个网络摄像...

3225
来自专栏程序人生

从 gitlab 事件中吸取的教训

题注:这是一篇去年的文章,今早看到 gitlab 运维人员愚蠢地 rm -rf, 心有戚戚焉,故而重发这篇文章,供大家参考。 ---- 这两天不是很太平,程序圆...

38510
来自专栏FreeBuf

走进计算机取证分析的神秘世界

1. 介绍 计算机技术是人们生活的重要组成部分,而且它正在迅速增长,同样发生在计算机犯罪方面,如金融诈骗,非法入侵,身份盗窃和盗窃知识产权。为了对付这些计算机...

33310
来自专栏闰土大叔

代码里注释写太多,会挨打吗?

前几天,有个同行朋友在我的微信上留言,问我项目代码里注释写太多会挨打吗?顺手还给我甩了一张截图,上面密密麻麻的全是手工注释。

4504
来自专栏FreeBuf

一系列用于Fuzzing学习的资源汇总

本文主要是向大家推荐一系列,用于fuzzing和Exploit开发初始阶段学习的资源合集,其中将包括相关的书籍,课程 - 免费或收费的,视频,工具,教程,以及一...

3062
来自专栏Sorrower的专栏

Mac怎么用, 写在升级Mojave前

3853

扫码关注云+社区

领取腾讯云代金券