天天看点

学习回顾—IS-IS路由协议(0x38)-控制ISIPv6的路由信息的交互功能

作者:角落里的渣渣

在网络中同时部署了IS-IS和其他路由协议时,需要配置IS-IS与其他路由协议的路由交互,才能使运行不同协议的网络正常通信。另外,还可以控制IS-IS缺省路由的发布,控制IS-IS路由下发到IPv6路由表等,具体包括以下配置任务如下(它们是并列关系,根据实际需要选择一项或多项进行配置)。

① 配置IS-IS发布缺省路由。

② 配置IS-IS发布外部路由。

③ 配置IS-IS发布部分外部路由到IS-IS路由域。

④ 配置将部分IS-IS路由下发到IPv6路由表。

⑤ 配置IS-IS路由聚合(IPv6)。

以上这些配置任务的具体配置方法其实与前面介绍的IS-IS IPv4对应配置任务的方法是一样的,只不过在一些命令中添加了ipv6关键字,下面分别具体介绍。

1) 配置IS-IS发布缺省路由

在具有外部路由的边界设备上配置IS-IS发布缺省路由可以使该设备在IS-IS路由域内发布一条::/0的缺省路由,这样IS-IS域内的其他设备在转发到达该外部网络流量时,将所有去往外部路由域的流量首先转发到该设备,然后通过该设备去往外部路由域。

【说明】配置静态缺省路由虽然也可以实现该功能,但是当现网中有大量的设备时,配置工作量巨大且不利于管理。此外,采用IS-IS发布缺省路由的方式更加灵活。例如,如果存在多个边界设备,那么可以通过配置路由策略,使某台边界设备在满足条件时才发布缺省路由,从而避免造成路由和黑洞。

在IS-IS IPv6重配置发布缺省IPv6路由的方法时在IS-IS进程视图下通过ipv6 default-route-advertise [always|match default |route-policy route-policy-name] [cost cost|tag tag | [level-1|level-1-2|level-2]]* [avoid-learning]命令进行。本命中的参数和选项说明如下。

l Always:多选一选项,指定设备无条件地发布缺省路由,且发布的缺省路由总将自己作为下一跳。

l Match default:多选一选项,指定如果在路由表中存在其他路由协议或其他IS-IS进程生成的缺省路由,则在LSP中发布该缺省路由。如果不选择此选项,则会强制产生该缺省路由。

l Route-policy route-policy-name:多选一参数,指定当该边界设备的路由表中存在满足指定名称(1-40个字符,区分大小写,不支持空格)路由策略的外部路由时,才向IS-IS域发布缺省路由,避免由于链路故障等原因造成该设备已经不存在某些重要的外部路由时,仍然发布缺省路由,从而造成路由黑洞。但此处的路由策略不影响IS-IS引入外部路由。如果不选择此可选参数,则不会基于边间设备路由表中的路由进行过滤,知己诶根据其他条件产生缺省路由。

l Cost cost:可多选参数,指定缺省路由的开销值,取值范围要根据cost-style而定。当csot-style为narrow、narrow-compatible或compatible时,取值范围为0-63的整数;当cost-style为wide或wide-compatible时,取值范围为0-4261412864的整数。

l Tag tag:可多选参数,指定发布的缺省路由的标记值。只有当IS-IS的开销类型为wide、wide-compatible或compatible时,发布的LSP中才会携带tag值。

l Level-1|level-1-2|level-2:可多选选项,分别指定发布的缺省路由级别为L1、L1/2、L2.如果不指定级别,缺缺省为L2级别的缺省路由。如果在L1设备上配置了该命令,那么该设备只会向L1区域发布缺省路由,不会将缺省路由发布到L2区域;如果在L2设备上配置了该命令,那么该设备只会向L2区域发布缺省路由,不会讲缺省路由发布到L1区域。缺省同时发布到L1、L2区域中。

l Avoid-learning:可选项,指定避免IS-IS进程学到其他路由协议或其他IS-IS进程生成的缺省路由,并添加到IS-IS路由表。如果路由表中已经存在学习到的缺省路由为活跃状态,则将此路由置为不活跃状态。

缺省情况下,运行IS-IS协议的设备不生成缺省路由,可用undo default-route-advertise命令取消运行IS-IS协议的设备生成缺省路由。

