# 0. 为什么需要 SR

1、简化底层控制平面,以 MPLS VPN 举例,需要部署 IGP、BGP、MPLS LDP 协议

2、网络发展诉求,SDN 化

1、简化控制平面,不存在 LDP 与 IGP 同步问题

2、IP 骨干网可能有流量工程需求,需要部署 MPLS-TE,通过 RSVP 在端到端设备之间维护大量状态信息

# 1.IGP 与 LDP 同步

正常情况通过主 LSP 转发,如果主链路故障通过备 LSP 转发

ospf timer lsp-sync hold-max-cost ldp 不同步时发布最大开销的 LSA

SR 将 OSPF,ISIS,BGP 与标签结合,不存在同步问题,路由计算和标签分发都通过 IGP 或 BGP 实现,也称为 SR-MPLS BE(best effort),在控制平面移除了 LDP

SR-MPLS TE(流量工程)对标 MPLS TE,控制平面移除了 RSVP 协议

# 2.SR - 分段路由 - 基本概念

SR 域(Segment Routing Domain):SR 节点的集合。

SID:即 Segment ID,用来标识唯一的段。在转发层面,可以映射为 MPLS 标签。

SRGB(Segment Routing Global Block):用户指定的为 Segment Routing MPLS 预留的全局标签集合。

SRLB(Segment Routing Local Block):用户指定的为 Segment Routing MPLS 预留的本地标签集合。这些标签在本地配置,仅在本地有效,但是会通过 IGP 对外发布,所以是全局可见。SRLB 当前主要用于配置 Binding SID。

segement : 节点对数据包要执行的指令

Segment ID :IPV4 中为标签,IPV6 中为 ipv6 地址。用于标识 Segment。网络中的每个节点,链路都可以称为 Segment id

源路由 :源节点选择一条路径并压入有序的 Segment List,其他节点按照 segmeng list 转发

通过对 IGP,BGP 扩展之后,可以实现源路由转发

prefix segment : 用于标识网络中的某个目的地址前缀,全局有效

SRGB :用户指定的为 Segment Routing MPLS 预留的全局标签集合

Adjacency Segment : 用于标识网络中的某个邻接,本地有效

# 3.segment 分类

image-20230206211033379

Node SID + adjacent SID

# 4.ospf for SR-MPLS

配置:

1. 配置接口地址

2. 使能 MPLS

3. 全局使能 segment-routing

4. 配置 IGP/BGP 路由协议

5. 配置 IGP/BGP 对 SR 支持

1
2
3
4
5
6
7
8
9
10
11
12
13
undo DCN  //使用DCN功能实现网管通过网关网元对网元的远程管理
segment-routing

ospf 1 router 1.1.1.1
network
opaque enable //OSPF引入type 10 opeart LSA支持SR
segment mpls
segment global-block 16000 23999(SRGB)

int l 0
ospf prefix-sid index 10 (node sid)

display tunel all

扩展:通过 type 10 LSA

type 10 LSA 使用 TLV 架构,携带三种 segment ID

其中 type 10 中又包含了 type-4,7,8 满足对于 SR 相关信息的携带

