MPLS 次末跳弹出配置_Segment Routing简介-1(IGP+MPLS下的SR)

SR:Segment Routing,源路由技术,在路径的源头插入一组列表(Segment list),引导数据按照特定的路径通过网络,除源节点外,其他节点只需要执行承载数据报文里的Segment(甚至是不支持SR),无需维护和计算状态信息。

d80861f9c18047818660e96942fbbd72

SRTE对现有的TE提升巨大,现有的RSVPTE尽管被提出多年,但部署的复杂性一直较为诟病:所有的流量都要承载在隧道;隧道的数量过于庞大,如果需要支持ECMP更是数量倍的增长;在出现故障后收敛速度太慢;

相对而言SR采用集中-分布的部署模式:

控制端(可以是SDN控制器):获取整网的拓扑信息,组合Segment并维护源节点的状态;

分布式端:由各个网路节点提供支持ECMP的最短Prefix Segment,保证segment IGP的收敛和FRR;

尤其在ODL以及SDN的支持,各大厂商和ISP的认同,相信在未来尤其IPv6普及的时候会大放异彩。

我们先了解一下SR术语概念:

Segment:节点收到数据需要执行的指令,他可以是常规的让数据包基于IGP/BGP以最短的路径转发数据包,也可以是基于特定的端口转发,设置可以将数据包发送至特定的应用;

Segment Identifier:SID用于标识Segment比如在MPLS用标签,IPv6的地址等;

Segment List:多个Segment的有序列表,引导数据通过特定的网络,类似MPLS的标签,有三个基本操作:PUSH、CONTINUE、NEXT。

全局Segment:所有启用SR的几点均支持的Segment指令,比如:16010,表示沿着去往节点16010的最短路径转发;

本地Segment:节点本地支持的Segment指令,尽管其他节点也可能支持该指令,但一般的操作是先通过全局Segment引导至相应的节点,再执行本地Segment,比如:从接口1转发(16010),再此Segment之前一般会有{16010,port1};

不同于LDP为MPLS分发标签,SR可以支持IGP/BGP设置静态配置Segment,通过IGP和BGP分发的Segment分别称为:IGP Segment

和BGP Segment;

IGP Segment分为2种类型,用过一下2种Segment类型,可以勾勒出整个网络拓扑信息:

IGP Prefix Segment(Prefix Segment/Prefix SID):数据按照最短的ECMP的路径前往该Segment关联的Prefix;Prefix SID支持多跳和ECMP的全局Segment;

Node-SID:特殊的Prefix Segment,一般是路由器ID,不同的是Node-SID被通告时对应一N-flag的置位;

IGP Adjacency Segment:数据按照特定的邻接链路转发出去,无关ECMP和shortest path, 会以倒数第二跳pop的方式存在;Adj-SID会从SRGB之外自动分配,为了防止链路动荡带来的Adj-SID的变化,一般会设置30分钟的保护机制,超过30分钟再回收。

ISIS使用扩展TLV 其中SR开启使用TLV2 、Prefix-SID 3 、Adj-SID 31 、SID/Lable 149

router isis 1

address-family ipv4 unicast

metric-style wide

segment forwarding mpls //启用mpls转发

segment-routing mpls//启用SR的控制层面和Mpls的数据层面

TLV定义了 路由器ID、泛洪范围和可选TLV等

我们主要来研究OSPFv2下的SR

OSPFv2

最初OSPFv2使用固定长度的LSA用于基本协议,后来引入了不透明LSA opaque LSA,不支持的OSPF路由器只会转发,但不处理,目前主要用在TE工程,通过扩展的不透明LSA以及全局路由表中的环回口地址配置Prefix-SID,为邻接分配Adj-SID,并通过MPLS作为数据层面进行转发;

可以根据IGP的区域概念划分不同的扩散范围,其中Type 9:Link-Local;Type 10:area-local;Type 11: AS-wide。具体的报文和说明如下图:

0eb3124feff444a395b28304fc0f363c

