【HCIE】13.VXLAN EVPN

news2024/11/26 14:51:10

数据中心一直使用VXLAN当做隧道协议,但是VXLAN没有自己的控制面协议,EVPN本来就可以传递MAC信息,IP信息,也可以传递VNI。就将EVPN做了改造(只把标签改了VNI)。

为什么二层一定需要一个控制面?

1.N个节点需要创建N*(N-1)/2条隧道,配置工作量大。

2.VXLAN设备收到BUM流量会给所有隧道泛洪,泛洪流量大

BGP EVPN使用BGP传递路由,路由的类型是EVPN(EVPN是一种地址族,可以传递的路由类型特别多,可以传递IPV4形成的路由,VPNV4形成的路由,甚至可以传递MAC地址形成的路由)。是一个控制面协议,但是不是只能给VXLAN当做控制面协议,也可以给其他的协议当做控制面协议使用。控制层面可以控制泛洪流量,也可以控制建立隧道

RT决定了是否传递路由,是控制平面;VNI决定了是否建立隧道是转发平面。

跨子网通信都是要先找自己的网关,找到自己网关之前都是二层通信,不管中间经过了几台设备。找到网关之后查路由表,要经过三层转发(不管经过了多少跳),找到对方网关之后再进行二层转发。

BGP EVPN概述

BGP EVPN通过扩展 BGP协议新定义了几种BGP EVPN路由(在MP_REACH_NLRI属性中新定义了几种NLRI,称为EVPN NLRI)。

这些BGP EVPN路由可以用于传递VTEP地址和主机信息,因此BGP EVPN应用于VXLAN网络中,可以使VTEP发现和主机信息学习从数据平面转移到控制平面。

不会出现二层环路,因为封装到了IP(且BGP有水平分割原则)

BGP EVPN路由

TYPE 2路由(MAC/IP路由):用于主机MAC地址/ARP/IP路由通告,主机路由不是凭空来的,是有PC触发流量产生的路由

TYPE 3路由(Inclusive Multicast路由):用于传递二层VNI和VTEP IP地址信息,实现VTEP的自动发现和VXLAN隧道的动态建立,实现BUM报文转发

如果对端VTEP IP地址是三层路由可达的,则建立一条到对端的VXLAN隧道。同时,如果对端VNI与本端相同,则创建一个头端复制列表,用于后续BUM报文转发。

TYPE 5路由(IP前缀路由):用于主机MAC地址/ARP/IP路由通告,外部网络路由通告

主机MAC地址通告

L2网关将学习到的MAC地址加工后(加工RD,RT等信息),通过BGP传递

主机ARP通告

分布式网关

非对称IRB转发

  1. PC1发送单播给PC2,此时因为是三层转发所以要先去找自己的网关,VBDIF20
  2. VBDIF20接收到数据帧后会查路由表发现直连路由,需要从VBDIF 10出发到对面的VBDIF 10
  3. 于是数据帧进入BD 10封装的VNI号是100,数据帧从隧道发往了VTEP2进入了BD 10,VTEP2发现这个数据帧就在同一个BD里面,于是直接二层转发交给了PC2

以上过程,在左边一部分进行的是三层转发,而数据到了右边部分进行的是二层转发,这就是非对称IRB转发。

缺点:需要建立多余的BD

对称IRB转发

两边都执行三层转发

缺点:中间要有一个互联的IP地址(稍后会把这个省略,因为互联地址主要是为了下一跳解析到的MAC,而这个MAC地址会由IRB路由携带)

三层 IP VPN-instance 路由表

二层 EVPN VPN-instance MAC表

此时VTEP之间传递IRB路由(多了L3 VNI),VTEP1的BD20、VTEP2的BD10 之间的IRB路由学习由路由携带RT值控制。

两边BD的VNI不相同,无法直接二层互通,但是建立三层VNI(三层VNI相同),因此可以三层互通

EVPN RT、IP VPN RT(1)

新增IP VPN实例之后,BGP EVPN在传递TYPE 2路由时携带的RT值依旧是EVPN RT值,只是对端收到路由之后的处理行为存在区别:

  • 检查该路由携带的RT,如果与本端EVPN实例的import rt相同,则接收路由。EVPN实例获取到IRB类型路由后,还能提取到其中包含的ARP类型路由,用于主机ARP通告。
  • 检查该路由携带的RT,如果与本端IP VPN实例的import rt相同,则接收该路由。然后,VPN实例获取到该路由携带的IRB类型路由,从中提取的主机IP地址、三层VNI,在其路由表中保存主机IP路由,并根据路由的下一跳迭代出接口,最终迭代结果是指向VTEP的VXLAN隧道。

