锐捷(十五)mpls vxn跨域optionc场景
一 实验拓扑

二 实验需求
ce1和ce2为两个分公司,要求两个分公司之间用mpls vxn 进行通信,组网方式是optionc。
三 实验分析
optionc在转发平面上有点难理解,有一些关键点需要注意,大家点击链接可以参考我上篇发过的一个文章:锐捷(十四)mpls vxn optionc的关键问题所在和具体问题分析,看完这个博客在参考配置实验会非常轻松。
我上面同样有一个optiona的配置实验大家也可以参考:锐捷(十三)mpls vxn optionA基础配置实验
锐捷optionc的主要配置思路:
先建立单区域as域内底层的igp和ldp
pe1和pe2启用vrf并接口绑定vrf实例
配置asbr1和asbr2之间的ebgp邻居关系
配置pe1和pe2的MPBGP邻居关系
在asbr上宣告pe上的路由,将bgp重分布进ospf
配置asbr之间的打标签功能
配置asbr和pr之间的传递标签功能
配置pe和ce之间的路由传递
四 实验配置
4.1先建立单区域as域内底层的igp和ldp
这个不在多说,连个域内通过ospf和mpls ldp宣告接口上的路由,配置完成后检查路由表和标签转发表


4.2 pe1和pe2启用vrf并接口绑定vrf实例
注意绑定实例后ip地址会清除,pe1和pe2实例的rd值要区别,rt值要导入等于导出
R1:
pe1(config)#ip vrf vrlab1
pe1(config-vrf)#rd 1:1
pe1(config-vrf)#route-target both 100:1
pe1(config)#int g0/0
pe1(config-if-GigabitEthernet 0/0)#ip vrf forwarding vrlab1
% Interface GigabitEthernet 0/0 IP address removed due to enabling VRF vrlab1
pe1(config-if-GigabitEthernet 0/0)#ip address 12.1.1.2 24
R7:
pe2(config)#ip vrf vrlab2
pe2(config-vrf)#rd 1:2
pe2(config-vrf)#route-target both 100:1
pe2(config)#int g0/0
pe2(config-if-GigabitEthernet 0/0)#ip vrf forwarding vrlab2
% Interface GigabitEthernet 0/0 IP address removed due to enabling VRF vrlab1
pe1(config-if-GigabitEthernet 0/0)#ip address 78.1.1.17 24
4.3配置asbr1和asbr2之间的ebgp邻居关系
在这里将2.2.2.2(pe的lo地址)宣告出去
R4:
asbr1(config)#router bgp 100
asbr1(config-router)#show thneighbor 45.1.1.5 remote-as 200address-family ipv4network 2.2.2.2 mask 255.255.255.255neighbor 45.1.1.5 activateexit-address-family
R5:
asbr2(config)#router bgp 200
asbr2(config-router)#show thneighbor 45.1.1.4 remote-as 100address-family ipv4network 7.7.7.7 mask 255.255.255.255neighbor 45.1.1.4 activateexit-address-family
4.4配置pe1和pe2的MPBGP邻居关系
主要要在vpnv4地址族下建立vpnv4邻居
R2:
pe1(config)#router bgp 100
pe1(config-router)#show thneighbor 7.7.7.7 remote-as 200neighbor 7.7.7.7 ebgp-multihop 255neighbor 7.7.7.7 update-source Loopback 0address-family ipv4no neighbor 7.7.7.7 activateexit-address-familyaddress-family vpnv4 unicastneighbor 7.7.7.7 activateneighbor 7.7.7.7 send-community extendedexit-address-family
R7:
pe1(config)#router bgp 200
pe1(config-router)#show thneighbor 2.2.2.2 remote-as 200neighbor 2.2.2.2 ebgp-multihop 255neighbor 2.2.2.2 update-source Loopback 0address-family ipv4no neighbor 2.2.2.2 activateexit-address-familyaddress-family vpnv4 unicastneighbor 2.2.2.2 activateneighbor 2.2.2.2 send-community extendedexit-address-family
注意:以上操作的前提是pe1的2.2.2.2和pe2的7.7.7.7能通

