1 路由策略简介
路由策略是网络控制平面的基石,它是一种通过预先定义的规则,来过滤、修改、选择或管理路由信息(路由条目)的工具。
其核心目标是影响路由表的内容和路由信息的传播,从而实现对网络流量的间接、智能控制。
简单来说,路由策略作用于“路由信息”本身,而策略路由作用于“数据包”转发路径。
下图清晰地展示了路由策略在网络中的工作位置、核心功能模块及其处理流程:
2 路由策略的实现
2.1核心作用与目标
路由策略主要用于实现以下目的:
- 路由过滤:决定哪些路由可以被学习(Import)或发布(Export)。
场景:只允许特定的业务网段路由在内部传播,或防止某些路由泄露给邻居AS。
- 路由属性修改:在路由被学习或发布前,修改其属性,以影响后续的路径选择。
场景:在BGP中,为从特定邻居学来的路由设置更高的LOCAL_PREF,使其成为优选出口;或设置MED来影响入站流量。
- 路由引入控制:在不同路由协议间(如OSPF与BGP互引)重分发路由时,进行精细化的过滤和标记,防止路由环路和次优路径。
- 路由决策影响:通过上述过滤和修改,最终影响路由器的路由表,从而间接地引导流量。
2.2核心组件
一个典型的、功能强大的路由策略由以下几部分逻辑构成:
- 匹配条件:
定义需要被策略处理的路由特征。常用工具包括:
- 访问控制列表:匹配路由前缀和掩码。
- 前缀列表:更灵活、更专业地匹配IP前缀和掩码长度范围。
- AS路径访问列表:在BGP中,匹配路由的
AS_PATH属性。 - 团体属性列表:在BGP中,匹配路由的
COMMUNITY属性。 - Tag值:匹配路由的标记(常用于协议间重分发防环)。
- 执行动作:
定义对匹配路由执行的操作,主要是:
- 允许:允许该路由通过或引入,并可选择性地修改其属性。
- 拒绝:过滤掉该路由,不允许其通过或引入。
- 策略节点:
- 将匹配条件与执行动作组合起来,形成一个基本的策略单元,称为“节点”。
- 节点有序号,策略按节点序号从小到大依次执行。
- 采用“首次匹配”原则:一旦路由匹配了某个节点的条件,就执行该节点的动作,并结束策略处理。
2.3工作流程
- 策略调用:管理员在路由协议的特定位置(如BGP的
peer x.x.x.x route-policy XXX import)调用定义好的路由策略。 - 顺序匹配:当路由信息流经该调用点时,策略开始工作。从序号最小的节点开始,将路由的特征与节点的匹配条件进行比对。
- 执行与结束:
- 若路由匹配当前节点条件,则执行该节点的动作(允许/拒绝)。若动作为“允许”,还可附加修改属性的操作。无论动作是允许还是拒绝,策略处理一般到此结束。
- 若路由不匹配当前节点条件,则继续尝试匹配下一个节点。
- 默认行为:如果路由没有匹配任何节点,则执行该路由策略的默认动作。默认动作通常是
permit(允许所有未匹配的路由通过),但也可以配置为deny。
3 路由策略与策略路由的区别
这是两个最易混淆的概念,请务必区分:
特性 | 路由策略 | 策略路由 |
作用对象 | 路由信息(控制平面) | 数据包(转发平面) |
工作层面 | 三层,影响路由表生成 | 三层/四层,影响单个报文转发 |
核心目标 | 控制路由的学习、发布和属性 | 控制数据包的转发路径 |
决策依据 | 路由前缀、AS路径、团体属性等 | 源IP、目的IP、协议、端口、包长等 |
配置位置 | 路由协议配置视图(如BGP/OSPF) | 接口视图或全局 |
结果影响 | 间接影响流量路径(通过改变路由表) | 直接决定流量出口 |
一个生动的比喻:
- 路由策略像公司的邮件分发规则(如:所有来自财务部的邮件,标记为“高优先级”并转发给管理层)。它处理的是“邮件”这个信息本身。
- 策略路由像快递公司的特殊配送路线(如:所有寄往A区的包裹,无论地址如何,今天全部走北线公路)。它处理的是每个“包裹”的运送路径。