
IS-IS理论知识详解(七)
IS-IS理论知识详解(六):http://www.023wg.com/lypz/319.html
31、IS-IS TE
传统的路由器选择最短的路径作为主路由,不考虑带宽等因素。这样,即使某条路径发生拥塞,也不会将流量切换到其他的路径上。
MPLS TE(Multiprotocol Label Routering Traffic Engineering)解决网络拥塞问题有自己的优势。通过MPLS TE,用户可以精确地控制流量流经的路径,从而可以避开拥塞的节点。同时,MPLS TE在建立隧道的过程中,可以预留资源,保证服务质量。
为了保证服务的连续性,MPLS TE还引入路由备份和快速重路由的机制,可以在链路出现问题时及时进行切换。通过MPLS TE技术,服务提供商能够充分利用现有的网络资源,提供多样化的服务。同时可以优化网络资源,进行科学的网络管理。
MPLS TE为了实现上述目的,需要了解整个网络中所有路由器的TE配置信息,但是MPLS TE缺乏这样一个机制:每个路由器在整个网络中泛洪各自的TE信息,并完成整网TE信息的同步。这个机制恰恰是IS-IS路由协议的一个基本特性,MPLS TE需要借助IS-IS完成TE信息的发布和同步。
IS-IS TE是IS-IS为了支持MPLS TE而做的扩展,它遵循RFC5305和RFC4205中关于IS-IS部分扩展的规定,通过在IS-IS LSP报文中定义新的TLV的方式,携带该路由器MPLS TE的配置信息,通过LSP的泛洪同步,实现MPLS TE信息的泛洪和同步。
IS-IS TE把所有LSP中携带的TE信息提取出来,传递给MPLS的CSPF(Constraint Shortest Path First)模块,用来计算隧道路径。
图1 MPLS TE、CSPF和IS-IS TE关系图
IS-IS TE在MPLS TE的流程中扮演着“搬运工”的角色,IS-IS TE和MPLS TE、CSPF的关系可以用上图1来概括。
IS-IS TE为了在LSP中携带TE信息,在RFC5305中新定义了如下四种TLV:
1.1、Extended IS reachability TLV
此TLV用来替换IS reachability TLV,并采用sub TLV的形式扩展了原来的TLV格式。sub TLV在TLV中的实现方式与TLV在LSP中的实现方式相同。这些sub TLV用来携带配置在物理接口下的TE信息。
目前支持RFC5305中定义的所有sub TLV以及RFC4124中定义的22号sub TLV。
名称 |
类型 |
长度(Byte) |
值 |
Administrative Group |
3 |
4 |
管理组 |
IPv4 Interface Address |
6 |
4 |
本端IPv4接口地址 |
IPv4 Neighbour Address |
8 |
4 |
邻居的IPv4接口地址 |
Maximum Link Bandwidth |
9 |
4 |
最大链路带宽 |
Maximum Reserved Link Bandwidth |
10 |
4 |
最大预留链路带宽 |
Unreserved Bandwidth |
11 |
32 |
未预留带宽 |
Traffic Engineering Default Metric |
18 |
3 |
流量工程缺省开销值 |
Bandwidth Constraints sub-TLV |
22 |
36 |
带宽约束TLV |
1.2、Traffic Engineering router ID TLV
此TLV type为134,包含了四字节的Router ID,在目前实现中就是MPLS LSR-ID。对于MPLS TE来说,Router ID用来唯一的标识一台路由器,它必须要和路由器一一对应。
1.3、Extended IP reachability TLV
此TLV用来替换IP reachability TLV,用来携带路由信息。扩展了路由开销值的范围(四个字节),并可以携带sub TLV。
1.4、Shared Risk Link Group TLV
此TLV type为138,用来携带共享风险链路组信息。每个共享链路信息为四字节的正整数值,该TLV可以携带多个共享链路信息。
2、IS-IS TE工作流程
IS-IS TE主要有两个流程:
2.1、响应MPLS TE的配置消息流程
只有使能了MPLS TE,IS-IS TE特性才能运行。根据MPLS TE的配置,更新IS-IS LSP报文中的TE信息。将MPLS TE的配置传递给CSPF模块。
2.2、处理LSP中TE信息的流程
提取收到的IS-IS LSP报文中的TE信息,传递给CSPF模块。IS-IS TE的典型应用是协助MPLS TE建立TE隧道。如下图2组网,建立一条从RouterA到RouterD的TE隧道。
图2 IS-IS TE组网示意图
RouterA、RouterB、RouterC和RouterD上使能MPLS TE,并在RouterA上使能MPLS TE CSPF计算隧道路径。RouterA、RouterB、RouterC和RouterD运行IS-IS协议实现网络互通,并且使能IS-IS TE功能。
这样,RouterA、RouterB、RouterC和RouterD的IS-IS协议在各自发布的LSP报文中,分别携带各自路由器上配置的TE信息。RouterA根据收到的LSP报文,获得RouterB、RouterC和RouterD的MPLS TE配置,从而得到整网的TE信息。CSPF模块可以利用这些信息来计算满足隧道要求的路径。
3、IS-IS TE隧道接口的路由计算方式
IS-IS Shortcut(AA)&Advertise(FA)是使用TE Tunnel接口来计算路由的两种方式。对于到达特定路由的流量,相比不可靠的IP转发,由MPLS来保证转发更适合。
通过IS-IS Shortcut(AA)&Advertise(FA)这两种方式,让TE Tunnel接口参与路由计算,成为转发表中特定路由的出接口,这样就可以进行MPLS转发了。
图3 IS-IS Shortcut(AA)and Advertise(FA)基本原理示意图
IS-IS Shortcut(AA)与IS-IS Advertise(FA)的不同点包括:
1、IS-IS Advertise(FA)支持将TE tunnel的链接信息发布到其它中间系统,IS-IS Shortcut(AA)则不支持。
如上图3所示,如果TE tunnel是IS-IS Advertise(FA)类型的,则RouterA会把RouterC作为邻居发送出去(邻居信息携带在22号TLV中,并且不含子TLV,即不含TE信息)。如果TE tunnel是IS-IS Shortcut (AA)类型的,RouterA则不会发布这样的消息。
2、IS-IS Advertise(FA)会影响到其它路由器的SPF树,IS-IS Shortcut(AA)则不会影响。
无论TE Tunnel存在与否,IS-IS Shortcut(AA)不影响IS-IS的SPF树的原有结构,即RouterA到RouterB和RouterB到RouterC的链路还在,只是多了一条RouterA到RouterC的带Shortcut标记的链路。计算路由的时候,这条带Shortcut标记的链路将参与路由计算。
如果TE tunnel是IS-IS Advertise(FA)类型的,RouterA将把“RouterC是RouterA的邻居”这条消息发布到全网,其它路由器会认为RouterC是RouterA的邻居,并在SPF树中添加其信息,并且不会打上Shortcut标记。
3、IS-IS Shortcut(AA)支持相对度量,IS-IS Advertise(FA)则不支持。
IS-IS Shortcut(AA)的度量分为绝对度量和相对度量两种。
绝对度量表示TE Tunnel在IS-IS层面的度量值是固定的。相对度量表示TE Tunnel在IS-IS层面的度量值是相对的,其开销值为物理链路值加相对度量值之和。
如上图3所示,如果配置相对度量为1,则RouterA到RouterC通过TE Tunnel的开销就是10+10+1=21。如果配置为0,则表示TE Tunnel和普通物理链路作为等价出接口,如果小于0,则优选TE Tunnel作为出接口。
4、IS-IS Shortcut(AA)仅需要单向的Tunnel链路连通,而IS-IS Advertise(FA)需要双向TE tunnel链路才能算通。
32、IS-IS本地组播拓扑
1、IS-IS本地组播拓扑简介
IS-IS本地组播拓扑Local MT(Local Multicast-Topology)是在不改变设备间的协议报文的前提下,在本地为组播创建单独的拓扑,从而实现骨干网内TE-Tunnel和组播的混合部署。
本文中提到的TE-Tunnel指的是IGP Shortcut(AA)类型的TE-Tunnel。
当网络中同时部署了组播和TE-Tunnel时,组播的功能可能会受到TE-Tunnel的影响,导致业务不可用。
在TE-Tunnel上配置了IS-IS Shortcut后,IS-IS计算出来的路由的出接口可能不再是实际的物理接口,而是TE-Tunnel接口。根据到达组播源地址的单播路由,路由器从TE-Tunnel接口发送组播加入报文(Report报文),被TE-Tunnel跨越的路由器无法感知到该报文,因而不会建立组播转发表项。
由于TE-Tunnel是单向的,从组播源发出的组播数据会直接通过物理接口发送到这些被跨越的路由器,但因为这些路由器上并没有组播转发表项,导致组播数据报文丢弃。
图1 TE-Tunnel场景
如上图1所示,RouterA、RouterB、RouterC、RouterD和RouterE为Level-2路由器并运行IS-IS路由协议实现互通,且组播业务正常。然后建立从RouterB到RouterD的单向MPLS TE-Tunnel,并使能IS-IS Shortcut(AA)。在RouterC(即被TE-Tunnel穿越的路由器)上查看组播路由表,没有任何组播转发表项,组播业务中断。
用户和组播服务器发送组播报文流程如下:
1、用户向RouterA发送Report消息,请求加入组播组;RouterA向RouterB发送加入组播组请求(Join报文)。
2、当该Join报文到达RouterB时,RouterB选择TE-Tunnel1/0/0作为RPF(Reverse Path Forwarding)接口,并从RouterB的GE2/0/0接口通过MPLS标签转发至RouterC。
3、在RouterC上,由于报文是通过MPLS标签转发,所以RouterC不会对该组播Join报文进行特殊处理,即不会建立组播转发表项。并且在本图的拓扑中,RouterC是该MPLS转发的倒数第二跳,它会去掉MPLS标签,通过RouterC的GE2/0/0接口将组播Join报文转发给RouterD。
4、RouterD收到该组播Join报文后建立组播转发项,下游接口为GE2/0/0,上游接口为GE1/0/0,然后继续向RouterE发送组播Join报文,至此建立SPT树。
5、当组播源发出流量至RouterD时,RouterD会将流量转发至RouterC,由于之前RouterC没有建立组播报文的转发表项,所以流量被丢弃,导致组播业务无法正常进行。
从上面组播报文的发送和返回流程可以看出:组播依靠单播路由表,而且是单向TE-Tunnel转发组播报文时,会发生问题。可以通过以下办法避免:
1、手工配置组播静态路由,指导组播报文转发。
2、配置双向TE-Tunnel,这样组播报文返回时可以通过同一隧道,即被TE-Tunnel穿越的路由器使用该隧道对发送和返回的组播报文进行转发。
3、配置MBGP,实现单播和组播拓扑的分离。MBGP为组播单独提供不包含TE-Tunnel的拓扑,组播对MBGP路由进行RPF检查。
4、配置本地组播拓扑特性。
上述办法都可以避免组播业务可能中断的情况,但前三种方法的缺点是手工配置量较大,如果网络环境复杂,会增加规划、配置和维护的工作量。所以,一般在上述的网络环境中,需要配置本地组播拓扑特性。
2、IS-IS本地组播拓扑实现原理
本地组播拓扑特性的核心思想和技术是:在不改变设备间的协议报文的前提下,在本地为组播创建单独的拓扑。设备支持本地组播拓扑特性,可以避免同时部署了组播和在MPLS TE-Tunnel上使能了IGP Shortcut后导致组播业务不可用的情况。
使能本地MT特性后,位于Shortcut TE-Tunnel入口起始端的路由器会为组播创建单独的MIGP(Multicast IGP)路由表,保存TE-Tunnel所对应的物理接口,以保证组播协议报文的转发,从而建立正确的组播路由表项。
2.1、创建MIGP路由表
组播协议报文是按照单播路由表进行转发。在RouterB上使能本地MT特性后,RM会为组播协议创建单独的MIGP路由表。当路由的出接口是TE-Tunnel时,IGP会为该路由计算出实际的物理出接口,并将其加入到MIGP路由表中。
2.2、指导组播协议报文
当转发组播协议报文时,路由器首先查找单播路由表。如果发现下一跳是TE-Tunnel时,会继续查找MIGP路由表,找到对应的实际物理出接口,指导组播协议报文进行转发。
图2 Local MT拓扑
在上图2中,组播源192.168.3.2/24的上游接口是TE-Tunnel1/0/0,IS-IS会计算出该路由的实际出接口为GE2/0/0,并将计算出来的这条路由加入到MIGP路由表中。这样组播业务就不会受TE-Tunnel的影响,组播协议报文按照MIGP路由表从实际的物理出接口转发(即普通IP转发),并在组播路由表中建立相应的路由表项,实现组播数据的正确转发。
IS-IS配置命令大全:http://www.023wg.com/lypz/321.html



本文地址:http://www.023wg.com/lypz/320.html
版权声明:若无注明,本文皆为“Swiers思唯网络博客”原创,转载请保留文章出处。