但是!!!!!!此时是建立不起来bgp vpnv邻居的,具体原因很简单,是因为asbr之间 没有ldp,外层标签到了asbr后传不不出去
4.5配置asbr之间的打标签功能
R4:
asbr1(config)#int g0/1
asbr1(config-if-GigabitEthernet 0/1)#label-switching
asbr1(config)#router bgp 100
asbr1(config-router)#neighbor 45.1.1.5 send-label
R5:
asbr2(config)#int g0/0
asbr2(config-if-GigabitEthernet 0/1)#label-switching
asbr2(config)#router bgp 200
asbr2(config-router)#neighbor 45.1.1.4 send-label
此时发现邻居pe之间的mpebgp还是起不来,问题还是一样,asbr1上的路由传递到asbr2后无法传递,因为mpls ldp只传递igp路由,而2.2.2.2是通过bgp邻居起来的,所以mpls ldp无法为2.2.2.2打标签,所以这里也要做一些配置让mpls能学到bgp的路由
4.6配置asbr和pr之间的传递标签功能
R4:
asbr1(config)#mpls router ldp
asbr1(config-mpls-router)#advertise-labels for bgp-routes
R5:
asbr2(config)#mpls router ldp
asbr2(config-mpls-router)#advertise-labels for bgp-routes
此时,pe1和pe2终于建立起来mpebgp邻居关系了

4.7配置pe和ce之间的路由传递
我之所以后来再写这个地方是为想把先写完整个optionc的核心架构
R2:
pe1(config)#router bgp 100
pe1(config-router)#address-family ipv4 vrf vrlab1
pe1(config-router-af)#redistribute ospf 99
pe1(config)#router ospf 99 vrf vrlab1
pe1(config-router)#redistribute bgp subnets
pe1(config-router)#network 12.1.1.2 0.0.0.0 area 0
R7:
pe2(config)#router bgp 200
pe2(config-router)#address-family ipv4 vrf vrlab2
pe2(config-router-af)#redistribute ospf 99
pe2(config)#router ospf 99 vrf vrlab2
pe2(config-router)#redistribute bgp subnets
pe2(config-router)#network 78.1.1.7 0.0.0.0 area 0
R1:
ce1(config)#router ospf 99
ce1(config-router)#network 12.1.1.1 0.0.0.0 area 0
ce1(config-router)#network 11.11.11.11 0.0.0.0 area 0
R8:
ce1(config)#router ospf 99
ce1(config-router)#network 78.1.1.8 0.0.0.0 area 0
ce1(config-router)#network 88.88.88.88 0.0.0.0 area 0
查看效果:

此时说明ce的路由已传递到vpnv4路由
ce上也应该学到了对方ce的路由

ping测试:

实验成功!!!!
注意:锐捷的optionc方案在asbr打标签的地方和华为的不太一样,华为是用的route-policy打上一个三层标签,而锐捷只需要#neighbor 45.1.1.4 send-label这一条命令。
欢迎各位大佬在评论区或私信批评指正!!
相关文章:

锐捷(十五)mpls vxn跨域optionc场景
一 实验拓扑二 实验需求ce1和ce2为两个分公司,要求两个分公司之间用mpls vxn 进行通信,组网方式是optionc。三 实验分析optionc在转发平面上有点难理解,有一些关键点需要注意,大家点击链接可以参考我上篇发过的一个文章࿱…...
2023备战金三银四,Python自动化软件测试面试宝典合集(七)
马上就又到了程序员们躁动不安,蠢蠢欲动的季节~这不,金三银四已然到了家门口,元宵节一过后台就有不少人问我:现在外边大厂面试都问啥想去大厂又怕面试挂面试应该怎么准备测试开发前景如何面试,一个程序员成长之路永恒绕…...

