本章仅介绍常用的地址前缀列表、AS路径过滤器、团体属性过滤器的配置。有关ACL(路由策略中仅可使用基本ACL)的配置方法参见配套图书《华为交换机学习指南》(第二版)。
配置地址前缀列表
当需要根据路由的目的地址控制路由的发布和接收时,可配置地址前缀列表。地址前缀列表可以单独使用,即可以不在路由策略if-match语句中被调用。
地址前缀列表过滤路由的原则可以总结为:顺序匹配、唯一匹配、缺省拒绝。
l 顺序匹配:按索引号从小到大顺序进行匹配。同一个地址前缀列表中的多条表项设置不同的索引号,可能会有不同的过滤效果,实际配置时需要注意。
l 唯一匹配:待过滤路由只要与一个表项匹配,就不会再去尝试匹配其他的表项。
l 缺省拒绝:未与任何一个表项匹配的路由都缺省为未通过地址前缀列表的过滤,即相当于在列表最后隐含了一条“拒绝所有”的表项。因此在一个地址前缀列表中仅创建一个或多个deny模式的表项后,需要创建一个permit表项来允许所有其他路由通过,否则所有的路由均被deny。
1) 地址前缀列表与ACL的区别
ACL和地址前缀列表都可以对路由进行筛选,ACL在匹配路由时只能匹配目的网络地址,但无法匹配掩码(地址前缀长度,ACL后跟的是通配符,而不是掩码)。二地址前缀比更为灵活,可以匹配路由的网络地址及掩码(或地址前缀),或掩码(或地址前缀)长度范围,增强了路由匹配的经确定。
如图15-3所示,SwitchB上有2条静态路由,如果只想将192.168.0.0/16这1条路由引入OSPF中,该怎么配置呢?
如果用rule permit source 192.168.0.0 0.0.255.255这条ACL规则作为引入到OSPF进程的路由过滤,会发现有2条192.168.0.0网段的路由,说明2条路由都被引入了。这是由于ACL规则中的0.0.255.255实际上是通配符,而不是掩码长度。
所谓通配符,就是指换算成二进制后,通配符中的“0”表示必须要与网络地址中匹配的位,“1”表示不需要与网络地址匹配的位。如192.168.0.0 0.0.255.255则表示匹配网络地址为192.168.0.0~192.168.255.255,而192.168.0.0/16和192.168.0.0/24都能成功匹配ACL 2001(因为通配符0.0.255.255表示路由目的地址只需匹配命令中网络地址最高两个字节192.168就行了),因此这2条路由匹配了OSPF路由引入的路由策略,都被引入了。ACL无法实现指匹配192.168.0.0/16或者指匹配192.168.0.0/24,ACL只能匹配网络地址,无法匹配掩码。
用地址前缀列表就可以轻松地对引入的路由进行过滤,如前面仅需要引入192.168.0.0/16这条路由(不引入192.168.0.0/24路由)。此时只需配置:i pip-prefix Huawei index 10 permit 192.168.0.0 16表项即可。因为在地址前缀列表中明确指定了路由目的网络掩码长度为16,所以最终只会允许16位掩码的192.168.0.0/16路由通过,而过滤掉192.168.0.0/24这条路由。
另外,地址前缀列表与ACL的区别还体现在:地址前缀列表仅可根据报文的IP地址进行过滤(即仅可过滤IP报文),ACL还可以根据MAC地址进行过滤(即可过滤二层数据帧),甚至用户报文的内容(即根据应用层内容进行过滤)。
1) 配置地址前缀列表
配置IPv4地址前缀列表的方法是在系统视图下使用ip ip-prefix ip-prefix-name [index index-number] {permit|deny} ipv4-address mask-length [match-network] [greater-equal greater-equal-vaule] [less-equal less-equal-value]命令。
配置IPv6地址前缀列表的方法是在系统视图下使用ip ipv6-prefix ipv6-prefix-name [index index-number] {permit|deny} ipv6-address mask-length [match-network] [greater-equal greater-equal-vaule] [less-equal less-equal-value]命令。
以上两命令中的参数和选项说明如下。
① ip-prefix-name、ipv6-prefix-name:指定地址前缀列表名称,唯一标识一个IPv4或IPv6地址前缀列表,为1-169个字符,区分大小写,不支持空格。
② index-number:可选参数,标识地址前缀列表中的一条匹配条件的索引号,取值范围为1-4294967295的整数。缺省情况下,该序号值按照配置先后顺序依次递增,每次加10,第一个序号为10,值越小越优先被匹配。同一个名称的地址前缀列表最多支持配置65535个索引号。
③ permit:二选一选项,指定由参数index-number标识的匹配条件的匹配模式为允许模式。该模式下,如果过滤的IP地址在定义的范围内,则通过过滤,进行相应的设置;否则,必须进行下一节点的测试。
④ deny:二选一选项,指定由参数index-number标识的匹配条件的匹配模式为拒绝模式。该模式下,如果过滤的IP地址在定义的范围内,则该IP地址不能通过过滤,从而不能进入下一节点单的测试;否则,必须进行下一节点的测试。
⑤ ipv4-address mask-length:指定用来进行路由匹配的网络IP地址和掩码长度,mask-length的取值范围为0-32.如果本参数指定为0.0.0.0 0,则代表所有路由。
⑥ ipv6-address prefix-length:知道你给用来进行路由匹配的IPv6地址和前缀长度。如果指定::,则表示匹配全零地址。前缀长度为整数形式,取值范围为0-128.如果使用::0 less-equal 128,则表示匹配所有IPv6地址。
⑦ match-network:可选项,指定匹配网络额地址,仅在ipv4-address参数值为0.0.0.0时才可以配置。用来匹配指定网络地址的路由。例如:ip ip-prefix prefix1 permit 0.0.0.0 8可以匹配掩码长度为8的所有路由;而ip ip-prefix prefix1 permit 0.0.0.0 8 match-network可以匹配目的IP地址在0.0.0.1-0.255.255.255范围内的所有路由。
【说明】一般情况下,IP地址的网络ID不能为0,但是在华为产品中可以支持网络ID为0,而主机ID不为0的IP地址。这种IP地址需要特殊的系统提供支持,所以才可选项实际上极少使用。
⑧ greater-equal greater-equal-value:可选参数,指定掩码(或前缀)长度可以匹配范围的下限(也即最小长度)。
l IPv4地址前缀列表中的取值限制为mask-length≤greater-equal-value≤less-equal-value≤32。如果没有配置下面要介绍的less-equal less-equal-value可选参数,则路由的掩码长度范围可在greater-equal-value和32之间,相当于less-equal-value等于32。如果同时不配置greater-equal greater-equal-value和less-equal less-equal-value可选参数,则仅匹配mask-length参数指定的掩码长度路由。
l IPv6地址前缀列表中的取值限制为prefix-length≤greater-equal-value≤less-equal-value≤128。如果没有配置下面要介绍的less-equal less-equal-value可选参数,则路由的掩码长度范围可在greater-equal-value和128之间,相当于less-equal-value等于128。如果同时不配置greater-equal greater-equal-value和less-equal less-equal-value可选参数,则仅匹配prefix-length参数指定的掩码长度路由。
⑨ less-equal less-equal-value:可选参数,指定掩码(或前缀)长度匹配范围的上限(即最大长度)
l IPv4地址前缀列表中的取值限制为mask-length≤greater-equal-value≤less-equal-value≤32。如果没有配置greate-equal greate-equal-value可选参数,则路由的掩码长度范围可在mask-length和less-equal-value之间,相当于greate-equal-value等于mask-length。如果同时不配置greater-equal greater-equal-value和less-equal less-equal-value,则s使用mask-length作为掩码长度路由。
l IPv6地址前缀列表中的取值限制为prefix-length≤greater-equal-value≤less-equal-value≤128。如果没有配置greater-equal greate-equal-value可选参数,则路由的掩码长度范围可在prefix-length和less-equal-value之间,相当于greater-equal-value等于prefix-length。如果同时不配置greater-equal greater-equal-value和less-equal less-equal-value可选参数,则使用prefix-length参数指定的掩码长度路由。
【经验之谈】在配置IPv4或IPv6地址前缀时,要注意以下几个方面。
l 如果指定ipv4-address mask-length为0.0.0.0 0,则只匹配缺省路由;如果指定ipv6-address prefix-length为::0,则只匹配IPv6缺省路由。
l 如果指定的IPv4地址前缀范围为0.0.0.0 0 less-equal 32,则匹配所有路由;如果指定的IPv6地址前缀范围为::0 less-equal 128,则匹配所有IPv6路由。
l 如果只配置greater-equal,和less-equal,则进行精确匹配,即只匹配掩码长度为mask-length(IPv4地址前缀列表)或prefix-length(IPv6地址前缀列表)的路由。
l 如果只配置greater-equal,则匹配的掩码长度范围为[greater-equal-value,32](IPv4地址前缀列表)或[greater-equal-value,128](IPv6地址前缀列表)。
l 如果只配置less-equal,则匹配的掩码长度范围为[mask-length,less-equal-value]。
l 如果同时配置了greater-equal和less-equal,则匹配的掩码长度范围为[greater-equal-value,less-equal-value]。
l 因为地址前缀列表采用缺省拒绝的匹配原则,如果地址前缀列表中的所有条件都是deny模式,则任何路由都不能通过该过滤列表。这种情况下,建议在多条deny模式的条件后定义提交permit 0.0.0.0 0 less-equal 32(IPv4地址前缀列表)或permit ::128(IPv6地址前缀列表)条件,允许其他所有的IPv4或IPv6路由信息通过。
缺省情况下,系统中无IPv4或IPv6地址前缀列表,可用undo ip ip-prefix ip-prefix-name [index index-number]或undo ip ipv6-prefix ipv6-prefix-name [index index-number]命令删除指定的IPv4或IPv6地址前缀列表。
用户下发地址前缀列表后,设备会对所下发的参数进行有效检查和处理,生成一个最终用于路由匹配的IP地址。
l 在IPv4地址前缀列表中,最终生成的表项IP地址(ipv4-address)参数部分使用户指定的ipv4-address和mask-length进行逻辑“与”运算后的结果。例如:如果指定ipv4-address mask-length为1.1.1.1 24,则实际生成的配置为1.1.1.0 24,1.1.1.0为1.1.1.1&0xFFFFFF00之后的结果。
l 在IPv6地址前缀列表中,最终生成的表项IP地址(IPv6-address)参数部分是用户指定的ipv6-address和prefix-length进行逻辑“与”运算后的结果。例如:如果指定ipv6-address、prefix-length为1::1 64,则实际生成的配置为1:: 64,1::为1::1&0xFFFF: FFFF: FFFF: FFFF::之后的结果。
配置完成后,可执行display ip ip-prefix [ip-prefix-name]任意视图命令,查看
v4地址前缀列表的详细配置信息。可执行display ip ipv6-prefix [ipv6-prefix-name]任意视图命令,查看IPv6地址前缀列表的详细配置信息。也可通过reset ip ip-prefix [prefix-name]、reset ip ipv6-prefix [ipv6-prefix-name]用户视图命令清除iPv4或IPv6地址前缀列表的统计数据。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/82786.html