首先在配置前理解几个基本概念
Prefix SID配置
- 统一分配和配置(全局规划)loopback和prefix sid
- Prefix SID=SRGB Base(16000)+index
Adj SID自动生成
- 对应SR节点间的互联链路
- SR节点本地标识,从设备本地Segment池中动态分配
- 设备会为其IGP中的链路自动分配Adj SID,并通过IGP进行广播
IGP SID的分发与传递
- Segment Routing思想是对网络进行简化,SR没增加任何一个新的网络协议
- SID在网络中的传递是通过对原有的IGP协议进行扩展
- ISIS对SR的扩展:RFC8667(通过TLV字段实现);OSPF对SR的扩展:RFC8665(通过不透明的LSA携带)
- 通过IGP实现SID在SR域中传递,类似MPLS网络中的LDP协议就不再需要了。
- 各节点利用IGP路由更新(ISIS的LSP,OSPF的LSA)广播自己网段及相应的Prefix SID,Adj SID
根据IGP Prefix SID建立标签转发表项
通过Prefix SID建立的标签转发表项可以分为:
- 静态标签转发表项:设备根据手工指定的入标签、出标签以及下一跳的对应关系形成本地的标签转发表项;
- 动态标签转发表项:设备通过IGP协议将本地SRGB和为本地Loopback接口地址分配的Prefix SID的索引值在分段路由域内进行泛洪。分段路由域内的其他设备根据收到的信息计算出本地的标签转发表项,入标签为本地SRGB标签段基值+Index,出标签为下一跳的SRGB基值+Index。
- 节点、链路、Prefix、SID等拓扑信息存储在本地的数据库中,按照Dijkstra算法算出最短路径,并将计算结果装载到data plane(数据平面)。
1.配置IP(省略)
2.配置OSPF
正常将接口的对应IP宣告到ospf中,R1无需宣告tunnel接口,以下是R1的配置事例,其他设备省略
ospf 1 router-id 1.1.1.1segment-routing mpls #使能IGP协议开启SR-MPLS功能area 0.0.0.0network 1.1.1.1 0.0.0.0network 10.0.0.0 0.0.0.255
3.配置mpls相关功能
以R1为例,每台设备将互联接口开启mpls功能,lsr-id配置为设备的loopback地址
mpls lsr-id 1.1.1.1 #配置lsr-id
mpls te #使能设备的te功能
int gi0/0
mpls enable #使能接口的mpls功能
4.配置Prefix SID
以R1为例,设置为10,默认的SRGB范围为16000那么就是16000+10=16010,其他设备依次为R2是2,R3是30......依靠IGP协议OSPF进行广播,让其他设备节点获知Adj SID(邻接段ID)
interface LoopBack0ospf 1 prefix-sid index 10
5.配置静态SRLSP
R1
static-sr-mpls lsp static-sr-lsp-1 out-label 16040 #配置用于MPLS TE隧道的静态SRLSP
6.配置MPLS-TE隧道
R1
interface Tunnel1 mode mpls-teip address 6.1.1.1 255.255.255.0mpls te signaling static #使用静态方式建立MPLS TE隧道mpls te static-sr-mpls lsp1 #指定隧道引用的SRLSPdestination 4.4.4.4 #目的地址为R4设备4.4.4.4
7.配置静态路由
R1
ip route-static 40.0.0.0 24 Tunnel1 preference 1
到此配置结束
验证配置
R1使用dis mpls lsp命令可以查看到标签转发表已经建立
在R1设备上执行命令ping -a 1.1.1.1 40.0.0.1同时在R2或者R3设备链路上进行抓包
可以看到报文中携带了标签,走的是标签转发网络
如果将R1上的静态路由删掉,去往40.0.0.0/24位路由的不走隧道,此时再次执行ping命令将不会走标签转发网。可以自行抓包尝试。