image-20230206220417399

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
type:opq-Area
LS-id:4.0.0.0 //opaque类型,本地SRGB范围
Adv rtr: 1.1.1.1 //产生者router-id
opaque type:4
opaque id:0
Router-Information LSA TLV information:
SR-Algorithm TLV //tlv-type8
Algorithm:spf //对外通告自己使用算法
SID/Label Range TLV: //SID或MPLS标签范围,type 9 tlv
Range Size: 8000 //范围内LSA数量
SID/Label sub-tlv: //tlv type 1
Label:16000 //起始范围
type:opq-Area
LS-id:7.0.0.0 //opaque类型
Adv rtr: 1.1.1.1 //产生者router-id
opaque type:7
opaque id:0
OSPFv2 Extended Prefix opaque LSA TLV information: //携带自身环回前缀信息,以及index值,即前缀SID(节点SID)
OSPFV2 Extended Prefix TLV: //tlv type1
Route Type: Intra-Area
AF: IPV4-unicast
flags:0x40
prefix:1.1.1.1/32
prefix SID sub-tlv: //tlv type2
flags: 0x00
MT ID :0
Algorithm: SPF
index:10 //接口配置的偏移值或绝对值
type:opq-Area
LS-id:8.0.0.0 //opaque类型
Adv rtr: 1.1.1.1 //产生者router-id
opaque type:8
opaque id:0
OSPFV2 Extended Link opaque LSA TLV information: //携带邻接信息包括本地接口地址,链路类型,以及邻接SID标识这个邻居
OSPFV2 Extended Link TLV: //tlv type 1
Link Type: TransNet
link ID:10.1.12.1 //DR
link data: 10.1.12.1
LAN adj-sid sub-tlv: //tlv type 2
flags:0x60
MT ID:0
Weight:0
Neighor ID:2.2.2.2
Label:48020

image-20230206222830799

image-20230209160852576

# 5.MPLS BE 隧道建立

SR 转发模型,类似 MPLS 环境,一条 SR MPLS BE 隧道包含入节点、交换节点、出节点、也具备倒数第二跳弹出

节点不会再通告,基于去往目的前缀的下一跳 SRGB 初始值 + 该前缀的 prfix id index 值得到 out Lable

存在倒数第二跳弹出,实际 19040 会变为 3

img

1
2
3
tracert lsp segment ip 4.4.4.4 32 ver d
//看Segment Routing的标签转发表信息
display segment-routing prefix mpls forwarding

img

每台设备通过扩展的路由协议通告自己的 SRGB。

节点通过扩展的路由协议通告前缀 SID 索引 (Index) 后,各台设备分别根据 SRGB 计算入站及出站 SID。

1、建议每台设备配置一样的 SRGB

2、基于全局的 prefix SID 统一标签值,方便管理一些。此时每台设备 index 需要唯一

MPLS-BE 场景

1. 基于 prefix-segment

img

2. 基于 adjacency segment

segment-routing auto-adj-sid disable 命令关闭动态邻接标签

img

3. 基于 adjacency segment+prefix-segment

img

使用承载业务

img

1
2
3
4
5
6
tunnel policy to_pe4
tunnel select-seq se-lsp load 8

ip vpn site_a
ipv4
tnl-policy to_pe4

# 6.prefix SID sub tlv flag

特殊标签同样适用于 SR 场景

NP:No-PHP(Penultimate Hop Popping,倒数第二跳弹出)标志。如果置位,不启用倒数第二跳弹出特性,倒数第二跳在转发报文给 Egress 节点时,不能弹出 Egress 节点标签。

M:Mapping Server 标记。如果置位,表示 SID 是由一个 Mapping Server 发布。

E:显式空标签(Explicit-Null)标志。如果置位,则启用显式空标签特性,上游邻居在转发报文时,必须把标签替换为显式空标签。

1
2
mpls                         //egress 
label advertise explict- //通告显示空标签

V:Value 标志。如果置位,则 Prefix-SID 携带 Value,代替索引(Index)。缺省未置位。

L:Local 标志。如果置位,表示 Prefix-SID 携带的 Value/Index 具有本地意义。缺省未置位。

如果 NP 标志置位,然后:E 标志未置位,则任何 Prefix-SID 生成者的上游邻居必须保留对应的 Prefix-SID 标签在标签栈顶。这种方式可能用于路径粘连,比如 Prefix-SID 生成者可能使用该标签将报文转到其他的 MPLS LSP 中。E 标志置位,则任何 Prefix-SID 生成者的上游邻居必须将对应的 Prefix-SID 标签替换为显式空标签。此种方式下可以保留 MPLS EXP 标志位,如果 Prefix-SID 生成者就是报文的目的地址,则可以接收到原始 MPLS EXP。MPLS EXP 标志可以用于 QoS 服务。

