动态 VxLAN 浅析及配置示例

2024-06-10 02:20

本文主要是介绍动态 VxLAN 浅析及配置示例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言:  

        为了解决静态 VxLAN的配置量大、mac表项学习仅能通过泛洪学习的这种低端方式的缺点,我们引入了控制层面,通过bgp evpn来构建VxLAN,起到自动建立隧道 (type 3) 、自动构建BUM转发层面 (type 3) 、自动学习mac路由(type2)的效果

一、拓朴图如下:

        要求:AR1 能通过 ISP 对 AR2 进行动态方式的大二层互访;AR3 和 AR4 同样

二、配置过程:
运营商内部侧:
1、配网络侧底层互通(underlayer)

leaf之间loopback接口互访(以后的VTEP地址:VxLAN隧道IP地址)

2、配置运营商网络侧 overlayer:

  a、在PE之间建立mp-bgp evpn peer邻居关系,并全局下使能 evpn
   evpn-overlay enable
   bgp 234
     undo default ipv4-unicast
     peer x.x.x.x as-number 123
     peer x.x.x.x connect loopback 0
     l2vpn-family evpn
       peer x.x.x.x enable
  b、创建nve接口,绑定二层vni,配置控制层面使用evpn bgp协议、学习方式
    int nve1
      source 10.1.2.2
      vni 5010 head-end peer-list protocol bgp
        这一步,将产生3类bgp evpn路由,自动产生vxlan tunnel,自动产生bum头端复制的转发表项,2类路由模拟器里看不到表项

3、配置运营商用户侧 overlayer

  a、创建BD,关联 vni,将 BD 引入到 evpn,配置RD、RT,用于evpn的区分:
    bridge-domain 10
      vxlan vni 5010    #针对 vlan10关联二层vni(1:1绑定,只能关联一个VNI)
      evpn
        route-distinguisher 5010:1
        vpn-target 5010:1
  b、配置VAP,关联BD
    int G1/0/0.10 mode l2    #只有CE系列有此命令,S系列没有此条命令
      encapsulation dot1q vid 10    #
      bridge-doain 10

4、真正用户侧:

  a、AR1和AR2向交换机接口侧配置IP
  b、S1和S2交换机起vlan10,向运营商侧配置trunk,允许vlan10通过

三、名词解释:

PMSI:Provider Multicast Service ID 运营商组播服务ID,包括二层vni(wireshark显示为MPLS Label,实则为 vni 值)、tunnel-id end point(出口)
NVE:Network Virtualization Edge(接口,用于连接网络侧,转发VxLAN的封装)
VTEP:Virtual Tunnel EndPoint    #虚拟隧道终节点Leap loopback地址

四、常用命令:

dis port vlan 10 G1/0/1 active    #展示完整的该端口的vlan 列表
dis bridge-domain 10 verbose     #查看BD10的详细信息
dis bgp evpn all routing-table mac-route | inclusive-route 0:32:10.1.3.3     #显示bgp evpn 的mac、arp路由
evpn-overlayer enable    #全局使能evpn
l2vpn-family evpn    #bgp下,起二层vpn地址簇
dis bgp evpn peer    #查看bgp evpn 邻居是否建立 
dis bgp evpn all routing-table peer 10.1.1.1 advertised #查看向peer发送的路由列表
dis bgp evpn all routing-table inclusive-route 0:32:10.1.3.3    #查看bgp evpn的inclusive-multist-route,用于构建
refresh bgp evpn all export | import    #软清一下bgp evpn发送|收取的路由
reset bgp all    #重置一下bgp进程
dis vxlan peer    #查看VxLAN对端列表
dis vxlan tunnel | verbose   #查看VxLAN隧道
dis vxlan vni    #查看 VxLAN 的vni列表
dis bridge-domain  x |verbose  #查看BD
dis mac-address bridge-domain 10 | verbose    #查看BD10的MAC表
dis port vlan 10 G0/0/1    #查看某个端口属于哪个vlan
dis interface nve | main | 1-2    #查看nve接口信息

