VxLAN

简单的说,vxlan就是一种封装方式,在本端将二层数据帧封装后,通过ip/ipv6网络传输到目的端,目的端解封装后,再将二层数据帧根据目的mac从相应端口转发出去,被视为l2vpn的一种

一、VxLAN与其他L2VPN区别

使用gre隧道承载二层数据帧

使用vxlan隧道承载二层数据帧

 

 使用lsp隧道或者TE隧道承载二层数据帧

Label1:使标签报文在骨干网中,从PE1传输到PE2或者从PE2传输到PE1(lsp隧道使用LDP协议根据路由表生成和映射-label1也称为公网标签)
Label2:根据标签找到相应的MAC表,根据MAC表找到出接口,将二层帧转发出去(各个PE生成label后,使用LDP或者bgp将此标签映射给对端PE.当对端PE给本端PE发送数据时,需要在数据帧前打上本端映射给对端的的标签。label2也称为私网标签)

二、VxLAN报文格式

根据原始报文中IP协议和外层IP协议的不同,可以分为以下四种:
IPv4 over IPv4


IPv6 over IPv4 


IPv4 over IPv6


IPv6 over IPv6

 本文主要介绍IPv4 over IPv4

 三、VxLAN隧道的建立方式

 host1与host3同属于一个子网,且需要相互通信,R1与R3之间需要建立vxlan隧道;

 host2与host4同属于一个子网,且需要相互通信,R2与R3之间需要建立vxlan隧道;

同子网之间通信不需要三层网关,不同子网之间通信需要经过三层网关。

host1访问host2就需经过三层网关的路由转发。

隧道建立的包括:

A、手动建立隧道

B、使用BGP EVPN协议动态建立隧道

 根据网关部署的不同方式,网关又分为:

A、静态集中式网关

B、BGP EVPN集中式网关

C、BGP EVPN分布式网关

 四、VxLAN网络分类

1、无三层网关(同子网之间相互通信)

 只有同子网之间主机通信,无跨子网通信,因此无需部署三层网关。

手动创建vxlan隧道。

2、集中式网关-静态方式

 既有同子网之间主机通信,又有跨子网主机之间的通信,网关部署在spine上。

手动创建vxlan隧道。

3、集中式网关-BGP EVPN方式

有同子网之间主机通信,又有跨子网主机之间的通信,网关部署在spine上

leaf之间、leaf与spine之间使用BGP EVPN协议动态建立vxlan隧道。

4、分布式网关-BGP EVPN方式

既有同子网之间主机通信,又有跨子网主机之间的通信,网关部署在leaf上

leaf之间使用BGP EVPN协议动态建立vxlan隧道。leaf与spine之间无需建立隧道,spine仅做普通的路由转发。

 五、VxLAN通信原理剖析

1、无三层网关

A、手工方式建立VxLAN隧道

R1:

int nve 1

   source 1.1.1.1---------------------------------------隧道的原端

   vni 10 head-end peer-list 3.3.3.3-------------隧道的目的端和该隧道承载的VNI

R2:

int nve 1

   source 2.2.2.2---------------------------------------隧道的原端

   vni 20 head-end peer-list 3.3.3.3-------------隧道的目的端和该隧道承载的VNI

R3:

int nve 1

   source 3.3.3.3---------------------------------------隧道的原端

   vni 10 head-end peer-list 1.1.1.1-------------隧道的目的端和该隧道承载的VNI

   vni 20 head-end peer-list 2.2.2.2-------------隧道的目的端和该隧道承载的VNI

B、原始报文的封装

 

 R1:

Int e0/0/0.10 mode l2 --------------连接VPN-A站点1的子接口,设定接口为二层子接口

     encapsulation dot1q vid 10----子接口封装类型(vid本地有效)

     rewrite pop single----------------去掉外层tag

     bridge-domain 10---------------绑定BD

bridge-domain 10

    vxlan vni 10

///R2R3类似

C、MAC地址学习-----换个网络结构来说明(同子网)

 

R2收到报文,不会向R3转发;R3收到❸报文,不会向R2转发,水平分割原则。R2R3解封报文后,根据VNI绑定的BD域,将报文在BD域内(vni 10)广播​​​

 

 

