IS-IS路由信息控制
在实际应用中,IS-IS协议根据SPF算法计算出来的路由有时并不能满足运营商所有需要,可能出现如下弊端:如路由表中条目过多降低路由查找的速度、网络中链路利用率不均衡等,这些都不能很好地满足网络规划和流量管理的需要。
当IS-IS网络中同时部署了Level-1区域和Level-2区域时,缺省情况下,Level-2路由器并不将自己知道的Level-1区域以及骨干区域的路由信息通报给Level-1区域。这样,Level-1路由器将不了解本区域以外的路由信息,可能导致对本区域之外的目的地址无法选择最佳的路由。
路由渗透功能通过在Level-1-2路由器上定义路由策略、Tag标记等方式,将符合条件的路由筛选出来,实现将其他Level-1区域和骨干区域的部分路由信息通报给自己所在的Level-1区域,使Level-1区域能够获得全网的路由信息,如图8-6所示。
DeviceA、DeviceB、DeviceC和DeviceD同属于Area10区域,DeviceA和DeviceB为Level-1路由器,DeviceC和DeviceD为Level-1-2路由器。
DeviceE、DeviceF同属于Area20区域,为Level-2路由器。
DeviceA发送报文给DeviceF,选择的最佳路径应该是DeviceA->DeviceB->DeviceD->DeviceE->DeviceF。因为这条链路上的cost值为10+10+10+10=40,但在DeviceA上查看发送到DeviceF的报文选择的路径是:DeviceA->DeviceC->DeviceE->DeviceF,其cost值为10+50+10=70,不是DeviceA到DeviceF的最优路由。
这是由于DeviceA并不知道本区域外部的路由,所以发往非本区域网段内的报文都是通过由最近的Level-1-2路由器产生的缺省路由发送出去的。
此时分别在Level-1-2路由器DeviceC和DeviceD上使能路由渗透。再查看报文选择的路径,发现路径是DeviceA->DeviceB->DeviceD->DeviceE->DeviceF,为DeviceA到DeviceF的最优路由。
路由聚合
路由器DeviceA、DeviceB和DeviceC都运行IS-IS路由协议实现互连。
DeviceA属于区域20,DeviceB和DeviceC属于区域10。
DeviceA是L2设备,DeviceB是L1/2设备,DeviceC是L1设备。
DeviceB同时维护Level-1和Level-2的LSDB,并且将Level-1区域的3个网段(172.16..1.0/24、172.16..2.0/24和172.16..3.0/24)的路由渗透到Level-2区域。此时,如果由于链路故障造成DeviceC的直连接口172.16..1.1/24频繁在Up和Down状态间变化,那么该抖动会通告到Level-2区域,频繁的触发LSP的扩散和DeviceA进行SPF计算,从而造成对DeviceA的CPU占用较高甚至出现网络振荡。
如果在DeviceB上配置对以上3个Level-1区域网段的路由进行路由聚合,即将以上3条路由聚合为一条路由172.16..0.0/16,则既可以减少DeviceB的路由表条目,又可以降低Level-1区域的链路抖动对Level-2区域的路由收敛的影响。
负载分担
DeviceA、DeviceB、DeviceC和DeviceD之间通过IS-IS协议达到IP网络互连的目的。
DeviceA、DeviceB、DeviceC和DeviceD同属于区域10,都是Level-2路由器。
如果没有负载分担,经过SPF计算,DeviceA的流量会一直通过最优路径传输,容易造成负载不均衡。在DeviceA上使能负载分担可以使流量分别通过路由器DeviceB和DeviceC发送到路由器DeviceD,减小最优路径的压力。
负载分担支持逐包负载分担和逐流负载分担,在《NE20E 特性描述-IP路由概述》中有详细的介绍。
IS-IS不仅支持同一进程内的路由负载分担,当不同进程之间存在等价路由时,也可以形成进程间负载分担。
管理标记
管理标记携带关于IP地址前缀的管理信息,当链路的开销类型为wide、wide-compatible或compatible时,如果发布可达的IP地址前缀具有该属性,IS-IS会将管理标记加入到该前缀的IP可达信息TLV(Type/Length/Value)中。这样,管理标记就会随着前缀发布到整个路由域,从而实现通过管理标记引入或过滤路由的目的。
IS-IS Mesh Group
根据IS-IS的通信原理,当路由器收到一个新的LSP后泛洪,对于连通程度比较高、有多条P2P链路的网络,这种处理会造成LSP的重复扩散,浪费带宽。为避免这种情况的发生,可以通过Mesh Group减少带宽的浪费。
IS-IS Mesh Group的实现是通过将一些接口组成Mesh Group,一个组中的接口不把从本组接口接收的LSP扩散到同组中的其它接口,而只扩散到其它组的接口以及没有配置Mesh Group的接口。所有加入到Mesh Group中的接口,通过CSNP和PSNP机制来保证整个网段的LSDB的同步。
link-group
如图8-9所示,路由器A通过路由器B及路由器C双归接入IS-IS网络,其中,路由器A与路由器B为主链路,路由器A与路由器C为备链路。假设每条链路的带宽为100G,用户流量为150G,则主备链路均需要两条链路共同承担用户流量。如果此时链路Link-a发生故障,则所有用户流量切换到Link-b,由于Link-b的链路带宽小于用户流量,则会发生流量丢失。
link-group特性是将多条链路加入到一个链路组,当链路组中某些链路发生故障时,链路组剩余链路不足以承担当前的用户流量(可以通过配置来判断),则link-group会自动调大其他链路的cost值(该cost值可以配置),使本组链路不被优选,从而将流量切换到备链路进行转发,避免流量丢失,从而解决上述问题。
如果Link-a链路发生故障,则Link Group1会自动调大Link-b的cost值,将用户流量切换到Link-c和Link-d进行转发;
如果Link-a和Link-c链路同时发生故障,则link-group会自动调大Link-b和Link-d的cost值,此时Link-b和Link-d形成负载分担,共同转发用户流量。