使用 BGP 的链路状态分布
使用 BGP 的链路状态分布概述
- 内部网关协议的作用
- 内部网关协议的局限性
- 需要跨越链路状态分布
- 使用 BGP 作为解决方案
- 支持和不支持的功能
- 用于网络中源数据包路由的 BGP 链路状态扩展 (SPRING)
- 使用 OSPF 作为 IGP 验证通过 BGP 获知的 NLRI 节点
- 使用 OSPF 作为 IGP 验证通过 BGP 获知的前缀 NLRI
内部网关协议的作用
内部网关协议 (IGP) 是一种协议类型,用于在自治系统 (AS) 内的设备之间交换路由信息。根据计算到达目标的最佳路径的方法,IGP 分为两类:
链路状态协议 — 使用组播地址和触发的路由更新,向所有路由器播发有关网络拓扑(直接连接的链路和这些链路的状态)的信息,直到运行链路状态协议的所有路由器都具有相同的互连信息。到达目标的最佳路径是根据最大延迟、最小可用带宽和资源类相关性等约束计算的。
OSPF 和 IS-IS 是链路状态协议的示例。
距离矢量协议 — 使用广播地址向直接连接的邻居播发完整的路由表信息。最佳路径是根据到目标网络的跃点数计算的。
RIP 是距离矢量协议的一个示例。
顾名思义,IGP 的作用是在给定路由域内部或内部提供路由连接。路由域是一组受公共管理控制的路由器,它们共享一个公共路由协议。AS 可以由多个路由域组成,其中 IGP 功能从相邻路由器通告和学习网络前缀(路由),以构建路由表,该路由表最终包含所有源的条目,通告给定前缀的可访问性。IGP 执行路由选择算法以选择本地路由器与每个目标之间的最佳路径,并在构成路由域的路由器之间提供完全连接。
除了播发内部网络可访问性之外,IGP 还经常用于通过称为路由重新分发的过程通告该 IGP 路由域外部的路由信息。路由重新分配是在不同的路由协议之间交换路由信息的过程,以便在需要 AS 内部连接时,将多个路由域连接在一起。
内部网关协议的局限性
虽然每个单独的 IGP 都有自己的优点和局限性,但一般来说,IGP 的最大限制是性能和可扩展性。
IGP 旨在处理出于流量工程目的获取和分发网络拓扑信息的任务。虽然此模型运行良好,但 IGP 在分发大型数据库时具有固有的扩展限制。IGP 可以自动检测邻居,通过这些邻居获取区域内网络拓扑信息。但是,链路状态数据库或流量工程数据库的范围为单个区域或 AS,从而限制了端到端流量工程等应用,限制了具有外部可见性以做出更好决策的好处。
对于标签交换网络,例如 MPLS 和通用 MPLS (GMPLS),大多数现有流量工程解决方案都在单个路由域中工作。当从入口节点到出口节点的路由离开入口节点的路由区域或 AS 时,这些解决方案不起作用。在这种情况下,由于整个网络中的完整路由信息不可用,路径计算问题变得复杂。这是因为,鉴于可扩展性限制和出于机密性考虑,服务提供商通常不会在路由区域或 AS 之外泄露路由信息。
需要跨越链路状态分布
IGP 的局限性之一是无法在单个区域或 AS 之外跨越链路状态分布。但是,让 IGP 获取的链路状态信息跨越多个区域或 AS 具有以下要求:
LSP 路径计算 — 此信息用于计算跨多个路由域(例如区域间 TE LSP)的 MPLS LSP 路径。
外部路径计算实体 — 应用层流量优化 (ALTO) 和路径计算元素 (PCE) 等外部路径计算实体根据网络拓扑和网络内连接的当前状态(包括流量工程信息)执行路径计算。此信息通常由网络内的 IGP 分发。
但是,由于外部路径计算实体无法从 IGP 中提取此信息,因此它们会执行网络监视以优化网络服务。
使用 BGP 作为解决方案
概述
为了满足跨多个域的跨越链路状态分布的需求,需要外部网关协议 (EGP) 从 IGP 区域收集链路状态和流量工程信息,与外部组件共享,并将其用于计算域间 MPLS LSP 的路径。
BGP 是一种标准化 EGP,用于在自治系统 (AS) 之间交换路由和可达性信息。BGP 是一种经过验证的协议,具有更好的扩展属性,因为它能够以可扩展的方式分发数百万个条目(例如,VPN 前缀)。BGP 是目前使用的唯一适合承载互联网上所有路由的路由协议。这主要是因为 BGP 在 TCP 上运行,可以利用 TCP 流控制。相比之下,内部网关协议 (IGP) 没有流量控制。当 IGP 具有过多的路由信息时,它们就会开始流失。当 BGP 的相邻发言者发送信息过快时,BGP 可以通过延迟 TCP 确认来限制邻居。
BGP 的另一个好处是,它使用类型、长度、值 (TLV) 元组和网络层可达性信息 (NLRI),无需更改底层协议即可提供看似无限的可扩展性。
链路状态信息跨域的分发使用策略进行管理,以保护服务提供商的利益。这需要使用策略控制拓扑分布。BGP 及其已实施的策略框架在域间路由分配中发挥了良好作用。在 Junos OS 中,BGP 完全由策略驱动。操作员必须显式配置要与邻接方对等,并显式接受进入 BGP 的路由。此外,路由策略用于过滤和修改路由信息。因此,路由策略提供对路由表的完全管理控制。
尽管在 AS 中,IGP-TE 和 BGP-TE 提供相同的信息集,但 BGP-TE 具有更好的扩展特性,继承自标准 BGP 协议。这使得 BGP-TE 更具扩展性,可获取多区域/多 AS 拓扑信息。
通过使用 BGP 作为解决方案,IGP 获取的信息将用于分发到 BGP 中。ISP 可以通过正常的 BGP 对等互连,有选择地向其他 ISP、服务提供商和内容分发网络 (CDN) 公开此信息。这允许聚合 IGP 跨多个区域和 AS 获取的信息,这样外部路径计算实体就可以通过被动侦听路由反射器来访问信息。
实施
在 Junos OS 中,IGP 将拓扑信息安装到称为信息流工程数据库的数据库中。信息流工程数据库包含聚合拓扑信息。要将 IGP 拓扑信息安装到信息流工程数据库中,请在和[edit protocols ospf traffic-engineering]
层次结构级别使用set igp-topology
[edit protocols isis traffic-engineering]
配置语句。使用 BGP 分发链路状态信息的机制包括将信息流工程数据库播发到 BGP-TE(导入)以及将条目从 BGP-TE 安装到信息流工程数据库(导出)的过程。
从 Junos OS 20.4R1 版开始,您可以将 IS-IS 信息流工程配置为除 IPv4 地址外,还将 IPv6 信息存储在信息流工程数据库 (TED) 中。BGP-LS 使用信息流工程数据库导入策略将此信息作为从信息流工程数据库分发到 lsdist.0 路由表的路由。这些路由作为具有 IPv6 路由器 ID 类型、长度和值 (TLV) 的网络层可达性信息 (NLRI) 播发到 BGP-TE 对等方。通过添加 IPv6 信息,您可以从获取信息流工程数据库中的完整网络拓扑中受益。
BGP-LS NLRI 和联盟 ID
从 Junos OS 23.1R1 版开始,当启用 BGP 联合时,Junos OS 将启用 BGP 链路状态 (BGP-LS) 网络层可达性信息 (NLRI),以在 TLV 512 中携带联合身份验证 ID。NLRI 携带联合身份验证 ID 以及 RFC 9086 中定义的 TLV 517 中的成员自治系统编号(AS 编号)。Junos OS 信息流工程数据库模块进行必要的更改,分别对 TLV 512 和 TLV 517 中的联合身份验证 ID 和成员 AS 编号进行编码,同时发起 BGP-LS NLRI(注入 lsdist.0 路由表)。在 Junos OS 23.1R1 之前的版本中,BGP-LS NLRI 仅携带 TLV 512 中的成员 AS 编号,联合 ID 未在 lsdist.0 路由表中编码。
流量工程数据库导入
要将信息流工程数据库播发至 BGP-TE,信息流工程数据库中的链路和节点条目将以路由的形式进行转换。然后,流量工程数据库代表相应的 IGP 将这些转换后的路由安装到名为 的用户 lsdist.0
可见路由表中,具体取决于路由策略。将条目从信息流工程数据库泄漏到 lsdist.0
的过程称为信息流工程数据库导入,如 所示 图 1。
有一些策略可以管理流量工程数据库导入过程。默认情况下,不会将任何条目从流量工程数据库泄漏到 lsdist.0
表中。
从 Junos OS 17.4R1 版开始,信息流工程数据库除了在 lsdist.0 路由表中安装 RSVP-TE 拓扑信息外,还会安装内部网关协议 (IGP) 拓扑信息,如 图 1所示。在 Junos OS 17.4R1 版之前,信息流工程数据库仅导出 RSVP-TE 拓扑信息。现在,您可以监控 IGP 和流量工程拓扑信息。BGP-LS 从 lsdist.0 读取 IGP 条目,并将这些条目播发至 BGP 对等方。要将 IGP 拓扑信息从 lsdist.0 导入到 BGP-LS 中,请在层次结构级别使用set bgp-ls
[edit protocols mpls traffic-engineering database import igp-topology]
配置语句。
信息流工程数据库导出
可以根据策略将 BGP 配置为从 lsdist.0
表中导出或通告路由。这对于 BGP 中的任何类型的路由来源都很常见。为了将 BGP-TE 播发到信息流工程数据库中,需要使用 BGP-TE 地址族和导出策略来配置 BGP,该策略可以选择路由以重新分发到 BGP 中。
然后,BGP 像任何其他 NLRI 一样传播这些路由。配置并协商了 BGP-TE 家族的 BGP 对等方接收 BGP-TE NLRI。BGP 以路由 lsdist.0
的形式将收到的 BGP-TE NRRI 存储在表中,该表与存储本地发起的 BGP-TE 路由的表相同。然后,将 BGP 安装的 lsdist.0
路由像任何其他路由一样分发到其他对等方。因此,标准路由选择过程适用于从多个扬声器接收的 BGP-TE NLRI。
为了实现域间 TE,中的 lsdist.0
路由通过策略泄漏到流量工程数据库中。此过程称为信息流工程数据库导出,如 图 1所示。
有一些策略可以管理流量工程数据库导出过程。默认情况下,不会将任何条目从 lsdist.0
表中泄漏到信息流工程数据库中。
从 Junos OS 22.4R1 版开始,您可以将源自分段路由协议的信息流工程 (TE) 策略分发到信息流工程数据库 (TED),并作为路由分发到 BGP 链路状态中。BGP 链路状态收集与 TE 策略相关的信息,以便外部控制器可以在域内和域间执行路径计算、重新优化和网络可视化等操作。
配置 set protocols source-packet-routing traffic-engineering database
以允许将分段路由 (SR) 策略存储在 TED 中。
对于 PCE 和 ALTO 等 SDN 应用,BGP-TE 通告的信息不会泄露到路由器的流量工程数据库中。在这种情况下,使用使用 BGP-TE 与路由器对等的外部服务器将拓扑信息向上移动到跨网络的天空/编排系统中。这些外部服务器可被视为 BGP-TE 使用者,它们接收 BGP-TE 路由,但不播发它们。
分配可信度值
将条目安装到信息流工程数据库中后,BGP-TE 获知的信息可用于 CSPF 路径计算。信息流工程数据库使用基于可信度值的协议首选项方案。具有较高可信度值的协议优先于具有较低可信度值的协议。BGP-TE 能够同时通告从多个协议获知的信息,因此,除了信息流工程数据库中 IGP 安装的条目外,还可以存在与多个协议对应的 BGP-TE 安装条目。信息流工程数据库导出组件为 BGP-TE 支持的每个协议创建信息流工程数据库协议和可信度级别。这些可信度值可在 CLI 中配置。
BGP-TE 协议的可信度顺序如下:
-
未知 - 80
-
OSPF—81
-
ISIS 级别 1—82
-
ISIS 级别 2—83
-
静态 - 84
-
直接 - 85
跨可信度路径计算
分配可信度值后,每个可信度级别将被视为一个单独的平面。“受约束的短路路径优先”算法从分配的最高可信度到最低可信度开始,在该可信度级别内找到路径。
对于 BGP-TE,必须计算跨可信度级别的路径来计算 AS 间路径。例如,在计算通过区域 1 的路径的区域 0 的设备上可以看到不同的可信度设置,因为区域 0 条目由 OSPF 安装,区域 1 条目由 BGP-TE 安装。
要启用跨可信度级别的路径计算,请在 、 [edit protocols mpls label-switched-path lsp-name]
和[edit protocols rsvp]
层次结构级别包含edit protocols mpls
cross-credibility-cspf
语句。在 [edit protocols rsvp]
层次结构级别,启用 cross-credibility-cspf
影响可以绕过 LSP 和传输中的松散跳跃扩展。
通过配置,可以使用 cross-credibility-cspf
“受约束的最短路径优先”算法跨可信度级别进行路径计算,其中约束不是在逐个可信度的基础上执行的,而是作为忽略分配的可信度值的单个约束来执行的。
BGP-TE NLRI 和 TLV
与其他 BGP 路由一样,BGP-TE NLRI 也可以通过使用 BGP-TE NLRI 的路由反射器进行分配。Junos OS 实现了对 BGP-TE 系列的路由反射支持。
以下是受支持的 NLRI 的列表:
-
链接 NLRI
-
节点 NLRI
-
IPv4 前缀 NLRI(接收和传播)
-
IPv6 前缀 NLRI(接收和传播)
-
TE 策略 NLRI
Junos OS 不支持上述 NRLI 的路由识别符形式。
以下是链接和节点 NLRI 中支持的字段列表:
-
协议 ID — NLRI 源自以下协议值:
-
ISIS-L1
-
ISIS-L2
-
OSPF
-
弹簧茶
-
-
标识符 - 此值可配置。默认情况下,标识符值设置为
0
。 -
本地/远程节点描述符 — 其中包括:
-
自治系统
-
BGP-LS 标识符 - 此值可配置。默认情况下,BGP-LS 标识符值设置为
0
-
区域 ID
-
IGP 路由器 ID
-
-
链接描述符(仅适用于链接 NLRI)— 这包括:
-
链路本地/远程标识符
-
IPv4 接口地址
-
IPv4 邻居地址
-
IPv6 邻居/接口地址 — IPv6 邻居和接口地址不是发起地址,而是仅在收到时存储和传播。
-
多拓扑 ID - 此值不是发起的,而是在收到时存储和传播的。
-
以下是受支持的LINK_STATE属性 TLV 的列表:
-
链接属性:
-
管理组
-
最大链路带宽
-
最大可预留带宽
-
未预留带宽
-
TE 默认指标
-
SRLG
-
以下 TLV,它们不是原始的,而是仅在收到时存储和传播的:
-
不透明链接属性
-
MPLS 协议掩码
-
度量
-
链路保护类型
-
链路名称属性
-
-
-
节点属性:
-
IPv4 路由器 ID
-
节点标志位 - 仅设置过载位。
-
以下 TLV,它们不是原始的,而是仅在收到时存储和传播的:
-
多拓扑
-
特定于 OSPF 的节点属性
-
不透明节点属性
-
节点名称
-
IS-IS 区域标识符
-
IPv6 路由器 ID
-
-
前缀属性 — 这些 TLV 的存储和传播方式与任何其他未知 TLV 一样。
-
支持和不支持的功能
Junos OS 通过使用 BGP 的链路状态分发支持以下功能:
多协议保证转发能力通告
节点和链路状态 BGP 和 BGP-TE NLRI 的传输和接收
BGP-TE NLRI 的不间断活动路由
策略
Junos OS 支持 not 以下使用 BGP 的链路状态分发功能:
聚合拓扑、链路或节点
BGP-TE NLRI 的路由识别符支持
多拓扑标识符
多实例标识符(不包括默认实例 ID 0)
链路和节点区域TLV的通告
MPLS 信令协议通告
导入具有重叠地址的节点和链路信息
用于网络中源数据包路由的 BGP 链路状态扩展 (SPRING)
从 Junos OS 17.2R1 版开始,BGP 链路状态地址族得到扩展,可将源数据包路由网络 (SPRING) 拓扑信息分发到软件定义网络 (SDN) 控制器。BGP 通常从 IGP 学习链路状态信息,并将其分发给 BGP 对等方。除了 BGP 之外,如果控制器是 IGP 域的一部分,SDN 控制器还可以直接从 IGP 获取链路状态信息。但是,BGP 链路状态分布提供了一种可扩展的机制来导出拓扑信息。域间网络支持 SPRING 的 BGP 链路状态扩展。
网络中的源数据包路由 (SPRING)
SPRING 是一种控制平面架构,它使入口路由器能够通过网络中一组特定的节点和链路引导数据包,而无需依赖网络中的中间节点来决定它必须采用的实际路径。SPRING 与 IGP(如 IS-IS 和 OSPF)合作,用于广告网段。网段可以表示任何指令,拓扑或基于服务的指令。在 IGP 拓扑中,IGP 分段由链路状态路由协议通告。有两种类型的 IGP 分段:
Adjacency segment |
IGP 中两个节点之间特定邻接上的单跃点路径 |
Prefix segment |
根据 IGP 拓扑的状态,到前缀的多跳、等价、多路径感知最短路径 |
在 BGP 网络中启用 SPRING 输入后,BGP 链路状态地址族从 IGP 链路状态路由协议中学习 SPRING 信息,并以分段标识符 (SID) 的形式通告分段。BGP 链路状态地址族已扩展为将 SID 和其他与 SPRING 相关的信息传送到 BGP 对等方。路由反射器可以通过在数据包前置适当的隧道组合来引导数据包通过一组所需的节点和链路。此功能允许 BGP 链路状态地址族也向 BGP 对等方通告 SPRING 信息。
BGP 链路状态 SPRING 数据流
图 2 描述了 IS-IS 推送到流量工程数据库的 BGP 链路状态 SPRING 数据的数据流。
-
IGP 将 SPRING 属性推送到信息流工程数据库。
-
SPRING 功能和算法信息作为节点属性传递到流量工程数据库中。
-
相邻 SID 和 LAN 相邻 SID 信息作为链路属性进行传输。
-
前缀 SID 或节点 SID 信息作为前缀属性进行传输。
-
新属性集或对现有属性的更改会触发对信息流工程数据库的 IGP 更新(包含新数据)。
警告:如果在 IGP 级别禁用信息流工程,则不会将任何属性推送到信息流工程数据库。
-
BGP 信息流工程 NLRI 中的所有参数(包括链路、节点和前缀描述符)均派生自信息流工程数据库中的条目。
-
信息流工程数据库根据策略从 IGP 将路由条目导入路由表
lsdist.0
。 -
BGP 的默认策略是导出路由,只有 BGP 知道这些路由。您可以在路由表中为非 BGP 路由
lsdis.0
配置导出策略。此策略播发从信息流工程数据库中获知的条目。
支持的 BGP 链路状态属性和 TLV,以及 SPRING 不支持的 BGP 链路状态功能
带有 SPRING 的 BGP 链路状态支持在网络中发起、接收和传播的以下属性以及类型、长度和值 (TLV):
Node attributes
-
分段路由功能
-
分段路由算法
Link attributes
-
邻接-SID
-
LAN 邻接-SID
Prefix descriptors
-
IP 可访问性信息
Prefix attributes
-
前缀 SID
以下列表支持不是发起的,而是仅在网络中接收和传播的 TLV:
Prefix descriptors
-
多拓扑 ID
-
OSPF 路由类型
Prefix attributes
-
范围
-
绑定 SID
Junos OS 不支持带有 SPRING 扩展的 BGP 链路状态的以下功能:
-
IPv6 前缀发起
-
多拓扑标识符
-
SPRING 参数的信息流工程数据库导出
-
具有 tcpdump 的新 TLV(也不支持现有 TLV)。
-
SPRING over IPv6
使用 OSPF 作为 IGP 验证通过 BGP 获知的 NLRI 节点
下面是一个示例输出,用于验证使用 OSPF 作为 IGP 验证通过 BGP 获知的 NLRI 节点:
目的
验证 lsdist.0 路由表条目。
操作
在操作模式下,运行 show route table lsdist.0
命令。
user@host> show route table lsdist.0 te-node-ip 10.7.7.7 extensive lsdist.0: 216 destinations, 216 routes (216 active, 0 holddown, 0 hidden) NODE { AS:65100 Area:0.0.0.1 IPv4:10.7.7.7 OSPF:0 }/1536 (1 entry, 1 announced) TSI: LINK-STATE attribute handle 0x61d5da0 *BGP Preference: 170/-101 Next hop type: Indirect, Next hop index: 0 Address: 0x61b07cc Next-hop reference count: 216 Source: 10.2.2.2 Protocol next hop: 10.2.2.2 Indirect next hop: 0x2 no-forward INH Session ID: 0x0 State:<Active Int Ext> Local AS: 65100 Peer AS: 65100 Age: 30:22 Metric2: 2 Validation State: unverified Task: BGP_65100.10.2.2.2 Announcement bits (1): 0-TED Export AS path: I Accepted Area border router: No External router: No Attached: No Overload: No SPRING-Capabilities: - SRGB block [Start: 900000, Range: 90000, Flags: 0x00] SPRING-Algorithms: - Algo: 0 Localpref: 100 Router ID: 10.2.2.2 Indirect next hops: 1 Protocol next hop: 10.2.2.2 Metric: 2 Indirect next hop: 0x2 no-forward INH Session ID: 0x0 Indirect path forwarding next hops: 1 Next hop type: Router Next hop: 10.11.1.2 via et-0/0/0.1 weight 0x1 Session Id: 0x143 10.2.2.2/32 Originating RIB: inet.0 Metric: 2 Node path count: 1 Forwarding nexthops: 1 Nexthop: 10.11.1.2 via et-0/0/0.1 Session Id: 143
意义
路由将显示在 lsdist.0 路由表中。
使用 OSPF 作为 IGP 验证通过 BGP 获知的前缀 NLRI
下面是一个示例输出,用于验证使用 OSPF 作为 IGP 验证通过 BGP 获知的前缀 NLRI:
目的
验证 lsdist.0 路由表条目。
操作
在操作模式下,运行 show route table lsdist.0
命令。
user@host> show route table lsdist.0 te-ipv4-prefix-node-ip 10.7.7.7 extensive lsdist.0: 216 destinations, 216 routes (216 active, 0 holddown, 0 hidden) PREFIX { Node { AS:65100 Area:0.0.0.1 IPv4:10.7.7.7 } { IPv4:10.7.7.7/32 } OSPF:0 }/1536 (1 entry, 0 announced) *BGP Preference: 170/-101 Next hop type: Indirect, Next hop index: 0 Address: 0x61b07cc Next-hop reference count: 216 Source: 10.2.2.2 Protocol next hop: 10.2.2.2 Indirect next hop: 0x2 no-forward INH Session ID: 0x0 State: <Active Int Ext> Local AS: 65100 Peer AS: 65100 Age: 30:51 Metric2: 2 Validation State: unverified Task: BGP_65100.10.2.2.2 AS path: I Accepted Prefix Flags: 0x00, Prefix SID: 1007, Flags: 0x50, Algo: 0 Localpref: 65100 Router ID: 10.2.2.2 Indirect next hops: 1 Protocol next hop: 10.2.2.2 Metric: 2 Indirect next hop: 0x2 no-forward INH Session ID: 0x0 Indirect path forwarding next hops: 1 Next hop type: Router Next hop: 10.11.1.2 via et-0/0/0.1 weight 0x1 Session Id: 0x143 10.2.2.2/32 Originating RIB: inet.0 Metric: 2 Node path count: 1 Forwarding nexthops: 1 Nexthop: 10.11.1.2 via et-0/0/0.1 Session Id: 143
意义
路由将显示在 lsdist.0 路由表中。
示例:使用 BGP 配置链路状态分配
此示例说明如何将 BGP 配置为跨多个域传输链路状态信息,这些信息用于计算跨多个域的 MPLS LSP 的路径,例如区域间 TE LSP,并为外部路径计算实体(如 ALTO 和 PCE)提供可扩展和策略控制的方法,以获取网络拓扑。
要求
此示例使用以下硬件和软件组件:
-
四个路由器,可以是 M 系列、MX 系列或 T 系列路由器的组合
-
在所有路由器上运行的 Junos OS 14.2 或更高版本
准备工作:
-
配置设备接口。
-
配置设备的自治系统编号和路由器 ID。
-
配置以下协议:
-
RSVP
-
MPLS
-
BGP
-
IS-IS
-
OSPF
-
概述
从 Junos OS 14.2 版开始,引入了一种跨多个区域和自治系统 (AS) 分发拓扑信息的新机制,扩展 BGP 协议以传输链路状态信息,这些信息最初是使用 IGP 获取的。IGP 协议在分发大型数据库时具有扩展限制。BGP 不仅是用于传输多区域和多 AS 拓扑信息的更具可扩展性的工具,还提供了可用于多 AS 拓扑分布的策略控制。BGP 链路状态拓扑信息用于计算跨多个域(例如区域间 TE LSP)的 MPLS 标签交换路径 (LSP) 的路径,并为外部路径计算实体(如 ALTO 和 PCE)获取网络拓扑提供可扩展和策略控制的方法。
从 Junos OS 17.1R1 版开始,QFX10000 交换机都支持使用 BGP 分配链路状态。
拓扑学
在 中 图 3,路由器 R0 和 R1 以及路由器 R2 和 R3 属于不同的自治系统。路由器 R0 和 R1 运行 OSPF,路由器 R2 和 R3 运行 IS-IS。
配置
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,将命令复制并粘贴到 [edit]
层级的 CLI 中,然后从配置模式进入 commit
。
R0
set interfaces ge-0/0/0 unit 0 family inet address 10.8.31.101/24 set interfaces ge-0/0/0 unit 0 family iso set interfaces ge-0/0/0 unit 0 family mpls set interfaces lo0 unit 0 family inet address 10.255.105.137/32 set routing-options router-id 10.255.105.137 set routing-options autonomous-system 65533 set protocols rsvp interface all set protocols rsvp interface fxp0.0 disable set protocols mpls traffic-engineering database export policy accept-all set protocols mpls cross-credibility-cspf set protocols mpls label-switched-path to-R3-inter-as to 10.255.105.135 set protocols mpls label-switched-path to-R3-inter-as bandwidth 40m set protocols mpls interface all set protocols mpls interface fxp0.0 disable set protocols bgp group ibgp type internal set protocols bgp group ibgp local-address 10.255.105.137 set protocols bgp group ibgp family traffic-engineering unicast set protocols bgp group ibgp neighbor 10.255.105.141 set protocols ospf traffic-engineering set protocols ospf area 0.0.0.0 interface lo0.0 set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 set policy-options policy-statement accept-all from family traffic-engineering set policy-options policy-statement accept-all then accept
R1
set interfaces ge-0/0/0 unit 0 family inet address 10.8.31.103/24 set interfaces ge-0/0/0 unit 0 family iso set interfaces ge-0/0/0 unit 0 family mpls set interfaces ge-0/0/1 unit 0 family inet address 10.8.42.102/24 set interfaces ge-0/0/1 unit 0 family iso set interfaces ge-0/0/1 unit 0 family mpls set interfaces lo0 unit 0 family inet address 10.255.105.141/32 set interfaces lo0 unit 0 family iso address 47.0005.0102.5501.8181 set routing-options router-id 10.255.105.141 set routing-options autonomous-system 65533 set protocols rsvp interface all set protocols rsvp interface fxp0.0 disable set protocols mpls interface all set protocols mpls interface fxp0.0 disable set protocols bgp group ibgp type internal set protocols bgp group ibgp local-address 10.255.105.141 set protocols bgp group ibgp family traffic-engineering unicast set protocols bgp group ibgp export nlri2bgp set protocols bgp group ibgp neighbor 10.255.105.137 set protocols bgp group ebgp type external set protocols bgp group ebgp family traffic-engineering unicast set protocols bgp group ebgp neighbor 10.8.42.104 local-address 10.8.42.102 set protocols bgp group ebgp neighbor 10.8.42.104 peer-as 65534 set protocols isis interface ge-0/0/1.0 passive remote-node-iso 0102.5502.4211 set protocols isis interface ge-0/0/1.0 passive remote-node-id 10.8.42.104 set protocols ospf traffic-engineering set protocols ospf area 0.0.0.0 interface lo0.0 set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 passive traffic-engineering remote-node-id 10.8.42.104 set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 passive traffic-engineering remote-node-router-id 10.255.105.139 set policy-options policy-statement accept-all from family traffic-engineering set policy-options policy-statement accept-all then accept set policy-options policy-statement nlri2bgp term 1 from family traffic-engineering set policy-options policy-statement nlri2bgp term 1 then accept
R2
set interfaces ge-0/0/0 unit 0 family inet address 10.8.64.104/24 set interfaces ge-0/0/0 unit 0 family iso set interfaces ge-0/0/0 unit 0 family mpls set interfaces ge-0/0/1 unit 0 family inet address 10.8.42.104/24 set interfaces ge-0/0/1 unit 0 family iso set interfaces ge-0/0/1 unit 0 family mpls set interfaces lo0 unit 0 family inet address 10.255.105.139/32 set interfaces lo0 unit 0 family iso address 47.0005.0102.5502.4211.00 set routing-options router-id 10.255.105.139 set routing-options autonomous-system 65534 set protocols rsvp interface all set protocols rsvp interface fxp0.0 disable set protocols mpls traffic-engineering database import policy ted2nlri set protocols mpls interface all set protocols mpls interface fxp0.0 disable set protocols bgp group ibgp type internal set protocols bgp group ibgp local-address 10.255.105.139 set protocols bgp group ibgp family traffic-engineering unicast set protocols bgp group ibgp export nlri2bgp set protocols bgp group ibgp neighbor 10.255.105.135 set protocols bgp group ebgp type external set protocols bgp group ebgp family traffic-engineering unicast set protocols bgp group ebgp export nlri2bgp set protocols bgp group ebgp peer-as 65533 set protocols bgp group ebgp neighbor 10.8.42.102 set protocols isis level 1 disable set protocols isis interface ge-0/0/0.0 set protocols isis interface ge-0/0/1.0 passive remote-node-iso 0102.5501.8181 set protocols isis interface ge-0/0/1.0 passive remote-node-id 10.8.42.102 set protocols isis interface lo0.0 set protocols ospf traffic-engineering set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 passive traffic-engineering remote-node-id 10.8.42.102 set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 passive traffic-engineering remote-node-router-id 10.255.105.141 set policy-options policy-statement accept-all from family traffic-engineering set policy-options policy-statement accept-all then accept set policy-options policy-statement nlri2bgp term 1 from family traffic-engineering set policy-options policy-statement nlri2bgp term 1 then accept set policy-options policy-statement ted2nlri term 1 from protocol isis set policy-options policy-statement ted2nlri term 1 from protocol ospf set policy-options policy-statement ted2nlri term 1 then accept set policy-options policy-statement ted2nlri term 2 then reject
R3
set interfaces ge-0/0/0 unit 0 family inet address 10.8.64.106/24 set interfaces ge-0/0/0 unit 0 family iso set interfaces ge-0/0/0 unit 0 family mpls set interfaces lo0 unit 0 family inet address 10.255.105.135/32 set interfaces lo0 unit 0 family iso address 47.0005.0102.5502.4250 set routing-options router-id 10.255.105.135 set routing-options autonomous-system 65534 set protocols rsvp interface all set protocols rsvp interface fxp0.0 disable set protocols mpls traffic-engineering database export policy accept-all set protocols mpls interface all set protocols mpls interface fxp0.0 disable set protocols bgp group ibgp type internal set protocols bgp group ibgp local-address 10.255.105.135 set protocols bgp group ibgp family traffic-engineering unicast set protocols bgp group ibgp neighbor 10.255.105.139 set protocols isis interface ge-0/0/0.0 level 1 disable set protocols isis interface lo0.0 set protocols ospf traffic-engineering set protocols ospf area 0.0.0.0 interface lo0.0 set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 set policy-options policy-statement accept-all from family traffic-engineering set policy-options policy-statement accept-all then accept
程序
分步过程
下面的示例要求您在各个配置层级中进行导航。有关导航 CLI 的信息,请参阅 在配置模式下使用 CLI 编辑器。
要配置路由器 R1:
-
配置路由器 R1 接口。
[edit interfaces] user@R1# set ge-0/0/0 unit 0 family inet address 10.8.31.103/24 user@R1# set ge-0/0/0 unit 0 family iso user@R1# set ge-0/0/0 unit 0 family mpls user@R1# set ge-0/0/1 unit 0 family inet address 10.8.42.102/24 user@R1# set ge-0/0/1 unit 0 family iso user@R1# set ge-0/0/1 unit 0 family mpls user@R1# set lo0 unit 0 family inet address 10.255.105.141/32 user@R1# set lo0 unit 0 family iso address 47.0005.0102.5501.8181
-
配置路由器 R1 的路由器 ID 和自治系统。
[edit routing-options]
user@R1# set router-id 10.255.105.141 user@R1# set autonomous-system 65533 -
在路由器 R1 的所有接口(不包括管理接口)上启用 RSVP。
[edit protocols]
user@R1# set rsvp interface all user@R1# set rsvp interface fxp0.0 disable -
在路由器 R1 的所有接口(不包括管理接口)上启用 MPLS。
[edit protocols]
user@R1# set mpls interface all user@R1# set mpls interface fxp0.0 disable -
将路由器 R1 的 BGP 组配置为与路由器 R0 对等,并分配本地地址和邻居地址。
[edit protocols]
user@R1# set bgp group ibgp type internal user@R1# set bgp group ibgp local-address 10.255.105.141 user@R1# set bgp group ibgp neighbor 10.255.105.137 -
将 BGP-TE 信令网络层可达性信息 (NLRI) 包含在 ibgp BGP 组。
[edit protocols]
user@R1# set bgp group ibgp family traffic-engineering unicast -
在路由器 R1 上启用策略 nlri2bgp 的导出。
[edit protocols]
user@R1# set bgp group ibgp export nlri2bgp -
将路由器 R1 的 BGP 组配置为与路由器 R2 对等,并将本地地址和邻居自治系统分配给 ebgp BGP 组。
[edit protocols]
user@R1# set bgp group ebgp type external user@R1# set bgp group ebgp neighbor 10.8.42.104 local-address 10.8.42.102 user@R1# set bgp group ebgp neighbor 10.8.42.104 peer-as 65534 -
将 BGP-TE 信令 NLRI 加入 ebgp BGP 组。
[edit protocols]
user@R1# set bgp group ebgp family traffic-engineering unicast -
在 AS 间链路上启用被动信息流工程。
[edit protocols]
user@R1# set isis interface ge-0/0/1.0 passive remote-node-iso 0102.5502.4211 user@R1# set isis interface ge-0/0/1.0 passive remote-node-id 10.8.42.104 -
在将路由器 R1 连接到路由器 R0 的接口上以及在路由器 R1 的环路接口上启用 OSPF,并启用流量工程功能。
[edit protocols]
user@R1# set ospf traffic-engineering user@R1# set ospf area 0.0.0.0 interface lo0.0 user@R1# set ospf area 0.0.0.0 interface ge-0/0/0.0 -
在 AS 间链路上启用被动信息流工程。
[edit protocols]
user@R1# set ospf area 0.0.0.0 interface ge-0/0/1.0 passive traffic-engineering remote-node-id 10.8.42.104 user@R1# set ospf area 0.0.0.0 interface ge-0/0/1.0 passive traffic-engineering remote-node-router-id 10.255.105.139 -
配置策略以接受来自 BGP-TE NLRI 的流量。
[edit policy-options]
user@R1# set policy-statement accept-all from family traffic-engineering user@R1# set policy-statement accept-all then accept user@R1# set policy-statement nlri2bgp term 1 from family traffic-engineering user@R1# set policy-statement nlri2bgp term 1 then accept
结果
在配置模式下,输入 show interfaces
、show routing-options
、show protocols
和 show policy-options
命令,以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明,以便进行更正。
user@R1# show interfaces ge-0/0/0 { unit 0 { family inet { address 10.8.31.103/24; } family iso; family mpls; } } ge-0/0/1 { unit 0 { family inet { address 10.8.42.102/24; } family iso; family mpls; } } lo0 { unit 0 { family inet { address 10.255.105.141/32; family iso { address 47.0005.0102.5501.8181:00; } } }
user@R1# show routing-options router-id 10.255.105.141; autonomous-system 65533;
user@R1# show protocols rsvp { interface all; interface fxp0.0 { disable; } } mpls { interface all; interface fxp0.0 { disable; } } bgp { group ibgp { type internal; local-address 10.255.105.141; family traffic-engineering { unicast; } export nlri2bgp; neighbor 10.255.105.137; } group ebgp { type external; family traffic-engineering { unicast; } neighbor 10.8.42.104 { local-address 10.8.42.102; peer-as 65534; } } } isis { interface ge-0/0/1.0 { passive { remote-node-iso 0102.5502.4211; remote-node-id 10.8.42.104; } } } ospf { traffic-engineering; area 0.0.0.0 { interface lo0.0; interface ge-0/0/0.0; interface ge-0/0/1.0 { passive { traffic-engineering { remote-node-id 10.8.42.104; remote-node-router-id 10.255.105.139; } } } } }
user@R1# show policy-options policy-statement accept-all { from family traffic-engineering; then accept; } policy-statement nlri2bgp { term 1 { from family traffic-engineering; then { accept; } } }
程序
分步过程
下面的示例要求您在各个配置层级中进行导航。有关导航 CLI 的信息,请参阅 在配置模式下使用 CLI 编辑器。
要配置路由器 R2:
-
配置路由器 R2 接口。
[edit interfaces] user@R2# set ge-0/0/0 unit 0 family inet address 10.8.64.104/24 user@R2# set ge-0/0/0 unit 0 family iso user@R2# set ge-0/0/0 unit 0 family mpls user@R2# set ge-0/0/1 unit 0 family inet address 10.8.42.104/24 user@R2# set ge-0/0/1 unit 0 family iso user@R2# set ge-0/0/1 unit 0 family mpls user@R2# set lo0 unit 0 family inet address 10.255.105.139/32 user@R2# set lo0 unit 0 family iso address 47.0005.0102.5502.4211.00
-
配置路由器 R2 的路由器 ID 和自治系统。
[edit routing-options]
user@R2# set router-id 10.255.105.139 user@R2# set autonomous-system 65534 -
在路由器 R2 的所有接口(不包括管理接口)上启用 RSVP。
[edit routing-options]
user@R2# set rsvp interface all user@R2# set rsvp interface fxp0.0 disable -
在路由器 R2 的所有接口(不包括管理接口)上启用 MPLS。
[edit routing-options]
user@R2# set mpls interface all user@R2# set mpls interface fxp0.0 disable -
使用 ted2nlri 策略启用信息流工程数据库参数的导入。
[edit protocols]
user@R2# set mpls traffic-engineering database import policy ted2nlri -
将路由器 R2 的 BGP 组配置为与路由器 R3 对等,并分配本地地址和邻居地址。
[edit protocols]
user@R2# set bgp group ibgp type internal user@R2# set bgp group ibgp local-address 10.255.105.139 user@R2# set bgp group ibgp neighbor 10.255.105.135 -
将 BGP-TE 信令网络层可达性信息 (NLRI) 包含在 ibgp BGP 组。
[edit protocols]
user@R2# set bgp group ibgp family traffic-engineering unicast -
在路由器 R2 上启用策略 nlri2bgp 的导出。
[edit protocols]
user@R2# set bgp group ibgp export nlri2bgp -
配置路由器 R2 的 BGP 组,以便与路由器 R1 对等。
[edit protocols]
user@R2# set bgp group ebgp type external -
将 BGP-TE 信令 NLRI 加入 ebgp BGP 组。
[edit protocols]
user@R2# set bgp group ebgp family traffic-engineering unicast -
将本地地址和邻居自治系统分配给 ebgp BGP 组。
[edit protocols]
user@R2# set bgp group ebgp peer-as 65533 user@R2# set bgp group ebgp neighbor 10.8.42.102 -
在路由器 R2 上启用策略 nlri2bgp 的导出。
[edit protocols]
user@R2# set bgp group ebgp export nlri2bgp -
在连接路由器 R2 与路由器 R3 的接口以及路由器 R2 的环路接口上启用 IS-IS。
[edit protocols]
user@R2# set isis level 1 disable user@R2# set isis interface ge-0/0/0.0 user@R2# set isis interface lo0.0 -
在连接路由器 R2 和路由器 R1 的接口上仅启用 IS-IS 通告。
[edit protocols]
user@R2# set isis interface ge-0/0/1.0 passive remote-node-iso 0102.5501.8181 user@R2# set isis interface ge-0/0/1.0 passive remote-node-id 10.8.42.102 -
在路由器 R2 上配置流量工程功能。
[edit protocols]
user@R2# set ospf traffic-engineering -
在连接路由器 R2 和路由器 R1 的接口上仅启用 OSPF 通告。
[edit protocols]
user@R2# set ospf area 0.0.0.0 interface ge-0/0/1.0 passive traffic-engineering remote-node-id 10.8.42.102 user@R2# set ospf area 0.0.0.0 interface ge-0/0/1.0 passive traffic-engineering remote-node-router-id 10.255.105.141 -
配置策略以接受来自 BGP-TE NLRI 的流量。
[edit policy-options]
user@R2# set policy-statement accept-all from family traffic-engineering user@R2# set policy-statement accept-all then accept user@R2# set policy-statement nlri2bgp term 1 from family traffic-engineering user@R2# set policy-statement nlri2bgp term 1 then accept user@R2# set policy-statement ted2nlri term 1 from protocol isis user@R2# set policy-statement ted2nlri term 1 from protocol ospf user@R2# set policy-statement ted2nlri term 1 then accept user@R2# set policy-statement ted2nlri term 2 then reject
结果
在配置模式下,输入 show interfaces
、show routing-options
、show protocols
和 show policy-options
命令,以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明,以便进行更正。
user@R2# show interfaces ge-0/0/0 { unit 0 { family inet { address 10.8.64.104/24; } family iso; family mpls; } } ge-0/0/1 { unit 0 { family inet { address 10.8.42.104/24; } family iso; family mpls; } } lo0 { unit 0 { family inet { address 10.255.105.139/32; family iso { address 47.0005.0102.5502.4211.00; } family iso; } }
user@R2# show routing-options router-id 10.255.105.139; autonomous-system 65534;
user@R2# show protocols rsvp { interface all; interface fxp0.0 { disable; } } mpls { traffic-engineering { database { import { policy ted2nlri; } } } interface all; interface fxp0.0 { disable; } } bgp { group ibgp { type internal; local-address 10.255.105.139; family traffic-engineering { unicast; } export nlri2bgp; neighbor 10.255.105.135; } group ebgp { type external; family traffic-engineering { unicast; } export nlri2bgp; peer-as 65533; neighbor 10.8.42.102; } } isis { level 1 disable; interface ge-0/0/0.0; interface ge-0/0/1.0 { passive { remote-node-iso 0102.5501.8181; remote-node-id 10.8.42.102; } } interface lo0.0; } ospf { traffic-engineering; area 0.0.0.0 { interface ge-0/0/1.0 { passive { traffic-engineering { remote-node-id 10.8.42.102; remote-node-router-id 10.255.105.141; } } } } }
user@R2# show policy-options policy-statement accept-all { from family traffic-engineering; then accept; } policy-statement nlri2bgp { term 1 { from family traffic-engineering; then { accept; } } } policy-statement ted2nlri { term 1 { from protocol [ isis ospf ]; then accept; } term 2 { then reject; } }
验证
验证配置是否正常工作。
验证 BGP 摘要状态
目的
验证 BGP 是否已启动并在路由器 R0 和 R1 上运行。
操作
在操作模式下,运行 show bgp summary
命令。
user@R0> show bgp summary Groups: 1 Peers: 1 Down peers: 0 Table Tot Paths Act Paths Suppressed History Damp State Pending lsdist.0 10 10 0 0 0 0 Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped... 10.255.105.141 65533 20 14 0 79 5:18 Establ lsdist.0: 10/10/10/0
在操作模式下,运行 show bgp summary
命令。
user@R1> show bgp summary Groups: 2 Peers: 2 Down peers: 0 Table Tot Paths Act Paths Suppressed History Damp State Pending lsdist.0 10 10 0 0 0 0 Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped... 10.8.42.104 65534 24 17 0 70 6:43 Establ lsdist.0: 10/10/10/0 10.255.105.137 65533 15 23 0 79 6:19 Establ lsdist.0: 0/0/0/0
意义
路由器 R0 与路由器 R1 对等。
验证 MPLS LSP 状态
目的
验证路由器 R0 上 MPLS LSP 的状态。
操作
在操作模式下,运行 show mpls lsp
命令。
user@R0> show mpls lsp Ingress LSP: 1 sessions To From State Rt P ActivePath LSPname 10.255.105.135 10.255.105.137 Up 0 * to-R3-inter-as Total 1 displayed, Up 1, Down 0 Egress LSP: 0 sessions Total 0 displayed, Up 0, Down 0 Transit LSP: 0 sessions Total 0 displayed, Up 0, Down 0
意义
已建立从路由器 R0 到路由器 R3 的 MPLS LSP。
验证 lsdist.0 路由表条目
目的
验证路由器 R0、R1 和 R2 上的 lsdist.0 路由表条目。
操作
在操作模式下,运行 show route table lsdist.0
命令。
user@R0> show route table lsdist.0 lsdist.0: 10 destinations, 10 routes (10 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both NODE { AS:65534 ISO:0102.5502.4211.00 ISIS-L2:0 }/1152 *[BGP/170] 00:17:32, localpref 100, from 10.255.105.141 AS path: 65534 I, validation-state: unverified > to 10.8.31.103 via ge-0/0/0.0 NODE { AS:65534 ISO:0102.5502.4250.00 ISIS-L2:0 }/1152 *[BGP/170] 00:17:32, localpref 100, from 10.255.105.141 AS path: 65534 I, validation-state: unverified > to 10.8.31.103 via ge-0/0/0.0 NODE { AS:65534 ISO:0102.5502.4250.02 ISIS-L2:0 }/1152 *[BGP/170] 00:17:32, localpref 100, from 10.255.105.141 AS path: 65534 I, validation-state: unverified > to 10.8.31.103 via ge-0/0/0.0 NODE { AS:65534 Area:0.0.0.0 IPv4:10.255.105.139 OSPF:0 }/1152 *[BGP/170] 00:17:32, localpref 100, from 10.255.105.141 AS path: 65534 I, validation-state: unverified > to 10.8.31.103 via ge-0/0/0.0 LINK { Local { AS:65534 ISO:0102.5502.4211.00 }.{ IPv4:8.42.1.104 } Remote { AS:65534 ISO:0102.5501.8181.00 }.{ IPv4:10.8.42.102 } ISIS-L2:0 }/1152 *[BGP/170] 00:17:32, localpref 100, from 10.255.105.141 AS path: 65534 I, validation-state: unverified > to 10.8.31.103 via ge-0/0/0.0 LINK { Local { AS:65534 ISO:0102.5502.4211.00 }.{ IPv4:10.8.64.104 } Remote { AS:65534 ISO:0102.5502.4250.02 }.{ } ISIS-L2:0 }/1152 *[BGP/170] 00:02:03, localpref 100, from 10.255.105.141 AS path: 65534 I, validation-state: unverified > to 10.8.31.103 via ge-0/0/0.0 LINK { Local { AS:65534 ISO:0102.5502.4250.00 }.{ IPv4:10.8.64.106 } Remote { AS:65534 ISO:0102.5502.4250.02 }.{ } ISIS-L2:0 }/1152 *[BGP/170] 00:17:32, localpref 100, from 10.255.105.141 AS path: 65534 I, validation-state: unverified > to 10.8.31.103 via ge-0/0/0.0 LINK { Local { AS:65534 ISO:0102.5502.4250.02 }.{ } Remote { AS:65534 ISO:0102.5502.4211.00 }.{ } ISIS-L2:0 }/1152 *[BGP/170] 00:17:32, localpref 100, from 10.255.105.141 AS path: 65534 I, validation-state: unverified > to 10.8.31.103 via ge-0/0/0.0 LINK { Local { AS:65534 ISO:0102.5502.4250.02 }.{ } Remote { AS:65534 ISO:0102.5502.4250.00 }.{ } ISIS-L2:0 }/1152 *[BGP/170] 00:17:32, localpref 100, from 10.255.105.141 AS path: 65534 I, validation-state: unverified > to 10.8.31.103 via ge-0/0/0.0 LINK { Local { AS:65534 Area:0.0.0.0 IPv4:10.255.105.139 }.{ IPv4:10. 8.42.104 } Remote { AS:65534 Area:0.0.0.0 IPv4:10.255.105.141 }.{ IPv4:10.8.42.102 } OSPF:0 }/1152 *[BGP/170] 00:17:32, localpref 100, from 10.255.105.141 AS path: 65534 I, validation-state: unverified > to 10.8.31.103 via ge-0/0/0.0
在操作模式下,运行 show route table lsdist.0
命令。
user@R1> show route table lsdist.0 lsdist.0: 10 destinations, 10 routes (10 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both NODE { AS:65534 ISO:0102.5502.4211.00 ISIS-L2:0 }/1152 *[BGP/170] 00:18:00, localpref 100 AS path: 65534 I, validation-state: unverified > to 10.8.42.104 via ge-0/0/1.0 NODE { AS:65534 ISO:0102.5502.4250.00 ISIS-L2:0 }/1152 *[BGP/170] 00:18:00, localpref 100 AS path: 65534 I, validation-state: unverified > to 10.8.42.104 via ge-0/0/1.0 NODE { AS:65534 ISO:0102.5502.4250.02 ISIS-L2:0 }/1152 *[BGP/170] 00:18:00, localpref 100 AS path: 65534 I, validation-state: unverified > to 10.8.42.104 via ge-0/0/1.0 NODE { AS:65534 Area:0.0.0.0 IPv4:10.255.105.139 OSPF:0 }/1152 *[BGP/170] 00:18:00, localpref 100 AS path: 65534 I, validation-state: unverified > to 10.8.42.104 via ge-0/0/1.0 LINK { Local { AS:65534 ISO:0102.5502.4211.00 }.{ IPv4:10.8.42.104 } Remote { AS:65534 ISO:0102.5501.8181.00 }.{ IPv4:10.8.42.102 } ISIS-L2:0 }/1152 *[BGP/170] 00:18:00, localpref 100 AS path: 65534 I, validation-state: unverified > to 10.8.42.104 via ge-0/0/1.0 LINK { Local { AS:65534 ISO:0102.5502.4211.00 }.{ IPv4:10.8.64.104 } Remote { AS:65534 ISO:0102.5502.4250.02 }.{ } ISIS-L2:0 }/1152 *[BGP/170] 00:02:19, localpref 100 AS path: 65534 I, validation-state: unverified > to 10.8.42.104 via ge-0/0/1.0 LINK { Local { AS:65534 ISO:0102.5502.4250.00 }.{ IPv4:10.8.64.106 } Remote { AS:65534 ISO:0102.5502.4250.02 }.{ } ISIS-L2:0 }/1152 *[BGP/170] 00:18:00, localpref 100 AS path: 65534 I, validation-state: unverified > to 10.8.42.104 via ge-0/0/1.0 LINK { Local { AS:65534 ISO:0102.5502.4250.02 }.{ } Remote { AS:65534 ISO:0102.5502.4211.00 }.{ } ISIS-L2:0 }/1152 *[BGP/170] 00:18:00, localpref 100 AS path: 65534 I, validation-state: unverified > to 10.8.42.104 via ge-0/0/1.0 LINK { Local { AS:65534 ISO:0102.5502.4250.02 }.{ } Remote { AS:65534 ISO:0102.5502.4250.00 }.{ } ISIS-L2:0 }/1152 *[BGP/170] 00:18:00, localpref 100 AS path: 65534 I, validation-state: unverified > to 10.8.42.104 via ge-0/0/1.0 LINK { Local { AS:65534 Area:0.0.0.0 IPv4:10.255.105.139 }.{ IPv4:10.8.42.104 } Remote { AS:65534 Area:0.0.0.0 IPv4:10.255.105.141 }.{ IPv4:10.8.42.102 } OSPF:0 }/1152 *[BGP/170] 00:18:00, localpref 100 AS path: 65534 I, validation-state: unverified > to 10.8.42.104 via ge-0/0/1.0
在操作模式下,运行 show route table lsdist.0
命令。
user@R2> show route table lsdist.0 lsdist.0: 10 destinations, 10 routes (10 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both NODE { AS:65534 ISO:0102.5502.4211.00 ISIS-L2:0 }/1152 *[IS-IS/18] 1d 00:24:39 Fictitious NODE { AS:65534 ISO:0102.5502.4250.00 ISIS-L2:0 }/1152 *[IS-IS/18] 00:20:45 Fictitious NODE { AS:65534 ISO:0102.5502.4250.02 ISIS-L2:0 }/1152 *[IS-IS/18] 00:20:45 Fictitious NODE { AS:65534 Area:0.0.0.0 IPv4:10.255.105.139 OSPF:0 }/1152 *[OSPF/10] 1d 00:24:39 Fictitious LINK { Local { AS:65534 ISO:0102.5502.4211.00 }.{ IPv4:10.8.42.104 } Remote { AS:65534 ISO:0102.5501.8181.00 }.{ IPv4:10.8.42.102 } ISIS-L2:0 }/1152 *[IS-IS/18] 00:20:58 Fictitious LINK { Local { AS:65534 ISO:0102.5502.4211.00 }.{ IPv4:10.8.64.104 } Remote { AS:65534 ISO:0102.5502.4250.02 }.{ } ISIS-L2:0 }/1152 *[IS-IS/18] 00:02:34 Fictitious LINK { Local { AS:65534 ISO:0102.5502.4250.00 }.{ IPv4:10.8.64.106 } Remote { AS:65534 ISO:0102.5502.4250.02 }.{ } ISIS-L2:0 }/1152 *[IS-IS/18] 00:20:45 Fictitious LINK { Local { AS:65534 ISO:0102.5502.4250.02 }.{ } Remote { AS:65534 ISO:0102.5502.4211.00 }.{ } ISIS-L2:0 }/1152 *[IS-IS/18] 00:20:45 Fictitious LINK { Local { AS:65534 ISO:0102.5502.4250.02 }.{ } Remote { AS:65534 ISO:0102.5502.4250.00 }.{ } ISIS-L2:0 }/1152 *[IS-IS/18] 00:20:45 Fictitious LINK { Local { AS:65534 Area:0.0.0.0 IPv4:10.255.105.139 }.{ IPv4:10.8.42.104 } Remote { AS:65534 Area:0.0.0.0 IPv4:10.255.105.141 }.{ IPv4:10.8.42.102 } OSPF:0 }/1152 *[OSPF/10] 00:20:57 Fictitious
意义
路由将显示在 lsdist.0 路由表中。
验证信息流工程数据库条目
目的
验证路由器 R0 上的流量工程数据库条目。
操作
在操作模式下,运行 show ted database
命令。
user@R0> show ted database TED database: 5 ISIS nodes 5 INET nodes ID Type Age(s) LnkIn LnkOut Protocol 0102.5501.8168.00(10.255.105.137) Rtr 1046 1 1 OSPF(0.0.0.0) To: 10.8.31.101-1, Local: 10.8.31.101, Remote: 0.0.0.0 Local interface index: 0, Remote interface index: 0 ID Type Age(s) LnkIn LnkOut Protocol 0102.5501.8181.00 --- 1033 1 0 0102.5502.4211.00(10.255.105.139) Rtr 3519 2 3 Exported ISIS-L2(1) To: 0102.5502.4250.02, Local: 10.8.64.104, Remote: 0.0.0.0 Local interface index: 0, Remote interface index: 0 To: 0102.5501.8181.00, Local: 10.8.42.104, Remote: 10.8.42.102 Local interface index: 0, Remote interface index: 0 ID Type Age(s) LnkIn LnkOut Protocol Exported OSPF(2) To: 10.255.105.141, Local: 10.8.42.104, Remote: 10.8.42.102 Local interface index: 0, Remote interface index: 0 ID Type Age(s) LnkIn LnkOut Protocol 0102.5502.4250.00(10.255.105.135) Rtr 1033 1 1 Exported ISIS-L2(1) To: 0102.5502.4250.02, Local: 10.8.64.106, Remote: 0.0.0.0 Local interface index: 0, Remote interface index: 0 ID Type Age(s) LnkIn LnkOut Protocol 0102.5502.4250.02 Net 1033 2 2 Exported ISIS-L2(1) To: 0102.5502.4211.00(10.255.105.139), Local: 0.0.0.0, Remote: 0.0.0.0 Local interface index: 0, Remote interface index: 0 To: 0102.5502.4250.00(10.255.105.135), Local: 0.0.0.0, Remote: 0.0.0.0 Local interface index: 0, Remote interface index: 0 ID Type Age(s) LnkIn LnkOut Protocol 10.8.31.101-1 Net 1046 2 2 OSPF(0.0.0.0) To: 0102.5501.8168.00(10.255.105.137), Local: 0.0.0.0, Remote: 0.0.0.0 Local interface index: 0, Remote interface index: 0 To: 10.255.105.141, Local: 0.0.0.0, Remote: 0.0.0.0 Local interface index: 0, Remote interface index: 0 ID Type Age(s) LnkIn LnkOut Protocol 10.255.105.141 Rtr 1045 2 2 OSPF(0.0.0.0) To: 0102.5502.4211.00(10.255.105.139), Local: 10.8.42.102, Remote: 10.8.42.104 Local interface index: 0, Remote interface index: 0 To: 10.8.31.101-1, Local: 10.8.31.103, Remote: 0.0.0.0 Local interface index: 0, Remote interface index: 0
意义
路由将显示在流量工程数据库中。
使用 BGP 配置链路状态分配
通过扩展 BGP 协议以传输链路状态信息(最初是使用 IGP 获取的),可以跨多个区域和自治系统 (AS) 分发拓扑信息。IGP 协议在分发大型数据库时具有扩展限制。BGP 不仅是用于传输多区域和多 AS 拓扑信息的更具可扩展性的工具,还提供了可用于多 AS 拓扑分布的策略控制。BGP 链路状态拓扑信息用于计算跨多个域(如区域间 TE LSP)的 MPLS LSP 的路径,并为外部路径计算实体(如 ALTO 和 PCE)获取网络拓扑提供可扩展和策略控制的方法。
准备工作:
配置设备接口。
配置设备的路由器 ID 和自治系统编号。
配置以下协议:
RSVP
MPLS
IS-IS
OSPF
要使用 BGP 启用链路状态分配,请执行以下操作:
使用 SRv6 的链路状态分布
适用于 SRv6 的 BGP 链路状态扩展
从 Junos OS 21.3R1 版开始,我们在 BGP-LS 和流量工程数据库 (TED) 中支持 SRv6。BGP-LS 扩展将 SRv6 拓扑信息导出到 SDN 控制器。控制器通过作为 IGP 域的一部分或通过 BGP-LS 接收拓扑信息。BGP LS 提供了一种可扩展的机制来导出拓扑信息。它也可以用于域间网络。此外,您现在可以基于 IPv6 前缀(SRv6 定位器)和 SRv6 SID NLRI 筛选 NLRI。
BGP 链路状态 SRv6 数据流
BGP LS 从 TE 数据库 (TED) 中检索流量工程 (TE) 数据,并将其分发给对等 BGP 发言人。为此,TED 以路由的形式转换其链接、节点和前缀(IPv4 和 IPv6)条目。下图显示了 BGP-LS 中的数据流。
-
如 IETF 标准 [3] 中所述,Junos 现在支持通过 ISIS IGP 交换的 SRv6 属性。
-
SRv6 属性将添加到信息流工程数据库 (TED) 中。
-
通过 ISIS IGP 获知的 SRv6 属性作为节点和链路转换为路由存储在 TED 中。然后,这些路由受 TED 导入策略的约束,如果策略允许,这些路由将安装在名为 lsdist.0 的路由表中。
-
BGP 可以配置为根据策略从 lsdist.0 表“导出”或通告路由。然后,BGP 像任何其他 NLRI 一样传播这些路由。也就是说,配置和协商了 BGP-LS 系列的对等方接收 BGP-LS NLRI。BGP 将收到的 BGP-LS NLRI 以路由的形式存储在 “lsdist.0” 表中,该表与存储本地发起的 BGP-LS 路由的表相同。新添加的 SRv6 信息将作为现有 NLRI(节点、链路和前缀)的属性和新的 SRv6 定位器 NLRI 传播到 BGP 中。
-
以“lsdist.0”表中的路由形式安装的已接收 BGP-LS NLRI 可以受 TED 导出策略的约束,如果策略允许,来自这些路由的 SRv6 属性将添加到 TE 数据库的本地实例中。
IPv6 前缀和 IPv6 邻接 SID 流量工程数据库和 BGP 链路状态中的 MPLS 支持
我们进行了以下 IPv6 增强功能。
- 支持将 IPv6 属性和信息从中间系统添加到中间系统 (IS-IS) 的信息流工程数据库 (TED)。
- 支持将 IPv6 属性从流量工程数据库导入 lsdist.0 路由表。
- 支持 IPv6 属性导出到 BGP 链路状态 (BGP-LS)。
- 支持 BGP-LS IPv6 网络层可达性信息 (NLRI) 和属性从 lsdist.0 路由表导出到流量工程数据库。
我们仅支持 IS-IS 内部网关协议 (IGP)。
- 在流量工程数据库和 BGP-LS 中支持 IPv6 前缀和 IPv6 邻接 SID MPLS 的优势
- 实施
- 支持从 IS-IS 将 IPv6 属性和信息添加到信息流工程数据库
- 支持将 IPv6 属性从流量工程数据库导入到 lsdist.0 路由表
- 支持 IPv6 属性导出到 BGP-LS
- 支持 BGP-LS IPv6 NLRI 和属性从 lsdist.0 路由表导出到流量工程数据库
- 配置命令
在流量工程数据库和 BGP-LS 中支持 IPv6 前缀和 IPv6 邻接 SID MPLS 的优势
我们增强了现有操作命令的输出,并添加了 show 命令以分别在流量工程数据库中显示 IPv6 和 IPv4 前缀列表。
show ted database extensive
— 增强了输出以包含 IPv6 分段路由 (SR)-MPLS 属性。show ted link detail
— 增强了输出,以包含与信息流工程数据库链路对应的 IPv6 SR-MPLS 属性。show route table lsdist.0 [extensive | detail]
— 增强了输出以包括 IPv6 NLRI 和 IPv6 SR-MPLS 属性。show route
- 包含用于筛选条目以在 lsdist.0 表中查看的其他参数。我们添加了其他选项以包含 IPv6 前缀。选项包括te-ipv6-prefix-ipv6-addr
和te-ipv6-prefix-node-iso
。show ted ipv6-prefix
— 添加了 show 命令以显示信息流工程数据库中的 IPv6 前缀列表。show ted ipv4-prefix
— 添加了 show 命令以显示信息流工程数据库中的 IPv4 前缀列表。
实施
BGP-LS 从信息流工程数据库中检索流量工程 (TE) 数据,并将该数据分发给其 BGP 对等方。为了实现这一点,信息流工程数据库以路由的形式转换其链路、节点和前缀(IPv4 和 IPv6)条目。下图描述了从 BGP-LS 到流向 BGP-LS 的信息流。
支持从 IS-IS 将 IPv6 属性和信息添加到信息流工程数据库
Junos OS 支持 IPv6 数据平面的 SR-MPLS 属性,通过 IS-IS IGP 交换。作为此增强功能的结果,IPv6 属性和信息可以添加到流量工程数据库 (TED)。
支持将 IPv6 属性从流量工程数据库导入到 lsdist.0 路由表
从 IS-IS IGP 接收并存储在流量工程数据库中的 IPv6 属性作为节点、链路和前缀转换为路由。然后,这些路由受流量工程数据库导入策略的约束。如果策略允许,路由将安装在名为 lsdist.0 的路由表中。
支持 IPv6 属性导出到 BGP-LS
BGP 配置为根据策略从 lsdist.0 表导出或通告路由。这是 BGP 中任何路由发起的常规方案。然后,BGP 像任何其他 NLRI 一样将这些路由传播到配置并建立了 BGP 邻居关系的对等方。BGP 将收到的 BGP-LS NLRI 以路由的形式存储在 lsdist.0 表中,该表与存储本地发起的 BGP-LS 路由的表相同。作为此功能的结果,新添加的 IPv6 信息将作为现有链路 NLRI 的属性和新的 IPv6 前缀 NLRI 传播到 BGP。
支持 BGP-LS IPv6 NLRI 和属性从 lsdist.0 路由表导出到流量工程数据库
在 Junos OS 中,以 lsdist.0 表中的路由形式安装的已接收 BGP-LS NRRI 受信息流工程数据库导出策略的约束。如果策略允许,IPv6 属性和来自这些路由的信息将添加到流量工程数据库的本地实例中。
配置命令
BGP-TE 策略命令得到增强,允许基于 IPv6 前缀 NLRI 过滤 NLRI。请参阅 ipv6-prefix。
另请参阅
变更历史表
是否支持某项功能取决于您使用的平台和版本。 使用 Feature Explorer 查看您使用的平台是否支持某项功能。