动态 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调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

在 Spring Boot 中使用 @Autowired和 @Bean注解的示例详解

《在SpringBoot中使用@Autowired和@Bean注解的示例详解》本文通过一个示例演示了如何在SpringBoot中使用@Autowired和@Bean注解进行依赖注入和Bean... 目录在 Spring Boot 中使用 @Autowired 和 @Bean 注解示例背景1. 定义 Stud

oracle DBMS_SQL.PARSE的使用方法和示例

《oracleDBMS_SQL.PARSE的使用方法和示例》DBMS_SQL是Oracle数据库中的一个强大包,用于动态构建和执行SQL语句,DBMS_SQL.PARSE过程解析SQL语句或PL/S... 目录语法示例注意事项DBMS_SQL 是 oracle 数据库中的一个强大包,它允许动态地构建和执行

Python中顺序结构和循环结构示例代码

《Python中顺序结构和循环结构示例代码》:本文主要介绍Python中的条件语句和循环语句,条件语句用于根据条件执行不同的代码块,循环语句用于重复执行一段代码,文章还详细说明了range函数的使... 目录一、条件语句(1)条件语句的定义(2)条件语句的语法(a)单分支 if(b)双分支 if-else(

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API

SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤

《SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤》本文主要介绍了SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤,文中通过示例代码介绍的非常详... 目录 目标 步骤 1:确保 ProxySQL 和 mysql 主从同步已正确配置ProxySQL 的

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL

Python中Markdown库的使用示例详解

《Python中Markdown库的使用示例详解》Markdown库是一个用于处理Markdown文本的Python工具,这篇文章主要为大家详细介绍了Markdown库的具体使用,感兴趣的... 目录一、背景二、什么是 Markdown 库三、如何安装这个库四、库函数使用方法1. markdown.mark

MySQL数据库函数之JSON_EXTRACT示例代码

《MySQL数据库函数之JSON_EXTRACT示例代码》:本文主要介绍MySQL数据库函数之JSON_EXTRACT的相关资料,JSON_EXTRACT()函数用于从JSON文档中提取值,支持对... 目录前言基本语法路径表达式示例示例 1: 提取简单值示例 2: 提取嵌套值示例 3: 提取数组中的值注意