Segment Routing IGP Control Plane 段路由 IGP 控制平面 Clarence Filsfils Kris Michielsen
SR IGP 控制平面 采用 IS-IS 或者 OSPF 以分发 Segment 在 IGP 下配置 SR 多区域 多级网络中的 SR 查看 SR 的 IGP 通告信息
Segment Routing IS-IS Overview SR IS-IS 概述
SR IS-IS 控制平面概述 IS-IS SR 功能 IPv4 与 IPv6 控制平面 level1 level2 与多级路由 用于 loopback 接口上主机前缀的 prefix segment ID (Prefix-SID) 用于邻接的 adjacency segment ID (Adj-SIDs) > 不受保护的 adj-sid 和受保护 ( 从 IOS XR 5.3.2 起 ) 的 adj-sid 如需了解更多, 请参看 SR-TE 讲义 Prefix-to-SID( 前缀到 SID) 映射关系的通告 ( 映射服务器 ) MPLS 倒数第二跳弹出 (PHP) 和 explicit-null 的请求机制
IS-IS TLV 扩展 IS-IS 为支持 SR 引入了下述 (sub-)tlvs SR Capability sub-tlv (2) IS-IS Router Capability TLV (242) Prefix-SID sub-tlv (3) Extended IP reachability TLV (135) Prefix-SID sub-tlv (3) IPv6 IP reachability TLV (236) Prefix-SID sub-tlv (3) Multitopology IPv6 IP reachability TLV (237) Prefix-SID sub-tlv (3) SID/Label Binding TLV (149) Adjacency-SID sub-tlv (31) Extended IS Reachability TLV (22) LAN-Adjacency-SID sub-tlv (32) Extended IS Reachability TLV (22) Adjacency-SID sub-tlv (31) Multitopology IS Reachability TLV (222) LAN-Adjacency-SID sub-tlv (32) Multitopology IS Reachability TLV (222) SID/Label Binding TLV (149) 基于 draft-ietf-isis-segment-routing-extensions-02 的实施
Segment Routing OSPF Overview SR OSPF 概述
SR OSPF 控制平面概述 OSPF SR 功能 OSPFv2 控制平面 多区域 (multi-area) Loopback 接口的主机前缀的 IPv4 prefix segment ID (Prefix-SID) 用于邻接的 adjacency segment ID (Adj-SIDs) > 不受保护的 adj-sid 与受保护的 ( 自 OSPF SR-TE 版本开始 ) adj-sids MPLS 倒数第二跳弹出 (PHP) 和 explicit-null 的请求机制
OSPF 扩展 在 OSPF 路由器信息不透明的 LSA 中 (Router Information Opaque LSA,opaque type4) 增加了下列 TLV: SR-Algorithm TLV (8) SID/Label Range TLV (9) OSPF 定义新的不透明 LSA 用以通告 SID OSPFv2 Extended Prefix Opaque LSA (opaque type 7) >OSPFv2 Extended Prefix TLV (1) Prefix SID Sub-TLV (2) OSPFv2 Extended Link Opaque LSA (opaque type 8) >OSPFv2 Extended Link TLV (1) Adj-SID Sub-TLV (2) LAN Adj-SID Sub-TLV (3) 实现是基于 draft-ietf-ospf-prefix-link-attr-01 and draft-ietf-ospf-segment-routing-extensions-02 版本
Configuring Segment Routing 配置 Segment Routing
IS-IS SR 配置 router isis 1 address-family ipv4 ipv6 unicast metric-style wide segment-routing mpls 启动 SR 功能 该命令意味着 在所有非 passive 的 IS-IS 接口上启动 MPLS 转发 分配和分发 Adjacency-SIDs 给所有的邻接 > 不受保护的 adj-sids 与受保护的 ( 从 IOS XR 5.3.2 开始 ) adj-sids > 更多内容, 请参见 SR-TE 部分 启动 MPLS 数据平面的 SR
IS-IS SR 配置 router isis 1 address-family ipv6 unicast metric-style wide segment-routing ipv6 启动 SR 功能 启动 IPv6 扩展报头数据平面的 SR SRv6 扩展报头数据平面内容不在本讲义范围之内
OSPF SR 配置推荐 router ospf 1 segment-routing mpls segment-routing forwarding mpls 在后续的版本中,SR 转发机制将默认启用 此配置行将不再需要 (CSCuw93707) 说明 为了安装让 OSPF 接收到的 SID 安装在转发表中, 必须配置 segment-routing forwarding mpls 在所有启用了 segment-routing forwarding 的 OSPF 接口上将启用 MPLS 转发 为所有启用了 segment-routing forwarding 的链路分配和分发 Adjacency-SIDs 建议在 ospf 实例下进行配置, 但是也可以细化配置 > 请参见后面的 slides
OSPF 配置继承 注意事项 OSPF 配置具有层级模式 实例 > 区域 接口 router ospf 1 area 0 interface GigabitEthernet0/0/0/0 较低层级延续继承了较高层级的 OSPF 配置 例 1: 在实例级上 OSPF 接口配置 ( 如 :hello-interval) 被配置好后, 由所有 ODPF 接口延续继承 例 2: 在区域级上 OSPF 接口配置 ( 如 :hello-interval) 被配置好后, 由区域中的所有接口延续继承
OSPF 配置继承 注意事项 较低层级的 OSPF 配置优先于较高层级的配置 ( 从生效的角度 ) 例如 : 接口的 OSPF 配置优先于实例级或区域级的已有配置 router ospf 1 hello-interval 10 OSPF interfaces use hello-interval 10 area 0 hello-interval 20 Area 0 interfaces use hello-interval 20 interface GigabitEthernet0/0/0/0 hello-interval 30 This interface uses hello-interval 30
OSPF 配置继承 注意事项 OSPF 配置通常有的一个关键字 --disable 例如 : 启动一个实例级的 OSPF 接口配置, 然后针对特定的接口, 在接口层上禁用 (disable) 它 router ospf 1 bfd fast-detect Enable on instance level area 0 bfd fast-detect disable Disable on area level area 1 interface GigabitEthernet0/0/0/0 bfd fast-detect disable Disable on interface level
OSPF SR 配置 router ospf 1 area 0 segment-routing mpls Area command segment-routing forwarding mpls Interface command interface GigabitEthernet0/0/0/0 segment-routing forwarding disable Interface command segment-routing mpls 是一个 OSPF 区域指令, 可以应用在每个区域上 OSPF 继承规则适用 segment-routing forwarding mpls 是一个 OSPF 接口指令, 可以应用在每个接口上 OSPF 继承规则适用 在此示例中, 除 Gi0/0/0/0 外区域 0 中所有的接口都启用了 SR
Segment Routing Global Block (SRGB) 段路由全局块 (SRGB)
段路由全局块 SRGB 默认 SRGB 是 [16,000-23,999] 默认 SRGB 配置没有显示在配置中 非默认 SRGB 可以按照每 IGP 实例配置 多个 IGP 实例可以使用相同的 SRGB 或使用不同的非重叠 SRGB SRGB 可以在全局配置中配置 (IOS XR6.0) IGP 实例下的 SRGB 优先于全局配置中的 SRGB 更多内容, 请参见 SRGB 讲义
段路由全局块 (SRGB) 实例 segment-routing global-block 18000 19999 router ospf 1 segment-routing mpls no segment-routing global-block config RP/0/0/CPU0:xrvr-1#show mpls label table detail Table Label Owner State Rewrite OSPF SRGB ----- ------- ------------------------------- ------ ------- <...snip...> 0 18000 OSPF(A):ospf-1 InUse No (Lbl-blk SRGB, vers:0, (start_label=18000, size=2000) <...snip...> 配置一个非默认全局 SRGB 18,000 19,999 非默认 SRGB 标签块分配给 OSPF [ 18,000 19,999 ] 开始标签 =18,000 大小 =2,000
段路由全局块 (SRGB) 实例 no global segment-routing global-block config router isis 1 segment-routing mpls segment-routing global-block 18000 19999 配置一个 IGP SRGB 18,000 19,999 RP/0/0/CPU0:xrvr-1#show mpls label table detail Table Label Owner State Rewrite IS-IS SRGB ----- ------- ------------------------------- ------ ------- <...snip...> 0 18000 ISIS(A):1 InUse No (Lbl-blk SRGB, vers:0, (start_label=18000, size=2000) <...snip...> 非默认 SRGB 标签块分配给 ISIS [ 18,000 19,999 ] 开始标签 =16,000 大小 =2,000
段路由全局块 (SRGB) 实例 segment-routing global-block 18000 19999 router ospf 1 segment routing mpls segment-routing global-block 20000 21999 RP/0/0/CPU0:xrvr-1#show mpls label table detail Table Label Owner State Rewrite OSPF SRGB ----- ------- ------------------------------- ------ ------- <...snip...> 0 20000 OSPF(A):ospf-1 InUse No (Lbl-blk SRGB, vers:0, (start_label=20000, size=2000) <...snip...> 配置一个非默认全局 SRGB 18,000 19,999 配置一个 IGP SRGB 20,000 21,999 非默认 SRGB 标签块分配给 OSPF [ 20,000 21,999 ] 开始标签 =20,000 大小 =2,000
在路由器功能 TLV 中的 IS-IS SRGB SRGB 被通告到 IS-IS Router Capability TLV 中 Router Capability TLV 包括 : 路由器 ID (32 bits), Flags (8 bits) 及可选的 sub-tlvs. Router Capability TLV flags: +-+-+-+-+-+-+-+-+ Reserved D S +-+-+-+-+-+-+-+-+ S: Scope( 范围 ), 如果设置, 那么将 TLV flood 到整个路由域 D: Down( 下降 ), 如果 TLV 是从 level 2 泄漏到 level 1 则置位
IS-IS SR 功能 sub-tlv (IS-IS Segment Routing Capability sub-tlv) SR 功能 sub-tlv 包含在路由器功能 TLV 中 SR 算法 sub-tlv 也可以包括在内 ( 在 IOS XR 5.3.2 版本中并不包含 ) SR 功能 sub-tlv 包括 : Flags (8 bits) 及一个或多个 SRGB 描述符 一个 SRGB 描述符包括 : 范围 (24 bits),srgb 的起始 SID/ 标签 ( 可变长度的, 对于 MPLS 是 32 位 ) SR 功能 sub-tlv 中的 flags: +-+-+-+-+-+-+-+-+ I V +-+-+-+-+-+-+-+-+ I: IPv4, 如果设置, 说明路由器在所有接口支持 IPv4 封装 V: IPv6,, 如果设置, 说明路由器在所有接口支持 IPv6 封装
IS-IS 的例子 1.1.1.1/32 SID idx 1 2001::101:101/128 SID idx 1001 1.1.1.2/32 SID idx 2 2001::101:102/128 SID idx 1002 1 2 IPv4 相关为蓝色 IPv6 相关为绿色 router isis 1 is-type level-2-only net 49.0001.0000.0000.0001.00 address-family ipv4 unicast metric-style wide segment-routing mpls address-family ipv6 unicast metric-style wide segment-routing mpls address-family ipv4 unicast metric-style wide segment-routing mpls address-family ipv6 unicast metric-style wide segment-routing mpls RP/0/0/CPU0:xrvr-1#show isis database verbose xrvr-1 IS-IS 1 (Level-2) Link State Database LSPID LSP Seq Num LSP Checksum LSP Holdtime ATT/P/OL xrvr-1.00-00 * 0x0000039b 0xfc27 1079 0/0/0 Area Address: 49.0001 NLPID: 0xcc NLPID: 0x8e MT: Standard (IPv4 Unicast) MT: IPv6 Unicast 0/0/0 S:0, 不将 TLV 传送到其它 level Hostname: xrvr-1 IP Address: 1.1.1.1 D:0, TLV 不做 L2 L1 泄露 IPv6 Address: 2001::101:101 Router Cap: 1.1.1.1, D:0, S:0 Segment Routing: I:1 V:1, SRGB Base: 16000 Range: 8000 I:1 IPv4 支持 V:1, IPv6 支持 SRGB: 起始标签 : 16,000, 数量 : 8000 [16,000 23,999]
在路由器信息 LSA 中的 OSPF SRGB (Router Information SLA) 一个或多个 SID/ 标签范围 TLVs(SRGB 描述符 ) 包含在路由器信息不透明 LSA 中 SR 算法 TLV 也包含在路由器信息 LSA 中 SID/ 标签范围 TLV 包括 : 范围 (24 bits),srgb 的起始 SID/ 标签 ( 可变长度的, 对于 MPLS 是 32 位 ) SR 算法 TLV 包含使用在节点中的一系列算法标识符 (8bits/ 标识符 ) Algorithm 0: 最短路径优先 (SPF) 算法基于链路度量参数
OSPF 的例子 1.1.1.1/32 SID idx 1 2001::101:101/128 SID idx 1001 1.1.1.2/32 SID idx 2 2001::101:102/128 SID idx 1002 1 2 router ospf 1 router-id 1.1.1.1 segment-routing mpls segment-routing forwarding mpls area 0 interface Loopback0 passive enable prefix-sid index 1 interface GigabitEthernet0/0/0/0 network point-to-point RP/0/0/CPU0:xrvr-1#show ospf database opaque-area 4.0.0.0 self-originate OSPF Router with ID (1.1.1.1) (Process ID 1) Type-10 Opaque Link Area Link States (Area 0) Opaque Type: 4 Advertising Router: 1.1.1.1 Router Information TLV: Length: 4 Capabilities: Graceful Restart Helper Capable Stub Router Capable All capability bits: 0x60000000 Segment Routing Algorithm TLV: Length: 1 Algorithm: 0 仅 Algorithm 0 (SPF) Segment Routing Range TLV: Length: 12 Range Size: 8000 SID sub-tlv: Length 3 Label: 16000 SRGB: 起始标签 : 16,000, 数量 : 8000 [16,000 23,999]
Prefix-SID and Adjacency-SID 前缀 -SID 和邻接 -SID
SID 编码方式 启用 SR 的节点 Prefix SID 采用 SR 全局块 (SRGB) SRGB 通告使用路由器功能 TLV 在配置中, Prefix-SID 可以配置为一个绝对值或索引 在协议通告中,Prefix-SID 总是编码成全局唯一的索引 索引代表基于 SRGB 基准值 ( 起始值 ) 的偏移, 从 0 开始编号, 即,0 就是第一个索引 如 : 索引 1 SID 是 16,000 + 1 = 16,001 Adjacency SID 本地有意义 自动为每个邻接分配 总是编码为一个绝对值 ( 不是编为索引 ) SRGB = [ 16,000 23,999 ] 通告为 base = 16,000, 范围 = 8,000 Prefix SID = 16,001 通告为 Prefix SID Index = 1 Adjacency SID = 24000 通告为 Adjacency SID = 24000
Prefix-SID 前缀 -SID
前缀段 - Prefix segment 全局 segment 具有全局意义 SR 域中唯一的 由路由协议管理 IGP 从标签交换数据库 (LSD) 分配一块标签 (SRGB) 用于 Prefix Segment 手工配置 关联在启用 IGP 的 loopback 接口下 仅为 /32 或 /128 前缀分配, 存在于全局路由表中 Prefix-SIDs 一般由运营商自己分配, 与分配 loopback 地址类似
节点段 Node Segment Node Segment 是 Prefix Segment 中的一种 节点段是与主机前缀相关的前缀段, 用来代表一个节点 相当于 router-id 前缀, 它是标识节点的前缀 Node-SID( 节点 SID) 是一种特殊的 Prefix-SID( 在通告中带着 N-flag 置位的 prefix-sid) 默认下, 每个配置的 Prefix-SID 就是 Node-SID Prefix-SID 也可以在 IS-IS 配置为非 Node-SID( 即普通的 Prefix-SID)
Prefix-SID/Node-SID 配置 router isis 1 interface Loopback0 address-family ipv4 ipv6 unicast prefix-sid {absolute index} {<SID value> <SID index>} router ospf 1 area 0 interface Loopback0 prefix-sid {absolute index} {<SID value> <SID index>} Prefix-SID 可以配置为 SRGB 中的绝对值 ( 即 全局模式 ) 或 SRGB 中的一个索引 (offset)
IS-IS 的例子 1.1.1.1/32 SID idx 1 2001::101:101/128 SID idx 1001 1.1.1.2/32 SID idx 2 2001::101:102/128 SID idx 1002 1 2 IPv4 元素标为蓝色 IPv6 元素标为绿色 interface Loopback0 ipv4 address 1.1.1.1 255.255.255.255 ipv6 address 2001::101:101/128 router isis 1 address-family ipv4 unicast metric-style wide segment-routing mpls address-family ipv6 unicast metric-style wide segment-routing mpls interface Loopback0 address-family ipv4 unicast prefix-sid absolute 16001 Or: prefix-sid index 1 address-family ipv6 unicast prefix-sid absolute 17001 Or: prefix-sid index 1001 RP/0/0/CPU0:xrvr-1#show isis database verbose xrvr-1 IS-IS 1 (Level-2) Link State Database LSPID LSP Seq Num LSP Checksum LSP Holdtime ATT/P/OL xrvr-1.00-00 * 0x0000039b 0xfc27 1079 0/0/0 Area Address: 49.0001 NLPID: 0xcc NLPID: 0x8e MT: Standard (IPv4 Unicast) MT: IPv6 Unicast 0/0/0 Hostname: xrvr-1 IP Address: 1.1.1.1 IPv6 Address: 2001::101:101 Router Cap: 1.1.1.1, D:0, S:0 Segment Routing: I:1 V:1, SRGB Base: 16000 Range: 8000 Metric: 0 IP-Extended 1.1.1.1/32 Prefix-SID Index: 1, Algorithm:0, R:0 N:1 P:0 E:0 V:0 L:0 Metric: 0 MT (IPv6 Unicast) IPv6 2001::101:101/128 Prefix-SID Index: 1001, Algorithm:0, R:0 N:1 P:0 E:0 V:0 L:0
IS-IS Prefix-SID flags IS-ISPrefix-SID 通告有下述 flag: 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+ R N P E V L +-+-+-+-+-+-+-+-+ R: Re-advertisement, 如果 SID 关联的非本地前缀传送到另一个 level 或被重分发, 则置位 ; 在 IOS XR 中默认设置 :0 ( 即默认为未被重分发 ) N: Node-SID, 如果前缀 SID 是节点 SID 则置位, 表示一个节点 ; 在 IOS XR 中默认设置 :1( 即默认为 Node-SID) P: no-php, 如果要倒数第二跳在转发之前不弹出 Prefix-SID, 则置位 ; 在 IOS XR 中默认设置为 :0( 即默认要求倒数第二跳弹出 ) E: Explicit-Null, 如果倒数第二跳必须用将 Prefix-SID 交换为 Explicit-Null 标签, 则置位 ; 在 IOS XR 默设置为 :0 ( 即默认要求倒数第二跳弹出 ) V: Value, 如果 Prefix-SID 携带的是一个值 ( 而不是一个索引 ) 则置位 -- IOS XR: 总是不置位 ( 即默认为索引 ) L: Local, 如果 Prefix-SID 是本地 SID, 只具有本地意义则置位 -- IOS XR: 总是不设置 ( 即默认为 global SID)
OSPF 扩展 Prefix TLV flags (OSPF Extended Prefix TLV) OSPF 扩展 Prefix TLV 具有下述 flag: 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+ A N +-+-+-+-+-+-+-+-+ A: Attach, 由区域边界路由器 (ABR) 为直连在自己上面, 但是从另外一个区域发布的区域间前缀设置 IOS XR 默认设置 :0 N: Node, 如果前缀代表的是节点 ( 即 Prefix-SID 为 Node-SID) 默认 IOS XR:1( 即默认是 node-sid)
OSPF Prefix-SID sub-tlv flags OSPF Prefix-SID sub-tlvs 具有下述 flags: 0 1 2 3 4 5 6 7 +--+--+--+--+--+--+--+--+ NP M E V L +--+--+--+--+--+--+--+--+ NP: no-php, 如果要倒数第二跳在转发之前不弹出 Prefix-SID, 则置位 ; 在 IOS XR 中默认设置为 :0( 即默认要求倒数第二跳弹出 ) M: Mapping Server, 如果 SID 是映射服务器通告的则置位 IOS XR 中默认设置 : 0( 即默认不是由 mapping server 通告 ) E: Explicit-Null, 如果倒数第二跳必须用将 Prefix-SID 交换为 Explicit-Null 标签, 则置位 ; 在 IOS XR 默设置为 :0 ( 即默认要求倒数第二跳弹出 ) V: Value, 如果 Prefix-SID 携带的是一个值 ( 而不是一个索引 ) 则置位 -- IOS XR: 总是不置位 ( 即默认是索引 ) L: Local, 如果 Prefix-SID 是本地 SID, 只具有本地意义则置位 -- IOS XR: 总是不设置 ( 即默认是 global SID)
IS-IS Node-SID flag (N-flag) 默认情况下, 每个配置的 Prefix-SID 上都会置位 N-flag 表明此 Prefix-SID 是一个 Node-SID 为清除 N-flag, 可配置 n-flag-clear 注意 : 当 Prefix-SID 是 Anycast-SID 时,N-flag 应该被清除 prefix-sid absolute 18000 n-flag-clear
IS-IS Node-SID flag (N-flag) 实例 IPv4 元素标为蓝色 IPv6 元素标为绿色 interface Loopback0 ipv4 address 1.1.1.1 255.255.255.255 ipv6 address 2001::101:101/128 router isis 1 interface Loopback0 address-family ipv4 unicast prefix-sid absolute 16001 address-family ipv6 unicast prefix-sid absolute 17001 1.1.1.1/32 SID idx 1 2001::101:101/128 SID idx 1001 1 2 RP/0/0/CPU0:xrvr-1#show isis database verbose xrvr-1 Metric: 0 IP-Extended 1.1.1.1/32 Prefix-SID Index: 1, Algorithm:0, R:0 N:1 P:0 E:0 V:0 L:0 Metric: 0 MT (IPv6 Unicast) IPv6 2001::101:101/128 Prefix-SID Index: 1001, Algorithm:0, R:0 N:1 P:0 E:0 V:0 L:0 interface Loopback0 ipv4 address 1.1.1.1 255.255.255.255 ipv6 address 2001::101:101/128 router isis 1 interface Loopback0 address-family ipv4 unicast prefix-sid absolute 16001 n-flag-clear address-family ipv6 unicast prefix-sid absolute 17001 n-flag-clear RP/0/0/CPU0:xrvr-1#show isis database verbose xrvr-1 Metric: 0 IP-Extended 1.1.1.1/32 Prefix-SID Index: 1, Algorithm:0, R:0 N:0 P:0 E:0 V:0 L:0 Metric: 0 MT (IPv6 Unicast) IPv6 2001::101:101/128 Prefix-SID Index: 1001, Algorithm:0, R:0 N:0 P:0 E:0 V:0 L:0
Prefix-SID explicit-null 与 no-php Flag 如果 Prefix-SID 的发起节点希望接收到的包保留外层 MPLS 标签 (LSP 标签, 即 Prefix-SID) 以利用 EXP / TC bits 作 QoS 分类, 则可要求倒数第二跳不弹出 倒数第二跳可以将顶部标签交换为 explicit-null 标签, 而不是弹出它, 然后数据包携带标签包含 MPLS EXP / TC bits 到达最后一跳 (Prefix-SID 的发起者 ) Prefix-SID 的发起者可以在 Prefix-SID 通告中设置在 E-flag, 以请求 explicit-null 行为 默认情况下, E-flag 不设置 注意 : explicit-null 与 no-php Flag 要么同时为 1, 要么同时为 0
Prefix-SID explicit-null 和 no-php Flags 要通告带 E-flag 设置的 prefix-sid ( 请求 explicit-null 行为 ), 须在 prefix- SID 配置中使用 explicit-null 关键字 prefix-sid absolute 16001 explicit-null 这会同时自动设置 no-php flag ((N)P-flag*), 同样 ( 在 IOS XR 中,no-PHP 不能被独立配置 ) 可应用在 IS-IS 和 OSPF 中 * 此 flag 在 IS-IS IETF 草案中被命名为 P-flag, 在 OSPF IETF 草案中被命名 NP-flag
IS-IS E-flag 和 (N)P-Flag 实例 IPv4 元素标为蓝色 IPv6 元素标为绿色 interface Loopback0 ipv4 address 1.1.1.1 255.255.255.255 ipv6 address 2001::101:101/128 router isis 1 interface Loopback0 address-family ipv4 unicast prefix-sid absolute 16001 address-family ipv6 unicast prefix-sid absolute 17001 1.1.1.1/32 SID idx 1 2001::101:101/128 SID idx 1001 1 2 RP/0/0/CPU0:xrvr-1#show isis database verbose xrvr-1 Metric: 0 IP-Extended 1.1.1.1/32 Prefix-SID Index: 1, Algorithm:0, R:0 N:1 P:0 E:0 V:0 L:0 Metric: 0 MT (IPv6 Unicast) IPv6 2001::101:101/128 Prefix-SID Index: 1001, Algorithm:0, R:0 N:1 P:0 E:0 V:0 L:0 interface Loopback0 ipv4 address 1.1.1.1 255.255.255.255 ipv6 address 2001::101:101/128 router isis 1 interface Loopback0 address-family ipv4 unicast prefix-sid absolute 16001 explicit-null address-family ipv6 unicast prefix-sid absolute 17001 explicit-null RP/0/0/CPU0:xrvr-1#show isis database verbose xrvr-1 Metric: 0 IP-Extended 1.1.1.1/32 Prefix-SID Index: 1, Algorithm:0, R:0 N:1 P:1 E:1 V:0 L:0 Metric: 0 MT (IPv6 Unicast) IPv6 2001::101:101/128 Prefix-SID Index: 1001, Algorithm:0, R:0 N:1 P:1 E:1 V:0 L:0
OSPF E-flag 和 (N)P-Flag 实例 interface Loopback0 ipv4 address 1.1.1.1 255.255.255.255 router ospf 1 area 0 interface Loopback0 prefix-sid index 1 interface Loopback0 ipv4 address 1.1.1.1 255.255.255.255 router ospf 1 area0 interface Loopback0 prefix-sid index 1 explicit-null 1.1.1.1/32 SID idx 1 1 2 RP/0/0/CPU0:xrvr-1#show ospf database opaque-area 7.0.0.1 self-originate OSPF Router with ID (1.1.1.1) (Process ID 1) Type-10 Opaque Link Area Link States (Area 0) Extended Prefix TLV: Length: 20 Route-type: 1 AF : 0 Flags : 0x40 Prefix : 1.1.1.1/32 SID sub-tlv: Length: 8 Flags : 0x0 MTID : 0 Algo : 0 SID Index : 1 RP/0/0/CPU0:xrvr-1#show ospf database opaque-area 7.0.0.1 self-originate OSPF Router with ID (1.1.1.1) (Process ID 1) Type-10 Opaque Link Area Link States (Area 0) Extended Prefix TLV: Length: 20 Route-type: 1 AF : 0 Flags : 0x40 Prefix : 1.1.1.1/32 SID sub-tlv: Length: 8 Flags : 0x50 MTID : 0 Algo : 0 SID Index : 1 0 1 2 3 4 5 6 7 +--+--+--+--+--+--+--+--+ NP M E V L +--+--+--+--+--+--+--+--+ 0 0 0 0 0 0 0 0 all flag unset 0 1 2 3 4 5 6 7 +--+--+--+--+--+--+--+--+ NP M E V L +--+--+--+--+--+--+--+--+ 0 1 0 1 0 0 0 0 NP-flag and E-flag set
Anycast Prefix Segment Anycast Prefix Segment 是 Prefix Segment 中的一种 Anycast 前缀 : 多节点通告的相同前缀 Anycast prefix-sid: 与 anycast prefix 相关的 prefix-sid 相同的前缀有着相同的 prefix SID 蕴含的指令 : 将流量按照 IGP 最佳路径转发给 Anycast prefix- SID 的多个发起者中的一个 如果主节点失败, 流量自动改道去其他节点 注意 : 通告相同的 Anycast prefix-sid 的节点, 必须有相同的 SRGB
Anycast Segment 好处 粗粒度的流量工程, 通过路由器组引导流量 ( 使用普通的 Anycast-SID) 基于时延的策略案例 : > 从日本到西欧 :SPT 最短路径通过美国 > 低时延路径 : 引导流量沿着 SPT 到东欧 (SPT 日本 东欧是低延迟的 ), 然后沿着 SPT 到西欧的目的地 (SPT 东欧 西欧是低延迟 ) > 中间跳可以是东欧任何骨干网路由器 : 用 东欧骨干网路由器群 的 Anycast-SID 引导流量从日本到东欧 高可用性 如果东欧的一个路由器宕机, 该策略任然生效 常用于服务虚拟化 如表示最近的防火墙 /DPI 等等
Anycast-SID 高可用性的好处 PE1 和 PE2 每个通告一个 prefix-sid, 分别对应 16001 及 16002 此外,PE1 和 PE2 都通告 Anycast prefix-sid, 16100 16065 16100 16065 Payload A Payload PE1 16001 Payload Z 16100 16002 16065 PE2
Anycast-SID 高可用性的好处 如果最近的 Anycast 节点失败, 流量自动改道到另一个通告该 Anycast prefix-sid 的节点 16100 16065 Payload A 16100 16065 Payload PE1 PE2 16001 16002 Z Payload 16065
Adjacency-SID 邻接 -SID
Adjacency segments 邻接段 本地 Segment 只在本地具有意义 本地标签, 从动态标签池中分配, 不同节点上可重叠 自动分配给每个邻接 每个邻接 : 分配一个受保护的和一个不受保护的 adjacency-sid > 更多情况, 请参见 SRTE 讲义 IS-IS: 相同邻居之间 L1 和 L2 邻接分配不同 Adjacency-SID IS-IS:IPv4 和 IPv6 地址族分配不同 Adjacency-SID OSPF: 多区域邻接的所有区域分配相同的 Adjacency-SID( 在相同接口上有多个邻接, 每个邻接在不同区域中的情况 )
Adjacency segments 邻接段 标签持久性 : 设备故障恢复后, 分配相同的标签 当邻接 Down 时,IGP 释放标签 LSD 在将 IGP 释放的标签额外保留最多 30 分钟 ( 放在僵尸标签表中 ) 当从 LSD 请求标签时,IGP 会传递一个标签上下文 (label context) 当 LSD 收到带有僵尸标签上下文的标签请求时, 它将复活该标签并重新分配给 IGP 整机重启则无法保持标签持久性
Adjacency-SID 标签 RP/0/0/CPU0:xrvr-1#show ospf neighbor 1.1.1.2 detail Neighbors for OSPF 1 Neighbor 1.1.1.2, interface address 99.1.2.2 In the area 0 via interface GigabitEthernet0/0/0/0 Neighbor priority is 1, State is FULL, 6 state changes Adjacency SID Label: 24006 1 2 Adj-SID 标签 RP/0/0/CPU0:xrvr-1#show isis adjacency detail IS-IS RP/0/0/CPU0:xrvr-1#show 1 Level-2 adjacencies: isis adjacency detail System IS-IS Id 1 Level-2 Interface adjacencies: SNPA State Hold Changed NSF IPv4 IPv6 System Id Interface SNPA State Hold Changed NSF BFD IPv4 BFD IPv6 xrvr-2 Gi0/0/0/0 *PtoP* Up 24 1w1d Yes None BFD None BFD xrvr-2 Area Address: Gi0/0/0/0 49.0001 *PtoP* Up 24 1w1d Yes None None Neighbor Area Address: IPv4 Address: 99.1.2.2* 49.0001 Adjacency Neighbor SID: IPv4 Address: 24000 99.1.2.2* Neighbor Adjacency IPv6 SID: Address: fe80::f816:3eff:febd:b683* 24000 Adjacency Neighbor SID: IPv6 Address: 24003 fe80::f816:3eff:febd:b683* Topology: Adjacency SID: IPv4 24003 Unicast Topology: Topology: IPv6 IPv4 Unicast Unicast Topology: IPv6 Unicast IPv4 Adj-SID 标签 IPv6 Adj-SID 标签
Adjacency-SID 标签上下文 1 2 RP/0/0/CPU0:xrvr-1#show mpls label table label 24006 detail Table Label Owner State Rewrite ----- ------- ------------------------------- ------ ------- 0 24006 OSPF(A):ospf-1 InUse Yes (SR Adj Segment IPv4, vers:0, index=0, type=0, intf=gi0/0/0/0, nh=99.1.2.2) 邻接 SID 标签 标签上下文 RP/0/0/CPU0:xrvr-1#show mpls label table label 24000 detail Table Label Owner State Rewrite ----- ------- ------------------------------- ------ ------- 0 24000 ISIS(A):1 InUse Yes (SR Adj Segment IPv4, vers:0, index=0, type=0, intf=gi0/0/0/0, nh=99.1.2.2) 邻接 SID 标签 标签上下文 RP/0/0/CPU0:xrvr-1#show mpls label table label 24003 detail Table Label Owner State Rewrite 邻接 SID 标签 ----- ------- ------------------------------- ------ ------- 0 24003 ISIS(A):1 InUse Yes (SR Adj Segment IPv6, vers:0, index=0, type=0, intf=gi0/0/0/0, nh=fe80::f816:3eff:febd:b683) 标签上下文
IS-IS Adjacency-SID sub-tlv flags IS-IS Adjacency-SID 通告具有下述 flag 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+ F B V L S +-+-+-+-+-+-+-+-+ F: Address-Family, IPv4: 不置位, IPv6: 置位 B: Backup, 如果 Adj-SID 是受保护的邻接则置位 ( 如, 使用 TI-LFA) V: Value, 如果 Adj-SID 是标签值 ( 不是索引 ) 则置位 IOS XR: 总是设置 L: Local, 如果 Adj-SID 是本地标签则置位 IOS XR: 总是设置 S: Set, 如果 Adj-SID 指的是一组邻接则置位 IOS XR: 总是未设置 IS-IS Adjacency-SID sub-tlv 包含一个权重字段 (8 bits): 该值代表为了负载均衡的 Adj-SID 权重 Weight= 0 ( 在 IOS XR 5.3.2 中 )
OSPF Adacency-SID sub-tlv flags OSPF Adjacency-SID sub-tlvs 具有以下 flag: 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+ B V L S +-+-+-+-+-+-+-+-+ B: Backup, 如果 Adj-SID 是受保护的邻接则置位 ( 如, 使用 TI-LFA) V: Value, 如果 Adj-SID 是标签值 ( 不是索引 ) 则置位 IOS XR: 总是设置 L: Local, 如果 Adj-SID 是本地标签则置位 IOS XR: 总是设置 S: Set, 如果 Adj-SID 指的是一组邻接则置位 IOS XR: 总是未设置 OSPF Adjacency-SID sub-tlv 包含一个权重字段 (8 bits): 该值代表为了负载均衡的 Adj-SID 权重 Weight= 0 ( 在 IOS XR 5.3.2 中 )
Adjacency segments IS-IS 实例 IPv4 元素标为蓝色 IPv6 元素标为绿色 interface GigabitEthernet0/0/0/0 ipv4 address 99.1.2.1 255.255.255.0 ipv6 address 2001::9901:201/120 router isis 1 address-family ipv4 unicast metric-style wide segment-routing mpls address-family ipv6 unicast metric-style wide segment-routing mpls interface GigabitEthernet0/0/0/0 point-to-point address-family ipv4 unicast address-family ipv6 unicast 1 metric 10 2 RP/0/0/CPU0:xrvr-1#show isis adjacency detail IS-IS 1 Level-2 adjacencies: System Id Interface SNPA State Hold Changed NSF IPv4 IPv6 BFD BFD xrvr-2 Gi0/0/0/0 *PtoP* Up 24 1w1d Yes None None Area Address: 49.0001 Neighbor IPv4 Address: 99.1.2.2* Adjacency SID: 24000 Neighbor IPv6 Address: fe80::f816:3eff:febd:b683* Adjacency SID: 24003 Topology: IPv4 Unicast Topology: IPv6 Unicast Total adjacency count: 1
Adjacency segments IS-IS 实例 IPv4 元素标为蓝色 IPv6 元素标为绿色 interface GigabitEthernet0/0/0/0 ipv4 address 99.1.2.1 255.255.255.0 ipv6 address 2001::9901:201/120 router isis 1 address-family ipv4 unicast metric-style wide segment-routing mpls address-family ipv6 unicast metric-style wide segment-routing mpls interface GigabitEthernet0/0/0/0 point-to-point address-family ipv4 unicast address-family ipv6 unicast 1 metric 10 2 RP/0/0/CPU0:xrvr-1#show isis database verbose xrvr-1 IS-IS 1 (Level-2) Link State Database LSPID LSP Seq Num LSP Checksum LSP Holdtime ATT/P/OL xrvr-1.00-00 * 0x0000039b 0xfc27 1079 0/0/0 Area Address: 49.0001 NLPID: 0xcc NLPID: 0x8e MT: Standard (IPv4 Unicast) MT: IPv6 Unicast 0/0/0 Hostname: xrvr-1 IP Address: 1.1.1.1 IPv6 Address: 2001::101:101 Router Cap: 1.1.1.1, D:0, S:0 Segment Routing: I:1 V:1, SRGB Base: 16000 Range: 8000 Metric: 10 IS-Extended xrvr-2.00 Interface IP Address: 99.1.2.1 Neighbor IP Address: 99.1.2.2 ADJ-SID: F:0 B:0 V:1 L:1 S:0 weight:0 Adjacency-sid:24000 Metric: 10 IP-Extended 99.1.2.0/24 Metric: 10 MT (IPv6 Unicast) IS-Extended xrvr-2.00 ADJ-SID: F:1 B:0 V:1 L:1 S:0 weight:0 Adjacency-sid:24003 Metric: 10 MT (IPv6 Unicast) IPv6 2001::9901:200/120
Adjacency segments OSPF 实例 1 cost 10 2 interface GigabitEthernet0/0/0/0 ipv4 address 99.1.2.1 255.255.255.0 router ospf 1 segment-routing mpls segment-routing forwarding mpls area 0 interface GigabitEthernet0/0/0/0 network point-to-point RP/0/0/CPU0:xrvr-1#show ospf neighbor detail Neighbors for OSPF 1 Neighbor 1.1.1.2, interface address 99.1.2.2 In the area 0 via interface GigabitEthernet0/0/0/0 Neighbor priority is 1, State is FULL, 6 state changes DR is 0.0.0.0 BDR is 0.0.0.0 Options is 0x52 LLS Options is 0x1 (LR) Dead timer due in 00:00:36 Neighbor is up for 00:00:31 Number of DBD retrans during last exchange 0 Index 1/1, retransmission queue length 0, number of retransmission 1 First 0(0)/0(0) Next 0(0)/0(0) Last retransmission scan length is 1, maximum is 1 Last retransmission scan time is 0 msec, maximum is 0 msec LS Ack list: NSR-sync pending 0, high water mark 0 Adjacency SID Label: 24006
Adjacency segments OSPF 实例 1 cost 10 2 interface GigabitEthernet0/0/0/0 ipv4 address 99.1.2.1 255.255.255.0 router ospf 1 segment-routing mpls segment-routing forwarding mpls area 0 interface GigabitEthernet0/0/0/0 network point-to-point RP/0/0/CPU0:xrvr-1#show ospf database opaque-area 8.0.0.1 self-originate OSPF Router with ID (1.1.1.1) (Process ID 1) Type-10 Opaque Link Area Link States (Area 0) Opaque Type: 8 Opaque ID: 1 Advertising Router: 1.1.1.1 LS Seq Number: 80000029 Checksum: 0x9147 Length: 48 Extended Link TLV: Length: 24 Link-type : 1 Link ID : 1.1.1.2 Link Data : 99.1.2.1 Adj sub-tlv: Length: 7 Flags : 0x60 MTID : 0 Weight : 0 Label : 24006
LAN Adjacency-SID R1 SID to R2 SID to R3 pseudonode R2 R3 LAN 上所有节点仅通告它们到虚拟节点的邻接 虚拟节点代表局域网络 为了 SR 引导流量到 LAN 中的每个实际节点, 需要有到 LAN 上每个其它的节点的 Adj-SID 这些 LAN-Adj-SIDs 与到虚拟节点的邻接有关 例如, 节点 R1 将分配并通告一个到节点 R2 的 LAN Adj-SID, 以及一个到节点 R3 的 LAN Adj-SID
1.1.1.2 SID index 1 1.1.1.1 1.1.1.4 OSPF LAN Adjacency-SID 到 LAN 节点的邻接 RP/0/0/CPU0:xrvr-1#show ospf neighbor detail i "interface address State SID Neighbor 1.1.1.4, interface address 66.0.0.4 Neighbor priority is 1, State is FULL, 6 state changes 到 BDR 节点的邻接 Adjacency SID Label: 24002 Neighbor 1.1.1.5, interface address 66.0.0.5 Neighbor priority is 1, State is 2WAY, 2 state changes 到非 (B)DR 节点邻接 Adjacency SID Label: 24009 Neighbor 1.1.1.3, interface address 66.0.0.3 Neighbor priority is 1, State is FULL, 6 state changes 到 DR 节点的邻接 Adjacency SID Label: 24000 1.1.1.5 1.1.1.3 DR OSPF 向处于 2WAY 或更高级状态的每个邻接分配 Adjacency-SID 提示 : 在广播或 NMBA 网络中, 到 DR 和 BDR 的邻接要达到 FULL 状态, 到网络的其它节点 (DR-OTHER) 的邻接要达到 2WAY 状态才分配 Adj-SID 在广播或 NMBA 网络中, 节点采用 Adj-SID sub-tlv 通告 Adj-SID, 用于到 DR 的邻接 ; 以及采用 LAN Adj-SID 通告 Adj-SIDs, 用于到网络的其它邻居 ( 如 BDR, DR-OTHER) 的邻接
1.1.1.2 SID index 1 1.1.1.1 1.1.1.4 OSPF LAN Adj-SID advertisement RP/0/0/CPU0:xrvr-1#show ospf database opaque-area 8.0.0.7 self-originate Opaque Type: 8 Extended Link TLV: Length: 40 Link-type : 2 Link ID : 66.0.0.3 Link Data : 66.0.0.1 LAN Adj sub-tlv: Length: 11 Flags : 0x60 MTID : 0 Weight : 0 Neighbor ID: 1.1.1.4 Label : 24002 LAN Adj sub-tlv: Length: 11 Flags : 0x60 MTID : 0 Weight : 0 Neighbor ID: 1.1.1.5 Label : 24009 Adj sub-tlv: Length: 7 Flags : 0x60 MTID : 0 Weight : 0 Label : 24000 Opaque type 8 ( 扩展的链路 ) Adjacency: 到 transit 网络的 link 1.1.1.5 1.1.1.3 DR LAN Adjacency-SID for neighbor 1.1.1.4: 标签 24002 LAN Adjacency-SID for neighbor 1.1.1.5: 标签 24009 Adjacency-SID to Designated Router: 标签 24000
1.1.1.2 SID index 1 1.1.1.1 IS-IS LAN Adj-SID 通告 RP/0/0/CPU0:xrvr-1#show isis database verbose xrvr-1 Metric: 10 IS-Extended xrvr-6.01 Interface IP Address: 99.1.6.1 Neighbor IP Address: 99.1.6.6 LAN-ADJ-SID: F:0 B:0 V:1 L:1 S:0 weight:0 Adjacency-sid:24009 System ID:xrvr-6 LAN-ADJ-SID: F:0 B:0 V:1 L:1 S:0 weight:0 Adjacency-sid:24007 System ID:xrvr-4 1.1.1.4 1.1.1.6 DIS IS-IS 把 LAN Adj-SID sub-tlvs 附加到针对虚拟节点 (DIS) 的邻接 TLV 中 LAN 上的每个邻居都有一个 LAN Adj-SID sub-tlv
1.1.1.2 SID index 1 1.1.1.1 1.1.1.4 LAN Adjacency-SID 标签 1.1.1.5 1.1.1.3 DR RP/0/0/CPU0:xrvr-1#show mpls forwarding i "L -- 24002 24009 24000" Local Outgoing Prefix Outgoing Next Hop Bytes Label Label or ID Interface Switched ------ ----------- ------------------ ------------ --------------- ------------ 24000 Pop SR Adj (idx 0) Gi0/0/0/3 66.0.0.3 0 24002 Pop SR Adj (idx 0) Gi0/0/0/3 66.0.0.4 0 24009 Pop SR Adj (idx 0) Gi0/0/0/3 66.0.0.5 0 相同的出接口 不同的下一跳
OPSF multi-area IS-IS multi-level OPSF 多区域 IS-IS 多层级
术语 advertise : 通告 当节点通告一个前缀时, 它把前缀包括在其产生的链路状态通告 (LSA) 中, 发送给它的邻居 originate : 发起 或 产生 当节点产生前缀时, 它通告一个本地的前缀, 即此节点所 拥有的 的一个前缀 propagate (or re-advertise ): 传播 ( 或 重新公告 ) 当节点传播前缀时, 它在一个区域或层级中公告从其它区域或层级收到的前缀, 换言之, 其它区域或层级生产的前缀 > 在此讲义中, 进行 传播 的节点是一个 ABR 或 L1L2 路由器 传播的前缀可以是本地的或非本地的
多区域 多层级 启用的 SR 不会改变 IGP 多区域 多层级工作方式 Prefix-SID 在区域间传播 附着在与传播的前缀上 跨区域在传播时, 一些 prefix-sid flags 会被修改 Adjacency-SID 在区域间不传播
Prefix-SID 的传播 flags 当区域边界路由器 (ABR) 或 L1L2 路由器传播带有 Prefix-SID 的非本地前缀时 设置 prefix-sid 的 PHP-off flag** 清除 SID 的 Explicit-null flag IS-IS: 设置 prefix-sid 的 Re-advertisement flag 当 ABR 或 L1L2 路由器传播带有 prefix-sid 的本地前缀时 PHP-off flag** 行为按照 Prefix-SID 的本地配置 ( 默认 :PHP on) Explicit-null flag 行为按照 Prefix-SID 的本地配置 ( 默认 :no Exp-null) IS-IS: 清除 prefix-sid 的 Re-advertisement flag * propagated local prefix : 传播到另一区域 / 层级的本地前缀 ** PHP-off flag 在 IS-IS draft 中被称作 P-flag, 在 OSPFdraft 中, 被称作 NP-flag
多区域 OSPF 实例 R2 传播远程前缀 ( 非本地前缀, 如 R1 R3 的 loopback) 和本地前缀 ( 如 area0 或 area1 中的 R2 的 loopback) 所有 prefix-sid 配置为 PHP( 默认 ) area0 R1 R2 R3 ABR area1 R1: 1.1.1.1/32; SID: 16001 (area0) R2: 1.1.1.2/32; SID: 16002 (area0) 2.2.2.2/32; SID: 17002 (area1) R3: 1.1.1.3/32; SID: 16003 (area1) Flags in Area 0 Flags in Area 1 1.1.1.1/32; SID 16001 NP=0; E=0 NP=1; E=0 1.1.1.2/32; SID 16002 NP=0; E=0 NP=0; E=0 2.2.2.2/32; SID 17002 NP=0; E=0 NP=0; E=0 1.1.1.3/32; SID 16003 NP=1; E=0 NP=0; E=0 Propagated 传播的本地前缀 local prefixes
多区域 OSPF 实例 Flags in Area 0 Flags in Area 1 1.1.1.1/32; SID 16001 NP=0; E=0 NP=1; E=0 1.1.1.2/32; SID 16002 NP=0; E=0 NP=0; E=0 2.2.2.2/32; SID 17002 NP=0; E=0 NP=0; E=0 1.1.1.3/32; SID 16003 NP=1; E=0 NP=0; E=0 Propagated 传播的本地前缀 local prefixes area0 R1 R2 R3 ABR area1 R1: 1.1.1.1/32; SID: 16001 (area0) R2: 1.1.1.2/32; SID: 16002 (area0) 2.2.2.2/32; SID: 17002 (area1) R3: 1.1.1.3/32; SID: 16003 (area1) 16003 1.1.1.3 16003 1.1.1.3 1.1.1.3 17002 2.2.2.2 2.2.2.2
IS-IS Segment Routing Advertisements IS-IS 段路由通告
1.1.1.2 SID index 1 1.1.1.1 IS-IS 配置 -- 实例 router isis 1 address-family ipv4 unicast metric-style wide segment-routing mpls address-family ipv6 unicast metric-style wide segment-routing mpls interface Loopback0 passive address-family ipv4 unicast prefix-sid absolute 16001 address-family ipv6 unicast prefix-sid absolute 20001 <continue...> 宽度量值 在此 IS-IS 实例中, 启用所有 IPv4 接口的 SR IPv4 控制平面和 SR MPLS 数据平面 宽度量值 在此 IS-IS 实例中, 启用所有 IPv6 接口的 SR IPv6 控制平面和 SR MPLS 数据平面 用于 Loopback0 的 Ipv4 Prefix-SID 值 用于 Loopback0 的 Ipv6Prefix-SID 值 1.1.1.4 1.1.1.6 DIS
1.1.1.2 SID index 1 1.1.1.1 IS-IS 配置 -- 实例 <...continue> interface TenGigE0/0/2/0 point-to-point address-family ipv4 unicast address-family ipv6 unicast interface TenGigE0/0/3/0 address-family ipv4 unicast address-family ipv6 unicast 将为所有邻接自动分配 Adjacency-SID 1.1.1.4 1.1.1.6 DIS
1.1.1.2 SID index 1 1.1.1.1 验证 IS-IS 数据库 RP/0/0/CPU0:xrvr-1#show isis database verbose xrvr-1 IS-IS 1 (Level-2) Link State Database LSPID LSP Seq Num LSP Checksum LSP Holdtime ATT/P/OL xrvr-1.00-00 * 0x00000073 0x4eba 1161 0/0/0 Area Address: 49.0001 NLPID: 0xcc NLPID: 0x8e MT: Standard (IPv4 Unicast) MT: IPv6 Unicast 0/0/0 Hostname: xrvr-1 IP Address: 1.1.1.1 S:0, 不传播 TLV 到其它 level IPv6 Address: 2001::1:1:1:1 D:0, TLV 进行 L2 L1 传播 Router Cap: 1.1.1.1, D:0, S:0 Segment Routing: I:1 V:1, SRGB Base: 16000 Range: 8000 2 个拓扑 : IPv4 和 IPv6 1.1.1.4 1.1.1.6 DIS 路由器能力 TLV(router capability TLV)
1.1.1.2 SID index 1 1.1.1.1 验证 IS-IS 数据库 RP/0/0/CPU0:xrvr-1#show isis database verbose xrvr-1 IS-IS 1 (Level-2) Link State Database LSPID LSP Seq Num LSP Checksum LSP Holdtime ATT/P/OL xrvr-1.00-00 * 0x00000073 0x4eba 1161 0/0/0 Area Address: 49.0001 NLPID: 0xcc NLPID: 0x8e MT: Standard (IPv4 Unicast) MT: IPv6 Unicast 0/0/0 Hostname: xrvr-1 IP Address: 1.1.1.1 IPv6 Address: 2001::1:1:1:1 Router Cap: 1.1.1.1, D:0, S:0 Segment Routing: I:1 V:1, SRGB Base: 16000 Range: 8000 2 个拓扑 : IPv4 和 IPv6 用于 IPv4 和 IPv6 的单一 SRGB I:1 IPv4; V:1 IPv6 标签范围 16,000 23,999 1.1.1.4 1.1.1.6 DIS
1.1.1.2 SID index 1 1.1.1.1 验证 IS-IS 数据库 Metric: 0 IP-Extended 1.1.1.1/32 Prefix-SID Index: 1, Algorithm:0, R:0 N:1 P:0 E:0 V:0 L:0 Metric: 10 IP-Extended 99.1.2.0/24 Metric: 10 IP-Extended 99.1.6.0/24 Metric: 0 MT (IPv6 Unicast) IPv6 2001::1:1:1:1/128 Prefix-SID Index: 4001, Algorithm:0, R:0 N:1 P:0 E:0 V:0 L:0 Metric: 10 MT (IPv6 Unicast) IPv6 2001::99:1:2:0/120 Metric: 10 MT (IPv6 Unicast) IPv6 2001::99:1:6:0/120 1.1.1.4 1.1.1.6 DIS IPv4 IP 可达性 TLV(IPv4 IP Reachability TLV) IPv6 IP 可达性 TLV(IPv6 IP Reachability TLV)
1.1.1.2 SID index 1 1.1.1.1 验证 IS-IS 数据库 Metric: 0 IP-Extended 1.1.1.1/32 Prefix-SID Index: 1, Algorithm:0, R:0 N:1 P:0 E:0 V:0 L:0 Metric: 10 IP-Extended 99.1.2.0/24 Metric: 10 IP-Extended 99.1.6.0/24 Metric: 0 MT (IPv6 Unicast) IPv6 2001::1:1:1:1/128 Prefix-SID Index: 4001, Algorithm:0, R:0 N:1 P:0 E:0 V:0 L:0 Metric: 10 MT (IPv6 Unicast) IPv6 2001::99:1:2:0/120 Metric: 10 MT (IPv6 Unicast) IPv6 2001::99:1:6:0/120 IPv4 prefix-sid R:0 - 不传播 N:1 - node SID P:0 - PHP 开 E:0 - 没有 explicit-null 标签 IPv6 prefix-sid R:0 - 不传播 N:1 - node SID P:0 - PHP 开 E:0 没有 explicit-null 标签 1.1.1.4 1.1.1.6 DIS Prefix-SID Flags( 详见 Prefix Segment 部分 ): R: Re-advertisement, 如果 SID 关联的非本地前缀传送到另一个 level 或被重分发, 则置位 ; 在 IOS XR 中默认设置 :0 ( 即默认为未被重分发 ) N: Node-SID, 如果前缀 SID 是节点 SID 则置位, 表示一个节点 ; 在 IOS XR 中默认设置 :1( 即默认为 Node-SID) P: no-php, 如果要倒数第二跳在转发之前不弹出 Prefix-SID, 则置位 ; 在 IOS XR 中默认设置为 :0( 即默认要求倒数第二跳弹出 ) E: Explicit-Null, 如果倒数第二跳必须用将 Prefix-SID 交换为 Explicit-Null 标签, 则置位 ; 在 IOS XR 默设置为 :0 ( 即默认要求倒数第二跳弹出 ) V: Value, 如果 Prefix-SID 携带的是一个值 ( 而不是一个索引 ) 则置位 -- IOS XR: 总是不置位 ( 即默认为索引 ) L: Local, 如果 Prefix-SID 是本地 SID, 只具有本地意义则置位 -- IOS XR: 总是不设置 ( 即默认为 global SID)
1.1.1.2 SID index 1 1.1.1.1 验证 IS-IS 数据库 Metric: 10 IS-Extended xrvr-2.00 Interface IP Address: 99.1.2.1 Neighbor IP Address: 99.1.2.2 IPv4 IS 可达性 TLV ADJ-SID: F:0 B:0 V:1 L:1 S:0 weight:0 Adjacency-sid:24002 Metric: 10 IS-Extended xrvr-6.01 Interface IP Address: 99.1.6.1 Neighbor IP Address: 99.1.6.6 LAN-ADJ-SID: F:0 B:0 V:1 L:1 S:0 weight:0 Adjacency-sid:24009 System ID:xrvr-6 LAN-ADJ-SID: F:0 B:0 V:1 L:1 S:0 weight:0 Adjacency-sid:24007 System ID:xrvr-4 Metric: 10 MT (IPv6 Unicast) IS-Extended xrvr-2.00 ADJ-SID: F:1 B:0 V:1 L:1 S:0 weight:0 Adjacency-sid:24003 IPv6 IS 可达性 TLV Metric: 10 MT (IPv6 Unicast) IS-Extended xrvr-6.01 LAN-ADJ-SID: F:1 B:0 V:1 L:1 S:0 weight:0 Adjacency-sid:24001 System ID:xrvr-6 LAN-ADJ-SID: F:1 B:0 V:1 L:1 S:0 weight:0 Adjacency-sid:24011 System ID:xrvr-4 1.1.1.4 1.1.1.6 DIS
1.1.1.2 SID index 1 1.1.1.1 验证 IS-IS 数据库 Metric: 10 IS-Extended xrvr-2.00 Interface IP Address: 99.1.2.1 Neighbor IP Address: 99.1.2.2 ADJ-SID: F:0 B:0 V:1 L:1 S:0 weight:0 Adjacency-sid:24002 Metric: 10 IS-Extended xrvr-6.01 Interface IP Address: 99.1.6.1 Neighbor IP Address: 99.1.6.6 LAN-ADJ-SID: F:0 B:0 V:1 L:1 S:0 weight:0 Adjacency-sid:24009 System ID:xrvr-6 LAN-ADJ-SID: F:0 B:0 V:1 L:1 S:0 weight:0 Adjacency-sid:24007 System ID:xrvr-4 Metric: 10 MT (IPv6 Unicast) IS-Extended xrvr-2.00 ADJ-SID: F:1 B:0 V:1 L:1 S:0 weight:0 Adjacency-sid:24003 Metric: 10 MT (IPv6 Unicast) IS-Extended xrvr-6.01 LAN-ADJ-SID: F:1 B:0 V:1 L:1 S:0 weight:0 Adjacency-sid:24001 System ID:xrvr-6 LAN-ADJ-SID: F:1 B:0 V:1 L:1 S:0 weight:0 Adjacency-sid:24011 System ID:xrvr-4 IPv4 adjacency SID F:0, 地址族 IPv4 B:0, 不受保护的 V:1, 标签值 L:1, 本地段 S:0, 不是一组邻接 IPv6 adjacency SID F:1, 地址族 IPv6 B:0, 不受保护的 V:1, 标签值 L:1, 本地段 S:0, 不是一组邻接 1.1.1.4 1.1.1.6 DIS Adjacency-SID Flags ( 详见 Adjacency Segment 部分讲义 ): F: Address-Family, IPv4: 不置位, IPv6: 置位 B: Backup, 如果 Adj-SID 是受保护的邻接则置位 ( 如, 使用 TI-LFA) V: Value, 如果 Adj-SID 是标签值 ( 不是索引 ) 则置位 IOS XR: 总是设置 L: Local, 如果 Adj-SID 是本地标签则置位 IOS XR: 总是设置 S: Set, 如果 Adj-SID 指的是一组邻接则置位 IOS XR: 总是未设置
1.1.1.2 SID index 1 1.1.1.1 验证 IS-IS 数据库 1.1.1.4 1.1.1.6 DIS Metric: 10 IS-Extended xrvr-2.00 Interface IP Address: 99.1.2.1 Neighbor IP Address: 99.1.2.2 ADJ-SID: F:0 B:0 V:1 L:1 S:0 weight:0 Adjacency-sid:24002 Metric: 10 IS-Extended xrvr-6.01 Interface IP Address: 99.1.6.1 到虚拟节点的 IPv4 IS reachability TLV Neighbor IP Address: 99.1.6.6 LAN-ADJ-SID: F:0 B:0 V:1 L:1 S:0 weight:0 Adjacency-sid:24009 System ID:xrvr-6 LAN-ADJ-SID: F:0 B:0 V:1 L:1 S:0 weight:0 Adjacency-sid:24007 System ID:xrvr-4 Metric: 10 MT (IPv6 Unicast) IS-Extended xrvr-2.00 ADJ-SID: F:1 B:0 V:1 L:1 S:0 weight:0 Adjacency-sid:24003 Metric: 10 MT (IPv6 Unicast) IS-Extended xrvr-6.01 LAN-ADJ-SID: F:1 B:0 V:1 L:1 S:0 weight:0 Adjacency-sid:24001 System ID:xrvr-6 LAN-ADJ-SID: F:1 B:0 V:1 L:1 S:0 weight:0 Adjacency-sid:24011 System ID:xrvr-4 到虚拟节点的 IPv6 IS reachability TLV
1.1.1.2 SID index 1 1.1.1.1 验证 IS-IS 数据库 Metric: 10 IS-Extended xrvr-2.00 Interface IP Address: 99.1.2.1 Neighbor IP Address: 99.1.2.2 ADJ-SID: F:0 B:0 V:1 L:1 S:0 weight:0 Adjacency-sid:24002 Metric: 10 IS-Extended xrvr-6.01 Interface IP Address: 99.1.6.1 Neighbor IP Address: 99.1.6.6 LAN-ADJ-SID: F:0 B:0 V:1 L:1 S:0 weight:0 Adjacency-sid:24009 System ID:xrvr-6 LAN-ADJ-SID: F:0 B:0 V:1 L:1 S:0 weight:0 Adjacency-sid:24007 System ID:xrvr-4 Metric: 10 MT (IPv6 Unicast) IS-Extended xrvr-2.00 ADJ-SID: F:1 B:0 V:1 L:1 S:0 weight:0 Adjacency-sid:24003 Metric: 10 MT (IPv6 Unicast) IS-Extended xrvr-6.01 LAN-ADJ-SID: F:1 B:0 V:1 L:1 S:0 weight:0 Adjacency-sid:24001 System ID:xrvr-6 LAN-ADJ-SID: F:1 B:0 V:1 L:1 S:0 weight:0 Adjacency-sid:24011 System ID:xrvr-4 IPv4 LAN adjacency SIDs F:0, 地址族 IPv4 B:0, 不受保护的 V:1, 标签值 L:1, 本地段 S:0, 不是一组邻接 1.1.1.4 1.1.1.6 DIS (LAN)Adjacency-SID Flags ( 详见 Adjacency Segment 部分讲义 ): F: Address-Family, IPv4: 不置位, IPv6: 置位 B: Backup, 如果 Adj-SID 是受保护的邻接则置位 ( 如, 使用 TI-LFA) V: Value, 如果 Adj-SID 是标签值 ( 不是索引 ) 则置位 IOS XR: 总是设置 L: Local, 如果 Adj-SID 是本地标签则置位 IOS XR: 总是设置 S: Set, 如果 Adj-SID 指的是一组邻接则置位 IOS XR: 总是未设置 IPv6 LAN adjacency SIDs F:1, 地址族 IPv6 B:0, 不受保护的 V:1, 标签值 L:1, 本地段 S:0, 不是一组邻接
OSPF Segment Routing Advertisements OSPF 段路由发布
1.1.1.2 SID index 1 1.1.1.1 1.1.1.4 OSPF 配置实例 router ospf 1 router-id 1.1.1.1 segment-routing mpls segment-routing forwarding mpls area 0 interface Loopback0 passive enable prefix-sid absolute 16001 interface GigabitEthernet0/0/0/0 network point-to-point interface GigabitEthernet0/0/0/1 所有区域启用 SR 所有接口启用 SR 转发 用于 loopback0 的 Prefix-SID 将自动为启用了 SR 转发功能的邻接分配 Adj-SID 1.1.1.5 1.1.1.3 DR
1.1.1.2 SID index 1 1.1.1.1 1.1.1.4 验证 OSPF 数据库 RP/0/0/CPU0:xrvr-1#show ospf database self-originate originate 1.1.1.5 1.1.1.3 DR OSPF Router with ID (1.1.1.1) (Process ID 1) Router Link States (Area 0) Link ID ADV Router Age Seq# Checksum Link count 1.1.1.1 1.1.1.1 13 0x8000000b 0x00b7ba 4 Type-10 Opaque Link Area Link States (Area 0) 区域范围的 (Type10) 不透明链路状态通告 (Opaque LSA) Link ID ADV Router Age Seq# Checksum Opaque ID 4.0.0.0 1.1.1.1 1085 0x80000003 0x000a66 0路由器信息不透明链路状态通告 (Router 7.0.0.1 1.1.1.1 1085 0x80000003 0x00e1b2 1 Info. Opaque LSA) 8.0.0.4 1.1.1.1 823 0x80000003 0x0042c0 4 8.0.0.7 1.1.1.1 13 0x80000009 0x0030f4 7 SR 的不透明链路状态通告
1.1.1.2 SID index 1 1.1.1.1 1.1.1.4 验证 OSPF 数据库 RP/0/0/CPU0:xrvr-1#show ospf database opaque-area 4.0.0.0 self-originate Opaque Type: 4 Router Information TLV: Length: 4 Capabilities: Graceful Restart Helper Capable Stub Router Capable All capability bits: 0x60000000 Segment Routing Algorithm TLV: Length: 1 Algorithm: 0 1.1.1.5 1.1.1.3 DR Opaque type 4 ( 路由器信息 -Router Info) SR 算法 TLV(SR algorithm TLV) 显示使用的算法 Segment Routing Range TLV: Length: 12 Range Size: 8000 SID sub-tlv: Length 3 Label: 16000 SRGB TLV
1.1.1.2 SID index 1 1.1.1.1 1.1.1.4 验证 OSPF 数据库 RP/0/0/CPU0:xrvr-1#show ospf database opaque-area 7.0.0.1 self-originate Opaque Type: 7 1.1.1.5 1.1.1.3 DR Opaque type 7 ( 扩展前缀 -Extended Prefix) Extended Prefix TLV: Length: 20 Route-type: 1 AF : 0 N:0, Node-SID Flags : 0x40 Prefix : 1.1.1.1/32 SID sub-tlv: Length: 8 Flags : 0x0 MTID : 0 Algo : 0 SID Index : 1 前缀 : 区域内 1.1.1.1/32 Prefix-SID: index 1 Extended Prefix TLV flags ( 详见 Prefix Segment 部分讲义 ): A: Attach, 由区域边界路由器 (ABR) 为直连在自己上面, 但是从另外一个区域发布的区域间前缀设置 IOS XR 默认设置 :0 N: Node, 如果前缀代表的是节点 ( 即 Prefix-SID 为 Node-SID) 默认 IOS XR:1( 即默认是 node-sid) Prefix-SID sub-tlv flags ( 详见 Prefix Segment 讲义 ): Bit1: NP: no-php, 如果要倒数第二跳在转发之前不弹出 Prefix-SID, 则置位 ; 在 IOS XR 中默认设置为 :0( 即默认要求倒数第二跳弹出 ) Bit2: M: Mapping Server, 如果 SID 是映射服务器通告的则置位 IOS XR 中默认设置 : 0( 即默认不是由 mapping server 通告 ) Bit3: E : Explicit-Null, 如果倒数第二跳必须用将 Prefix-SID 交换为 Explicit-Null 标签, 则置位 ; 在 IOS XR 默设置为 :0 ( 即默认要求倒数第二跳弹出 ) Bit4: V: Value, 如果 Prefix-SID 携带的是一个值 ( 而不是一个索引 ) 则置位 -- IOS XR: 总是不置位 ( 即默认是索引 ) Bit5:L: Local, 如果 Prefix-SID 是本地 SID, 只具有本地意义则置位 -- IOS XR: 总是不设置 ( 即默认是 global SID)
1.1.1.2 SID index 1 1.1.1.1 1.1.1.4 验证 OSPF 数据库 RP/0/0/CPU0:xrvr-1#show ospf database opaque-area 8.0.0.4 self-originate Opaque Type: 8 1.1.1.5 1.1.1.3 DR Opaque type 8 ( 扩展链路 :Extended Link) Extended Link TLV: Length: 24 Link-type : 1 Link ID : 1.1.1.2 Link Data : 99.1.2.1 Adj sub-tlv: Length: 7 Flags : 0x60 MTID : 0 Weight : 0 Label : 24001 V:1, 标签值 L:1, 本地段 邻接 : p2p to 1.1.1.2 Adj-SID: 24001 (LAN) Adjacency-SID sub-tlv flags ( 详见 Adjacency Segment 部分讲义 ): B: Backup, 如果 Adj-SID 是受保护的邻接则置位 ( 如, 使用 TI-LFA) V: Value, 如果 Adj-SID 是标签值 ( 不是索引 ) 则置位 IOS XR: 总是设置 L: Local, 如果 Adj-SID 是本地标签则置位 IOS XR: 总是设置 S: Set, 如果 Adj-SID 指的是一组邻接则置位 IOS XR: 总是未设置
1.1.1.2 SID index 1 1.1.1.1 1.1.1.4 验证 OSPF 数据库 RP/0/0/CPU0:xrvr-1#show ospf database opaque-area 8.0.0.7 self-originate Opaque Type: 8 Extended Link TLV: Length: 40 Link-type : 2 Link ID : 66.0.0.3 Link Data : 66.0.0.1 LAN Adj sub-tlv: Length: 11 Flags : 0x60 MTID : 0 Weight : 0 Neighbor ID: 1.1.1.4 Label : 24002 LAN Adj sub-tlv: Length: 11 Flags : 0x60 MTID : 0 Weight : 0 Neighbor ID: 1.1.1.5 Label : 24009 Adj sub-tlv: Length: 7 Flags : 0x60 MTID : 0 Weight : 0 Label : 24000 Opaque type 8 ( 扩展链路 :Extended Link) 邻接 : 到 transit 网络的 link Adj-SID for neighbor 1.1.1.4: 标签 24002 Adj-SID for neighbor 1.1.1.5: 标签 24009 Adj-SID 到指定路由器 DR 标签 24000 1.1.1.5 1.1.1.3 DR
请访问 : cisco.com segment-routing.net
鸣谢 : Ahmed Bashandy Robert Hanzl Steven Luong Stefano Previdi Peter Psenak
Thank you.