在IGP网络中,对路由进行过滤的方法:
1.passive-interface (被动接口)
2.access-list(访问控制列表)
3.distribute-list (发布控制列表)
4.prefix-list(前缀控制列表)
5.route-map (路由映射图)
1.passive-interface(被动接口)
在距离矢量型的路由协议(RIP,IGRP)中,passive-interface只接收路由更新,不发送路由更新。
在链路状态型,混合型的路由协议(OSPF,ISIS,EIGRP)中,passive-interface抑制hello包的发送,不建邻居。既不接收路由,也不发送路由。
配置:
(config-router)#passive-interface <type number>
或者:
(config-router)#passive-interface default
(config-router)#no passive-int <type-number>
2.access-list(访问控制列表)
访问控制列表可以用来过滤路由。
(config)#access-list 110 deny tcp any eq 520 any eq 520
(config)#access-list 110 deny ospf any any
(config)#access-list 110 deny eigrp any any
(config-if)#ip access-list 110 out
3.distribute-list(发布控制列表)
在距离矢量型的路由协议(RIP,IGRP)中,distribute-list用来过滤路由。(交换的是路由)在链路状态型,混合型的路由协议中,
distribute-list只能用来影响路由在路由表中的显示,不影响LSP的交换,并且只能设置在in方向,不能设置在out方向。
配置:
(config)#access-list 10 permit 172.16.0.0 0.0.255.255
(config-router)#distribute-list {<access-list-number>/prefix <prefix-list-name>}{in/out}{type-number}
4.Prefix-List(前缀控制列表)
基于子网掩码的长度对路由进行过滤,可以实现对路由的精确控制。
a)创建prefix-list:
#ip prefix-list <list-name> [seq <seq-value>] {permit/deny} network/length [ge <ge-value>]
[le <le-value>]
[seq <seq-number>]设置前缀控制列表的序号(可选项)缺省从5开始,以5递增。
[length] 表示匹配的子网掩码的长度。
[ge <ge-value>],[le <le-value>]表示允许通过的子网掩码的位数。
如果只有[ge <ge-value>],表示允许通的子网掩码的长度为 ge-value ≤x≥32。
如果只有[le <le-value>],表示允许通过的子网掩码的长度为length ≤x≥le-value。
如果[ge <ge-value>],[le <le-value>]同时使用,
表示允许通过的子网掩码的长度为ge-value≤x≥le-value。
b)调用prefix-list:
可以在route-map或者distribute-list中调用。
#route-map cisco permit 10
#match ip address prefix-list <prefix-list-number>
#router rip
#distribute-list prefix <prefix-list-number>
注意隐含拒绝
(ip prefix-list xxx deny 0.0.0.0/0 ge 0 le 32)
5.route-map(路由映射图)
route-map可以应用于PBR,也可以应用于redistribution.
1)应用于PBR。
当route-map应用于PBR时,用来强制对用户的数据包进行选路。
所有与route-map不匹配的数据包,按照正常路径转发。
a)创建route-map:
route-map x permit 10
match ip address a b c
match ip address d e
set interface s0
route-map x permit 20
set interface s1
if
{match a or b or c} and {match d or e}
set interface s0
else
if
{match any}
set interface s1
match 代表条件,set代表行为.
在PBR中可用的match命令:
match ip address
match length
在PBR中可用的set命令:
set ip next-hop
set ip default next-hop
set interface
set default interface
set ip precedence
set ip tos
b)应用到接口:
(config-if)#ip policy route-map cisco
放在用户数据包进入的接口。
2)应用于redistribution.
当route-map应用于redistribution时,用来过滤路由。
所有与route-map不匹配的路由,deny。
route-map x permit 10
match ip address
1.通过distance来
影响路由器的选路:
10.0.0.0/8
|
|
RA
/ \
/ \
/ \
/ \
/ \ ospf
-------- RB RC --------
| | eigrp
|____________|
需求:考虑到冗余,要求在正常情况下,RC通过RB到网络10.0.0.0/8,
只有当RA与RB之间的链路DOWN掉后,RC才通过RA到网络10.0.0.0/8。
解决方案,在RB上做再发布,将10.0.0.0/8的路由再发布进EIGRP,此时,RC通过OSPF学到了网络10.0.0.0/8,
RC还通过EIGRP学到了网络10.0.0.0/8,在正常情况下,RC将选择通过RA到网络10.0.0.0/8,因为通过OSPF到网络 10.0.0.0/8的AD为110,通过EIGRP到网络10.0.0.0/8的AD为170。
为了让RC优选通过RB的路径到网络10.0.0.0/8,可以在RC上调整通过EIGRP学来的网络10.0.0.0/8的AD。
RB:
router eigrp 1
redistribute ospf 1 metric 10000 1000 255 1 1500
RC:
access-list 10 permit 10.0.0.0 0.255.255.255
router eigrp 1
distance 105 0.0.0.0 255.255.255.255 10
(从任意路由器学来的与访问表10相匹配的路由,把AD调整为105)
2.通过route tag来优化网络:
route-tag 可以用来为路由打标,然后可以基于这个tag来实施策略。
只有OSPF,EIGRP,ISIS支持路由tag.(打标的路由只能在OSPF,EIGRP,ISIS网络中传递)
172.16.10.0/24---
\ /
RIPA \ / RIPB
\ /
RA--------------OSPF---------------RB
/ \
IGRPA / \ IGRPB
/ \
172.16.20.0/24---
需求:
RA,RB是ISP的边界路由器,RA上连接有两个网络,RIPA,IGRPA。
RB上也连接有两个网络,RIPB,IGRPB。
RA与RB之间运行OSPF,
要求:
RA上RIPA网络的路由,通过OSPF,被再注入进RB所连的RIPB网络。
RA上IGRPA网络的路由,通过OSPF,被再注入进RB所连的IGRPB网络。
分析:
可以在RA上将RIP和IGRP再发布进OSPF,同时为RIPA路由和IGRPA路由设置不同的tag,当路由被从RB再发布进RIPB,IGRPB
时,可以基于tag,让RIPA再发布进RIPB,让IGRPA再发布进IGRPB。
解决:
RA:
router ospf 1
redistribute rip metric-type 1 metric 100 subnets route-map send-tag
route-map set-tag permit 10
match ip address prefix-list RIPA
set tag 1
route-map set-tag permit 20
match ip address prefix-list IGRPA
set tag 2
ip prefix-list RIPA permit 172.16.10.0/24
ip prefix-list IGRPA permit 172.16.20.0/24
RB:
router rip
redistribute ospf 1 metric 10 route-map receive-tag1
route-map receive-tag1 permit 10
match tag 1
router igrp 1
redistribute ospf 1 metric 10000 1000 255 1 1500 route-map receive-tag2
route-map receive-tag2 permit 10
match tag 2