通过EVPN Router's MAC Extended Community这一扩展团体属性子属性,BGP EPVN传递VTER自身的Router MAC,该MAC地址为NVE接口的MAC地址。

ARP广播抑制

广播变成单播

因为VTEP已经通过路由获得了PC2的MAC地址,所以VTEP可以直接向VTEP2单播发送。

VTEP1首先能学习到PC2的MAC地址形成ARP广播抑制表才可以进行ARP广播抑制

主机信息收集

ARP广播抑制功能的实现依赖于ARP广播抑制表,而该表项的形成依赖于BGP EVPN携带的TYPE 2路由(IRB路由,主机ARP路由)

默认情况下L3网关不会由本地的ARP信息生成BGP EVPN路由,需要手动使能BGP EVPN主机信息收集功能。之后VTEP会依据ARP信息生成IRB路由。

本机ARP代理

全网开启BGP EVPN主机信息收集功能之后,L3网关上将学习到全部主机的32位路由,这使得L3网关在转发属于同一个BD之间的流量时完全可以依赖主机路由进行三层IRB对称转发。

为此可以在L3网关的VBDIF接口上开启本地ARP代理,VBDIF 接口会相应下连主机对同网段IP地址的ARP请求,之后对该同网段IP的访问可以由L3网关进行三层转发完成。

MAC地址迁移

MAC地址迁移后,会使用序列号最大的路由

实验

1.开启over支持evpn的功能
2.建立EVPN BGP对等体关系
3.创建BD,绑定VNI与EVPN实例
4.进入接口,绑定BD
5.进入隧道接口,配置源与头部复制列表

CE2
evpn-overlay enable	//开启支持evpn overlay的功能
bgp 123
	peer 3.3.3.3 as-number 123
	peer 3.3.3.3 connect-interface l0
#
l2vpn-family evpn	//建立EVPN邻居
	policy vpn-target
	peer 3.3.3.3 enable
#
bridge-domain 1030	//创建BD
	vxlan vni 1030
	evpn	//创建EVPN实例,绑定到BD里面
	route-distinguisher 1030:2
	vpn-target 1030:1030 export-extcommunity
	vpn-target 1030:1030 import-extcommunity
#
bridge-domain 2040
	vxlan vni 2040
	evpn 
	route-distinguisher 2040:2
	vpn-target 2040:2040 export-extcommunity
	vpn-target 2040:2040 import-extcommunity
#
interface G1/0/9.10 mode l2
	encapsulation dot1q vid 10
	bridge-domain 1030
#
interface G1/0/9.20 mode l2
	encapsulation dot1q vid 20
	bridge-domain 2040
#
int Nve 1	//进入到VNI里面
source 2.2.2.2
vni 1030 head-end peer-list protocol bgp	//1030隧道根据BGP来建立
vni 2040 head-end peer-list protocol bgp
CE1:
1.开启over支持evpn的功能
2.建立BGP EVPN对等体关系,且配置反射客户端与通告ARP路由功能
3.创建BD,绑定VNI与EVPN实例
4.配置VBDIF地址及arp collect host enable
5.进入隧道接口,配置源地址与头部复制列表
CE2:
1.开启over支持evpn的功能
2.建立EVPN BGP对等体关系,并通告arp路由功能
3.创建BD,绑定VNI与EVPN实例
4.进入接口,绑定BD
5.进入隧道接口,配置源与头部复制列表

CE1
evpn-overlay enable
bridge-domain 1030
vxlan vni 1030
evpn
route-distingusisher 1030:1
vpn-target 1030:1030 export-extocommunity
vpn-target 1030:1030 import-extcommunity
#
bridge-domain 2040
vxlan vni 2040
evpn route-distinguisher 2040:1
vpn-target 2040:2040 export-extcommunity
vpn-tartge 2040:2040 import-extcommunity
#
interface vbdif1030
ip add 192.168.1.1 24
interface vbdif 2040
ip add 192.168.2.1 24
#
bgp 123
peer 2.2.2.2 as-number 123
peer 2.2.2.2 connect-interface l0
peer 3.3.3.3 as-number 123
peer 3.3.3.3 connect-interface l0
#
l2vpn-family evpn
policy vpn-target
peer 2.2.2.2 enable
peer 2.2.2.2 relect0clinet
peer 2.2.2.2 advertise arp
peer 3.3.3.3 enable
peer 3.3.3.3 relect-client
peer 3.3.3.3 advertise arp
#
interface Nve1
source 1.1.1.1
vni 1030 head-end peer-list protocol bgp
vni 2040 head-end peer-list protocol bgp

