FRR BGP协议分析17 -- labeled-unicast

路由器重温——BGP路由-2 BGP的基本功能配置与管理 一个基本的BGP网络,仅需配置BGP的一些基本功能。同时,BGP基本功能的配置也是组建BGP网络的基础,是能够使用BGP其他功能的前提。在配置BGP的基本功能之前,也需要先配置接口的IP地址,使相邻节点的网络层可达。 因为BGP中可以把一些需要配置相同属性的对等体配置为一个对等体组(一般是仅在比较大,存在较多BGP设备的网络中使用对等体组进行配置),同时又有EBGP对等体组和IBGP对等体组之分,所以在BGP基本功能的配置上,要有所区分。BGP基本功能所包括的配置任务如下表( 阅读详情

LABELED_UNICAST 的update消息和前面的不同点是在bgp_attr_parse解析属性的时候会调用bgp_mp_reach_parse解析BGP_ATTR_MP_REACH_NLRI,而在bgp_mp_reach_parse会处理label和vpn的一些选项,本地我们只说明处理label的,VPN的参照前面的文章。

在bgp_mp_reach_parse会解析label里面的nexthop属性,并保存在attr里面。

然后bgp_nlri_parse继续处理,labeled_unicast的处理函数是bgp_nlri_parse_label

同时我们也看下具体的MP_REACH_NLRI的报文

bgp_nlri_parse_label 解析报文主要完成下面的几件事情:

  • 解析prefix 前缀和长度
  • 解析label
  • 准备好数据,调用bgp_update

bgp_update 前面已经大致说过,这次我们只说明下label-unicat的处理:

  • has_valid_label处理会变成1,因为前面传入了解析出来的label值

  • 在构建struct bgp_path_info的时候,如果label有值,还需要构建struct bgp_path_info_extra,然后把label值存放在info_extra里面

后续的处理和在路由更新章节的WORK_QUEUE处理的逻辑一样,在bgp_process_main_one函数里面调用bgp_zebra_announce通告ZEBRA路由,ZEBRA处理路由的解析在zebra章节也已经讲过,这里重点补充下label相关的处理。

  • bgp_zebra_announce函数里面对nh label的处理,保存label信息

  • zapi_route_decode 解析nh的label

  • 生成nexthop的时候,如果有label,那么把label copy进nexthop

rib_process_add_fib处理LSP 下发的代码,我们继续跟踪下

这里又涉及到MPLS 的fec,简单理解就是保存了MPLS 转发表的in-label,而out-label保存在nh里面的label里面的,MPLS存放在NHLFE里面,LSP保存了整个LABEL转发路径。具体的数据结果的组织在MPLS里面讲解。

lsp_install 主要完成创建LSP,在LSP里面填充in-label和nhlfe的out-label,然后调用lsp_processq_add入队处理,入队后续的处理在MPLS章节讲解,这里就可以看到BGP的LABEL-UNICAT的label经过这样的处理就下发到了内核的MPLS转发表里面了。

Linux上实现mpls,ldpd(Quagga)完整步骤 MPLS LDPD LINUX EXPERIMENT(Quagga)本文为原创,禁止转载。 文章是在个人研究怎么在LINUX上实现MPLS的总结。暂时LINUX上还没法实现BGP MPLS VPN1.Build a linux environment supporting mpls ,quagga and ldpd 阅读详情

相关推荐

【信息科学与工程学】【数据中心】 第十二篇 超大规模智算中心跨地域互联与协同架构方案-02

任务分配、路径规划、行为协调与冲突消解算法是构建智能自主系统的基石。​​任务分配​​是决策“谁做什么”,追求系统整体效能最优。​​路径规划​​是决策“怎么走去哪里”,保障个体移动的安全与效率。​​行为协调​​是设计“如何一起干”,确保群体协作的有序与高效。​​冲突消解​​则是制定“打架了怎么办”的规则,解决协作过程中的矛盾。这些算法广泛应用于​​无人机编队飞行​​、​​多机器人协同搜索与救援​​、​​智能仓储物流​​(AGV调度)、​​自动驾驶车队​​以及​​工业自动化​。

weixin_49199313的博客 758

网络协议BGP-1

【网络协议】【BGP】【6vpe】【bug】 古老的知识 身在一家做网络设备的传统行业公司,感觉就像与世隔绝一样,遇到点啥问题,百度基本搜不到,能搜到接近点的,我一看内容时间,04年、07年,让我真滴很绝望,现在是互联网的天下,相关内容满天飞,而一些“过时”的技术,自然就是古董了。 既然没有现成的,那就只好自己弄了,能够帮助到谁,就算我们有缘吧 第一个帖子以一个bug开始。 6pe PE1-P-PE2-CE PE1和PE2之间建立ipv6 labeled_unicast地址族关系 PE1为仿真工具仿真的

weixin_42354744的博客 436

人形机器人人机交互解决方案(2026完整版)

《人形机器人人机交互解决方案(2026完整版)》摘要 本项目针对2026年人形机器人产业爆发式增长需求,提出了一套完整的人机交互解决方案。方案包含十大核心模块(语音识别、情感识别、手势识别等),采用五层架构设计,实现多模态融合交互,响应时间≤32ms,准确率≥99%。覆盖制造业巡检、家庭服务等10大场景,适配20+主流机型。项目总投资4.1亿元,预期年营收8.2亿元,将申请专利120项,培养专业人才300人。通过技术创新解决当前交互体验生硬、安全可控性不足等痛点,助力我国人形机器人产业实现从"跟跑

随读手记 774

MP-BGP报文详解

MP-BGP为IPv6单播网络和IPv4组播网络建立独立的拓扑结构,并将路由信息储存在独立的路由表中,保持单播IPv4网络、单播IPv6网络和组播网络之间路由信息相互隔离,也就实现了用单独的路由策略维护各自网络的路由。Withdrawn Routes Length: 0 //撤销路由的长度为0,MP-BGP撤销路由不看这个,就看是否有MP_UNREACH_NLRI这个属性,BGP才看。用于发布可达路由及下一跳信息。@BGP的NLRI信息携带前缀和掩码,MP-BGP携带RD、私网标签,前缀、前缀长度;

h450939070的博客 5738

APM无人船测绘实战:从RTK、测深仪到图传的完整系统集成指南

本文提供了一套完整的APM无人船测绘系统集成实战指南。从RTK模块配置、测深仪数据同步到图传系统接入,详细解析了硬件选型、接线、软件参数调试及QGC地面站任务规划的全流程,旨在帮助用户将分散的部件整合为可自主执行水下地形测绘的可靠工具。

rr23456的博客 520

Habitat-v0.1.7安装全网最详细教程(解决habitat-sim下载时网络问题)

Habitat-v0.1.7安装全网最详细教程(解决habitat-sim下载时网络问题)

shannanshouyin的博客 1325

【HCIE】 跨域MPLS-VPN OptionC (RR) 方式一

确认R9与R10私网通信正常,且是最佳路径。

sxhuafeng的博客 5921

ACS驱动器直线电机回零程序与误差补偿Buffer实战解析

本文深入解析了ACS驱动器控制直线电机时,实现高精度回零与误差补偿的完整实战流程。核心在于利用驱动器的D-Buffer功能,将激光干涉仪测量的误差数据导入补偿数组,通过ERRORMAP1D指令进行映射,从而实时修正定位误差,显著提升设备重复定位精度。文章详细拆解了回零程序逻辑、补偿参数设置及关键调试避坑指南。

646

MPLS BGP 跨域方案C1

拓扑解释 某公司北京研发部门A与上海研发部门B通过MPLS BGP 专线互通 配置思路 1.两个MPLS域内配通底层IGP与MPLS 。 2.在两台PE设备(AR2/AR7)上创建VPN实例进行VPNV4路由的收发控制,且PE间建立VPNV4的EBGP邻居关系。 3.PE与ASBR(AR2/AR7与AR4/AR5)建立IPV4的IBGP邻居,并开启标签发布能力。 4.ASBR(AR4与AR5)建立IPV4 EBGP邻居并开通接口下的MPLS功能,开启标签发布能力。 5.ASBR(AR4/A..

weixin_45457085的博客 1237

VS2022离线安装总闪退?可能是这个--noWeb参数没加对(完整参数指南)

本文深入解析了VS2022离线安装过程中常见的闪退问题,指出核心原因往往在于命令行参数使用不当,特别是`--noWeb`参数。文章提供了完整的参数使用指南和实战解决方案,包括证书处理、安装器文件修复及自动化脚本,帮助用户彻底解决离线部署中的验证失败与闪退难题。

weixin_28842269的博客 755

C语言入门—初识C语言

一、C语言概述 1、什么是C语言 语言是用来交流沟通的,有一方说,有一方听。必须要两方参与。(自言自语的除外) 语言是人与人交流,而C语言是人与机器交流 语言有独特的语法规则和定义,双方必须遵循这些规则和定义才能实现真正的交流。 接下来首先了解下计算机的组成: 2、计算机介绍 2.1、计算机结构组成 2.2、计算机系统组成 2.3、程序的指令 指令是对计算机进行程序控制的最小单元 计算机的指令系统是指所有指令的集合 程序是指为完成某一项特定任务而用某种言语编写的一组指令序列 3、C语言发展历程 3.

jun319817的博客 1033

BGP协议介绍总结(全干货)

想弄清bgp概念之前,先了解什么是bgp。bgp协议:边界网关协议(Border Gateway Protocol,BGP)是一种用来在路由选择域之间交换网络层可达性信息(Network Layer Reachability Information,NLRI)的路由选择协议。由于不同的管理机构分别控制着他们各自的路由选择域,因此,路由选择域经常被称为自治系统AS(Autonomous System)。

Hello 2万+

citespace基本操作

聚类分析 时间线图 这些结果都是高被引文献的相关呈现结果,代表该领域的文献基础 下面可以看看该project的前沿领域 选择keywords 和term go! 调整显示方式 生成凸线图:表示 在某个研究领域或者时间段内 ,大家对某个领域或者某个词的关注度突然增高,凸显前沿方向的转变 以此来发现热点 ...

生信小博士的博客 1万+

FRR BGP 协议分析 5 -- 路由更新(2)

处理NLRI 获取NLRI的报文长度,填入nlris[NLRI_UPDATE],到现在为止nlris里面的4种类型(如果有的话),已经全部填写到nlris数组结构体里面 然后我们遍历这个数组,处理里面所有的NLRI的类型,本次先分析NLRI_UPDATE,MP后面再分析。 根据前面解析出来的SAFI选取不同的处理函数,afi/safi定义如下: AFI_IP 的组合定义如下...

~~ LINUX ~~ 3137

C#上位机面试必问30题:机器视觉+工业通信+性能优化(含答案解析)

工业通信:围绕“稳定性”展开,重点答异常处理、断线重连、资源释放;机器视觉:围绕“精度+速度”展开,重点答预处理、ROI、参数优化;性能优化:围绕“UI不卡、内存不泄、效率不低”展开,重点答异步、限流、资源复用;面试加分项:结合实际项目案例(如“我在XX项目中用信号量解决了多设备并发卡顿问题”)。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1506

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

论剑BGP5

上期问题:BGP联盟中,AS_PATH属性有以下2个规则:1)在联盟内部需要将成员AS的AS号加入到AS_PATH列表中,但这些AS号不能被宣告到联盟之外。在默认情况下,成员AS号被列在AS_PATH中作为AS_PATH属性类型4,即AS_CONFED_SEQUENCE。如果在联盟中使用了手动聚合命令(aggregate)并配置了关键字as_set,那么位于聚合点之后的...

weixin_34345753的博客 308

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

FRR MPLS协议分析 3 --- MPLS ZEBRA处理

MPLS ZEBRA处理

~~ LINUX ~~ 734

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

FRR BGP协议分析11 -- ZEBRA初始化

zebra,翻译是斑马,它负责管理其他所有协议进程的路由信息的更新与交互,并负责与内核交换信息,整体的架构如下: Zebra的初始化在zebra/main.c里面,代码也来的干净直接 frr_init创建zebra主进程的master数据结构,用来做事件驱动,我们可以看下thread_master的数据结构。 其整合了事件的可读、可写、定时器、信号的处理,后面有时间可以来学习下...

~~ LINUX ~~ 3878

BGP路由聚合原理和实验(华为设备)

概述: 在大规模的网络中,BGP路由表十分庞大,给设备造成了很大的负担,同时使发生路由振荡的几率也大大增加,影响网络的稳定性。 路由聚合是将多条路由合并的机制,它通过只向对等体发送聚合后的路由而不发送所有的具体路由的方法,减小路由表的规模。并且被聚合的路由如果发生路由振荡,也不再对网络造成影响,从而提高了网络的稳定性。 路由聚合是会使用Aggregator属性和AutoAggregator属性 : Atomic-Aggregate属性:属于公认任意属性,主要用于路由聚合时,如果聚合路由将所有明细路由抑制了

tushanpeipei的博客 9696

Frrouting学习笔记(五)——OSPF Segment Routing

实现分段路由的地球。它添加了一个新的分段路由数据库,用于管理每个链路和前缀的分段标识符和分段路由启用节点,回调功能用于处理传入。这里是启用分段路由的简单配置示例。这里的想法是,一旦知道备份路径,它也是路径上所有节点本身的备份路径。它专注于提供基本的基础设施,这些基础设施稍后也可以用于增强算法方面。洪泛节点的分段路由功能。运行配置了路由表,则会为每个前缀增加额外的备份路径。)的框架内进行的,该项目的部分资金由欧盟委员会提供。因此,在第一次之后,每个进入的。年龄,以确定它是安装还是将来删除,即刷新的。