2) 配置IS-IS引入外部路由

通过上文介绍的方法在IS-IS路由域边界设备上配置IS-IS发布缺省路由,可以将去往IS-IS路由域外部的流量吸收到该设备来处理。但是由于IS-IS域内的其他设备上没有去往外部的路由,因此大量的流量都会被转发到该边界设备,造成该设备负担过重。以外,在有多个边界设备时,会存在去往其他路由域的最优路由的选择问题。

此时,通过让IS-IS域内的其他设备获悉全部或部分外部路由的方法就可以解决以上两个问题,这就是本节要介绍的IS-IS外部路由引入功能。引入的外部路由包括其他进程IS-IS IPv6路由、IPv6静态路由、直连路由、RIPng路由、OSPFv3路由和BGP路由等。配置引入外部路由后,IS-IS设备将把引入的外部路由全部发布到IS-IS路由域。在这里有两种不同的配置方式。

l 当需要引入路由的开销进行设置时,可在对应的IS-IS进程下通过{static|direct |unr|{ospfv3|ripng|isis}[process-id]|bgp [permit-ibgp]}[cost cost |tag tag|route-policy route-policy-name]| [level-1|level-2|level-2-1]]*命令配置IS-IS引入外部路由。

l 当需要保留引入路由的原有开销时,可在对应IS-IS进程下通过IPv6 import-route {direct|unr|{ospfv3|ripng|isis}[process-id]|bgp [permit-ibgp]} inherit-cost [tag tag|route-policyroute-policy-name| [leve-1|level-2|level-1-2]]*命令配置IS-IS引入外部路由。但此时引入的源路由协议不能时static(静态路由)。

以上这两条IS-IS IPv6外部路由引入命令中的参数或说明如下。

l Rip:多选一选项,引入RIP路由。

l Isis:多选一选项,引入其他进程IS-IS路由。

l Ospf:多选一选项,引入OSPF路由。

l Process-id:可选参数,指定引入的RIP,或者IS-IS、或者OSPF路由的进程号,取值范围为1-65535的整数。指定此参数时,缺省值是1。

l Static:多选一选项,指定引入静态路由。

l Direct:多选一选项,指定引入直连路由。

l Unr:多选一选项,指定引入用户网络路由。

l Bgp:多选一选项,指定引入BGP路由。

l Permit-igbp:可选项,指定在引入iBPG路由时,若不指定此可选项,则引入的为eBPG路由。

l Cost cost:可多选参数,指定引入后的路由开销值,当路由器的csot-style为wide或wide-compatible时,引入路由的开销值取值范围是0-4261412864,否则取值范围是0-63,缺省值是0.

l Inherit-cost:表示引入外部路由时保留路由的原有开销值,这时将不能配置引入路由的开销类型和开销值。

l Tag tag:可多选参数,这个顶引入后逇逇路由标记,取值范围为1-4294967295的整数,主要用于在路由测录总进行路由分类。

l Route-policy route-policy-name:可多选参数,指定用于限制外部路由引入的路由策略名称,命名规则包括1-40个字符,区分大小写,不支持空格。

l Level-1:多选一选项,表示引入路由到L1的路由表中,如果不指定等级,缺省为引入路由到L2路由表中。

l Level-2:多选一选项,表示引入路由到L2的路由表中,如果不指定等级,缺省为引入路由到L2路由表中。

l Level-1-2:多选一选项,表示引入路由同时到L1和L2的路由表中,如果不指定等级,缺省为引入路由到L2路由表中。

尽管以上桉树和选项非常多,但其中绝大多数是可以选参数和可选项,都有缺省值,所以一般情况下,在配置路由引入时,仅需要指定必需的少数几个参数和选项。

3) 配置IS-IS发布部分外部路由到IS-IS路由域

上节介绍的IS-IS IPv6外部路由引入功能,在配置引入外部路由后,IS-IS设备将把引入的外部路由全部发布到IS-IS路由域。但在本地IS-IS设备将引入的外部路由发布给其他的IS-IS设备时,如果其他IS-IS设备需要拥有全部的外表路由,则可以通过配置基本的IPv6 ACL或IPv6地址前缀列表或路由策略来控制只发布部分外部路由给其他IS-IS设备,具体配置方法时在对应的IS-IS进程视图下通过ipv6 filter-policy { acl6-number|acl6-name acl6-name |ipv6-prefix ipv6-prefix-name | route-policy route-policy-name} export [protocol [process-id]]命令配置仅允许向外发布符合条件的外部路由。如果指定了protocol参数,则只对特定协议引入的路由进行过滤。命令中的IPv6 ACL、IPv6地址前缀列表、路由策略将在本书第15章介绍。

