L3 VNI

WHY

前几天哥们在看VxLAN,看到L3 VNI感觉很疑惑,就问:为什么需要L3 VNI?

这个问题在我17年学习VxLAN时也同样疑惑了很久,对着CiscoLive上的文档看了半天没看明白,同时当时没看明白的还有对称、非对称IRB(Integrated Routing and Bridge)。

正好前段时间搭建cloudcampus环境,园区网部分用到的就是VxLAN,在环境搭建中又重新研究了一遍VxLAN,发现回到二三层转发的本质看VxLAN的转发,当时困惑的问题就很清晰了。

(题外话:H记的方向是数据中心交换机支持VxLAN,但是园区网主推的解决方案中没有涉及到VxLAN,但是很多其他厂家的智慧园区网解决方案中都上了VxLAN,为了对标解决方案,只能在园区网交换机上新开发了VxLAN功能。H记园区网交换机、数据中心交换机特性差距还是很大,不同的研发团队,想想也是蛮有趣,不过还是要感谢这个“强行的”上的特性,不然我也没机会实际环境中搞一搞VxLAN)。

传统VLAN三层转发

VxLAN我们叫做MAC in UDP,本质还是基于MAC的转发,只是转发的接口从交换机的物理接口变成了VxLAN Tunnel的接口,所以如果只是二层转发的VxLAN从转发平面原理上来看,和传统二层交换机转发没多大区别(VxLAN二层转发也不涉及到L3 VNI)。

区别就在于三层转发时,VxLAN多了一个分布式网关,这和传统的交换机VLANIF(SVI)接口三层转发就存在一些区别了,不过本质还是有很多相同点,所以先回顾下交换机使用VLANIF(SVI)接口的细节。

VLANIF实现VLAN间通信


以上面最简单的topo为例:

host1、host2分别连接在交换机的VLAN 10、VLAN 20接口上,交换机创建VLANIF10 20接口作为VLAN 10、VLAN 20的网关(这里假设VLANIF的MAC都为MAC2,实际中有些厂家交换机VLANIF接口MAC地址并不一致,比如C记就有一段bridge MAC的概念,每个VLANIF接口的MAC地址都不一致)。

这里ARP学习过程就不展开,直接讲转发过程,Host 1与Host 2如何进行三层通信。

1.Host1想要给Host2发送报文,通过对比目的IP与自身的接口掩码,发现并非与自己同网段的IP地址,需要进行三层转发。根据本地的路由表查找路由,对于windows主机配置网关其实就是生成一条默认路由,下一跳地址就是网关。此时主机查找路由表匹配中默认路由,将报文交给网关。此时报文源MAC:MAC1,目的MAC:MAC2。

2. 交换机收到报文之后,目的MAC为本地VLANIF的MAC地址,二层转发模块交给三层转发模块处理,VLANIF 20解析查看目的IP地址为10.1.2.1,非本接口IP地址,查找IP路由表,此时将会匹配到由VLANIF 20生成的直连路由,交给VLANIF 20处理。

3. VLANIF 20此时将会查找ARP表项,找到10.1.2.1的MAC地址,生成数据帧:源MAC为自身接口MAC地址(MAC2,虽然看起来没变化,但是如果是路由器三层接口转发或者C记的SVI接口MAC地址不一样,此时就可以看到三层转发的源MAC地址变化了),目的MAC:MAC3。生成的二层数据帧交给二层转发模块处理,二层模块根据MAC地址表,从对应接口转发出去,到此数据包才到达了Host2。

2、3步骤图解

以上过程的重点内容:

1.  VLANIF 10三层查找路由表,交由VLANIF 20

2. VLANIF 20查找ARP之后二层查找MAC地址表

3. 源目MAC的替换

下面的VxLAN转发过程这些内容非常类似。

VxLAN三层转发

在上面的过程中跨网段转发是在交换机内部的VLANIF中执行三层转发的,对比来看下VxLAN的三层转发,很多场景下VxLAN的VNI就是由VLAN  Tag映射而来,把VxLAN的三层转发对比看做VLAN之间的三层转发,此时去看VxLAN集中式网关是不是觉得很类似,只是VLAN ID变成了VNI,VLANIF变成了VBDIF。