[leaf1]:
evpn-overlay enable
#
bridge-domain 10vxlan vni 5010evpnroute-distinguisher 5010:1vpn-target 5010:1 export-extcommunityvpn-target 5010:1 import-extcommunity
#
bridge-domain 20vxlan vni 5020evpnroute-distinguisher 5020:1vpn-target 5020:1 export-extcommunityvpn-target 5020:1 import-extcommunity
#
interface GE1/0/0.10 mode l2encapsulation dot1q vid 10bridge-domain 10
#
interface GE1/0/0.20 mode l2encapsulation dot1q vid 20bridge-domain 20
#
interface GE1/0/1undo portswitchundo shutdownip address 10.1.12.1 255.255.255.0
#
interface LoopBack0ip address 10.1.1.1 255.255.255.255
#
interface Nve1source 10.1.1.1vni 5010 head-end peer-list protocol bgpvni 5020 head-end peer-list protocol bgp
#
bgp 123router-id 1.1.1.1undo default ipv4-unicastpeer 10.1.3.3 as-number 123peer 10.1.3.3 connect-interface LoopBack0#ipv4-family unicastundo peer 10.1.3.3 enable#l2vpn-family evpnpolicy vpn-targetpeer 10.1.3.3 enable
五、验证:
        ping包过去,有回应:

        抓包看包结构:

        看一下  bgp evpn 的包结构:
        看动态学习到的 BD 10 mac表:

        看下evpn路由表:

这篇关于动态 VxLAN 浅析及配置示例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1046970

相关文章

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

浅析Spring如何控制Bean的加载顺序

《浅析Spring如何控制Bean的加载顺序》在大多数情况下,我们不需要手动控制Bean的加载顺序,因为Spring的IoC容器足够智能,但在某些特殊场景下,这种隐式的依赖关系可能不存在,下面我们就来... 目录核心原则:依赖驱动加载手动控制 Bean 加载顺序的方法方法 1:使用@DependsOn(最直

Jenkins分布式集群配置方式

《Jenkins分布式集群配置方式》:本文主要介绍Jenkins分布式集群配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装jenkins2.配置集群总结Jenkins是一个开源项目,它提供了一个容易使用的持续集成系统,并且提供了大量的plugin满

SpringBoot线程池配置使用示例详解

《SpringBoot线程池配置使用示例详解》SpringBoot集成@Async注解,支持线程池参数配置(核心数、队列容量、拒绝策略等)及生命周期管理,结合监控与任务装饰器,提升异步处理效率与系统... 目录一、核心特性二、添加依赖三、参数详解四、配置线程池五、应用实践代码说明拒绝策略(Rejected

SQL中如何添加数据(常见方法及示例)

《SQL中如何添加数据(常见方法及示例)》SQL全称为StructuredQueryLanguage,是一种用于管理关系数据库的标准编程语言,下面给大家介绍SQL中如何添加数据,感兴趣的朋友一起看看吧... 目录在mysql中,有多种方法可以添加数据。以下是一些常见的方法及其示例。1. 使用INSERT I

一文详解SpringBoot中控制器的动态注册与卸载

《一文详解SpringBoot中控制器的动态注册与卸载》在项目开发中,通过动态注册和卸载控制器功能,可以根据业务场景和项目需要实现功能的动态增加、删除,提高系统的灵活性和可扩展性,下面我们就来看看Sp... 目录项目结构1. 创建 Spring Boot 启动类2. 创建一个测试控制器3. 创建动态控制器注

SpringBoot中SM2公钥加密、私钥解密的实现示例详解

《SpringBoot中SM2公钥加密、私钥解密的实现示例详解》本文介绍了如何在SpringBoot项目中实现SM2公钥加密和私钥解密的功能,通过使用Hutool库和BouncyCastle依赖,简化... 目录一、前言1、加密信息(示例)2、加密结果(示例)二、实现代码1、yml文件配置2、创建SM2工具

MySQL 定时新增分区的实现示例

《MySQL定时新增分区的实现示例》本文主要介绍了通过存储过程和定时任务实现MySQL分区的自动创建,解决大数据量下手动维护的繁琐问题,具有一定的参考价值,感兴趣的可以了解一下... mysql创建好分区之后,有时候会需要自动创建分区。比如,一些表数据量非常大,有些数据是热点数据,按照日期分区MululbU

SQL Server配置管理器无法打开的四种解决方法

《SQLServer配置管理器无法打开的四种解决方法》本文总结了SQLServer配置管理器无法打开的四种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录方法一:桌面图标进入方法二:运行窗口进入检查版本号对照表php方法三:查找文件路径方法四:检查 S

Python函数作用域示例详解

《Python函数作用域示例详解》本文介绍了Python中的LEGB作用域规则,详细解析了变量查找的四个层级,通过具体代码示例,展示了各层级的变量访问规则和特性,对python函数作用域相关知识感兴趣... 目录一、LEGB 规则二、作用域实例2.1 局部作用域(Local)2.2 闭包作用域(Enclos