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

编者的话】文系SDN撕X群(微信群,群主大猫猫)分享整理而成,分享者大猫猫分享的是VXLAN基础知识包括VXLAN BRIDGING和VXLAN ROUTING。

分享嘉宾
--------------------------------------------------------------------------------------------------
嘉宾:大猫猫,TAC和SE都做过,纯网工。
--------------------------------------------------------------------------------------------------
分享正文
本次分享主要就讲讲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流程吧.

--------------------------------------------------------------------------
SDN撕X群由Arista服务工程师大猫猫建立,群内汇集了一大批网工和SDN从业者,群内不定期有技术分享,感兴趣加微信号wx928579866 ,或者tangahr邀请入群, 暗号是:SDN撕逼群。围观SDNers V.S. Networkers请一定加此群。


  • 本站原创文章仅代表作者观点,不代表SDNLAB立场。所有原创内容版权均属SDNLAB,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用,转载须注明来自 SDNLAB并附上本文链接。 本站中所有编译类文章仅用于学习和交流目的,编译工作遵照 CC 协议,如果有侵犯到您权益的地方,请及时联系我们。
  • 本文链接https://www.sdnlab.com/16829.html
分享到:
相关文章
条评论

登录后才可以评论

SDNLAB君 发表于16-05-17
2