CE2
evpn-overlay enable
bridge-domain 1030
vxlan vni 1030
evpn
route-distinguisher 1030:2
vpn-target 1030:1030 export-extcommunity
vpn-target 1030:1030 import-extcommunity
#
interface G1/0/9.10 mode l2
encapsulation dot1q vid 10
bridge-domain 1030
#
bgp 123
peer 1.1.1.1 as-number 123
peer 1.1.1.1 connect-interface l0
l2vpn-family evpn
policy vpn-target
peer 1.1.1.1 enable
peer 1.1.1.1 advertise arp
interface Nve 1
source 2.2.2.2
vni 1030 head-end peer-list protocol bgp

CE3
evpn-overlay enable
bridge-domain 2040
vxlan vni 2040
evpn route-distinguisher 2040:3
vpn-target 2040:2040 export-extcommunity
vpn-target 2040:2040 import-extommunity
#
interface G1/0/9.10 mode l2
encapsulation dot1q vid 40
bridge-domain 2040
#
bgp 123
peer 1.1.1.1 as-number 123
peer 1.1.1.1 connect-interface l0
l2vpn-family evpn
policy vpn-target
peer 1.1.1.1 enable
peer 1.1.1.1 advertise arp
#
interface Nve 1
sorece 3.3.3.3
vni 2040 head-end peer-list protocol bgp

CE1 
interface vbdif1030
	arp collect host enable	//主机收集功能
CE2
evpn-overlay enable

bridge-domain 1030
	vxlan vni 1030
	evpn 
	route-distinguisher 1030:1030
	vpn-target 1030:1030 export-extcommunity
	vpn-target 1234:1234 export-extcommunity
	vpn-target 1030:1030 import-extcommunity
#
bridge-domain 2040
	vxlan vni 2040
	evpn
	route-distinguisher 2040:2040
	vpn-target 2040:2040 export-extcommunity
	vpn-target 1234:1234 export-extcommunity
	vpn-target 2040:2040 import-extcommunity
###
ip vpn-instance vpn1
	route-distinguisher 1234:1234
	vpn-target 1234:1234 export-extcommunity evpn
	vpn-target 1234:1234 import-extcommunity evpn
	vxlan vni 1234
#
interface GE1/0/9
undo shutdown
#
interface GE1/0/9.30 mode l2
encapsulation dot1q vid 10
bridge-domain 1030
#
interface GE1/0/9.40 mode l2
encapsulation dot1q vid 20
bridge-domain 2040
#
interface Vbdif1030
ip binding vpn-instance vpn1
ip address 192.168.1.1 255.255.255.0
mac-address 0000-5e00-1030
vxlan anycast-gateway enable
arp collect host enable
#
interface Vbdif2040
ip binding vpn-instance vpn1
ip address 192.168.2.1 255.255.255.0
mac-address 0000-5e00-2040
vxlan anycast-gateway enable	//对外界声明是一个分布式网关
arp collect host enable	//通过arp提取出IP MAC地址等信息放到对应的表项里面
#
bgp 123
peer 3.3.3.3 as-number 123
peer 3.3.3.3 connect-interface LoopBack0
ipv4-family unicast
peer 3.3.3.3 enable
l2vpn-family evpn
policy vpn-target
peer 3.3.3.3 enable
Y
peer 3.3.3.3 advertise irb
#
interface Nve1
source 2.2.2.2
vni 1030 head-end peer-list protocol bgp
vni 2040 head-end peer-list protocol bgp
CE3
evpn-overlay enable
bridge-domain 1030
vxlan vni 1030
evpn
route-distinguisher 1030:1030
vpn-target 1030:1030 export-extcommunity
vpn-target 1234:1234 export-extcommunity
vpn-target 1030:1030 import-extcommunity
#
bridge-domain 2040
vxlan vni 2040
evpn
route-distinguisher 2040:2040
vpn-target 2040:2040 export-extcommunity
vpn-target 1234:1234 export-extcommunity
vpn-target 2040:2040 import-extcommunity
#
ip vpn-instance vpn1
ipv4-family
route-distinguisher 1234:1234
vpn-target 1234:1234 export-extcommunity evpn
vpn-target 1234:1234 import-extcommunity evpn
vxlan vni 1234
#
interface GE1/0/9
undo shutdown
#
interface GE1/0/9.30 mode l2
encapsulation dot1q vid 30
bridge-domain 1030
#
interface GE1/0/9.40 mode l2
encapsulation dot1q vid 40
bridge-domain 2040
#
interface Vbdif1030
ip binding vpn-instance vpn1
ip address 192.168.1.1 255.255.255.0
mac-address 0000-5e00-1030
vxlan anycast-gateway enable
arp collect host enable
#
interface Vbdif2040
ip binding vpn-instance vpn1
ip address 192.168.2.1 255.255.255.0
mac-address 0000-5e00-2040
vxlan anycast-gateway enable
arp collect host enable
#
bgp 123
peer 2.2.2.2 as-number 123
peer 2.2.2.2 connect-interface LoopBack0
ipv4-family unicast
peer 2.2.2.2 enable
l2vpn-family evpn
policy vpn-target
peer 2.2.2.2 enable
Y
peer 2.2.2.2 advertise irb
#
interface Nve1
source 3.3.3.3
vni 1030 head-end peer-list protocol bgp
vni 2040 head-end peer-list protocol bgp

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1089408.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

