

点击上文↑链接至YouTube收看高清版本实验视频
这是我们基于JUNOS 101网络拓扑图所完成的最后一节Juniper IS-IS路由协议配置实验。我们依然延续IS-IS TLVs作为学习IS-IS路由协议的线索。这次介绍的IS-IS TLVs类型分别为TLV #2, TLV #128, TLV #130, TLV #22, 以及TLV #135。其中,Small Metrics是后来想到的相对于IS-IS中Wide Metrics的称谓,视频中我用了一个别扭的Narrow Metrics,实际上指的都是IS-IS以TLV #2, TLV #128, TLV #130形式发送出去的路由信息。由于TLV #2在之前的JUNOS IS-IS链路状态数据库LSP TLVs类型描述第一部分已经讲过,这里我们便从TLV #128开始。
IS-IS TLV #128(IP Internal Reachability): IP内部可达性信息
TLV #128属于IS-IS Small Metrics,每台IS-IS路由器都会将本地直连的IP网段前缀信息封装到TLV #128内进行通告。由于IS-IS Small Metrics被限制为6-Bits长度,因此使用TLV #128通告的IP网段,其Metric取值范围是0-63。不过,对于接收Small Metrics的IS-IS路由器而言,63仅仅为每条IS-IS Small Metrics路由从本地接口被叠加并通告出去的最大值,而并非IS-IS Small Metrics路由经过逐跳Metrics叠加以后,计算出的最大值。我们将R1的环回接口lo0.1的本地Level-1 Metrics设置为2,000。为了能更好的过渡到本实验中,我先列出更为详尽的配置信息。
[edit logical-routers]
nigel@junos# show r1 protocols isis
level 1 {
authentication-key "$9$fQ39SyKv87cy"; ## SECRET-DATA
authentication-type md5; ## SECRET-DATA
}
level 2 disable;
interface fxp1.12 {
level 2 disable;
level 1 {
hello-authentication-key "$9$cfdSvLdVYoZjs2";
## SECRET-DATA
hello-authentication-type simple;
## SECRET-DATA
}
}
interface lo0.1 {
passive;
level 1 metric 2000;
}
此时我们可以发现,R1的lo0.1接口所连接的10.0.6.1/32网段,在R1的IS-IS数据库中被TLV #128限制为63的最大Metrics值。注意我这里连续用了两个Pipe导出符。
[edit logical-routers]
nigel@junos# run show isis database logical-router r1
extensive | find TLV | match 10.0.6.1
IP router id: 10.0.6.1
IP address: 10.0.6.1
IP prefix: 10.0.6.1/32, Internal, Metric: default 63, Up
IP extended prefix: 10.0.6.1/32 metric 63 up
而当我们查看对端IS-IS路由器R2路由表的时候,可以发现10.0.6.1/32网段在R2上的Metric值为R1通告出来的Small Metrics最大值63,然后R2再累加上R1与R2之间的Level-1链路的IS-IS默认开销值10,因此该路由的Metrics总和为73。因此,对于IS-IS的Small Metrics路由而言,每条路由总的Metrics值最大取值为1023。
[edit logical-routers]
nigel@junos# run show route logical-router r2 10.0.6.1/32
inet.0: 8 destinations, 8 routes (8 active, 0 holddown,
0 hidden)
+ = Active Route, - = Last Active, * = Both
10.0.6.1/32 *[IS-IS/15] 00:25:47, metric 73
> to 10.0.4.5 via fxp2.12
IS-IS TLV #130(IP External Reachability): IP外部可达性信息
TLV #130属于IS-IS Small Metrics,每台IS-IS路由器都会将本地产生的,从外部路由协议进入IS-IS的路由,通过TLV #130通告进入IS-IS Routing Domain,由于同属IS-IS Small Metrics,63最大值规则对于TLV #130同样适用。
IS-IS TLV #22(Extended IS Reachability) – 扩展的邻接IS-IS路由器可达性信息
相对于Small Metrics的TLV #2,JUNOS默认要求每台IS-IS路由器同时通过TLV #22通告Wide Metrics的与本地IS-IS路由器所邻接的其他IS-IS路由器信息。同时,在Juniper路由上,IS-IS TLV #22包含TLV #6与TLV #8两种类型的Sub TLVs,分别标识该邻接关系的本地与邻居端接口的IP地址。在随后的发布的文档中,我会对之前提及的几种常见TLVs类型做一次小结。
IS-IS TLV #135(Extended IP Reachability) – 扩展的IP内/外部可达性信息
正如幻灯片所提示,相对于Small Metrics的TLV #128以及TLV #130,IS-IS将他们统一采用TLV #135作为内部IP路由以及外部IP路由的Wide Metrics可达性信息通告。在JUNOS中,对TLV #135而言,并不存在内部路由或者外部路由之间的区分。因此,当激活Level-1的wide-metrics-only以后,原本通过TLV #130标识并被限制在Level-1区域以内而无法进入Level-2骨干区域的IS-IS外部路由。这时边界L1/L2路由器将失去辨别将全部路由泄露进入Level-2骨干区域当中。当然,你可以通过设置IS-IS Level-1到Level-2的过滤策略避免这种情况发生。因此,也有人将IS-IS的Level-1区域与OSPF的NSSA相提并论。另外,IS-IS Wide Metrics使用24-bits长度,每条IS-IS Wide Metrics的路由不存在每跳添加限制值,而累加最大Metric值则被扩展至16,777,215。
配置JUNOS IS-IS wide-metrics-only
我们修改R1的IS-IS路由协议配置,将R1的Level-1 IS-IS协议设置为wide-metrics-only。
[edit logical-routers]
nigel@junos# set r1 protocols isis level 1
wide-metrics-only
[edit logical-routers]
nigel@junos# commit
commit complete
重新查看R1的IS-IS数据库,可以发现R1仅向外通告10.0.6.1/32网段的Wide Metrics TLV #130,并且应用之前配置的Metrics值2,000;而TLV #128则从R1的IS-IS Level-1数据库中消失。
[edit logical-routers]
nigel@junos# run show isis database logical-router r1
extensive | find TLV | match 10.0.6.1
IP router id: 10.0.6.1
IP address: 10.0.6.1
IP extended prefix: 10.0.6.1/32 metric 2000 up
重新查看R2的IS-IS路由表,10.0.6.1/32网段路由的Metrics值由原先的73现在被扩展为2,010。
[edit logical-routers]
nigel@junos# run show route logical-router r2 10.0.6.1/32
inet.0: 8 destinations, 8 routes (8 active, 0 holddown,
0 hidden)
+ = Active Route, - = Last Active, * = Both
10.0.6.1/32 *[IS-IS/15] 00:02:05, metric 2010
> to 10.0.4.5 via fxp2.12