R2收到单播报文❶后根据MAC表,封装单播报文❶后生成单播报文❷
根据路由表,将报文❷转发给下一跳
R1收到报文❷后解封装得到报文❶,再根据自己的MAC表,将报文从port1转发出去 

 最后各R的mac表如下:

 D、已知单播报文转发流程-同子网 

 

 

 

 

  E、BUM(广播、未知单播、组播)报文转发流程-同子网  

 

 

接收报文❶的端口绑定了BD域,该域又绑定了VNI,R1根据VNI查找所有可能出口,如有多个出口,则将原始报文复制,封装再分别转发
R2 R3解封装后,在vni对应的BD域内广播发送报文❶
返回报文为单播报文,过程参考前面<<已知单播报文转发流程>> 

2、集中式网关

A、手工方式建立VxLAN隧道--------隧道建立过程上一节一样

B、原始报文的封装---------------------报文封装和上一节一样

C、MAC地址学习

同子网MAC地址学习和上一节一样

跨子网,主机只需要学习网关的mac:

 在R3上部署集中式网关:

int vbdif 10
Ip add 192.168.10.254 24
Int vbdif 20 
Ip add 1921.68.20.254 24

 

D、已知单播报文转发流程

同子网已知单播报文转发流程与上一节一样。

跨子网已知单播报文转发流程:以host1<----->host2为例

经过ARP学习后,网关R3上的路由表:

 host1->host2跨子网访问

 

  

 返回报文host2->host1 

 

 

BGP EVPN路由

EVPN通过扩展BGP协议新定义了几种BGPEVPN路由,这些BGPEVPN路由可以用于传递VTEP地址和主机信息,因此EVPN应用于VXLAN网络中,可以把原本依赖数据平面的VTEP发现和主机信息学习从数据平面转移到控制平面。

BGP EVPN路由之type2类型路由

 Type2路由MAC/IP路由VXLAN控制平面中的作用包括:

1、主机MAC地址通告

要实现同子网主机的二层互访,两端VTEP需要相互学习主机MAC。作为BGP EVPN对等体的VTEP之间通过交换MAC/IP路由,可以相互通告已经获取到的主机MAC

2、主机ARP通告

MAC/IP路由可以同时携带主机MAC地址+主机IP地址,因此该路由可以用来在网关设备之间传递主机ARP表项,实现主机ARP通告。此时的MAC/IP路由也称为ARP类型路由

3、主机IP路由通告

在分布式网关场景中,要实现跨子网主机的三层互访,网关设备需要互相学习主机IP路由。作为BGP EVPN对等体的VTEP之间通过交换MAC/IP路由,可以相互通告已经获取到的主机IP路由。同时MPLS Label2字段必须携带三层VNI。此时的MAC/IP路由也称为IRBIntegrated Routing and Bridge)类型路由

ARP类型路由携带的有效信息有:主机MAC地址+主机IP地址+二层VNIIRB类型路由携带的有效信息有:主机MAC地址+主机IP地址+二层VNI+三层VNI。因此,IRB类型路由包含着ARP类型路由,不仅可以用于主机IP路由通告,也能用于主机ARP通告

BGP EVPN路由之type3类型路由

 Type3路由Inclusive MulticastVXLAN控制平面中的作用包括:

该类型路由在VXLAN控制平面中主要用于VTEP的自动发现和VXLAN隧道的动态建立。作为BGP EVPN对等体的VTEP,通过Inclusive Multicast路由互相传递二层VNIVTEP IP地址信息。其中,Originating Router's IP Address字段为本端VTEP IP地址,MPLS Label字段为二层VNI。如果对端VTEP IP地址是三层路由可达的,则建立一条到对端的VXLAN隧道。同时,如果对端VNI与本端相同,则创建一个头端复制表,用于后续BUM报文转发。

BGP EVPN路由之type5类型路由

 Type5路由—IP前缀路由VXLAN控制平面中的作用包括:

该类型路由的IP Prefix LengthIP Prefix字段既可以携带主机IP地址,也可以携带网段地址

1.当携带主IP地址时,该类型路由在VXLAN控制平面中的作用与IRB类型路由是一样的,主要用于分布式网关场景中的主机IP路由通告

2.当携带网段地址时,通过传递该类型路由,可以实现VXLAN网络中的主机访问外部网络

 3、集中式网关-BGP EVPN方式