我们通过配置来具体研究:

1ae0b8c562ce424ca06c34227ab82384

svr1:

interface loopback 0

ipv4 adress 1.1.1.1 255.255.255.255

interface gi 0/0/0/0

ipv4 address 12.1.1.1 255.255.255.0

no shut

interface gi 0/0/0/1

ipv4 address 13.1.1.1 255.255.255.0

no shut

router ospf 1

router-id 1.1.1.1

//使用默认SRGB标签范围16000-23999

segment-routing forwarding mpls

segment-routing mpls

area 0

interface loopback 0

prefix-sid absolute 16001 explicit-null //指定Node-SID 16001,并设置倒数第二跳为显式空标签,默认为POP

prefix-sid index 1 explicit-null //和上一行命令效果一样

interface gi 0/0/0/0

interface gi 0/0/0/1

commit

其他Router配置类似,不做演示

33357747ddd24ed3b7161e17acd3b3d2

上图显示的loopback0,也就是Node-SID的前缀不透明LSA,我们可以看到,通过该LSA的前缀1.1.1.1/32routerLSA关联,Type10表示在本area内传播,7.0.0.1表示不透明类型7,并且该路由的其中一个非透明前缀。

Extender Prefix TLV:的flag 0x40表示N置位,这里是Node-SID的意思,AF 0表示ipv4单播;

SID sub-TLV:指定与前缀1.1.1.1/32 关联,flag 0x50表示倒数第二跳显式空标签,默认为0x0执行pop,Algo表示是否采用标准SPF算法,Index表示在SRGB中的索引位置;

我们研究一下xrx4的mpls 转发表项:

7ae9ec13960c437b860542adf37afb31

如果采用默认配置,16004的 outgoing会表现为POP;如果需要做anycast prefix-sid需要将将n-flag-clear;

再来研究一下MPLS的所有转发表:

b7cb4e8a40cf401786834e654a200c95

16002采用默认的倒数第二跳方式pop,16003,16004分别配置了倒数第二跳显示空标签。24001-24005分别为XRV1的邻接口,标签为值是从SRGB之外自动分配获取,倒数第二跳一律采用POP。svr2-4的相关配置如下:

645a970381404da8969b9b5b17e76b82
dc524cf2a1a7459da38eabd82d798725
d0189f981e2842d9bdb5c000b8fbc986

可以看出与传统MPLS的控制层面LDP不同,SR可以基于IGP自身下发,避免了LDP下发标签的消耗,避免了LDP与IGP的同步问题,并且SDN控制可以基于IGP的链路状态推到拓扑并制定相应的SegmentList;SR对承载流量的协议并无要求,对现有的环境几乎无需变动,

后面我们继续讨论BGP-Prefix,以及SRv6

以下简单回顾MPLS的转发过程:

IP转发原理:网络节点会基于路由协议计算生成RIB(路由表),并更新至线卡和FIB(转发表)。在CPU性能没有那么优秀的时候,数据在转发时,CPU计算RIB并基于最长匹配,时间在ms级甚至更高,这时候MPLS、ATM、FR提出了各自的解决方案,我们仅讨论MPLS,如下图是MPLS的分析:

641c6e5839ce42a3bdcb4e8e6ba73956

在运行MPLS域内的每台交换机我们称为:LSR(Lable Switching Router),在数据进入边缘LSR(LER)的时候,路由器将具有相同特征(源目ip,源目端口,Cos等)归纳为一个等价类FEC(forwarding equivalence class),并通过LDP打上对应的标签。Lable会插入到链路层和IP层之间,所以下次再收到FEC时,会直接基于LFIB标签转发,而节约了cpu的计算时间。不过在今天CPU性能足够优秀,制约传递效率的点在CPU传递至线程生成FIB并转发的过程,如果站在转发效率的角度,MPLS已经失去最初的意义。但是目前的MP-BGP的VPN技术极大的依赖MPLS,这些我们不做讨论。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值