# SR-MPLS BE 解决 BGP 路由黑洞问题

1
route recursive tunnel

其他参考 MPLS-LDP 场景

# 7.ISIS 对于实现 SR-MPLS 支持

配置

1
2
3
4
5
6
7
8
9
10
11
[ISIS]
network-entity
is-level
cost-style wide
segment-routing mpls
segment-routing global-block 16000 23999
[interface Loopback]
isis enable
isis prefix-sid index 10
[interface Ethe1/0/0]
isis enable

1、ospf 大部分 LSA 报文结构设计相对固定,无法扩展,引入其它 tlv 能力的 LSA 实现扩充

2、IS-Is 所有报文包括 LSP 天然支持扩充能力,有大量灵活的 tlv,有扩展需求,挂载 tlv 即可

img

image-20230209210945528

# 8.SR-BE 与 LDP 互通

1
2
3
4
5
6
7
8
segment-routing
mapping-server prefix-sid 20.1.1.1 32 999

ospf
segment mapping-server send

mpls
lsp-trigger segment-routing-interworking best-effort host

image-20230210145555435

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
[HUAWEI-mpls]dis cu 
!Software Version V800R011C00SPC607B607
!Last configuration was updated at 2023-02-10 14:50:51+00:00
#
sysname HUAWEI
#
set neid 18a90
#
vsm on-board-mode enable
#
snmp-agent trap type base-trap
#
icmp rate-limit disable
#
mpls lsr-id 8.8.8.8
#
mpls
lsp-trigger segment-routing-interworking best-effort host
#
mpls ldp
#
ipv4-family
#
aaa
#
authentication-scheme default0
#
authentication-scheme default1
#
authentication-scheme default
authentication-mode local radius
#
authorization-scheme default
#
accounting-scheme default0
#
accounting-scheme default1
#
domain default0
#
domain default1
#
domain default_admin
#
license
#
segment-routing
mapping-server prefix-sid-mapping 4.4.4.4 32 99
#
isis 1
is-level level-2
cost-style wide
network-entity 49.0001.0000.0000.0004.00
segment-routing mpls
segment-routing global-block 16000 23999
segment-routing mapping-server send
#
interface Ethernet1/0/0
undo shutdown
ip address 10.1.78.8 255.255.255.0
isis enable 1
undo dcn
undo dcn mode vlan
#
interface Ethernet1/0/1
undo shutdown
ip address 10.1.38.8 255.255.255.0
isis enable 1
mpls
mpls ldp
undo dcn
undo dcn mode vlan
#
interface Ethernet1/0/2
undo shutdown
undo dcn mode vlan
#
interface Ethernet1/0/3
undo shutdown
undo dcn mode vlan
#
interface Ethernet1/0/4
undo shutdown
undo dcn mode vlan
#
interface Ethernet1/0/5
undo shutdown
undo dcn mode vlan
#
interface Ethernet1/0/6
undo shutdown
undo dcn mode vlan
#
interface Ethernet1/0/7
undo shutdown
undo dcn mode vlan
#
interface Ethernet1/0/8
undo shutdown
undo dcn mode vlan
#
interface Ethernet1/0/9
undo shutdown
undo dcn mode vlan
#
interface GigabitEthernet0/0/0
undo shutdown
#
interface LoopBack0
ip address 8.8.8.8 255.255.255.255
isis enable 1
isis prefix-sid index 40
#
interface NULL0
#
undo dcn
#
lldp enable
#
ssh authorization-type default aaa
#
ssh server cipher aes256_gcm aes128_gcm aes256_ctr aes192_ctr aes128_ctr aes256_
cbc aes128_cbc 3des_cbc
#
ssh server dh-exchange min-len 1024
#
ssh client cipher aes256_gcm aes128_gcm aes256_ctr aes192_ctr aes128_ctr aes256_
cbc aes128_cbc 3des_cbc
#
user-interface con 0
#
user-interface aux 0
#
local-aaa-server
#
vm-manager
#
return

