路由策略

概念

路由策略是通过一系列的工具,对路由条目添加各种策略,实现对路由的产生,发送和选择进行控制,通过控制路由条目,达到对报文转发的控制

条件工具:用于把需要控制的路由匹配出来,ACL ip-prefix 团体列表 as-path-filter

策略工具:用于把抓取出来的路由执行某个动作,拒绝,允许,修改属性。Router-policy

调用工具:用于把定义好的路由策略,具体应用到某个协议中,让路由策略生效。filter-policy,import-route

正掩码,反掩码,通配符

正掩码:

1 代表匹配,0 代表任意 0 和 1 不能交叉出现

使用场景:配置 IP 地址

反掩码:

1 代表任意,0 代表匹配 0 和 1 不能交叉出现

使用场景:在 OSPF 协议中通告使用

通配符:

1 代表任意,0 代表匹配 0 和 1 可以交叉出现

使用场景:在 ACL 中使用

通配符的优势:例如在一个网段中可以选择出主机号是 偶数 或者 奇数 的机器

如 匹配192.168.1.0/24 网段中的偶数主机:192.168.1.0 0.0.0.254

Filter-Policy(过滤-策略)

是一个很常用的路由信息过滤工具,能够对接收、发布、引入的路由进行过滤,可应用于 ISIS、OSPF、BGP等协议

链路状态协议和距离矢量协议

链路状态协议:向全网链路状态通告 LSA 或 LSP,同步拓扑图,收敛更快,更精确(OSPF,ISIS)

距离矢量协议:向邻居传递完整的路由表(RIP,BGP)

Filter-policy:只能过滤路由表,但不能过滤 LSA

Filter-policy 基础配置命令:

在 OSPF 中的应用:

按照过滤策略,设置 OSPF 对接收的路由进行过滤

Huawei-ospf-100\] **filter-policy** { *acl-number* \| **acl-name** *acl-name* \| **ip-prefix** *ip-prefix-name* \| **route-policy** *route-policy-name* \[ **secondary** \] } **import**

按照过滤策略,设置对引入的路由在向外发布时进行过滤

Huawei-ospf-100\] **filter-policy** { *acl-number* \| **acl-name** *acl-name* \| **ip-prefix** *ip-prefix-name* \| **route-policy** *route-policy-name* } **export** \[ *protocol* \[ *process-id* \]

在 ISIS 中的应用

配置 ISIS 路由加入 IP 路由表时的过滤策略

Huawei-isis-1\] **filter-policy** { *acl-number* \| **acl-name** *acl-name* \| **ip-prefix** *ip-prefix-name* \| **route-policy** *route-policy-name* } **import**

配置 ISIS 对已引入的路由在向外发布时进行过滤的过滤策略

Huawei-isis-1\] **filter-policy** { *acl-number* \| **acl-name** *acl-name* \| **ip-prefix** *ip-prefix-name* \| **route-policy** *route-policy-name* } **export** \[ *protocol* \[ *process-id* \]

在 BGP 中的应用

配置对接收的路由信息进行过滤

Huawei-bgp-af-ipv4\] **filter-policy** { *acl-number* \| **acl-name** *acl-name* \| **ip-prefix** *ip-prefix-name* } **import**

配置对发布的路由进行过滤,只有只有通过过滤的路由才被 BGP 发布

Huawei-bgp-af-ipv4\] **filter-policy** { *acl-number* \| **acl-name** *acl-name* \| **ip-prefix** *ip-prefix-name* } **export** \[ *protocol* \[ *process-id* \]

配置向外对等体发布或从对等体接收路由时的过滤策略

Huawei-bgp-af-ipv4\] **peer** { *group-name* \| *ipv4-address* } **filter-policy** { *acl-number* \| **acl-name** *acl-name* } { **import** \| **export** }

ACL 被 traffice-filter 调用的时候默认存在允许所有语句

ACL 被 filter-policy 调用的时候默认存在拒绝所有语句,所以一般在配置完后添加:rule permit source any

在 RIP 协议中

filter-policy 的使用方法:

filter-policy 2000 export //对所有接口发出的路由实现过滤

filter-policy 2000 import //对所有接口接收的路由实现过滤

filter-policy 2000 import/export [interface] //针对特定接口接受/发出的路由实现过滤

filter-policy 用于路由过滤

traffic-filter 用于流量过滤

import-route static //引入静态路由

filter-policy 2000 export static //代表将静态路由引入到 rip 协议的时候实现过滤

在 OSPF 中:

filter-policy 2000 export //针对链路状态路由协议无效,因为链路状态路由协议不发送路由

filter-policy 2000 import //针对链路状态路由协议,是将链路状态计算出路由的时候实现过滤,但是不影响 LSA 的泛洪,其他路由器可以收到这条信息

前缀列表:

ACL 的局限性:

ACL 只能匹配路由的前缀,没有办法匹配路由的掩码信息,如果有两条路由前缀相同,使用 ACL没有办法实现精确的过滤

前缀列表的优势:

既能匹配路由的前缀信息,也能匹配路由的掩码信息,但是前缀列表不能用于流量的过滤

前缀列表的组成:

  1. name:名字,用于标识一条唯一的前缀列表
  2. index:索引号,与 ACL 的 rule 编号类似,匹配顺序为从小到大依次匹配,默认步长为 10
  3. Permit/deny:行为,允许或者拒绝
  4. length:长度,即用于定义网络前缀的长度
  5. Ge:大于等于的意思
  6. Le:小于等于的意思

