动态 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

相关文章

利用Python调试串口的示例代码

《利用Python调试串口的示例代码》在嵌入式开发、物联网设备调试过程中,串口通信是最基础的调试手段本文将带你用Python+ttkbootstrap打造一款高颜值、多功能的串口调试助手,需要的可以了... 目录概述:为什么需要专业的串口调试工具项目架构设计1.1 技术栈选型1.2 关键类说明1.3 线程模

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

Android实现在线预览office文档的示例详解

《Android实现在线预览office文档的示例详解》在移动端展示在线Office文档(如Word、Excel、PPT)是一项常见需求,这篇文章为大家重点介绍了两种方案的实现方法,希望对大家有一定的... 目录一、项目概述二、相关技术知识三、实现思路3.1 方案一:WebView + Office Onl

Mysql用户授权(GRANT)语法及示例解读

《Mysql用户授权(GRANT)语法及示例解读》:本文主要介绍Mysql用户授权(GRANT)语法及示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql用户授权(GRANT)语法授予用户权限语法GRANT语句中的<权限类型>的使用WITH GRANT

Java中Scanner的用法示例小结

《Java中Scanner的用法示例小结》有时候我们在编写代码的时候可能会使用输入和输出,那Java也有自己的输入和输出,今天我们来探究一下,对JavaScanner用法相关知识感兴趣的朋友一起看看吧... 目录前言一 输出二 输入Scanner的使用多组输入三 综合练习:猜数字游戏猜数字前言有时候我们在

CentOS7更改默认SSH端口与配置指南

《CentOS7更改默认SSH端口与配置指南》SSH是Linux服务器远程管理的核心工具,其默认监听端口为22,由于端口22众所周知,这也使得服务器容易受到自动化扫描和暴力破解攻击,本文将系统性地介绍... 目录引言为什么要更改 SSH 默认端口?步骤详解:如何更改 Centos 7 的 SSH 默认端口1

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H

SpringBoot多数据源配置完整指南

《SpringBoot多数据源配置完整指南》在复杂的企业应用中,经常需要连接多个数据库,SpringBoot提供了灵活的多数据源配置方式,以下是详细的实现方案,需要的朋友可以参考下... 目录一、基础多数据源配置1. 添加依赖2. 配置多个数据源3. 配置数据源Bean二、JPA多数据源配置1. 配置主数据