关于网络协议的若干问题(四)

1、QUIC 是一个精巧的协议,它有哪些特性? 答:QUIC 还有其他特性,一个是快速建立连接。另一个是拥塞控制,QUIC 协议当前默认使用了 TCP 协议的 CUBIC(拥塞控制算法)。 CUBIC 进行了不同的设计&…

[清华大学]漏洞挖掘之状态敏感的模糊测试StateFuzz

Dr.赵博栋 Prof.张超 清华大学 网络研究院 INSC 本文主要介绍了通过State Fuzz对Linux驱动程序进行模糊测试,该Fuzz方法由赵博栋博士在InForSec会议上分享,并在USENIX Security上发布.StateFuzz :System Call-Based State-Aware Linux Driver Fuzzing.该…

国际通用的Bug管理工具推荐:多款工具助力项目开发与管理

国际通用的bug管理工具有:1、Zoho Projects;2、Tracup;3、Bugtags;4、QC(QualityCenter);5、Bugzilla;6、EasyBUG;7、Mantis;8、WebIssues。Zoho Projects拥有专业的缺陷管理模块&am…

Webmin(CVE-2019-15107)远程命令执行漏洞复现

漏洞编号 CVE-2019-15107 webmin介绍 什么是webmin Webmin是目前功能最强大的基于Web的Unix系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作http://www.webmin.com/Webmin 是一个用 Perl 编写的基于浏览器的管理应用程序。是一个基于Web的界面…

项目管理必备工具推荐:提高效率、协作与跟踪的实用工具盘点

如果你是一个项目经理,你就会明白拥有合适的工具的重要性。如果没有正确的工具,将很难保持项目的组织和正常运行。幸运的是,有许多可用的项目管理工具可以帮助您提高项目的生产力和效率。这些工具旨在简化项目管理过程,使您更容易…

MySQL使用函数、存储过程实现:向数据表快速插入大量测试数据

实现数据表快速插入20W测试数据 实现过程创建表开启允许创建函数生成随机字符串生成随机整数生成随机地址创建存储过程调用存储过程查看插入数据 其他实用函数生成随机浮点数生成随机日期时间生成随机布尔值生成随机姓名生成随机手机号码生成随机邮箱地址生成随机IP地址生成随机…

【代码随想录】算法训练营 第二天 第一章 数组 Part 2

977. 有序数组的平方 题目 暴力解法 思路 原地更新所有数组元素为其平方数后&#xff0c;再使用sort函数排序&#xff0c;对vector使用sort函数时&#xff0c;两个参数分别是vector的起始元素和终止元素。 代码 class Solution { public:vector<int> sortedSquares(…

Linux shell编程学习笔记11:关系运算

Linux Shell 脚本编程和其他编程语言一样&#xff0c;支持算数、关系、布尔、字符串、文件测试等多种运算。前面几节我们研究了 Linux shell编程 中的 字符串运算 和 算术运算&#xff0c;今天我们来研究 Linux shell编程中的的关系运算。 一、关系运算符功能说明 运算符说明…

LeetCode34 在排序数组中寻找元素的第一个和最后一个位置