luanshenshen的博客 1114

Linux上实现mpls的环境配置

ubuntu和centos的内核升级 在这两个里面安装quagga-ldpd

CJ的博客 3390

Frrouting学习笔记(二)——Zebra协议及指令

协议守护程序使用Zebra协议(或``ZAPI``) 来与 **zebra**守护程序进行通信。每个协议守护程序都可以向**zebra**守护程序请求信息,并向其发送信息,例如接口状态、路由状态、下一跳验证等。协议守护程序还可以使用**zebra**安装路由。**zebra**守护进程负责管理将哪一种路由安装进操作系统内核。一些守护进程会使用多个ZAPI连接。每个ZAPI会话都有一个元组标识:``{protocol,instance,session_id}` `用于被识别。

qq_37870723的博客 737

FRR MPLS协议分析 1 --- MPLS初始化

MPLS初始化

~~ LINUX ~~ 791

FRR BGP协议分析8 -- BGP 层3隧道 (2)

本文,我们分析UPDATE消息的处理过程 层3VPN 的UPDATE消息和前面的路由更新报文的接受处理是一样的,从解析属性的地方开始区别,报文如下图: 2019/12/26 09:32:44 BGP: : 20.20.20.20 rcvd UPDATE w/ attr: , origin ?, metric 100, extcommunity RT:12.1.1.2:2, path 200...

