路由过滤和控制

一、被动接口

passive interfaces (不发hello包和update包,rip除外)

二、路由过滤

常用方法:
a.ACL
b.prefix list前缀列表,可匹配掩码
c.distribute list 分布列表
d.route-map,调用acl,prefix list

1.distribute list

概念:分布列表通过调用ACL来对路由进行过滤,可以在一个单独的路由区域内过滤,也可在路由协议之间做重分发的时候进行过滤。

a.接口上过滤

R1(config)#access-list 2 permit 2.2.2.0
R1(config-router)#distribute-list 2 in serial 0  #只允许2.2.2.0路由从S0进

b.在路由协议内做过滤
EIGRP

R1:access-list 1 permit 1.1.1.0 0.0.0.255
R1:router eigrp 100
R1:distribute-list 1 out s1/1 #R1接口out方向做过滤

R2:只有1.1.1.0的路由
R2:access-list 1 permit 1.1.1.0 0.0.0.255
R2:router eigrp 100
R2:distribute-list 1 in s1/0 #R2接口in方向做过滤

OSPF(不能在接口out方向做协议内过滤)

R2:access-list 1 permit 1.1.1.0 0.0.0.255
R2:router ospf 1
R2:distribute-list 1 in s1/0 #R2接口in方向做过滤可以

c.重分发时过滤(协议间过滤)
注意:当在重分布时进行过滤,仅允许使用关键字out,后面可以跟上协议名,但不能跟接口,因为无意义(即:in后面不能跟协议,只有out后能跟)

R2:router eigrp 100
R2:redistribute ospf 1 metric 1 1 1 1 1
R2:router ospf 1
R2:redistribute eigrp 100 subnets

R2:access-list 1 deny 1.1.1.0 0.0.0.255
R2:access-list 1 permit any
R2:access-list 2 deny 3.1.1.0 0.0.0.255
R2:access-list 2 permit any

R2:router eigrp 100
R2:distribute-list 1 out ospf 1
R2:rotuer ospf 1
R2:distribute-list 2 out eigrp 100

2.Prefix-List 前缀列表

概念:和ACL类似的东东,设计用于专抓路由的工具,不仅可以匹配网络号,还可以匹配掩码

写法一:

ip prefix-list mymatchlist permit 192.168.0.0/16
含义:掩码要16位,前16位也要匹配 

写法二:

ip prefix-list List1 permit 192.168.0.0/16 le 20
含义:掩码16~20位,前16位也要匹配

特殊写法举例:

0.0.0.0/0 : 只匹配默认路由
0.0.0.0/0 le 32 :匹配any
0.0.0.0/0 ge 32 :所以主机(host)路由
0.0.0.0/0 ge 1 le 32:除默认路由
A类路由:ip prefix-list 1 permit 0.0.0.0/1 le 32
B类路由:ip prefix-list 1 permit 128.0.0.0/2 le 32
C类路由:ip prefix-list 1 permit 192.0.0.0/3 le 32

协议内调用

R4(config)#ip prefix-list 2(用名字也行) permit 2.2.2.0/24
R4(config-router)#distribute-list prefix 2 in serial 1

利用前缀列表过滤OSPF
要求:在如上图所示的拓朴中,在R1上利用前缀列表做过滤,不要向AREA0区域传递172.16.1.1的路由。

R1:
ip prefix-list 1 seq 5 deny 172.16.1.1/32
ip prefix-list 1 seq 10 permit 0.0.0.0/0 le 32 #匹配any

router ospf 110
  area 1 filter-list prefix 1 out

3.Route-Map

(1)也叫路由图或者路由映射表,是对路由进行加工处理的工具。

(2)注意:
1、route-map可以调用ACL或prefix抓出一部分路由进行加工处理
2、每一个route-map可以有多条语句,每条语句都有一个序号
3、每条语句都有两种动作:match 和 set
4、每条语句对抓出来的路由都有两种处理方式:permit 或 deny
5、使用范围:重分发、PBR、BGP
6、route-map 重分发时默认拒绝所有;PBR时默认允许所有