在vxlan中引入BGP EVPN作为控制平面,通过在VTEP之间交换BGP EVPN路由实现VTEP的自动发现、主机信息相互通告等,从而动态建立vxlan隧道。

控制平面的流程包括:

A、VxLAN隧道的建立:在两端VTEP之间建立BGP EVPN对等体,然后对等体之间利用BGP EVPN路由来互相传递VNIVTEP IP地址信息,从而实现动态建立VXLAN隧道(相互发送type3路由---evpn实例)

B、MAC地址学习:两端VTEP生成BGP EVPN路由并发送给对等体(相互发送type2路由)

数据平面的流程包括:

A、同子网已知单播报文转发

B、同子网BUM报文转发

C、跨子网报文转发

网关集中部署在spine上。

VXLAN隧道建立:

Aleafspine建立BGP EVPN对等体

BBGP EVPN对等体之间相互发送BGP EVPN路由

路由包含type3路由(含有VTEP IPVNI)、下一跳属性和export RT属性

C、对等体比较收到路由的 export RT值和自己的import RT值,相同则接收该路由,不相同则丢弃。

D对等体接收路由后,从中找出VTEP IP,如果到VTEP IP三层可达,即建立隧道。

E、根据VNI值,建立到对端的头端复制,用于BUN报文转发

MAC地址动态学习:

Aleaf生成主机的MAC表项,根据arp表项生成type2路由

BBGP EVPN对等体之间发送type2路由、下一跳和export RT属性

C、接收端对比export RT属性与本端的import RT属性,相同即接收该路由,否则丢弃

D、获取路由中的MAC地址和vni,在本地构建MAC表项,出接口为Vxlan

 

 数据平面的报文转发流程和上节静态集中式网关报文转发流程一样,可以参考上节。

4、分布式网关-BGP EVPN方式

 与集中式网关-BGP EVPN方式不同之处在于:网关部署在leaf上,而spine仅作为路由转发的一个节点。

控制平面的流程包括:

A、VxLAN隧道的建立

B、MAC地址学习

数据平面的流程包括:

A、同子网已知单播报文转发

B、同子网BUM报文转发

C、跨子网报文转发

VXLAN隧道建立:

在两端VTEP之间建立BGP EVPN对等体,然后对等体之间利用BGP EVPN路由来互相传递VNIVTEP IP地址信息,从而实现动态建立VXLAN隧道

子网互通-BGP EVPN对等体之间相互发送Inclusive Multicast路由(type3),获取vtep地址和vni,从而建立vxlan隧道。

子网互通-网关需要发布下属主机的IP路由,又分以下两种:

a.通过IRB类型路由发布主机IP路由-type2

     IRB类型路由只能发布32位主机IP路由

b.通过IP前缀类型路由发布主机IP路由-type5

    IP前缀类型路由既能发布32位主机IP路由又能发布网段路由。

MAC地址动态学习:

VTEP根据ARP项生成BGP EVPN路由并发送给对BGP EVPN等(相互发送type2路由)

 在vxlan环境中,不同子网之间通信,需要分别在两端vtep上创建l3vpn实例,设定RD值和RT值,两端建立BGP对等体,然后相互发生路由(连同三层vni一起发送。在MPLSVPN中是私网标签)

bgp对等体之间约定数据包的封装格式为vxlan(两端建立vxlan隧道)。

最终结果是:本端vtep有对端子网的路由,接受本端主机对对端子网的数据请求后,vxlan封装后发送给路由下一跳。对端收到数据包后,解封装,根据三层vni,查找l3vpn是实例对应的路由表,根据目的ip找mac地址,根据mac表从相应端口转发出去。

子网互通VxLAN隧道建立准备工作:

1leaf上分别创建l3VPN实例,设定RD值和RT

2、将L3VPN实例和BD域对应的接口(三层接口)绑定

3、设置 BD域对应的接口即三层网关的地址。

4leaf之间创建IBGP对等体,在l2vpn evpn地址族下使能对等体,使leaf之间能收发BGP evpn路由。

5 BGP MPLS/IP VPN中,PE对等体之间发送VPNv4路由时,还会发送私网标签。公网为LSP或者TE隧道。在VxLan中,leaf对等体之间相互通告使用VxLAN封装

