我们无论在实际应用,还是CCIE实验中,路由重分发、路由过滤一向会是一个难点,现把几点需要注意的地方总结如下:
一、路由过滤的方法:(三种)
1、distribute-list
2、route-map
3、summary
下面分别简单举例,只允许10.10.0.0/16条目进入路由表
1、distribute-list
ip prefix-list cracker permit 10.10.0.0/16
router eigrp 10
distribute-list prefix-list cracker in s0/0
2、route-map
ip prefix-list cracker permit 10.10.0.0/16
route-map cracker permit 10
match ip address prefix-list cracker
router ospf 10
redis eigrp 10 metric 100 subnets route-map cracker
3、summary
有时我们可以用summary来汇总路由,并且由于汇总对精细路由条目抑制的本能,我们相当于又多加了一条过滤语句,但也有特例,那就是RIP和BGP.
int s0/0
ip summary-address eigrp 10 10.10.0.0 255.255.0.0
从s0/0发出的路由将在汇总的同时被过滤。
如果是RIP:
int s0/0
ip summary-address rip 10.10.0.0 255.255.0.0
仅这一句是不够的,我们还要另做过滤
ip prefix-list cracker permit 10.10.0.0 255.255.0.0
router rip
distribute-list prefix-list cracker out s0/0
二、路由过滤
路由过滤仅对Distance-vector 路由协议有效,OSPF这类link-status协议无视路由过滤,当然除非我们在路由进程下去做。
这也是我们为什么经常在其它路由协议向OSPF重分发时,看不到路由过滤语句distribute-list存在的原因。但这不代表使用route-map的方法不可以。
下面我们分两种情况讨论
1、EIGRP RIP 这两种路由协议,无论你在in out方向均可做,不用过多考虑,直接distribute-list上。
例:禁止10.10.0.0/16汇总路由进入EIGRP/RIP
router rip
distribute-list prefix-list cracker in s0/0
ip prefix-list cracker deny 10.10.0.0/16
ip prefix-list cracker permit 0.0.0.0/0 le 32
router eigrp 10
distribute-list prefix-list cracker in s0/0
2、OSPF 路由过滤
例:禁止10.10.0.0/16汇总路由进入OSPF
router os 10
redis eigrp 10 metric 100 subnets route-map cracker
ip prefix-list cracker permit 10.10.0.0/16
route-map 22817747 deny 10
match ip addr prefix-list cracker
route-map 22817747 permit 20
三、重分发
重分发的METRIC设置方法就不提了,重要的是他的原理。我们不讲单点单向重分发,单点双向重分发,双点重分发,双点双向重分发。
1、单点重分发我们只提一点,所有的情况你都可以自已推断:
重分发,分发的是当前路由器“路由表”中的内容,注意,一定是路由表,路由协议数据库中的条目不管。OSPF数据库中的内容,redistribute程序是不会知道的。
这样也就解决了单点双向重分发为什么不会产生路由回溃的原因。发往一个方向的路由不会被重分发回来,因为在分发点上是看不到被分发后的路由的。
2、而双点双向重分发,也只需记住一点:
AD值高的路由协议向AD值低的路由协议中重分发,会产生次优路径、路由环路等问题,需要加以过滤或对AD值进行更改。注意:错误只发生在边界路由器上!
AD值低的路由协议向AD值高的路由协议中重分发,不会产生次优路径、路由环路等问题,无需考虑。
结合你自已的拓扑,仔细研究一下,相信很快问题就会清楚的。
四、双点双向重分发中次优路径问题
解决方法,这里提一下,两种:
1、路由过滤。
不让产生环路的路由条目进入我这台路由器,这样也就不会产生次优路径了,因为路由器根本就没有两条路可走。
2、AD值更改
我们可以把次优路由条目的AD值调高,高到路由器即便看到两条路由条目去往同一目的的,也不会选择这条次优路径。
例:
当EIGRP外部路由(ad:170)重分发进OSPF后,边界路由会有两条选择,一条是EIGRP内部到达目的,另一条是从OSPF学到的往同样目的去的路由,这条路由是由另外一台重分发路由器从EIGRP分发过来的。这时,ASBR会选择OSPF的,因为其AD为110,小于EIGRP DEX 的170.
我们可以把这个学来的条目的AD值调高到超过EIGRP DEX 170的值,这里我们调到250.呵呵,简直就是二百五
router ospf 10
distance 250 10.10.1.1 0.0.0.0 44
access-list 44 permit 100.100.100.100/32