~~ LINUX ~~ 1304

BGP(边界网关协议)

被分割的AS本身是联盟,那些子AS是该AS的成员,在联盟以外的AS将整个联盟看作一个AS,它们看不到联盟内部的成员AS,因为这些成员AS对外部是隐藏的,因此成员AS可以使用公共AS号,也可以使用私有AS号,在实际生产环境中,建议使用私有AS号作为成员AS号。BGP网络中的每个AS都被分配一个唯一的AS号,用于区分不同的AS。BGP的下一跳为AS的一跳,因此AS边界的BGP路由器,向它的IBGP对等体发送从它的EBGP对等体学习到的路由时,支持4字节AS号的设备能够与支持2字节AS号的设备兼容。

weixin_74436091的博客 2079

BGP——图解5种报文

例如:当BGP的入口路由策略发生变化时,可以通过手动触发请求邻居重新通告路由,对BGP路由表进行动态刷新。Optional Parmeters可变长字段,用于携带BGP邻居会话协商过程中使用的可选字段。1.Marter:检查BGP对等体的同步信息是否完整,不使用此验证时所有比特均为1。可变长字段,被包含在BGP路由更新中,携带路由的前缀和掩码信息。每个属性由可变长的三元组(属性类型、属性长度、属性值)组成。----此处指的就是Open报文。----此处就是不使用此验证。----长度为19~4096。

m0_49864110的博客 2万+
上一篇: FRR BGP协议分析16 -- EVPN
下一篇: FRR BGP协议分析18 -- RR
废言Pro
博客等级 码龄16年 1092粉丝 142原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值