6、既然是VxLAN封装,肯定要指定VNI。该值在第一步VPN实例中手工指定

7、创建EVPN实例,设置RDRT值,然后将该EVPN实例绑定到BD域上,同时启用水平分割

(VxLAN为点到多点结构,防止环路)

8、在leaf上设能分布式网关功能。

子网互通 VXLAN隧道建立方式一:通过IRB类型路由发布主机IP路由(type2)

1leaf1根据PC1BD域,找到三层网关绑定的vni,然后根据EVPN实例生成IRB型路由

(IRB类型路由携带的有效信息有:主机MAC地址+主机IP地址+二层VNI+三层VNI)

2leaf1leaf2发送BGP EVPN路由,包括IRB路由、下一跳、扩展团体属性和Export RT属性。扩展团体属性约定隧道为vxlan封装。

3leaf2收到路由后,做如下处理:

A Export RT值与本端EVPNimport RT值相同,则接收该路由。

      提取到其中包含的ARP类型路由,用于实现主机ARP通告。

B Export RT值与本l3VPNimport RT相同,则接收该路由。

      从中提取Host1的主机IP地址、三层VNI,在其路由表中保存Host1的主机IP路由

C、在通过EVPN实例或L3VPN实例接收该路由后,Leaf2通过下一跳属性获取Leaf1VTEP IP地址,如果该VTEP IP地址是三层路由可达的,建立一条到Leaf1VXLAN隧道

 子网互通 VXLAN隧道建立方式二:通过IP前缀类型路由发布主机IP路由(type5)

 

1leaf1上将Host1的主机IP地址生成直连路由,然后在leaf1 BGP l3vpn实例地址族下,import direct该直连路由.

2L3VPN实例下Host1的主机IP路由将发布给EVPN实例。然后由EVPN实例生成IP前缀类型路由

3Leaf1Leaf2发送BGP EVPN路由,该路由携带本端L3VPN实例的eERT扩展团体属性、路由下一跳属性以及IP前缀类型路由。其中,扩展团体属性携带的是隧道类型(取值是VXLAN隧道)、本端VTEPMAC地址;路由下一跳属性携带的是本端的VTEP IP地址

4Leaf2收到Leaf1发来的BGP EVPN路由后,进行如下处理

A、检查该路由携带的eERT,如果与本端L3VPN实例的elRT相同,则接收该路由,否则丢弃该路由。然后,L3VPN实例获取到该路由携带的IP前缀类型路由,从中提取Host1的主机IP地址、三层VNI,在其路由表中保存Host1的主机IP路由

B、在通过L3VPN实例接收该路由后,Leaf2通过下一跳属性获取Leaf1VTEP IP地址,如果该VTEP IP地址是三层路由可达的,则建立一条Leaf1VXLAN隧道。

 MAC地址动态学习:

同子网之间的mac地址学习与前面章节一样;

跨子网之间,主机只需要学习网关的mac地址,详见前面章节。

 报文转发:

同子网已知单播报文转发和同子网BUM报文转发流程将前面章节。

跨子网报文转发流程:

稍微复杂一点结构,无同子网:

 

 在没有同子网互相通,且公网支持vxlan不支持MPLS的情况下,才使用此方案。


 六、实验

1、同子网-手动创建隧道

host1->host3(192.168.10.1->192.168.10.2)

 arp请求报文(R1收到host1的arp请求报文)-原始报文

  arp应答报文(R1发送给host1的arp应答报文)--原始报文

 host1  ping host2  request报文-原始报文

 

  host1  ping host2  replyt报文-原始报文

 R1(VTEP1)封装后发送给R3(VTEP2)报文-vxlan报文

 

 

 将原始的arp请求报文(host1->host2)封装在vxlan报文中。隧道的起点为1.1.1.1,终点为2.2.2.2,vni为10

R1(VTEP1) 收到的arp应答报文,被封装在vxlan报文中。隧道的起点为2.2.2.2,终点为1.1.1.1,vni为10

ping request报文,被封装在vxlan报文中。隧道的起点为1.1.1.1,终点为2.2.2.2,vni为10

 

 ping reply报文,被封装在vxlan报文中。隧道的起点为2.2.2.2,终点为1.1.1.1,vni为10