4) 配置将部分IS-IS路由下发到IPv6路由表

IPv6报文是根据IPv6路由表来进行转发的。IS-IS路由表中的路由条目需要被成功下发到IPv6路由表中,该路由条目才生效。因此,可以通过配置IPv6地址前缀列表、路由策略等方式,只允许匹配的IS-IS路由下发到IPv6路由表中,不匹配的IS-IS路由将会被阻止进入IPv6路由表(但不影响在IS-IS路由表中存在),更不会被优选。

配置方法时在IS-IS进程视图下通过ipv6 filter-policy {acl6-number |acl6-name acl6-name | ipv6-prefix ipv6-prefix-name | route-policy route-policy-name} import命令将部分IS-IS路由下发到IPv6路由表。

5) 配置IS-IS IPv6路由聚合

可以将有相同IP前缀的路由聚合为一条路由,这样,一方面可以减小路由表规模,另外可以减少路由器生成的LSP报文大小和LSDB的规模。IS-IS的路由聚合时在任意IS-IS路由器上进行配置,被聚合的路由可以是IS-IS协议发现的路由,也可以是被引入的IPv6路由。另外,聚合后路由的开销值取所有被聚合路由中学到IPv6路由的最小开销值。

可在IS-IS进程视图下通过ipv6 酥麻麻 ipv6-address prefix-length [avoid-feedback | generate_null0_route | tag tag | [level-1 | level-1-2 | level-2]]*命令设置IS-IS生成IPv6聚合路由。参数ipv6-address prefix-length用来指定生成的聚合IPv6路由的网络地址和前缀长度,其他参数和选项的说明如下。

l Ip-address mask:指定聚合路由的网络IP地址和子网掩码。IS-IS聚合路由的子网掩码的前缀长度也必须小于所有被聚合路由的子网掩码长度,可以是对应的自然网段路由,甚至超网路由。

l Avoid-feedback:可多选选项,避免本地路由器通过路由SPF计算再次学习到这条聚合路由。因为聚合路由是用来向外发布的,不需要再本地路由表中存在。

l Generate_null0_route:可多选选项,为防止路由环路,在本地路由器上为配置的聚合路由生成一条以聚合路由为目的地址,下一秒为null0的黑洞路由。这样在本地路由器上所有倒带指定聚合路由网段的报文将直接丢弃,使聚合路由在本地路由器上不起报文转发的作用。

l Tag tag:可多选选项,表示为发布的聚合路由分配管理标记,取值范围为1-4294967295的整数,主要用于路由策略中进行路由分类。

l Level-1:多选一选项,表示只对发布到本地路由器L1区域的路由进行聚合。如果没有指定Level级别,缺省为L2。如果路由器是L2类型的,则不能选择此选项,但因为L1路由缺省是渗透到L2区域的,所以在L2区域中的路由器中也会见到这条聚合路由,而没有具体的明细路由。

l Level-1-2:多选一可选项表示发布到本地路由的L1区域和L2区域的路由都进行聚合。如果没有指定Level级别,缺省我了2。如果路由器是L1或L2类型,则不能选择此选项。

l Level-2:多选一可选项,表示只对发布到本地路由器的L2区域的路由进行聚合。如果没有指定Level级别,缺省为L2。如果路由器是L1类型的,则不能选择此选项。

配置了IS-IS路由聚合后,本地IS-IS设备的路由表保持不变。但是其他IS-IS设备的路由表中将只有一条聚合路由,没有具体路由。直到网络中被聚合的路由都出现故障而消失时,该聚合路由才回消失。

以上功能配置好后,可以在任意视图下执行以display命令查看相关配置,验证配置结果。

l Display isis lsdb [{level-1|level-2} |verbose | {local|lsp-id | is-name symbolic-name}]*[porecss-id | vpn-instance vpn-instance-name]:查看IS-ISde链路状体数据库信息。

l Display ipv6 routing-table:查看IPv6路由表信息。

继续阅读