redis 主从复制
在redis的持久化RDB与AOF详解文章中,我们知道如果redis宕机了,我们可以通过AOF 和 RDB 文件的方式恢复数据,从而保证数据的丢失(或少量损失)从而提高稳定性。但是,如果我们数据只存在一台redis服务器中&…...

如何用Redis实现延迟队列
背景前段时间有个小项目需要使用延迟任务,谈到延迟任务,我脑子第一时间一闪而过的就是使用消息队列来做,比如RabbitMQ的死信队列又或者RocketMQ的延迟队列,但是奈何这是一个小项目,并没有引入MQ,我也不太想…...
项目文件相关总结
风险登记册 风险登记册记录了已识别单个风险的详细信息。其主要内容包括: 已识别的风险清单潜在的风险责任人潜在的风险应对措施清单风险管理计划要求的其他信息供方选择标准 供方选择标准用于确保选出的建议书将提供最佳质量的所需服务,主要内容 包括: 能力和潜力产品成本…...

ZooKeeper集群搭建步骤
一、准备虚拟机准备三台虚拟机,对应ip地址和主机名如下:ip地址Hostname192.168.153.150ant163192.168.153.151ant164192.168.153.152ant165修改hostname,并使之生效[rootlocalhost /]# hostnamectl set-hostname zookeeper1 //修改hostname …...

网际协议IP
网际协议IP 文章目录网际协议IP[toc]虚拟互联网IP地址及其表示方法分类IP地址(两级)无分类编址 CIDR网路前缀地址块地址掩码子网划分(三级IP地址)IP地址和MAC地址地址解析协议ARPIP数据报的格式IP数据报首部的固定部分中的各字段IP数据报首部的可变部分分…...
Python 语言参考手册、教程、标准库
官方文档:https://docs.python.org/zh-cn/3.11/ Python 语言参考手册 介绍了 Python 句法与“核心语义”。在力求简明扼要的同时,我们也尽量做到准确、完整。有关内置对象类型、内置函数、模块的语义在 Python 标准库 中介绍。有关本语言的非正式介绍&am…...
数据库连接池 BoneCP、HikariCP 等
文章目录 数据库连接池 BoneCP、HikariCP 等BoneCPDruidTomcat Jdbc PoolHikariCPC3p0DbcpLRUPSCachePS数据库连接池 BoneCP、HikariCP 等 BoneCP 官方说法 BoneCP 是一个高效、免费、开源的 Java 数据库连接池实现库 设计初衷就是为了提高数据库连接池性能,根据某些测试数…...

博客系统 SSM 超强硬核良心推荐之第一弹 - 预备工作
硬核 ! 从 0 到 1 完美实现 SSM 版本的博客系统 , 学会保准不吃亏!一 . SSM 版本相比于 Servlet 版本的亮点二 . 初始化数据库三 . 前端页面3.1 注册页面3.2 登录功能3.3 文章总列表页3.4 自己的文章列表页3.5 文章详情页3.6 编写博客页面大家好 , 这是新的专栏 , 博客系统 SSM…...
[Web] 简单瀑布流布局实现
目前的纯 CSS 布局, 是没办法实现比较完美的瀑布流布局的. 参考: CSS总结:瀑布流布局 - 黑白程序员 我使用 JS CSS, 并且自动布局实现了较为简单, 观赏性好的瀑布流布局. 代码 HTML: <!DOCTYPE html> <html lang"en"> <head><link rel&quo…...

多线程之死锁,哲学家就餐问题的实现
1.死锁是什么 死锁是这样一种情形:多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞,因此程序不可能正常终止。 2.哲学家就餐问题 有五个哲学家,他们的生活方式是交替地进行思考和进餐…...

UTF-8编码
介绍 UTF-8 编码 UTF-8 是一种针对 Unicode 的可变长度字符编码。 针对 Unicode:UTF-8 是 Unicode 的实现方式之一。相当于 Unicode 规定了字符对应的代码值,这个代码值需要转换为字节序列的形式,用于数据存储、传输。代码值到字节序列的转…...