# 9. 粘连标签与标签栈

当标签栈深度超过转发器所支持的标签栈深度时,控制器需要为转发器分配多个标签栈,在合适的节点下发标签栈的同时分配一种特殊的标签,然后将这些标签栈关联起来,实现逐段转发。

img

# 10.MPLS-TE

MPLS TE 隧道所使用的 LSP 称为基于一定约束条件建立的 LSP (Constraint-based Routed Label Switched Path) ,简称为 CR-LSP。

约束条件主要包括带宽约束和路径约束两个方面,只有隧道所经过的链路满足约束条件才能成功地建立 CR-LSP,凭借约束条件可以更好地根据现有网络的情况规划业务。

CR_LSP 单向,一般是在头结点部署

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
isis
is-level level-2
cost wide
network-entity
traffic level-2

mpls lsr-id
mpls
mpls te
mpls revp-te

int ethe 1/0/0
mpls
mpls te
mpls rsvp-te

头结点 & 伪节点
mpls
mpls te cspf

int ethe 1/0/0
mpls te bandwidth max 100000
mpls te bandwidth bc0 100000

int t0/0/1
ip add unnumbered int l 0
tunnel mpls te
dest 4.4.4.4
mpls te tunnel-id 1
mpls te banswidthct0 60000

# 10.1CSPF 算法

根据以下信息来进行 CSPF 算法:

1. 带宽(链路的最大可预留带宽,BC 带宽,CT 带宽)不满足带宽需求的节点不会出现在最短路径中

2. 链路属性,可选(链路颜色,隧道颜色) 需要手工配置,用于选路。通过配置隧道颜色来约束选路。隧道接口、设备之间互联链路都需要配置隧道颜色,即亲和属性

3. 根据 1,2 步骤计算最短路径拓扑之后,出现了两条路径。比较 TE-cost 执行选路。

通过 CSPF 算法计算后,一旦出现等价路径,采用 CSPF 最高仲裁选择 — 条到尾节点路径

# 10.2 路径选择 - 松散 / 严格显式路径

松散显示路径:

松散方式可以指定路径上必须经过哪些节点,但是该节点和前一跳之间可以存在其他路由器。

严格显示路径:

所谓的严格显式路径,就是下一跳与前一跳直接相连。通过严格显式路径,可以最精确地控制 LSP 所经过的路径。

混合显示路径:

严格与松散结合

# 10.3 管理组、亲和属性

1
管理组(Administration Group)

也称链路颜色,用来描述链路的属性。由 32 个 Bit 组成,每一位都可以单独表示链路的一个属性,用于管理拥有这些特征的链路,在物理接口下配置。

1
亲和属性(Affinity Attributes)

是用来描述 TE 隧道所需链路的 32 位向量值,与管理组属性类似,在这里可以理解为隧道颜色,在隧道的首节点配置实施(隧道信息,不通过 IGP 发布)。

1
掩码(Mask)

由 32 个 Bit 组成,决定了设备需要检查的链路属性,只有隧道颜色和链路颜色匹配才能进行正常的数据转发。实际应用中,就是通过修改掩码来选择链路。

掩码为 0 的位,不限制链路管理组属性。

掩码为 1 的位,如果亲和属性为 0,链路管理组属性也必须为 0;如果亲和属性为 1,链路管理组属性至少 1 位是 1 即可。

在 Tunnel 进行路径选择时,首先需要满足带宽需求,再根据接口(链路)的管理组属性需匹配其亲和属性才有资格被选择。只有带宽匹配不能进行选择

亲合属性 10101 掩码 11011 管理组属性可能的值为 10001 10000 00001 10101 10100 00101

1
2
[R1-GigabitEthernet1/0/0]mpls te link administrative group 10001  //配置管理组
[R1-Tunnel1]mpls te affinity property 10101 mask 11011

由于 LSP 中携带亲和属性,因此亲和属性和管理组的匹配都在头结点进行