R1(VTEP1)BD域的MAC表

host1arp表 

以上就是同子网MAC地址学习和已知单播报文转发的过程。


2、集中式网关-手动创建隧道

 网关部署在R3上
int vbdif 10
ip add 192.168.10.254 24
int vbdif 20
ip add 192.168.20.254 24

跨子网通信:host1->host2(192.168.10.1->192.168.20.1)

 

 跨子网通信第一步就是获取网关MAC

R1发给R2的arp报文-原始的host1发出的ARP请求报文经过vxlan封装

 host1 ping host2原始报文,(70:7b:e8:2d:1c:c1) 网关MAC

 host1 ping host2原始报文经过vxlan封装(R1->R3)。

 R3上: host1 ping host2原始报文vxlan重封装

内层的源目的mac地址变了

R3收到R1的vxlan报文:

S-IP:192.168.10.1       D-IP:192.168.20.1

S-MAC:(54:89:98:12:5f:f2),  D-MAC:(70:7b:e8:2d:1c:c1)-host1网关mac

R3发送给R2的vxlan报文:

S-IP:192.168.10.1       D-IP:192.168.20.1

S-MAC:(70:7b:e8:2d:1c:c1)-host2网关mac,  D-MAC:(54:89:98:cf:79:b3)

 host2收到的报文(已经被R2解封装)

host1 arp表

 host3 arp表

  host2 arp表

host4  arp表

R3(网关)arp表 

注:网关部署在spine上

 

 

 

 以上为实际试验中通过抓包分析所得。

虽然包3内层源MAC和包4源MAC均为0,但是不影响,数据包的返回。

跨网段,返回的数据包直接丢给网关。


 3、集中式网关-BGP EVPN方式动态创建隧道

 网关部署在spine上
int vbdif 10
ip add 192.168.10.254 24
int vbdif 20
ip add 192.168.20.254 24

和上节<<2、集中式网关-手动创建隧道>>唯一不同之处在于vxlan隧道的建立是动态的

 

 

实际环境中:

同子网互访没有问题;

跨子网互访:host1->host3

spine收到包2后,没有重新封装包3

 host3->host1:

spine收到包2后,重新封装,构造包3后发送给下一跳。

包3内层源MAC地址并非理论上的mac10,而是全0

 

 返回包2到了spine后,spine没有重新封装报文3。

 集中式网关-BGP EVPN方式动态创建隧道总结:

同子网通信没有问题;跨子网通信失败。 

不确定是软件版本问题还是bug。

如果有人知道原因,还请不吝赐教。


4、分布式网关-BGP EVPN方式动态创建隧道

 同子网动态创建隧道和前节一样。

跨子网动态创建隧道分两种:

A、动态建立VXLAN隧道方式1: 通过IRB类型路由发布主机IP路由(type2)

leaf1:

evpn vpn-instance evpn1 bd-mode

 route-distinguisher 100:1

 vpn-target 1:1 export-extcommunity

 vpn-target 1:1 import-extcommunity

#

evpn vpn-instance evpn2 bd-mode

 route-distinguisher 100:100

 vpn-target 100:100 export-extcommunity

 vpn-target 100:100 import-extcommunity

#

ip vpn-instance ABC

 ipv4-family

  route-distinguisher 100:1

  vpn-target 1:1 export-extcommunity evpn

  vpn-target 1:1 import-extcommunity evpn

 vxlan vni 5010

#

ip vpn-instance l3vpn2

 ipv4-family

  route-distinguisher 100:100

  vpn-target 100:100 export-extcommunity evpn

  vpn-target 100:100 import-extcommunity evpn

 vxlan vni 5050

#

bridge-domain 10

 vxlan vni 2010 split-horizon-mode

 evpn binding vpn-instance evpn1

#

bridge-domain 50

 vxlan vni 2050 split-horizon-mode

 evpn binding vpn-instance evpn2

#

interface Vbdif10

 ip binding vpn-instance ABC

 ip address 192.168.10.254 255.255.255.0

 arp distribute-gateway enable

 arp collect host enable

#

interface Vbdif50

 ip binding vpn-instance l3vpn2

 ip address 172.16.10.1 255.255.255.0

 arp distribute-gateway enable

 arp collect host enable