题目&#xff1a; 思路&#xff1a; https://blog.csdn.net/wangjiaqi333/article/details/124526112 直观的思路肯定是从前往后遍历一遍。用两个变量记录第一次和最后一次遇见target的下标&#xff0c;但这个方法的时间复杂度为O(n)&#xff0c;没有利用到数组升序排列的条件…

50 二叉树中的最大路径和

二叉树中的最大路径和 题解1 DFS 二叉树中的 路径被定义为一条节点序列&#xff0c;序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次。该路径 至少包含一个节点&#xff0c;且不一定经过根节点。 路径和 是路径中各节点值的总和。 给你一个二…

Spring中PointcutAdvisor和IntroductionAdvisor梳理

一、Advisor Advisor是SpringAOP的顶层抽象&#xff0c;用来管理Advice和Pointcut 1、Advice也叫增强器 Spring中有五种增强&#xff1a;BeforeAdvide&#xff08;前置增强&#xff09;、AfterAdvice&#xff08;后置增强&#xff09;、RoundAdvice&#xff08;环绕增强&#…

论文导读 | 7月8月上旬MSOM文章精选

编者按 淘宝店承诺的交货时间早些还是晚些更有利&#xff1f; 波动的市场环境下如何进行分布式储能的选址与运营&#xff1f; 企业存在服务竞争时如何对待“共享库存”这一模式&#xff1f; 网约车平台在线派单时能否综合权衡司机资质、等待时间、订单远近等多种因素&#xff1…

供应链 | 在线平台系列解读(三):B2C 平台市场中物流战略与平台渠道结构设计之间的相互作用

论文解读&#xff1a;张怡雯&#xff0c;温梓曦&#xff0c;肖善&#xff0c;杨子豪 The interplay between logistics strategy and platform’s channel structure design in B2C platform market 原文作者信息 H. Liu, T. Xu, S. Jing, Z. Liu, S. Wang (2023) The interpl…

Java语法基础案例(二)

目录 案例六&#xff1a;抢红包 案例七&#xff1a;找素数 方法一&#xff1a; 方法二&#xff1a; 方法三&#xff1a; 案例八&#xff1a;实现双色球 关于本项目所用所有方法的解释&#xff1a; 案例六&#xff1a;抢红包 一个大V直播时发起了抢红包活动&#xff0c;分…

PyQt5 PyQt6 Designer 的安装

pip国内的一些镜像 阿里云 http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/ 豆瓣(douban) http://pypi.douban.com/simple/ 清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/ 中国科学技术大学 http://pypi.mirrors.ustc.…

力扣164最大间距

1.前言 因为昨天写了一个基数排序&#xff0c;今天我来写一道用基数排序实现的题解&#xff0c;希望可以帮助你理解基数排序。 这个题本身不难&#xff0c;就是线性时间和线性额外空间(O(n))的算法&#xff0c;有点难实现 基数排序的时间复杂度是O(d*(nradix))&#xff0c;其中…

HTML图片标签(2) HTML5+CSS3+移动web 前端开发入门笔记(三)

图片标签 HTML中&#xff0c;可以使用标签来插入图片。具体的语法为&#xff1a; <img src"图片路径" alt"替代文本">其中&#xff0c;src属性用于指定图片的路径&#xff0c;可以是相对路径或绝对路径。常见的有相对当前HTML文件的路径&#xff0…

Golang 实现接口和继承

小猴子继承了老猴子&#xff0c;这样老猴子拥有的能力包括字段&#xff0c;方法就会自动的被老猴子继承。 小猴子不需要做任何处理就可以拿到老猴子的字段和它的方法&#xff0c;因为是继承关系。 但是小猴子还会其他的技能&#xff0c;比如还会像小鸟一样飞翔&#xff0c;希…

国际减灾日 | 智慧减灾——百分点科技的数据科学视角

国际减轻自然灾害日简称“国际减灾日”&#xff0c;由联合国于1989年设立&#xff0c;旨在关注全球灾害风险&#xff0c;呼吁各国政府、组织和个人积极参与减灾工作&#xff0c;以保护人民生命财产安全。今年10月13日是第34个国际减灾日&#xff0c;主题为“共同打造有韧性的未…

卫星影像如何插入到AutoCAD使用

工具 Bigemap gis office地图软件 BIGEMAP GIS Office-全能版 Bigemap APP_卫星地图APP_高清卫星地图APP 第一步&#xff1a; 首先需要下载影像&#xff0c;选择一个区域下载&#xff0c;影像下载方式有以下几种&#xff1a; 那么通过下载方式选择好了范围以后&#xff0c;选…