有多条隧道时,可以通过隧道优先级来设置优先选择隧道 mpls te priority ,在头结点隧道接口配置

验证: tracert lsp te tunnel 0/0/1

# 10.SR-MPLS-TE

SR-MPLS TE(Segment Routing-MPLS Traffic Engineering)是使用 SR 作为控制协议的一种新型的 TE 隧道技术。SR-MPLS TE 支持采用集中式架构,控制器收集全局网络拓扑信息和 TE 信息,集中算路,然后把算路结果下发给网络设备。

集中式 SR-MPLS TE:

1. 扩展 IS-IS/OSPF 携带 TE 信息,在域内泛洪 IGP 和 TE 信息,生成 TEDB。

2. 通过 BGP-LS 收集网络信息,建立全局 TE 数据库。

3. 控制器基于约束全局算路。

4. 使用 PCEP 或 BGP SR Policy 将算路结果下发设备。

网络拓扑收集

1.IGP 协议收集网络拓扑信息

转发器的 IGP 协议收集网络拓扑信息,收集 SR 的邻接标签和节点标签。

2.BGP-LS 上报网络拓扑信息

BGP-LS 将带有 SR 标签信息的网络拓扑和 TE 信息上报给控制器。

使用多个 SID 进行组合来指导数据转发,这种工作机制可以对数据的转发路径进行一定约束,从而满足流量工程的需求,因此被称为 SR-MPLS TE

SR TE SID 的组合形式:

使用多个 Adjacency SID。

使用 Node SID 与 Adjacency SID 组合

image-20230214221712920

# SP-MPLS TE 单域

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
1、SR、Is-is规划
2、配置TE相关信息,接口带宽信息
3、SR-MPLS TE头节点tunne1接口

mpls
mpls te
int ethe 1/0/0
mpls
mpls te

isis
level 2
wide
netentity
traffic-eng
segment mpls
segment global 16000 23999

int l 0
isis pre in 10

头结点
int t0/0/1
ip add un in l 0
tunnel-protocol mpls te
des 4.4.4.4
mpls te singal-protocol segment-routing
mpls te tunnel-di 1

头结点
explicit-path to4pe
next sid label 48140 adja
next sid label 48141 adja
next sid label 48142 adja
int t0/0/1
mplt te ex to4pe

尾节点

tunnel-policy pe4
tunnel select sr-te load 1
ip vpn a
tnl pe4

# SP-MPLS TE 跨域 (E2E 跨域)

1. 配置思路

1、AS10、20 内部规划 IGP IS-IS,并配置 SR-MPLS

2、端到端配置 MPLS,MPLS TE,每个 AS 内配置 SR-MPLS TE 隧道;PE 之间建立跨域 E2E SR-MPLS TE 隧道

3、ASBR 之间配置 EBGP 邻居,要求 BGP 可以分配 sID

4、PE 之间建立 SR-MPLS TE E2E 跨域隧道,使用 tunnel3

不直接在 PE 之间建立隧道,在 AS 内部 PE 和 ASBR 之间建立隧道,减少标签栈深度

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
IP MPLS IGP TE

PE
explicit-path to_asbr
next sid label 48140 type adja
next sid label 48141 type adja

int t0/0/01
ip add unnum int l 0
tunnel-pro mpls te
dest 3.3.3.3
mpls te signal-protoc segment
mpls te tunnel-id 1
mpls te path explicit to_asbr

ASBR
explict to_pe
next sid label 48140 type adja
next sid label 48140 type adja

int t0/0/01
ip add unnum int l 0
tunnel-pro mpls te
dest 1.1.1.1
mpls te signal-protoc segment
mpls te tunnel-id 1
mpls te path explicit to_asbr

ASBR-ASBR
ip rou 4.4.4.4 32 10.1.34.4
bgp 100
peer 4.4.4.4 as 200
peer 4.4.4.4 con l 0
peer 4.4.4.4 ebgp
peer 4.4.4.4 egress-eng
net 6.6.6.6
link-state unicast