配置前缀列表需要满足 Length ≤ Ge ≤ Le

前缀列表默认隐含拒绝所有语句,当路由不匹配任何 index 的时候,将会拒绝

前缀列表的表达形式:

Ip ip-prefix test permit 192.168.1.0 24 //匹配当前单条路由

Ip ip-prefix test permit 192.168.1.0 24 ge 32 //前 24 bit 固定,匹配掩码在 25~32 之间的路由

Ip ip-prefix test permit 192.168.1.0 24 le 32 //前 24 bit 固定,匹配掩码在 24~32 之间的路由

Ip ip-prefix test permit 192.168.1.0 24 ge 26 le 30 //前 24 bit 固定,匹配掩码在 26~30 之间的路由

Ip ip-prefix test permit 0.0.0.0 0 //匹配默认路由

Ip ip-prefix test permit 0.0.0.0 0 le 32(ge 0) //匹配所有路由

Ip ip-prefix test permit 0.0.0.0 0 ge 32 //匹配所有主机路由

前缀列表的特点:

唯一匹配:当路由匹配了一条索引之后,不在匹配下面的索引

顺序匹配:按照索引号的大小,从小到大进行匹配,如果不配置 index,默认以 10 递增

默认拒绝:当路由不匹配任何索引之后,路由将会拒绝

例只允许 192.168.1.0/25 和 192.168.1.0/26 通过,通过一下配置就可以实现过滤

Route-Policy:

是一种功能非常强大的路由策略工具,可以灵活的与 ACL、IP-Prefix、As-Path-Filter 等工具配合使用

上述学习的 IP-prefix 和 filter-policy 只能匹配路由信息,不能修改路由属性,而 Route-Policy 可以修改路由属性

应用场景:

常用于路由引入时进行过滤或者对路由的属性进行修改

BGP 协议实施策略最主要的工具

可以作为 Filter-policy 的匹配条件

Route-policy 的组成模式:

  1. 匹配模式:

permit:当路由匹配 permit 的节点,将会被允许,并且将会执行 apply 语句

deny: 当路由匹配 deny 的节点,将会被拒绝,不执行 apply 语句

  1. 节点号:一个 route-policy 由多个节点号进行组成,每个节点号叫做一个 node,配置 route-policy 的时候必须携带节点号,执行策略的时候按照节点号大小从小到大依 次进行
  2. 匹配语句:if-match,用于定义一些条件,满足条件即代表匹配,一个 node 中可以定义多个 if-match 语句,多个 if-match 语句之间是逻辑"与"的关系
  3. 执行语句:apply 用于执行某个动作,设备按照 apply 语句的动作对路由信息进行修改,一个 node 可以存在多个 apply 语句,如果存在多个,则都执行修改,也可以不存在 apply 语句,如果不存在 apply 语句,只代表匹配,而不修改属性
  4. 名字:用于标识唯一的一个 route-policy

多个 node 之间是逻辑 "或"的关系, 即路由匹配哪个 node,就会执行该 node 的 apply 动作

顺序匹配:当路由满足多个 node 的时候,按照 node 从小到大依次匹配

唯一匹配:当路由匹配一 node 之后,不会在向下匹配

默认拒绝:当路由不满足任何 node 之后,将会被拒绝

Route-Policy 基础配置命令:

  1. 创建Route-policy

Huawei\] **route-policy** *route-policy-name* { **permit** \| **deny** } **node** *node*

创建路由策略并进入 Route-policy 视图

  1. 配置 if-match 子句

Huawei-route-policy\] **if-match ?** **acl**匹配基本ACL **cost**匹配路由信息的cost **interface**匹配路由信息的出接口 **ip-prefix**匹配前缀列表

  1. 配置 apply 子句

Huawei-route-policy\] **if-match ?** **acl**匹配基本ACL **cost**匹配路由信息的cost **interface**匹配路由信息的出接口 **ip-prefix**匹配前缀列表

案列,匹配路由+修改属性

再添加一条 node 允许其余的路由通过而不做修改:

route-policy import permit node 40

相关推荐
请数据别和我作队2 小时前
Python实现直播弹幕数据采集(WebSocket实时弹幕采集)
开发语言·网络·python·websocket·网络协议·学习分享
南境十里·墨染春水2 小时前
linux学习进展 主函数的参数
linux·运维·学习
淮北4942 小时前
obsidian管理自己的计划
linux·学习·kanban·obsidian
YYYing.2 小时前
【Linux/C++网络篇(一) 】网络编程入门:一文搞懂 TCP/UDP 编程模型与 Socket 网络编程
linux·网络·c++·tcp/ip·ubuntu·udp
测试人社区—83522 小时前
‌TCP/IP协议栈参数调优验证:软件测试从业者指南
网络·人工智能·网络协议·tcp/ip·测试工具·语音识别·压力测试
jiayong232 小时前
第 7 课:第三轮真实重构,拆出新增任务弹窗
服务器·前端·重构
时空自由民.2 小时前
HTTP协议和MQTT协议区别
网络·网络协议·http
运维儿2 小时前
5.VLAN的高级技术MUX VLANSuper VLANVLAN Mapping
网络·网络协议·tcp/ip·linux 网络·云计算网络
魔都吴所谓2 小时前
【Ubuntu】22.04安装 CMake 3.24
linux·运维·ubuntu