#

interface Ethernet1/0/1.1 mode l2

 encapsulation dot1q vid 10

 rewrite pop single

 bridge-domain 10

#

interface Ethernet1/0/3.1 mode l2

 encapsulation dot1q vid 50

 rewrite pop single

 bridge-domain 50

#

interface Nve1

 source 1.1.1.1

 vni 2010 head-end peer-list protocol bgp

vni 2050 head-end peer-list protocol bgp

#

bgp 100

 router-id 1.1.1.1

 peer 3.3.3.3 as-number 100

 peer 3.3.3.3 connect-interface LoopBack0

 #

ipv4-family vpn-instance ABC

ipv4-family vpn-instance l3vpn2

#

 l2vpn-family evpn

  undo policy vpn-target

  peer 3.3.3.3 enable

  peer 3.3.3.3 advertise irb

  peer 3.3.3.3 advertise encap-type vxlan

#

leaf2:

evpn vpn-instance evpn1 bd-mode

 route-distinguisher 100:2

 vpn-target 1:1 export-extcommunity

 vpn-target 1:1 import-extcommunity

#

evpn vpn-instance evpn2 bd-mode

 route-distinguisher 100:100

 vpn-target 100:100 export-extcommunity

 vpn-target 100:100 import-extcommunity

#

ip vpn-instance ABC

 ipv4-family

  route-distinguisher 100:2

  vpn-target 1:1 export-extcommunity evpn

  vpn-target 1:1 import-extcommunity evpn

 vxlan vni 5010

#

ip vpn-instance l3vpn2

 ipv4-family

  route-distinguisher 100:100

  vpn-target 100:100 export-extcommunity evpn

  vpn-target 100:100 import-extcommunity evpn

 vxlan vni 5050

#

bridge-domain 100

 vxlan vni 2010 split-horizon-mode

 evpn binding vpn-instance evpn1

#

bridge-domain 50

 vxlan vni 2050 split-horizon-mode

 evpn binding vpn-instance evpn2

#

interface Vbdif100

 ip binding vpn-instance ABC

 ip address 192.168.20.254 255.255.255.0

 arp distribute-gateway enable

 arp collect host enable

#

interface Vbdif50

 ip binding vpn-instance l3vpn2

 ip address 172.16.20.1 255.255.255.0

 arp distribute-gateway enable

 arp collect host enable

#

interface Ethernet1/0/1.1 mode l2

 encapsulation dot1q vid 100

 rewrite pop single

 bridge-domain 100

#

interface Ethernet1/0/3.1 mode l2

 encapsulation dot1q vid 50

 rewrite pop single

 bridge-domain 50

#

interface Nve1

 source 3.3.3.3

 vni 2010 head-end peer-list protocol bgp

vni 2050 head-end peer-list protocol bgp

#

bgp 100

 router-id 3.3.3.3

 peer 1.1.1.1 as-number 100

 peer 1.1.1.1 connect-interface LoopBack0

 #

 ipv4-family vpn-instance ABC

 ipv4-family vpn-instance l3vpn2

#

 l2vpn-family evpn

  undo policy vpn-target

  peer 1.1.1.1 enable

  peer 1.1.1.1 advertise irb

  peer 1.1.1.1 advertise encap-type vxlan

#

B、动态建立VXLAN隧道方式2: 通过IP前缀类型路由发布主机IP路由(type5)

leaf1:

#

bgp 100

 router-id 1.1.1.1

 peer 3.3.3.3 as-number 100

 peer 3.3.3.3 connect-interface LoopBack0

 #

ipv4-family vpn-instance ABC

  import-route direct

  advertise l2vpn evpn

ipv4-family vpn-instance l3vpn2

  import-route direct

  advertise l2vpn evpn

 #

 l2vpn-family evpn

  undo policy vpn-target

  peer 3.3.3.3 enable

  peer 3.3.3.3 advertise encap-type vxlan

#

leaf2:

#

bgp 100

 router-id 3.3.3.3

 peer 1.1.1.1 as-number 100

 peer 1.1.1.1 connect-interface LoopBack0

 #

ipv4-family vpn-instance ABC

  import-route direct

  advertise l2vpn evpn