isis
import bgp

PE
int t0/0/1
mpls te binding label 1000

explicit to_pe6
next sid label 1000
next sid label 48182
next label 2000

int t0/0/3
ip add
tunnel mpls te
mpls te signal segment
des 6.6.6.6
mpls te tu 2
mpls te ex to_pe6

bgp 100
peer 6.6.6.6 as 200
peer 6.6.6.6 con l 0
peer 6.6.6.6 ebgp
ipv4 vpnv4
prrt 6.6.6.6 en
ipv4 vpn-instance

tunnel-policy to_pe6
tunnel ses sr-te lo 1
ip vpn
tnl

Binding SID

SR-MPLS TE 隧道可以做为一种转发邻接。如果将 SR-MPLS TE 隧道做为转发邻接分配一个邻接 SID(Adjacency SID),则该 SID 可以标识 SR-MPLS TE 隧道,利用这个 SID 就可以将数据流量导入 SR-MPLS TE 隧道,实施 TE 策略

Binding SID 意味着将使用该 SID 的流量与一个 SR-MPLS TE 隧道或者一个 TE 策略绑定。Binding SID 在 AS 域内的转发器上配置,一个 Binding SID 代表一条域内 SR-MPLS TE 隧道

# SRv6

使用 IPv6 数据平面,基于 IPv6 路由扩展头进行扩展

通过在 IPV6 报头中增加 SRH 扩展头实现 SRv6

该扩展头指定一个 IPv6 的显式路径,存储的是 IPv6 的 Segment List 信息,其作用与 SR MPLS 里的 Segment List 一样。

img

Segment List : 有序的 SRv6 SID 列表

Segments Left(SL) : SRv6 激活的 SID 为 Slist [SL]。转发过程中通过修改 SL,同时更换 DIP 为活跃的 SID 来分段完成转发。

Tag : 用于对数据包分组,可以实现基于组的策略。

SRH TLVs (NSH metadata,HMAC TLV,Padding TLv 等)︰可以作为 Segment List 的 sID 共同使用的全局参数。

通过扩展头 SRH 中内容确定 IPV6destination address。

在 SRv6 中,IPv6 DA 仅标识当前报文的下一个节点,是不断变换的。

<Segment List [0], Segment List [1], …, Segment List [n-1], Segment List [n]>:SRv6 报文的段列表,类似于 SR-MPLS 中的 MPLS 标签栈信息,在入节点生成。Segment List [n] 是 SRv6 路径上第一个需要被处理的 Segment List;Segment List [n-1] 是第二个;Segment List [1] 是倒数第二个;Segment List [0] 是倒数第一个。

SRv6 按照从栈底从栈顶处理 segment list,和 SR 相反

在 SRv6 中,每经过一个 SRv6 节点,Segments Left(SL)字段减 1,IPv6 DA 信息变换一次。Segments Left 和 Segment List 字段共同决定 IPv6 DA 信息。

segment 在处理后也不弹出

img

# SRv6 三层可编程能力

第一层是 segment List。它可以将多个 Segment 组合,形成 SRv6 路径。这一点和 MPLs 标签栈类似。

第二层是对 SRv6 SID 128 bit 地址的运用。MPLs 标签中四个段是定长的 (20 bit 标签、8 bit TTL、3 bit Tc 和 1 bit 栈底标识)。而 SRv6 SID 的 128 bit 可以灵活分段,并且每个段的长度也可以变化。由此 SRv6 具备更灵活的可编程能力。

第三层是紧接在 Segment Llist 后的可选 TLV。报文在网络中传送时,如果需要在转发平面封装一些非规则类的信息,可以通过在 SRH 中 TLv 的灵活组合来完成。

img

节点配置 Locator 之后,系统会生成一条 Locator 网段路由,并且通过 IGP 在 SR 域内扩散。网络里其他节点通过 Locator 网段路由就可以定位到本节点,同时本节点发布的所有 SRv6 SID 也都可以通过该条 Locator 网段路由到达。