集中式网关

上面的topo中Host1、Host2分别属于VLAN 10、VLAN 20,在进入VxLAN中时被映射到VNI 100、200,网关分别为VBDIF 10、VBDIF 20。

上面的topo为例VxLAN网络中Host 1访问Host 2的跨三层转发:

1.Host1访问Host2的报文发送到网关(源MAC:MAC1,目的MAC:MAC2),报文经由非VxLAN交换机到达VTEP2,查找MAC地址表,加上VxLAN头部封装通过VxLAN Tunnel发送给VTEP1。

2. VTEP1收到之后查看外层目的MAC、目的IP,去除外层封装将内层报文本地解析交给VxLAN模块处理,内部报文目的MAC为MAC2,也就是VBDIF接口MAC,查看内层目的IP,非本接口IP,此时需要查找VxLAN三层转发表项,发现需要交由VBDIF20处理。VBDIF20收到之后查找ARP表项,生成二层数据帧,此时源MAC:MAC3,目的MAC:MAC4。查找二层转发表项,发现需要通过VxLAN Tunnel交由VTEP3,加上VxLAN头部发送给VTEP3。

3.VTEP3去除外部封装之后,查看目的MAC,交由下层非VxLAN交换机转发,经由下游交换机最终转发到Host2。

2、3步骤图解

还是看转发过程中重点内容:

1.VBDIF 10三层转发查找路由表把处理过程交给了VBDIF 20

2.VBDIF 20查找ARP之后查找二层表项,发现出接口为VxLAN Tunnel,交给VTEP 3,此时为二层转发

3. VTEP 3将报文从VxLAN域内转到了非VxLAN域。

分布式网关三层转发

只是看集中式网关,VxLAN的三层转发和VLAN间三层转发很类似,但是如果是分布式网关呢?

分布式网关

以上面的拓扑为例,VTEP1 VTEP2都是分布式网关,都存在VBDIF10、VBDIF 20。

那问题就来了:

Host1访问Host2时VBDIF10三层转发查找路由表,把报文交给VBDIF20,由哪台设备上的VBDIF 20执行二层转发查找Host2的MAC呢?

试想一下可能的方式:

1. VTEP1上,VBDIF 10三层转发交给VBDIF 20,VBDIF 20查找ARP、二层查找MAC表项,之后发送给VTEP2,此时已经属于二层转发过程,VTEP 2收到之后执行二层转发。

也就是说VTEP1上发送给VTEP2的内层报文目的MAC已经替换为Host2的MAC地址:MAC4,并且此时VNI已经为Host 2所属VNI。


VTEP1上执行二层转发

2. VTEP2上,VTEP1上的VBDIF 10三层转发通过VxLAN Tunnel把报文交给VTEP2的VBDIF 20,VTEP2上VBDIF 20执行二层转发过程。

也就说VTEP1上发送给VTEP2的内层报文目的MAC不是Host2的MAC地址,而是VBDIF20的MAC地址:MAC3(三层转发匹配主机路由时为什么内层目的MAC是MAC3大家自己感兴趣可以深入研究)。 此时的VNI其实就是L3 VNI,作用可以自行先想下。


VTEP 2上执行二层转发

再深入想一下,方式1和方式2 中VTEP 1的处理有什么区别:

1. VTEP 1上的VBDIF 20执行二层查找、转发,那就意味着:

    a) VTEP 1上需要创建整网所有VNI的分布式网关:即便VTEP 1下面并没有VNI 200那也得创建VBDIF 20。

    b)VTEP1拥有VNI 200所属广播域的ARP表项,这样才能知道二层转发时扔给哪个VTEP。

2. VTEP 2上不执行VBDIF 20执行二层查找、转发:

    a)VTEP1不需要创建整网所有VNI的分布式网关,它不需要其他的VBDIF用于执行二层转发。

    b)VTEP 1上拥有Host2的路由表项就可以,VTEP1知道扔给VTEP 2就可以,二层查找交由VTEP 2上的VBDIF 20执行。