likeshop单商户SaaS版V1.8.2说明!
likeshop单商户SaaS版V1.8.2主要更新如下: 新增 前端登录引导用户填写头像昵称 PC端—注册页面显示服务协议和隐私政策 PC端—首次进入商城弹出协议提示 PC端—结算页新增门店自提的配送方式 后台—PC端菜单导航栏的跳转链接支持添加自定义链接 优…...

算法训练营 day46 动态规划 最后一块石头的重量 II 目标和 一和零
算法训练营 day46 动态规划 最后一块石头的重量 II 目标和 一和零 最后一块石头的重量 II 1049. 最后一块石头的重量 II - 力扣(LeetCode) 有一堆石头,用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合…...

nginx-host绕过实例复现
绕过Nginx Host限制第一种处理方法Nginx在处理Host的时候,会将Host用冒号分割成hostname和port,port部分被丢弃。所以,我们可以设置Host的值为2023.mhz.pw:xxx"example.com,这样就能访问到目标Server块:第二种处理…...
Java学习记录day9
类与对象 内部类 成员内部类 在一个类的内部定义的类。 public class Outer {private int a 10;public void outMethod() {System.out.println("这是外部类中的方法");}// 成员内部类public class Inner{private int b 10;public void innerMethod() {// 外部类…...

ActiveReports.NET 17.0 Crack by Xacker
一个完整的报告解决方案,用于在您的业务应用程序中设计、定制、发布和查看报告。 ActiveReports.NET 通过直观的 Visual Studio 集成报表设计器和丰富的控件帮助您提供精美的报表。ActiveReports 提供基于代码的跨平台报告、易于使用的设计器和灵活的 API。适用于桌…...

【计算机网络】传输层TCP协议
文章目录认识TCP协议TCP协议的格式字段的含义序号与确认号六个标志位窗口大小确认应答(ACK)机制超时重传机制连接管理机制三次握手四次挥手滑动窗口流量控制拥塞控制延迟应答捎带应答面向字节流粘包问题TCP异常情况总结认识TCP协议 传输控制协议 (TCP,T…...

Mysql5.7安装【Windows版】
文章目录一、下载二、添加到环境变量三、添加配置文件my.ini四、安装Mysql 修改密码一、下载 下载地址 滑倒最下面有一个MySQL Community Server 选择要下载的版本 二、添加到环境变量 下载好了之后开始解压 把bin目录添加到环境变量 可以点击进入bin目录,直接复…...
Python爬虫实战:研究feedparser库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...
基础测试工具使用经验
背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...

CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
《C++ 模板》
目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板,就像一个模具,里面可以将不同类型的材料做成一个形状,其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式:templa…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...
微服务通信安全:深入解析mTLS的原理与实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、引言:微服务时代的通信安全挑战 随着云原生和微服务架构的普及,服务间的通信安全成为系统设计的核心议题。传统的单体架构中&…...

基于单片机的宠物屋智能系统设计与实现(论文+源码)
本设计基于单片机的宠物屋智能系统核心是实现对宠物生活环境及状态的智能管理。系统以单片机为中枢,连接红外测温传感器,可实时精准捕捉宠物体温变化,以便及时发现健康异常;水位检测传感器时刻监测饮用水余量,防止宠物…...
Python的__call__ 方法
在 Python 中,__call__ 是一个特殊的魔术方法(magic method),它允许一个类的实例像函数一样被调用。当你在一个对象后面加上 () 并执行时(例如 obj()),Python 会自动调用该对象的 __call__ 方法…...
Spring事务传播机制有哪些?
导语: Spring事务传播机制是后端面试中的必考知识点,特别容易出现在“项目细节挖掘”阶段。面试官通过它来判断你是否真正理解事务控制的本质与异常传播机制。本文将从实战与源码角度出发,全面剖析Spring事务传播机制,帮助你答得有…...