VXLAN可以经过VETP隧道实现大二层MAC IN UDP,可是没有控制平面,虽然能够手动建立隧道,可是再面对大规模虚拟机场景下,基本不太现实,同时BUM报文泛滥,占用带宽
华为的VXLAN方案能够经过BGP E***方式来充当控制平面,解决相关问题。
E***(Ethernet Virtual Private Network)是一种用于二层网络互联的***技术。E***技术采用相似于BGP/MPLS IP ***的机制,在BGP协议的基础上定义了一种新的NLRI(Network Layer Reachability Information,网络层可达信息)即E*** NLRI,E*** NLRI定义了几种新的BGP E***路由类型,用于处在二层网络的不一样站点之间的MAC地址学习和发布。服务器
报文格式
字段解释以下网络
主要实现的功能是:dom
要实现同子网主机的二层互访,两端VTEP须要相互学习主机MAC。做为BGP E***对等体的VTEP之间经过交换MAC/IP路由,能够相互通告已经获取到的主机MAC。其中,MAC Address Length和MAC Address字段为主机MAC地址。分布式
MAC/IP路由能够同时携带主机MAC地址+主机IP地址,所以该路由能够用来在VTEP之间传递主机ARP表项,实现主机ARP通告。其中,MAC Address和MAC Address Length字段为主机MAC地址,IP Address和IP Address Length字段为主机IP地址。此时的MAC/IP路由也称为ARP类型路由。ide
报文格式oop
字段解释以下:学习
该类型路由在VXLAN控制平面中主要用于VTEP的自动发现和VXLAN隧道的动态创建。做为BGP E***对等体的VTEP,经过Inclusive Multicast路由互相传递二层VNI和VTEP IP地址信息。其中,Originating Router's IP Address字段为本端VTEP IP地址,MPLS Label字段为二层VNI。若是对端VTEP IP地址是三层路由可达的,则创建一条到对端的VXLAN隧道。同时,若是对端VNI与本端相同,则建立一个头端复制表,用于后续BUM报文转发。测试
在vxlan跨子网通讯的场景中,使用typ3路由ui
和VLAN相似,不一样VNI之间的VXLAN,及VXLAN和非VXLAN之间不能直接相互通讯。为了使VXLAN之间,以及VXLAN和非VXLAN之间可以进行通讯,VXLAN引入了VXLAN网关。3d
VXLAN网关分为:
二层网关:用于解决租户接入VXLAN虚拟网络的问题,也可用于同一VXLAN虚拟网络的子网通讯。
三层网关:用于VXLAN虚拟网络的跨子网通讯以及外部网络的访问。
根据三层网关部署方式的不一样,VXLAN三层网关又能够分为集中式网关和分布式网关。
VXLAN分布式网关是指在典型的“Spine-Leaf”组网结构下,将Leaf节点做为VXLAN隧道端点VTEP,每一个Leaf节点均可做为VXLAN三层网关,Spine节点不感知VXLAN隧道,只做为VXLAN报文的转发节点。以下所示,Server1和Server2不在同一个网段,可是都链接到一个Leaf节点。Server1和Server2通讯时,流量只须要在Leaf1节点进行转发,再也不须要通过Spine节点。
VXLAN分布式网关具备以下特色:
同一个Leaf节点既能够作VXLAN二层网关,也能够作VXLAN三层网关,部署灵活。
Leaf节点只须要学习自身链接服务器的ARP表项,而没必要像集中三层网关同样,须要学习全部服务器的ARP表项,解决了集中式三层网关带来的ARP表项瓶颈问题,网络规模扩展能力强。
VXLAN大二层,VNI标记二层域,VXLAN隧道实现域内连通
分布式VXLAN网关,VNI标记三层VRF域,VXLAN隧道实现VRF连通
组网说明:
一、三台CE交换机,按照spine-leaf组网,CE1属于spine,可使用不具有VXLAN的功能交换机,CE2,CE2分别数据LEAF-1,LEAF-2,除了做为NVE接入点以外,充当分布式网关,即
leaf做为网关,两个网关是同样的
二、spine,leaf之间,underlay网络使用ospf协议组网,使用area0,实现vtep之间的互通,每一个ce交换机使用loopback接口,充当ospf的router id和vtep地址
三、spine,leaf之间,配置bgp,使用loopback接口配置全互联邻居都属于一个AS 100,配置BGP E***协议来实现vxlan的控制层面,实现vxlan隧道的自动发现,配置
四、leaf交换机上,配置*** INSTANCE A,用来模拟区分不一样租户,使他们路由信息隔离
五、POD1,POD2,模拟数据中心下同一个租户的不一样网络,实现同子网,跨子网通讯
六、在leaf上,配置VNI10,VNI20二层VNI,实现VXLAN标记,知足同一个VXLAN下同子网二层通讯,同时在SPINE上配置VNI99三层VNI,知足不一样VXLAN下跨子网三层通讯
如今须要经过分布式网关,实现PC1->PC2的同子网和PC1->PC4的跨子网通讯
PC1 :192.168.1.1/24 ,GW192.168.1.254
PC2:192.168.2.1/24,GW192.168.1.254
PC3:192.168.1.2/24,GW192.168.1.254
PC4:192.168.2.2/24,GW192.168.1.254
交换机S1配置VLAN10,20,对应PC1,PC2,S1配置以下:
interface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan 10 20 # interface GigabitEthernet0/0/2 port link-type access port default vlan 10 # interface GigabitEthernet0/0/3 port link-type access port default vlan 20
S2配置配置相似
CE1做为SPINE,配置以下
[HUAWEI]sysname CE1 [CE1-LoopBack0]ip address 1.1.1.1 32 [CE1-LoopBack0]q [CE1]interface GE 1/0/1 [CE1-GE1/0/1]undo portswitch [CE1-GE1/0/1]ip address 10.1.12.1 24 [CE1-GE1/0/1]q [CE1]interface GE 1/0/2 [CE1-GE1/0/2]undo portswitch [CE1-GE1/0/2]undo shutdown [CE1-GE1/0/2]ip address 10.1.13.1 24 [CE1-GE1/0/2]q [CE1]ospf 1 router-id 1.1.1.1 [CE1-ospf-1]are [CE1-ospf-1]area 0 [CE1-ospf-1-area-0.0.0.0]network 10.1.12.0 0.0.0.255 [CE1-ospf-1-area-0.0.0.0]network 10.1.13.0 0.0.0.255 [CE1-ospf-1-area-0.0.0.0]network 1.1.1.1 255.255.255.0
CE2做为leaf,配置以下:
<HUAWEI>system-view immediately [HUAWEI]sysname CE2 [CE2]interface LoopBack 0 [CE2-LoopBack0]ip address 2.2.2.2 32 [CE2-LoopBack0]q [CE2]interface GE 1/0/1 [CE2-GE1/0/1]undo portswitch [CE2-GE1/0/1]undo shutdown [CE2-GE1/0/1]ip address 10.1.12.2 24 [CE2-GE1/0/1]q [CE2]ospf 1 router-id 2.2.2.2 [CE2-ospf-1]area 0 [CE2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0 [CE2-ospf-1-area-0.0.0.0]network 10.1.12.0 0.0.0.255 [CE2-ospf-1-area-0.0.0.0]q
CE3配置相似
配置完成后,检查OSPF邻居创建和路由,以CE2为例
配置BGP全互联,使用loopback接口,建立BGP E***对等体,同时使用发布irb类型的路由,能够实现跨子网互访
CE1配置以下:
[CE1]e***-overlay enable [CE1]bgp 100 [CE1-bgp]peer 2.2.2.2 as-number 100 [CE1-bgp]peer 3.3.3.3 as-number 100 [CE1-bgp]peer 2.2.2.2 connect-interface LoopBack 0 [CE1-bgp]peer 3.3.3.3 connect-interface LoopBack 0 [CE1-bgp]l2***-family e*** [CE1-bgp-af-e***] [CE1-bgp-af-e***]peer 2.2.2.2 enable [CE1-bgp-af-e***] peer 2.2.2.2 advertise irb [CE1-bgp-af-e***]peer 3.3.3.3 enable [CE1-bgp-af-e***] peer 3.3.3.3 advertise irb
CE2,CE3配置相似
配置完成后检查bgp邻居和BGP e***邻居创建状况,以CE1为例
在***实例中,除了配置本地***实例的ERT X和IRT X外,还须要配置带E***参数的ERT Y和IRT Y,用于和对端E***实例交叉,生成主机路由。
在E***实例中,除了针对不一样的BD配置不一样的ERT A、ERT B和IRT A、IRT B外,还必须配置用来和对端***实例交叉的ERT Y。通常状况下不须要配置IRT Y,不然会致使不一样BD下的E***实例相互扩散MAC地址。
配置E***实例,以CE2为例
[CE2]bridge-domain 10 [CE2-bd10]vxlan vni 10 [CE2-bd10]e*** [CE2-bd10-e***]rou [CE2-bd10-e***]route-distinguisher 100:1 [CE2-bd10-e***]***-target 100:1 both IVT Assignment result: Info: ***-Target assignment is successful. EVT Assignment result: Info: ***-Target assignment is successful. [CE2-bd10-e***]q [CE2-bd10]q [CE2]bridge-domain 20 [CE2-bd20]vxlan vni 20 [CE2-bd20]e*** [CE2-bd20-e***]route-distinguisher 100:2 [CE2-bd20-e***]vp [CE2-bd20-e***]***-target 100:2 b [CE2-bd20-e***]***-target 100:2 both
说明:
一、不一样的BD域只能绑定一个vxlan vni
二、ERT和IRT即***-target ,注意配置正确,即CE2的bd10的***-target和CE3的bd10的***-target一致,否则没法正确传递和接受
三、E***的rd值和***的rd值能够配置同样,方便区分,可是二者不是一个概念
CE3的e***实例配置与CE2相似,再也不重复
配置***实例,以CE2为例
建立***实例A,用于区别不一样租户,配置RD值为100:1,同时配置***-target,同时绑定E***实例,注意,须要建立三层vni,同时为三层vni绑定E***实例
[CE2]ip ***-instance A [CE2-***-instance-A]vxlan vni 99 [CE2-***-instance-A]route-distinguisher 100:1 [CE2-***-instance-A-af-ipv4]***-target 100:1 both IVT Assignment result: Info: ***-Target assignment is successful. EVT Assignment result: Info: ***-Target assignment is successful. [CE2-***-instance-A-af-ipv4]***-target 100:1 both e*** IVT Assignment result: Info: ***-Target assignment is successful. EVT Assignment result: Info: ***-Target assignment is successful. [CE2-***-instance-A-af-ipv4]***-target 100:2 import-extcommunity e*** EVT Assignment result: Info: ***-Target assignment is successful.
说明:
一、相同的***实例RD值要一致
二、vxlan vni 99为三层vni,二层VNI用于同子网互访,三层VNI用于跨子网互访。bd域下绑定的就是二层vni
三、配置100:2的e***实例是为了将 三层vni 99发布,三层VNI能够随意指定,可是不能和二层vni相同
CE3配置与此同样
CE2上配置vbdif10,vbdif20,分别做为分布式网关,对应各自的BD域
bdif接口绑定***实例,开启分布式网关功能
[CE2]interface Vbdif 10 [CE2-Vbdif10]ip binding ***-instance A [CE2-Vbdif10]ip address 192.168.1.254 24 [CE2-Vbdif10]arp distribute-gateway enable [CE2-Vbdif10]arp collect host enable [CE2-Vbdif10]q [CE2]interface Vbdif 20 [CE2-Vbdif20]ip binding ***-instance A [CE2-Vbdif20]IP address 192.168.2.254 24 [CE2-Vbdif20]arp distribute-gateway enable [CE2-Vbdif20]arp collect host enable
CE3的配置与此一致
关于arp collect host enable命令功能以下
配置完成了后,在POD1,POD2,由于租户都是***实例A,能够区分租户路由
CE2配置BD10,BD20,分别绑定vni10,vni20,同时配置二层子接口,以DOT1Q方式终结VLAN
[CE2]interface GE 1/0/2 [CE2-GE1/0/2]undo shutdown [CE2]bridge-domain 10 [CE2-bd10]vxlan vni 10 [CE2-bd10]q [CE2]interface GE 1/0/2.1 mode l2 [CE2-GE1/0/2.1]bridge-domain 10 [CE2-GE1/0/2.1]encapsulation dot1q vid 10 [CE2]interface GE 1/0/2.2 mode l2 [CE2]bridge-domain 20 [CE2-bd20]vxlan vni 20 [CE2-bd20]q [CE2]interface GE 1/0/2.2 mode l2 [CE2-GE1/0/2.2]bridge-domain 20 [CE2-GE1/0/2.2]encapsulation dot1q vid 20
CE3配置与之相似
配置完成后,测试pc1,PC2与leaf分布式网关的连通性
由于使用的bgp e***做为控制层面,因此不用再手动配置vxlan 隧道
CE2上的配置以下
[CE2]interface Nve 1 [CE2-Nve1]source 2.2.2.2 [CE2-Nve1]vni 10 head-end peer-list protocol bgp [CE2-Nve1]vni 20 head-end peer-list protocol bgp
CE3配置相似
配置完成,再CE2检查隧道配置
至此CE2,和CE3之间的vxlan隧道动态创建成功
测试以下
流量走向
PC1 ping PC3 通
此时数据包没有通过vxlan隧道,就像三层转发同样
流量走向
P1 ping PC2通
数据包通过了VXLAN 隧道,在CE2的ge1/01接口抓包
1.能够看到同一个子网,VXLAN VNI是同样的,都是VNI 10
2.能够看到VTEP信息,2.2.2.2->3.3.3.3
流量走向,通过vxlan,同时通过不一样网关
此时PC1 ping PC4
在CE2上抓包分析
能够看到,在跨子网通讯时,通过三层VNI,vxlan的vni是99,并不是二层VNI
在进行跨子网的通讯时,E***邻居之间必须发布IRB路由,Type3路由——Inclusive Multicast路由。若是不配置或者发布路由类型错误,都没法知足
跨子网通讯
在手动触发e***更新后,能够观察到irb路由信息
<CE2>refresh bgp e*** all ex <CE2>refresh bgp e*** all export <CE2>refresh bgp e*** all im <CE2>refresh bgp e*** all import
能够看到bgp邻居更新信息
查找irb路由更新
经过irb,将去往不一样子网的主机路由注入到***实例的路由表中
完了完成irb路由正常发布和三层vni可以正常传递,须要在***实例中配置三层vni的e***实例绑定
这样,在LEAF上可以被注入主机路由,从而达到跨子网访问
好复杂额