案例1、OSPF中的路由过滤:
组网需要:
(1)所有的交换机都运行OSPF,整个自治系统划分为3个区域。
(2)其中Switch A和Switch B作为ABR来转发区域之间的路由。
(3)在Switch C上配置为ASBR引入外部路由(静态路由),并在Switch C上配置过滤策略,对引入的一条路由(3.1.3.0/24)进行过滤。
(4)在Switch A上配置路由策略,对路由(10.5.1.0/24)进行过滤。
组网图
配置步骤
(1)配置各接口的IP地址(略)
(2)配置OSPF(略)
(3)配置引入自治系统外部路由
# 在Switch C上配置一条到目的网段3.1.1.0/24的静态路由。
<SwitchC> system-view
[SwitchC] ip route-static 3.1.1.0 24 10.4.1.2
# 在Switch C上配置一条到目的网段3.1.2.0/24的静态路由。
[SwitchC] ip route-static 3.1.2.0 24 10.4.1.2
# 在Switch C上配置一条到目的网段3.1.3.0/24的静态路由。
[SwitchC] ip route-static 3.1.3.0 24 10.4.1.2
# 在Switch C上配置OSPF引入静态路由。
[SwitchC] ospf 1
[SwitchC-ospf-1] import-route static
[SwitchC-ospf-1] quit
# 在Switch A上查看路由信息。
<SwitchA> display ip routing-table
Routing Tables: Public
Destinations : 12 Routes : 12
Destination/Mask Proto Pre Cost NextHop Interface
3.1.1.0/24 O_ASE 150 1 10.2.1.2 Vlan200
3.1.2.0/24 O_ASE 150 1 10.2.1.2 Vlan200
3.1.3.0/24 O_ASE 150 1 10.2.1.2 Vlan200
10.1.1.0/24 Direct 0 0 10.1.1.1 Vlan200
10.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
10.2.1.0/24 Direct 0 0 10.2.1.1 Vlan200
10.2.1.1/32 Direct 0 0 127.0.0.1 InLoop0
10.3.1.0/24 OSPF 10 4 10.1.1.2 Vlan100
10.4.1.0/24 OSPF 10 13 10.2.1.2 Vlan200
10.5.1.0/24 OSPF 10 14 10.1.1.2 Vlan100
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
(4)在Switch C配置对路由3.1.3.0/24进行过滤
# 配置IPv4地址前缀列表。
[SwitchC] ip ip-prefix prefix1 index 1 deny 3.1.3.0 24
[SwitchC] ip ip-prefix prefix1 index 2 permit 3.1.1.0 24
[SwitchC] ip ip-prefix prefix1 index 3 permit 3.1.2.0 24
# 配置对引入的静态路由信息进行过滤,过滤掉路由3.1.3.0/24。
[SwitchC] ospf 1
[SwitchC-ospf-1] filter-policy ip-prefix prefix1 export static
# 在Switch A上查看路由信息。
<SwitchA> display ip routing-table
Routing Tables: Public
Destinations : 11 Routes : 11
Destination/Mask Proto Pre Cost NextHop Interface
3.1.1.0/24 O_ASE 150 1 10.2.1.2 Vlan200
3.1.2.0/24 O_ASE 150 1 10.2.1.2 Vlan200
10.1.1.0/24 Direct 0 0 10.1.1.1 Vlan100
10.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
10.2.1.0/24 Direct 0 0 10.2.1.1 Vlan200
10.2.1.1/32 Direct 0 0 127.0.0.1 InLoop0
10.3.1.0/24 OSPF 10 4 10.1.1.2 Vlan100
10.4.1.0/24 OSPF 10 13 10.2.1.2 Vlan200
10.5.1.0/24 OSPF 10 14 10.1.1.2 Vlan100
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
可以看到,到目的网段3.1.3.0/24的路由被过滤掉了。
(5)在Switch A上配置对路由10.5.1.1/24进行过滤
# 在Switch A上配置访问控制列表。
<SwitchA> system-veiw
[SwitchA] acl number 2000
[SwitchA-acl-basic-2000] rule 0 deny source 10.5.1.0 0.0.0.255
[SwitchA-acl-basic-2000] rule 1 permit source any
[SwitchA-acl-basic-2000] quit
# 配置对通过LSA计算出来的路由信息10.5.1.0/24进行过滤。
[SwitchA] ospf 1
[SwitchA-ospf-1] filter-policy 2000 import
[SwitchA-ospf-1] quit
# 在Switch A上查看路由信息。
[SwitchA] display ip routing-table
Routing Tables: Public
Destinations : 10 Routes : 10
Destination/Mask Proto Pre Cost NextHop Interface
3.1.1.0/24 O_ASE 150 1 10.2.1.2 Vlan200
3.1.2.0/24 O_ASE 150 1 10.2.1.2 Vlan200
10.1.1.0/24 Direct 0 0 10.1.1.1 Vlan100
10.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
10.2.1.0/24 Direct 0 0 10.2.1.1 Vlan200
10.2.1.1/32 Direct 0 0 127.0.0.1 InLoop0
10.3.1.0/24 OSPF 10 4 10.1.1.2 Vlan100
10.4.1.0/24 OSPF 10 13 10.2.1.2 Vlan200
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
可以看到,到10.5.1.1/24的路由被过滤掉了。
案例2,BGP中的路由过滤:
BGP路由过滤的实施点
BGP路由过滤的策略可以在本地对从对等体接收路由入方向、本地发布路由以及对对等体发送路由出方向处实施。
1、接收路由(Import Policy)
在收到BGP对等体的路由时,我们可以执行路由策略,过滤我们不需要的BGP路由。
路由策略的执行在BGP往路由表添加路由之前,所以路由一旦被过滤掉,这些路由不添加到在执行策略的设备的路由表中,在本地不负责转发。
路由策略可以对所有接收的路由作过滤,也可以只对特定的BGP对等体或对等体组作过滤。
2、本地发布路由
对于本地发布的路由,主要是指通过network、import方式本地发布的BGP路由,我们可以执行路由策略,过滤我们不需要发布的BGP路由。
路由策略的执行在BGP往路由表添加路由之前,这些路由可以有选择的发布给所有BGP对等体。
3、发送路由(Export Policy)
在给BGP对等体发送路由的时候,我们也可以执行路由策略,过滤我们不想发布的BGP路由。
路由策略的执行在BGP往路由表添加路由之后,所以本地路由表中匹配deny策略的路由依然生效,在本地可以转发,只不过不向配置策略的对等体发送该BGP路由,让对等体无法从自己学习使用该路由。
路由策略可以对所有对等体做过滤,也可以只对特定的BGP对等体或对等体组作过滤。
4、实际案例
IP Prefix
IP Prefix是一种针对路由目的地址信息做过滤的工具,同样是对路由目的地址做过滤,它使用名字而不是序号作为列表的标识。
举个例子,路由表里有2条这样的路由10.0.0.0/16和10.0.0.0/24,考虑路由表的容量,想将10.0.0.0/24这条路由过滤掉。这时我们可以使用IP Prefix,指定只deny 10.0.0.0/24,允许其他路由通过。同时提醒两点要注意:第一,无论是ACL还是IP Prefix过滤,缺省都是deny all的,所以我们在配置需要过滤的路由条目后,最后还要配置一条permit命令让其他路由通过。第二,设备如果不支持Route refresh能力,需要手动reset bgp对等体过滤策略才生效;设备如果支持Route refresh能力,对等体不支持Route refresh能力,需要和相应对等体配置peer x.x.x.x keep-all-routes。
ip ip-prefix test index 10 deny 10.0.0.0 24 greater-equal 24 less-equal 24
ip ip-prefix test index 20 permit 0.0.0.0 0 less-equal 32
bgp 100
filter-policy ip-prefix 1 import
查看IP路由表,从路由表可以看出10.0.0.0/24路由已经从路由表中消失,10.0.0.0/16的路由依然在路由表中,就可以满足我们的要求,从这个例子,我们可以看出IP Prefix可以更灵活地过滤路由,因为它不光可以匹配地址信息,而且可以匹配掩码的长度。
[H3C-bgp]display ip routing-table
Routing Tables: Public
Destinations : 5 Routes : 5
Destination/Mask Proto Pre Cost NextHop Interface
10.0.0.0/16 BGP 255 0 10.1.1.2 GE0/1
10.1.1.0/24 Direct 0 0 10.1.1.1 GE0/1
10.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
IP Prefix也可以针对一段掩码范围做过滤。在原来的路由表中有多了很多11开头的路由,我们精简路由,要求只需要掩码是16的路由。
<H3C>display ip routing-table
Routing Tables: Public
Destinations : 9 Routes : 9
Destination/Mask Proto Pre Cost NextHop Interface
10.0.0.0/16 BGP 255 0 10.1.1.2 GE0/1
10.1.1.0/24 Direct 0 0 10.1.1.1 GE0/1
10.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
11.0.0.0/16 BGP 255 0 10.1.1.2 GE0/1
11.0.0.0/27 BGP 255 0 10.1.1.2 GE0/1
11.0.1.0/25 BGP 255 0 10.1.1.2 GE0/1
11.0.2.0/26 BGP 255 0 10.1.1.2 GE0/1
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
我们可以在原来的配置基础上再添加一条如下的命令即可。注意,IP Prefix匹配顺序是根据表项的index号匹配的,index号越小,越先匹配,本例中之前的两条表项的index分别是10和20,我们要使再配置的表项信息能在两者之间作匹配,只需配置的index在两者之间即可,例子中使用的index是11。
ip ip-prefix 1 index 11 deny 11.0.0.0 16 greater-equal 17 less-equal 32
查看IP路由表,路由表中除了11.0.0.0/16,其他的路由都没有了,满足了我们的要求,可以看出IP Prefix还是很好用的工具。
[H3C]dis ip routing-table
Routing Tables: Public
Destinations : 6 Routes : 6
Destination/Mask Proto Pre Cost NextHop Interface
10.0.0.0/16 BGP 255 0 10.1.1.2 GE0/1
10.1.1.0/24 Direct 0 0 10.1.1.1 GE0/1
10.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
11.0.0.0/16 BGP 255 0 10.1.1.2 GE0/1
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0