对称IRB和非对称IRB

实际上第一种方式就是非对称IRB,第二种方式就是对称IRB。

仔细想一下第2种方式时Host 1和Host 2相互访问时VTEP1 VTEP2之间传输的内层报文的源目MAC是不是互反的(VBDIF 10、VBDIF 20的MAC)。

第1种方式Host 1访问Host 2时源MAC为MAC3(VBDIF 20),目的MAC为MAC4(Host2)。而Host 2访问Host 1时源MAC为MAC 2(VBDIF 10),目的MAC为MAC1(Host)。来回报文源目MAC并不对称,所以称为非对称式(未标注VNI)。

非对称IRB

第2种方式Host 1、Host 2之间互访来回内层报文源目MAC都是VBDIF 10、VBDIF 20,所以被称为对称式IRB(未标注VNI)。

对称IRB

回归正题- L3 VNI

为什么需要L3 VNI?

非对称IRB转发时从VTEP到另外一个VTEP此时已经为二层转发,VxLAN头部中的VNI已经为目的主机所属VNI(上面的图并没有标出)。

对称式IRB转发这个VNI应该是什么?目的主机所属的VNI吗?

那就是非对称IRB了。

那应该是什么?

标记交给哪个VBDIF处理的VNI。

对称式IRB转发时VTEP对于接收到的报文需要判断内层报文应该交给哪个VBDIF去处理,这个判断依据就是L3 VNI,间接关联在VBDIF下的VNI。

ipvpn-instance vpn1

 ipv4-family

 route-distinguisher 2:100

  vpn-target 1:100export-extcommunity evpn

  vpn-target 1:100import-extcommunity evpn

 vxlan vni 100     //三层VNI

interface Vbdif10

 mac-address0000-5e00-0101

 ip binding vpn-instance vpn1

 arp collect hostenable

 arpdistribute-gateway enable

 ip address192.168.10.1 255.255.255.0

总结

实际中L3 VNI的作用并不只是上面说的那么简单:判断交给VBDIF处理。

和传统的ip vpn-instance一样,在控制平面BGP EVPN中,还可以控制路由的学习。

同时很多细节也没有展开,如对称IRB转发时,从VTEP 1到VTEP 2匹配中主机路由,内层报文目的MAC是MAC3,为什么是MAC3?这个MAC3实际上是BGP EVPN通过Type2 IRB类型路由传递主机路由时携带的MAC地址,同时L3 VNI也是通过该方式携带,这里只是为了从转发的角度结合传统的VLAN之间三层转发,方便大家理解。

最后,二、三层转发基础很重要(任何基础都挺重要),扎实的基础、研究过MPLS L3 VPN、L2 VPN再看VxLAN,相似的地方真多,理解起来真简单,interesting!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,529评论 5 475
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,015评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,409评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,385评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,387评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,466评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,880评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,528评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,727评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,528评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,602评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,302评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,873评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,890评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,132评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,777评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,310评论 2 342

推荐阅读更多精彩内容

  • Chapter 1 - VXLAN简介 随着网络技术的发展,云计算凭借其在系统利用率高、人力/管理成本低、灵活性/...
    武汉中继者阅读 9,561评论 0 5
  • 本篇文章主要介绍了"VXLAN, 一种叠加在L3网络上的L2网络 ",主要涉及到VXLAN, 一种叠加在L3网络上...
    ximitc阅读 3,116评论 0 7
  • 1. vxlan 简介 VXLAN 全称是Virtual eXtensible Local Area Networ...
    杀破魂阅读 8,508评论 0 20
  • 今天大概算是过去了,没有特别的,没有什么值得开心的事,也没有什么有意义的事,只是,今天和昨天不一样,昨天和前天不一...
    容阙阅读 167评论 0 1
  • 被猫团团围住的小老鼠,从他们的底下给钻了过去,然后又有很多很多的猫来抓他,结果他跑到了一只猫的房子里,老鼠...
    冯李卓阅读 107评论 1 0