路由控制简介
控制路由的发布:通过路由策略对发布的路由进行过滤,只发布满足条件的路由。
控制路由的接收:通过路由策略对接收的路由进行过滤,只接收满足条件的路由。
控制路由的引入:通过路由策略控制从其他路由协议引入的路由条目,只有满足条件的路由才会被引入。
匹配工具1:访问控制列表

通配符

匹配规则:
“0”表示“匹配”;“1”表示“无需匹配”
如果要精确匹配192.168.1.1/24这个IP地址对应的网段地址,通配符是多少?
网络位需要严格匹配,主机位无所谓,因此通配符为“0.0.0.255
ACL的分类与基本ACL
分类 | 编号范围 | 规则定义描述 |
基本ACL | 2000~2999 | 仅使用报文的源IP地址、分片信息和生效时间段信息来定义规则。 |
高级ACL | 3000~3999 | 可使用IPv4报文的源IP地址、目的IP地址、IP协议类型、ICMP类型、TCP源/目的端口、UDP源/目的端口号、生效时间段等来定义规则。 |
二层ACL | 4000~4999 | 使用报文的以太网帧头信息来定义规则,如根据源MAC地址、目的MAC地址、二层协议类型等。 |
用户自定义ACL | 5000~5999 | 使用报文头、偏移位置、字符串掩码和用户自定义字符串来定义规则。 |
用户ACL | 6000~6999 | 既可使用IPv4报文的源IP地址或源UCL(User Control List)组,也可使用目的IP地址或目的UCL组、IP协议类型、ICMP类型、TCP源端口/目的端口、UDP源端口/目的端口号等来定义规则。 |
基本ACL
ACL的匹配机制
ACL的匹配顺序及匹配结果
系统按照ACL规则编号从小到大的顺序进行报文匹配,规则编号越小越容易被匹配
匹配工具2:IP前缀列表
不同于ACL,IP-Prefix List能够同时匹配IP地址前缀长度以及掩码长度,增强了匹配的精确度
IP-Prefix的匹配机制
路由策略工具
策略工具1:Filter-Policy

Filter-Policy在距离矢量路由协议中的应用(RIP)
在距离矢量路由协议中,设备之间传递的是路由信息,如果需要对这种路由信息进行某种过滤,可以使用Filter-Policy实现
RIP是基于路由表生成路由的,因此过滤器会影响从邻居接收的路由和向邻居发布的路由
如果要过滤掉上游设备到下游设备的路由,只需要在上游设备配置filter-policy export或者在下游设备上配置filter-policy import
Filter-Policy在链路状态路由协议中的应用(OSPF)
在链路状态路由协议中,各路由设备之间传递的是LSA信息,然后设备根据LSA汇总成的LSDB信息计算出路由表。但是Filter-Policy只能过滤路由信息,无法过滤LSA。
OSPF把网络中所泛洪的LSA存储到自己的LSDB中,并且运行SPF算法,计算出一颗以自己为根,无环的最短路径树,Filter-Policy对OSPF计算出来的路由(加载到路由表之前)进行过滤,而不会对LSA进行过滤
OSPF中使用Filter-Policy
filter-policy import对接收的路由过滤,只有通过过滤策略的路由才被添加到路由表中,没有通过过滤策略的路由不会被添加进路由表,但不影响对外发布出去
在OSPF中import-route引入外部路由后,为了避免路由环路的产生,通过filter-policy export命令对引入的路由在发布时进行过滤,只将满足条件的外部路由转换为Type5 LSA(AS-external-LSA)并发布出去。
BGP中使用Filter-Policy
对BGP设备全局接收的路由进行过滤,决定是否将路由添加到BGP路由表中。
将对外发布的路由进行过滤,只有通过过滤的路由才能加入BGP本地路由表,并被BGP发布
策略工具2:Route-Policy
Route-Policy是一个策略工具,用于过滤路由信息,以及为过滤后的路由信息设置路由属性
一个Route-Policy由一个或多个节点(Node)构成,每个节点都可以是一系列条件语句(匹配条件)以及执行语句(执行动作)的集合,这些集合按照编号从小到大的顺序排列
当使用Route-Policy时,Node的值小的节点先进行匹配。一个节点匹配成功后,路由将不再匹配其他节点。全部节点匹配失败后,路由将被过滤
Route-Policy的组成
一个Route-Policy由一个或多个节点构成,每个节点包括多个if-match和apply子句
Route-Policy的匹配顺序
当路由与该节点的任意一个If-match子句匹配失败后,进入下一节点。如果和所有节点都匹配失败,路由信息将被拒绝通过
路由控制案例
对接收的路由进行过滤
R1、R2、R3运行OSPF,R1将192.168.1.0/24、192.168.2.0/24、192.168.3.0/24和192.168.4.0/24宣告进OSPF。
现在要求R2不能访问R1上192.168.1.0/24网段,但是R3可以正常访问
在R2上对接收的路由使用Filter-Policy import
对发布的路由进行过滤
R1、R2、R3运行OSPF,R1将直连网段192.168.1.0/24、192.168.2.0/24、192.168.3.0/24和192.168.4.0/24引入OSPF。
现在要求R2、R3只能学习到192.168.1.0/24网段的路由,学习不到其他三个网段的路由
在R1上使用Filter-Policy对引入的路由在发布时进行过滤
修改路由属性
R1、R2、R3运行OSPF,R1将直连网段192.168.1.0/24引入OSPF。
现在要求R2、R3学到的OSPF路由192.168.1.0/24为external-type 1路由(默认为external-type 2路由)。
在R1上使用Route-Policy在引入路由时修改外部路由的类型为external-type 1。