ipv4-family vpn-instance l3vpn2

  import-route direct

  advertise l2vpn evpn

 #

 l2vpn-family evpn

  undo policy vpn-target

  peer 1.1.1.1 enable

  peer 1.1.1.1 advertise encap-type vxlan

#

 动态建立VXLAN隧道方式1与动态建立VXLAN隧道方式2的主要区别:

方式1:通过IRB类型路由发布主机IP路由(type2)

IRB类型路由携带的有效信息有:主机MAC地址+主机IP地址+二层VNI+三层VNI

方式2: 通过IP前缀类型路由发布主机IP路由(type5)

IP前缀类型路由携带的有效信息有: 主机IP地址+三层VNI

下面主要以方式2: 通过IP前缀类型路由发布主机IP路由为例,抓包分析跨子网通信时vxlan隧道的建立过程:

host1->host3跨子网通信:(192.168.10.1->192.168.20.1)

 

 192.168.10.1->192.168.20.1原始报文。(70:7b:e8:2c:3e:cf)网关192.168.10.254MAC

 内层源目的MAC变化。

(70:7b:e8:2c:3e:cf)网关192.168.10.254MAC

(70:7b:e8:21:68:9e)网关192.168.20.254MAC

 

 leaf1公网接口MAC(vxlan报文外层源MAC)

leaf1公网接口下一跳地址MAC(vxlan报文外层目的MAC) 

 

 host3收到的报文。 

 

 

///

 

 本例中没有同子网。

MAC

IP

BD

VNI

EVPN实例

l3vpn实例

R1

host1

5489-98ae-5732

192.168.10.1

10

2010

evpn1

vbdif10

707b-e82c-3ecf

192.168.10.254

ABC

host2

5489-98de-5bbc

172.16.10.2

50

2050

evpn2

vbdif50

707b-e82c-3ecf

172.16.10.1

l3vpn2

R2

host3

5489-9897-3109

192.168.20.1

100

2010

evpn1

vbdif100

707b-e821-689e

192.168.20.254

ABC

host4

5489-982c-4ad0

172.16.20.2

50

2050

evpn2

vbdif50

707b-e821-689e

172.16.20.1

l3vpn2

R1

R3

192.168.12.1

3801-f801-0100

5489-980a-6e92

192.168.12.2

R2

R3

192.168.23.3

3801-f802-0100

5489-980a-6e93

192.168.23.2


 VxLAN隧道建立过程中的抓包(leaf之间重建BGP peer):

 



type3路由 

 

 

07da(16进制)=2010(10进制) 


type5路由

 

1293(16进制)=5010(进制) 


type2路由 

 

 

07da(16进制)=2010(10进制)       

type2路由通告host3的MAC地址


type2路由

 type2路由通告vbdif100的MAC地址


type3路由 

 

0802(16进制)=2050(10进制) 


type5路由 


type2路由 

 

0802(16进制)=2050(10进制) 

type2路由通告host4的MAC地址


type2路由

type2路由通告vbdif50的MAC地址 


消息

EXTENDED COMMUNITIES

PMSI TUNNEL ATTRIBUTE

MP REACH NLRI

UPDATE Message1

RT: 1:1 /VXLAN Encapsulation

2010 Ingress Replication

type3 3.3.3.3 100:2

UPDATE Message2

RT: 1:1 /VXLAN Encapsulation

type5 192.168.20.0/24 5010

UPDATE Message3

RT: 1:1 /VXLAN Encapsulation

type2 mac3 2010

UPDATE Message4

RT: 1:1 /VXLAN Encapsulation

type2 mac-vdif100 2010

UPDATE Message5

RT: 100:100/ VXLAN Encapsulation

2050 Ingress Replication

type3 3.3.3.3 100:100

UPDATE Message6

RT: 100:100/ VXLAN Encapsulation

type5 172.16.20.0/24 5050

UPDATE Message7

RT: 100:100/ VXLAN Encapsulation

type2 mac4 2050

UPDATE Message8

RT: 100:100/ VXLAN Encapsulation

type2 mac-vdif100 20

50



分布式网关-BGP EVPN方式动态创建隧道总结:

1、 在没有同子网互相通,且公网支持vxlan不支持MPLS的情况下,才使用此方案。

2、同子网通信和跨子网通信都没有问题,和理论分析的一致。

  • 2
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值