(3)route-map的使用分三步操作:
1、定义ACL或prefix抓出路由
2、定义route-map说明对匹配的路由所采取的处理方式
3、调用route-map

(4)route-map的匹配逻辑:
route-map NAME permit 10
match ip address x y z
-------> OR
match ip address a ¦
match ip address b ¦ AND
match ip address c ↓

如不写match/set,默认: match any,set nothing

(5)例:
要求在R1上将EIGRP重分布进OSPF,其中172.16.1.0路由要以OE1重分布,172.16.2.0路由重分布时metric值要改为100,172.16.3.0的路由不允许重分布,其它路由不改动,默认重分布。

R1(config)#access-list 1 permit 172.16.1.0 0.0.0.0
R1(config)#access-list 2 permit 172.16.2.0 0.0.0.0
R1(config)#access-list 3 permit 172.16.3.0 0.0.0.0

R1(config)#route-map WOLF permit 10
R1(config-route-map)#match ip address 1
R1(config-route-map)#set metric-type type-1

R1(config)#route-map WOLF permit 20
R1(config-route-map)#match ip address 2
R1(config-route-map)#set metric 100

R1(config)#route-map WOLF deny 30
R1(config-route-map)#match ip address 3

R1(config)#route-map WOLF permit 40
R1(config-route-map)#exit

R1(config)#router ospf 110
R1(config-router)#redistribute eigrp 90 subnets route-map WOLF   #调用route-map

(6)使用route-map打tag
作用:可以对一些路由打上tag,好让后面的路由器根据tag找出这些路由并进行相应的策略

要求:
1、在R3上将RIP重分布进OSPF
2、在R1上将OSPF重分布进EIGRP,但不能将从RIP学到的路由带过去

可以用tag解决:
1、在R3上将RIP重分布进OSPF时,利用route-map打上tag标记
2、在R1上将OSPF重分布进EIGRP时,找出打了tag标记的路由再deny掉就行了

R3(config)#route-map WOLF permit 10
R3(config-route-map)#set tag 20

R3(config)#router ospf 110
R3(config-router)#redistribute rip subnets route-map WOLF


到了R1之后,对打tag的路由丢弃
R1(config)#route-map CCNP deny 10
R1(config-route-map)#match tag 20
R1(config)#route-map CCNP permit 20    #一定要写一条空语句放行其它的路由
R1(config-route-map)#exit

R1(config)#router eigrp 90
R1(config-router)#redistribute ospf 110 metric 1500 100 255 1 1500 route-map CCNP

4.PBR策略路由

(1)概念:PBR就是使用route-map这一工具对某个接口进来的数据流做一些策略,符合条件的按相应的策略进行路由,不符合条件的按正常情况进行转发。

(2)规则:
a.PBR优于路由表-----如果路由器上设置了PBR,当数据包到达路由器时,是先匹配PBR,如果匹配上了,直接按PBR进行转发,如果没匹配上,再去找路由表进行转发,所以说PBR覆盖了正常的路由选择进程。

b.PBR中不匹配的数据包不会DENY(丢弃),而是normal forwarding(正常转发)

c.PBR只针对于入项接口

(3)应用举例:多ISP选路

路由过滤和控制_第1张图片
第一步:
R1(config)#access-list 1 permit 1.1.1.0 0.0.0.255
R1(config)#access-list 2 permit 2.2.2.0 0.0.0.255

第二步:
R1(config)#route-map WOLF permit 10
R1(config-route-map)#match ip address 1
R1(config-route-map)#set ip next-hop 12.1.1.2 发给与本机直连的下一跳路由器

R1(config)#route-map WOLF permit 20
R1(config-route-map)#match ip address 2
R1(config-route-map)#set ip next-hop 13.1.1.3 

第三步:
R1(config)#int e0/0  (入口调用策略)
R1(config-if)#ip policy route-map WOLF

(4)本地策略路由:                    
·PBR默认对本地产生的数据流量不起效。也就是对自已产生的包不执行策略。

R3(config)#ip local policy route-map PBR名称 (使PBR对本地数据流量有效)加上这一条命令才会对自已产生的包也做策略

(5)查看

debug ip policy

你可能感兴趣的:(路由过滤和控制)