使用 BGP 的链路状态分布
使用 BGP 的链路状态分布概述
- 内部网关协议的作用
- 内部网关协议的局限性
- 需要跨越链路状态分布
- 使用 BGP 作为解决方案
- 支持和不支持的功能
- 用于网络中源数据包路由的 BGP 链路状态扩展 (SPRING)
- 验证通过 BGP 获知的 NLRI 节点,并将 OSPF 用作 IGP
- 验证通过 BGP 获知的前缀 NLRI,并将 OSPF 用作 IGP
内部网关协议的作用
内部网关协议 (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 路径计算 — 此信息用于计算跨多个路由域(例如区域间流量工程 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-流量工程和 BGP-流量工程提供相同的信息集,但 BGP-流量工程具有更好的扩展特性,继承自标准 BGP 协议。这使得 BGP-流量工程成为获取多区域/多 AS 拓扑信息的更具扩展性的选择。
通过使用 BGP 作为解决方案,IGP 获取的信息用于分发到 BGP。ISP 可以通过正常的 BGP 对等互连,选择性地与其他 ISP、服务提供商和内容分发网络 (CDN) 公开此信息。这允许跨多个区域和 AS 聚合 IGP 获取的信息,这样外部路径计算实体就可以通过被动侦听路由反射器来访问信息。
实施
在 Junos OS 中,IGP 将拓扑信息安装到称为流量工程数据库的数据库中。流量工程数据库包含聚合的拓扑信息。要将 IGP 拓扑信息安装到流量工程数据库中,请在 和 [edit protocols ospf traffic-engineering] 层次结构级别使用set igp-topology[edit protocols isis traffic-engineering]配置语句。使用 BGP 分发链路状态信息的机制包括将流量工程数据库播发到 BGP-流量工程(导入)和将 BGP-流量工程中的条目安装到流量工程数据库(导出)的过程。
您可以将 IS-IS 流量工程配置为,除了 IPv4 地址之外,还将 IPv6 信息存储在流量工程数据库 (TED) 中。BGP-LS 使用流量工程数据库导入策略将此信息作为路由从流量工程数据库分发到 lsdist.0 路由表。这些路由作为网络层可达性信息 (NLRI) 播发给 BGP-流量工程对等方,并具有 IPv6 路由器 ID 类型、长度和值 (TLV)。此外,还可以添加 IPv6 信息,从而将完整的网络拓扑结构纳入流量工程数据库。
的 Junos OS 实施
BGP-LS、NLRI 和联合体 ID
启用 BGP 联合时,Junos OS 启用 BGP 链路状态 (BGP-LS) 网络层可达性信息 (NLRI),以便在 TLV 512 中携带联合体 ID。NLRI 在 RFC 9086 中定义的 TLV 517 中携带联合体 ID 和成员自治系统编号 (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-流量工程中,流量工程数据库中的链路和节点条目以路由的形式进行转换。然后,流量工程数据库代表相应的 IGP 将这些转换后的路由安装到名为 lsdist.0的用户可见路由表中,条件受路由策略约束。将条目从流量工程数据库泄漏到 lsdist.0 的过程称为流量工程数据库导入,如 图 1 所示。
有一些策略可对流量工程数据库导入过程进行管理。默认情况下,不会将任何条目从流量工程数据库泄漏到表中 lsdist.0 。
除了 lsdist.0 路由表 中的 RSVP-流量工程 拓扑信息外,流量工程数据库还会安装内部网关协议 (IGP) 拓扑信息,如 图 1 所示。您可以监控 IGP 和流量工程拓扑信息。BGP-LS 从 lsdist.0 读取 IGP 条目,并将这些条目播发给 BGP 对等方。要将 IGP 拓扑信息从 lsdist.0 导入 BGP-LS,请在层次结构级别使用 set bgp-ls [edit protocols mpls traffic-engineering database import igp-topology] configuration 语句。
流量工程数据库导出
可以将 BGP 配置为根据策略从表导出 lsdist.0 或通告路由。这在 BGP 中的任何类型的路由发起都很常见。为了将 BGP-流量工程播发到流量工程数据库中,需要为 BGP 配置 BGP-流量工程地址族,以及选择路由以重新分配给 BGP 的导出策略。
然后,BGP 会像任何其他 NLRI 一样传播这些路由。配置并协商了 BGP-流量工程系列的 BGP 对等方接收 BGP-流量工程 NLRI。BGP 将接收到的 BGP-流量工程 NLRI 以路由的形式存储在表中 lsdist.0 ,该表与存储本地发起的 BGP-流量工程路由的表相同。然后,像任何其他路由一样,将 lsdist.0 安装 BGP 的路由分发给其他对等方。因此,标准路由选择过程适用于从多个扬声器接收的BGP-流量工程NLRI。
为了实现域间流量工程,通过策略将流量 lsdist.0 工程数据库中的路由泄露到流量工程数据库中。此过程称为流量工程数据库导出,如 图 1 所示。
有一些策略可对流量工程数据库导出过程进行管理。默认情况下,不会将任何条目从表泄 lsdist.0 露到流量工程数据库中。
您可以将源自分段路由协议的流量工程 (流量工程) 策略分发到流量工程数据库 (TED),再作为路由分发到BGP链路状态。BGP 链路状态收集与流量工程策略相关的信息,以便外部控制器可以在域内和域间执行路径计算、重新优化和网络可视化等操作。
配置 set protocols source-packet-routing traffic-engineering database 为允许将分段路由 (SR) 策略存储在 TED 中。
对于 SDN 应用(如 PCE 和 ALTO),BGP-流量工程通告的信息不能泄露到路由器的流量工程数据库中。在这种情况下,使用使用 BGP-流量工程与路由器对等的外部服务器将拓扑信息向上移动到跨越网络的天空/编排系统中。这些外部服务器可以被视为 BGP-流量工程消费者,接收 BGP-流量工程路由,但不通告它们。
分配可信度值
将条目安装到流量工程数据库中后,BGP-流量工程学习的信息将可用于 CSPF 路径计算。流量工程数据库使用基于可信度值的协议优先方案。可信度值较高的协议优先于可信度值较低的协议。BGP-流量工程能够同时通告从多个协议获知的信息,因此,除了流量工程数据库中的 IGP 安装条目外,还可以有与多个协议对应的 BGP-流量工程安装条目。流量工程数据库导出组件为 BGP-流量工程支持的每个协议创建流量工程数据库协议和可信度级别。这些可信度值可在 CLI 中配置。
BGP-流量工程协议的可信度顺序如下:
-
未知 - 80
-
OSPF—81
-
IS-IS 级别 1 - 82
-
IS-IS 级别 2 - 83
-
静态 - 84
-
直接—85
跨可信度路径计算
分配可信度值后,每个可信度级别都被视为一个单独的平面。约束短路径优先算法从最高分配的可信度到最低可信度开始,在该可信度级别内找到路径。
对于 BGP-流量工程,必须计算跨可信度级别的路径来计算 AS 间路径。例如,在计算通过区域 1 的路径的区域 0 的设备上会看到不同的可信度设置,因为区域 0 条目由 OSPF 安装,区域 1 条目由 BGP-流量工程安装。
要启用跨可信度级别的路径计算,请在 、 [edit protocols mpls label-switched-path lsp-name]和 [edit protocols rsvp] 层次结构级别包含edit protocols mplscross-credibility-cspf该语句。在层次结构级别,[edit protocols rsvp]启用cross-credibility-cspf影响会绕过 LSP 和传输过程中的松散跃点扩展。
配置可以使用 cross-credibility-cspf 约束最短路径优先算法实现跨可信度级别的路径计算,其中约束不是在逐个可信度的基础上执行的,而是作为忽略分配的可信度值的单个约束执行的。
BGP-流量工程 NLRI 和 TLV
与其他 BGP 路由一样,BGP-流量工程 NLRI 也可以通过使用 BGP-流量工程 NLRI 的路由反射器进行分配。Junos OS 实现了对 BGP-流量工程系列的路由反射支持。
以下是受支持的 NLRI 列表:
-
链接 NLRI
-
节点 NLRI
-
IPv4 前缀 NLRI(接收和传播)
-
IPv6 前缀 NLRI(接收和传播)
-
流量工程策略 NLRI
Junos OS 不支持上述 NRLI 的路由识别符形式。
以下是链路和节点 NLRI 中支持的字段列表:
-
协议 ID — NLRI 源自以下协议值:
-
IS-IS-L1
-
IS-IS-L2
-
OSPF
-
弹簧流量工程
-
-
标识符 — 此值可配置。默认情况下,标识符值设置为
0。 -
本地/远程节点描述符 — 其中包括:
-
自治系统
-
BGP-LS 标识符 — 此值可配置。默认情况下,BGP-LS 标识符值设置为
0 -
地区 ID
-
IGP 路由器 ID
-
-
链路描述符(仅适用于链路 NLRI) — 其中包括:
-
链路本地/远程标识符
-
IPv4 接口地址
-
IPv4 邻接方地址
-
IPv6 邻接方/接口地址 — IPv6 邻接方和接口地址不发起,只会在收到地址时进行存储和传播。
-
多拓扑 ID — 此值不是源自,而是在收到时存储和传播。
-
以下是受支持的LINK_STATE属性 TLV 列表:
-
链路属性:
-
管理组
-
最大链路带宽
-
最大可预留带宽
-
未预留带宽
-
流量工程默认指标
-
SRLG
-
以下 TLV,它们不是源自存储,而是仅在收到时存储和传播:
-
不透明链路属性
-
MPLS 协议掩码
-
度量
-
链路保护类型
-
链路名称属性
-
-
-
节点属性:
-
IPv4 路由器 ID
-
节点标志位 - 仅设置重载位。
-
以下 TLV,它们不是源自存储,而是仅在收到时存储和传播:
-
多拓扑
-
特定于 OSPF 的节点属性
-
不透明节点属性
-
节点名称
-
IS-IS 区域标识符
-
IPv6 路由器 ID
-
-
前缀属性 — 这些 TLV 的存储和传播方式与任何其他未知 TLV 一样。
-
支持和不支持的功能
Junos OS 使用 BGP 通过链路状态分发支持以下功能:
-
多协议保证转发能力的广告
-
节点和链路状态 BGP 及 BGP-流量工程 NLRI 的传输和接收
-
面向 BGP-流量工程 NLRI 的不间断主动路由
-
政策
Junos OS 支持 not 使用 BGP 进行链路状态分发的以下功能:
-
聚合拓扑、链路或节点
-
BGP-流量工程 NLRI 的路由区分符支持
-
多拓扑标识符
-
多实例标识符(不包括默认实例 ID 0)
-
链路和节点区域 TLV 的通告
-
MPLS 信令协议的播发
-
使用重叠地址导入节点和链路信息
用于网络中源数据包路由的 BGP 链路状态扩展 (SPRING)
扩展了 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 知道这些路由。您可以在路由表中
lsdis.0为非 BGP 路由配置导出策略。此策略播发从流量工程数据库中获知的条目。
支持 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
验证通过 BGP 获知的 NLRI 节点,并将 OSPF 用作 IGP
以下是验证通过 BGP 获知的 NLRI 节点(以 OSPF 作为 IGP)的示例输出:
目的
验证 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 路由表中。
验证通过 BGP 获知的前缀 NLRI,并将 OSPF 用作 IGP
以下是验证通过 BGP 获知的前缀 NLRI(以 OSPF 作为 IGP)的示例输出:
目的
验证 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 的路径,例如跨区域流量工程 LSP,并为外部路径计算实体(如 ALTO 和 PCE)获取网络拓扑提供可扩展和策略控制的方式。
要求
此示例使用以下硬件和软件组件:
-
四台 MX 系列路由器
-
所有路由器上运行 Junos OS 14.2 或更高版本
开始之前:
-
配置设备接口。
-
为设备配置自治系统编号和路由器 ID。
-
配置以下协议:
-
回复
-
MPLS
-
BGP
-
IS-IS
-
OSPF
-
概述
通过扩展 BGP 协议来传输最初使用 IGP 获取的链路状态信息,引入了一种跨多个区域和自治系统 (AS) 分配拓扑信息的新机制。在分发大型数据库时,IGP 协议具有扩展限制。BGP 不仅是用于传输多区域和多 AS 拓扑信息的更具可扩展性的工具,还提供了可用于多 AS 拓扑分布的策略控制。BGP链路状态拓扑信息用于计算跨越多个域的MPLS标签交换路径(LSP)的路径,例如跨区域流量工程LSP,并为外部路径计算实体(如ALTO、PCE)获取网络拓扑提供可扩展和策略控制的方式。
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-流量工程信令网络层可达性信息 (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-流量工程信令 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-流量工程 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-流量工程信令网络层可达性信息 (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-流量工程信令 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-流量工程 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 汇总状态
目的
验证路由器 R0 和 R1 上的 BGP 是否已启动并运行。
行动
在操作模式下,运行命令 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链路状态拓扑信息用于计算跨多个域的MPLS LSP的路径,例如跨区域流量工程LSP,并为外部路径计算实体(如ALTO、PCE)获取网络拓扑提供可扩展和策略控制的方式。
开始之前:
-
配置设备接口。
-
为设备配置路由器 ID 和自治系统编号。
-
配置以下协议:
-
回复
-
MPLS
-
IS-IS
-
OSPF
-
要使用 BGP 启用链路状态分配:
使用 BGP-LS 的 SRv6 SID 的链路状态分布
用于 SRv6 的 BGP 链路状态扩展
我们在 BGP-LS 和流量工程数据库 (TED) 中支持 SRv6。BGP-LS 扩展将 SRv6 拓扑信息导出到 SDN 控制器。控制器通过成为 IGP 域的一部分或通过 BGP-LS 接收拓扑信息。BGP LS 提供了一种可扩展的机制来导出拓扑信息。它也可用于域间网络。此外,您现在还可以根据 IPv6 前缀(SRv6 定位符)和 SRv6 SID NLRI 过滤 NLRI。
BGP 链路状态 SRv6 数据流
BGP LS 从流量工程数据库 (TED) 检索流量工程 (流量工程) 数据,并将其分发给对等BGP发言者。为此,TED 以路由的形式转换其链路、节点和前缀(IPv4 和 IPv6)条目。下图显示了 BGP-LS 中的数据流。
-
Junos 现在支持通过 IS-IS IGP 交换的 SRv6 属性,如 IETF 标准 [3] 中所述。
-
SRv6 属性将添加到流量工程数据库 (TED) 中。
-
通过 IS-IS 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属性将被添加到流量工程数据库的本地实例中。
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)。
- IPv6 前缀和 IPv6 邻接的优势 流量工程数据库和 BGP-LS 中的 SID MPLS 支持
- 实施
- 支持将 IPv6 属性和信息从 IS-IS 添加到流量工程数据库
- 支持 IPv6 属性 从流量工程数据库导入到 lsdist.0 路由表
- 支持将 IPv6 属性导出到 BGP-LS
- 支持 BGP-LS IPv6 NLRI 和属性 从 lsdist.0 路由表导出到流量工程数据库
- 配置命令
IPv6 前缀和 IPv6 邻接的优势 流量工程数据库和 BGP-LS 中的 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 从流量工程数据库检索流量工程 (流量工程) 数据,并将数据分发到其 BGP 对等方。为了实现这一点,流量工程数据库将其链路、节点和前缀(IPv4 和 IPv6)条目转换为路由形式。下图描述了从 BGP-LS 到 BGP-LS 的信息流。
的信息流
支持将 IPv6 属性和信息从 IS-IS 添加到流量工程数据库
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 将接收到的 BGP-LS NLRI 以路由的形式存储在 lsdist.0 表中,该表与存储本地发起的 BGP-LS 路由的表相同。由于此功能,新添加的 IPv6 信息将作为现有链路 NLRI 的属性传播到 BGP,并作为新的 IPv6 前缀 NLRI。
支持 BGP-LS IPv6 NLRI 和属性 从 lsdist.0 路由表导出到流量工程数据库
在 Junos OS 中,以 lsdist.0 表中的路由形式安装的接收到 BGP-LS NLRI 受流量工程数据库导出策略的约束。如果策略允许,IPv6 属性和来自这些路由的信息随后会添加到流量工程数据库的本地实例中。
配置命令
增强了 BGP-流量工程策略命令,允许基于 IPv6 前缀 NLRI 过滤 NLRI。请参阅 ipv6 前缀。
也可以看看
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能资源管理器 确定您的平台是否支持某个功能。