Function 代表设备的指令(Instruction),这些指令都由设备预先设定,Function 部分用于指示 SRv6 SID 的生成节点进行相应的功能操作。

指令就是转发信息,他与 SRv6 SID 相关,每一个 SID 代表隐含的转发指令,生成 SRv6 SID 的设备会生成 SID 表,存储了与本 SRv6 SID 相关指令

Function 部分还可以分出一个可选的参数段(Arguments),此时 SRv6 SID 的格式变为 Locator:Function:Arguments,Arguments 占据 IPv6 地址的低比特位,通过 Arguments 字段可以定义一些报文的流和服务等信息。

end,end.x Locator 需要手动配置,.DT4 或.DT6 Locator 可以手动配置或 BGP 自动生成

3. 第三层是紧接在SegmentList后的可选TLV

# SRv6 SID

1
End SID

标识某个节点,类似于 node SID,通过 IGP 扩散

img

1
End.x SID

End.X SID 表示三层交叉连接的 Endpoint SID,用于标识网络中的某条链路。类似 SR-MPLS 中的 Adjacency SID。

img

1
End.DT4 SID

End.DT4 SID 表示 PE 类型的 Endpoint SID,用于标识网络中的某个 IPv4 VPN 实例。End.DT4 SID 对应的转发动作是解封装报文,并且查找 IPv4 VPN 实例路由表转发。End.DT4 SID 在 L3VPNv4 场景使用,等价于 IPv4 VPN 的标签。End.DT4 SID 也可以用于标识公网实例。

End.DT4 SID 可以通过静态配置生成,也可以通过 BGP 在 Locator 的动态 SID 范围内自动分配

只需要在 PE 节点生成环回路由和 locator 路由,中间节点不需要

1
End.DT6 SID

End.DT6 SID 表示 PE 类型的 Endpoint SID,用于标识网络中的某个 IPv6 VPN 实例。End.DT6 SID 对应的转发动作是解封装报文,并且查找 IPv6 VPN 实例路由表转发。End.DT6 SID 在 L3VPNv6 场景使用,等价于 IPv6 VPN 的标签。End.DT6 SID 也可以用于标识公网实例。

End.DT6 SID 可以通过静态配置生成,也可以通过 BGP 在 Locator 的动态 SID 范围内自动分配。

1
2
配置end.dt4

配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
配置接口地址

PE:
全局使能
segment routing

PE上配置环回,用于后续建立VPN邻居
ipv6 address

segment-routing ipv6
encapu source-address //指定隧道源,即PE上的Loopback
locator aa ipv6-ptefix 2001:: 64 static 32 //配置locator路由,32是可自定义空间


运行IGP协议,中间节点不需要起segment-routing ipv6 locator aa
isis
is-level
cost-style
network-entity
ipv6 enable t ipv6
segemnt-routing ipv6 locator aa a

//display Segment ipv6 local-sid
//display isis route

配置VPN实例
ip vpn-instance
route
vpn-target

配置function,argu
segment-routing ipv6
locator aa
opcode ::100 end-dt4 vpn-instance site_a //通过查询VPN-instance做路由转发

//PE之间运行BGP
BGP 100
router-id
peer 2001::1 as 100
peer 2001:1 con l 0
ipv4-family vpnv4
peer 2001:: enable
peer 2001:: prefix-sid
ipv4 vpn-instance
segment ipv6 locator auto-sid-disable
segment ipv6 best-effort

对于不支持 SRv6 的设备可以通过 Multi topology reachable ipv6 prefixes 计算 locator 路由(TLV 237)

对于支持的设备通过 locator 携带,TLV 27

SID 谁生成谁传播,DT4 SID 只能由 BGP 传播

Edited on

Give me a cup of [coffee]~( ̄▽ ̄)~*

John Doe WeChat Pay

WeChat Pay

John Doe Alipay

Alipay

John Doe PayPal

PayPal