前缀匹配工具之IP-Prefix

基本概念:

IP-Prefix,即IP前缀,相比传统ACL,它能够基于路由前缀与路由掩码进行匹配

例如,192.168.0.0/16,192.168.0.0/24,这两条前缀相同,但是掩码不同的路由流量

若是ACL规则如是写下:

rule 5
 rule permit source 192.168.0.0 0.0.255.255

那么两条路由都会被匹配到

但若是IP-Prefix呢,IP-Prefix的配置我在这里先超前写一下

ip ip-prefix 1 permit 192.168.0.0 16

那么只有192.168.0.0的路由被permit,其它都被deny

这就是IP-Prefix的最大特性:对IP路由的高度控制

技术背景:

用户需求:

随着网络规模越来越大,路由表的规模也越来越大,路由表中条目也显著增加,且用户对QoS也提出了越来越高的要求,要求网管实现对网络路由的一个高度精细的控制来优化网络流量的路径,提升网络性能和网络运行效率。但由于IP-Prefix只能基于路由前缀和路由掩码进行匹配,无法通过服务端口或传输协议匹配,因此大多数情况下需要与ACL结合使用,IP-Prefix主要是辅助ACL,提供了更精细的路由控制

安全需求:

随着网络攻击手段的日益增加,相比只用ACL,我们更需要一种全新的技术来辅助ACL实现对未授权流量或攻击流量更精细的访问限制功能,IP-Prefix能够有效的控制基于IP地址前缀的路由流量,这使得网络安全的防护更加到位

企业内部的访问控制需求:

在中大型组织机构中,每个部门之间都会定义访问控制,基于访问控制的最小权限原则,每个部门应只被赋予其工作所需要的一个访问权限,来确保一些敏感信息或私密的网络资源只能够被授权人员看到。但仅仅依赖ACL,无法实现对路由流量的精细匹配,因为ACL只能基于路由前缀而无法基于路由掩码进行匹配,因此将ACL与IP-Prefix结合使用,能够更加高度精细的视线企业内部的访问控制

IP-Prefix的配置与语句分析:

这是一段IP-Prefix的配置

ip ip-prefix 10 permit 192.168.0.0 16 greater-equal 16 less-equal 32

接下来我们进行分析

首先这是ip的匹配工具,所以是ip下调用

ip ip-prefix,后面跟着IP-Prefix的名字,随便取啥,然后后面理论上跟着的参数是索引号,但是有缺省,因此可以隐藏,索引号缺省步长为10,即第一条叫做10的IP前缀规则的索引号为10,第二条就是20。

因此我们直接写permit(放行)或者deny(拒绝),然后后面跟着匹配的路由ip地址,再跟着子网掩码长度。此时到这里就可以结束了。

就比如我们前面提到的:

ip ip-prefix 1 permit 192.168.0.0 16
​

他这里没有配置Greater-equal和Less-equal,因此这俩缺省为Mask-length

因此这段没有定义Greater-equal和Less-equal的配置我们可以理解为:

ip ip-prefix 1 permit 192.168.0.0 16 greater-equal 16 less-equal 16

Greater-equal表示掩码长度的最小值(下限),Less-equal表示掩码长度的最大值(上限)

调用方式:

1.filter-policy过滤策略

2.route-policy路由策略

尾声:

那么IP-Prefix的内容就到此为止,我们下次再见


相关推荐

  1. 前缀匹配工具IP-Prefix

    2024-07-17 11:10:03       28 阅读
  2. 路由发布中的前缀列表的使用方法 ip prefix-list

    2024-07-17 11:10:03       19 阅读
  3. [leetcode]longest-common-prefix 最长公共前缀

    2024-07-17 11:10:03       25 阅读
  4. nginx前缀匹配

    2024-07-17 11:10:03       50 阅读
  5. Rust---模式匹配match和if let

    2024-07-17 11:10:03       32 阅读
  6. 前端打包工具Webpack5

    2024-07-17 11:10:03       51 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-17 11:10:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-17 11:10:03       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-17 11:10:03       58 阅读
  4. Python语言-面向对象

    2024-07-17 11:10:03       69 阅读

热门阅读

  1. 高精度减法(C++)

    2024-07-17 11:10:03       24 阅读
  2. 谈人工智能在电子档案系统的应用

    2024-07-17 11:10:03       18 阅读
  3. Android 音频通道切换HDMI,蓝牙,喇叭

    2024-07-17 11:10:03       26 阅读
  4. C#拆分单页PDF

    2024-07-17 11:10:03       25 阅读
  5. TCP/IP、UDP、HTTP 协议介绍比较和总结

    2024-07-17 11:10:03       21 阅读
  6. js | 原型链

    2024-07-17 11:10:03       23 阅读
  7. baomidou @DS注解

    2024-07-17 11:10:03       23 阅读
  8. arkts中状态管理

    2024-07-17 11:10:03       25 阅读
  9. mac如何查看cpu和显卡温度

    2024-07-17 11:10:03       26 阅读
  10. 关于HBase、Phoenix、Flume、Maxwell 和 Flink

    2024-07-17 11:10:03       24 阅读
  11. 银河麒麟如何部署QtMqtt(入门案例教程)

    2024-07-17 11:10:03       24 阅读
  12. Android中ContentProvider学习记录

    2024-07-17 11:10:03       22 阅读