(二) Distribute-list
作用:
<1> 控制路由条目的分发,及路由的重分布。 <2> 建立一个"route firewall"
关于路由协议:
Distance Vector Routing Protocol: Route Filtering 可以控制其通告/接收及重分布的路由条目。
Link-State Routing Protocol: Route Filtering 只可以控制置入 Routing Table 的路由条目(该
路由条目仍会保存于 LSDB 内)及重分布时的路由条目。
注 :LS Routing Protocol 的一个基本的要求就是在一个 area 内所有 Routers 的 Link State Database 必须一致,所以如果 Route Filtering 能过滤掉 LS Routing Protocol 的 LSA 通告,就 违背了 LS Routing Protocol 的规范。
Case Study: Filtering Specific Routes
router rip
version 2
network 192.168.75.0
distribute-list 1 in Serial1
!
ip classless
access 1 permit 0.0.0.0
Case Study: Route Filtering and Redistribution
注:
distribute-list 命令用于 Link-State Routing Protocol 时:
与接口联用: 只能使用 in 参数
与路由进程联用: 只能使用 out 参数
两种方案效果相同。与接口联用的方案在抑制 route feedback 上效果比较好;与路由进程联用
的方案在抑制 route feedback 时,由于在过滤时,相应的路由条目已经进行了路由表,所以失
效。
<1> 与接口联用
router ospf 25
redistribute rip metric 100
network 172.16.1.254 0.0.0.0 area 25
network 172.16.8.254 0.0.0.0 area 25
network 172.16.50.254 0.0.0.0 area 25
distribute-list 3 in Ethernet0/0
distribute-list 3 in Ethernet0/1
distribute-list 3 in Ethernet0/2
!
router rip
redistribute ospf 25 metric 5
passive-interface Ethernet0/0
passive-interface Ethernet0/1
passive-interface Ethernet0/2
network 192.16.0.0
distribute-list 1 in Ethernet0/3
distribute-list 1 in Ethernet2/0
distribute-ilst 1 in Ethernet2.1
!
ip classless
access-list 1 permit 172.16.128.0 0.0.127.255
access-iist 3 permit 172.16.0.0 0.0.127.255
<2> 与路由进程联用:
router ospf 25
redistribute rip metric 100
network 172.16.1.254 0.0.0.0 area 25
network 172.16.8.254 0.0.0.0 area 25
network 172.16.50.254 0.0.0.0 area 25
distribute-list 10 out rip
!
router rip
redistribute ospf 25 metric 5
passive-interface Ethernet0/3
passive-interface Ethernet2/0
passive-interface Ethernet2/1
network 172.16.0.0
distribute-list 20 out ospf 25
!
ip classless
access-list 10 permit 172.16.130.0
access-list 10 permit 172.16.145.0
access-list 10 permit 172.16.240.0
access-list 20 permit 172.16.23.0
access-list 20 permit 172.16.9.0
access-list 20 permit 172.16.75.0
Case Study: distribute-list in (BGP)
Syntax:
distribute-list {acl-number | prefix list-name} in
no distribute-list {acl-number | prefix list-name} in Command Modes:
Router configuration
注:
<1> 在某些 Cisco IOS Software 上可能会显示出 interface type 和 number 属性。但无论哪一个 IOS 版本都不支持使用 interface type 及 number 属性。
<2> ACL 必须提前定义,否则 distribute-list 会允许所有流量。
<3> 必须使用 clear ip bgp in 命令重置路由器的 session,distribute-list 才会生效。
<4> 推荐使用 ip prefix-list 代替 distribute-list,从而得到更多的灵活性,distribute-list 也会在 以后的 IOS 版本被剔除。
<5> 在 distribute-list 命令中,access-list 及 prefix-list 是互不兼容的。 Configuration Guide:
<1> distribute-list 与 prefix-list 联用
Router(config)# ip prefix-list RED deny 0.0.0.0/0 le 32 Router(config)# ip prefix-1ist RED permit 10.108.0.0/16 Router(config)# ip prefix-list RED permit 192.168.1.0/24 Router(config)# !
Router(config)# router bgp 50000
Router(config-router)# network 10.108.0.0
Router(config-router)# distribute-list prefix RED in Router(config-router)# end
Router# clear ip bgp in
<2> distribute-list 与 access-list 联用
Router(config)# access-list 1 permit 192.168.1.0
Router(config)# access-list 1 permit 10.108.0.0
Router(config)# access-list 1 deny 0.0.0.0 255.255.255.255 Router(config)# !
Router(config)# router bgp 50000
Router(config-router)# network 10.108.0.0
Router(config-router)# distribute-list 1 in
Router(config-router)# end
Router# clear ip bgp in
Case Study: distribute-list in (IP)
Syntax:
distribute-list [access-list-number | name] |
interface-number]
no distribute-list [access-list-number | name]
interface-number]
Command Modes:
Address family configuration
Router configuration
注:
<1> route-map 属性只能用于 OSPF 的过滤。
[route-map map-tag] in [interface-type |
| [route-map map-tag] in [interface-type |
<2> interface-type 及 interface-number 属性不能用于 address family configuration mode。
<3> distribute-list 不能过滤进入 LSDB 的 LSA。如果对 OSPF 使用 distribute-list,只能过滤路 由进入路由表。
Configuration Guide:
<1> distribute-list 用于 EIGRP
access-list 1 permit 0.0.0.0
access-list 1 permit 10.108.0.0
access-list 1 deny 0.0.0.0 255.255.255.255
router eigrp
network 10.108.0.0
distribute-list 1 in
<2> distribute-list 用于 OSPF
route-map tag-filter deny 10
match tag 777
route-map tag-filter permit 20
!
router ospf 1
router-id 10.0.0.2
log-adjacency-changes
network 172.16.2.1 0.0.0.255 area 0
distribute-list route-map tag-filter in
Case Study: distribute-list in (总结)
<1> BGP: 有 可 能 在 哪 些 版 本 的 IOS 配 置 或 SHOW 上 显 示 出 关 于 distribute-list in 使 用 interface-type 及 interface-number 属性,但任何版本的 IOS 都不支持配置这些属性。
<2> 其它 IP 协议(OSPF):可以在 distribute-list in 中作用 interface-type 及 interface-number 属性,也可以使用 route-map 属性(仅限于 OSPF)。
<3> OSPF 及 BGP 可以使用 access-list-number/access-list-name/prefix-list 属性。
Case Study: distribute-list out (BGP)
Syntax:
distribute-list acl-number | prefix list-name out [protocol process-number | connected | static]
no distribute-list acl-number | prefix list-name out [protocol process-number | connected | static] Command Modes:
Router configuration