当前位置: 首页 > news >正文

路由选择工具——IP-Prefix

一.IP-Prefix介绍

        IP前缀列表匹配路由的可控性比ACL高得多,也更为灵活。

        IP前缀列表可匹配路由前缀中的网络地址及网络掩码(前缀长度),增强了匹配的精确度。

        IP前缀列表除了能够匹配具体的网络掩码长度,还能够匹配掩码长度范围,非常灵活。

        一个IP前缀列表可以包含一个或多个表项(语句),在匹配过程中依序进行计算。表项中的索引号(序号)决定了每个表项在整个IP前缀列表中的位置。

        不能用于数据包过滤。

二.IP-Prefix原理

        每个地址前缀列表可以包含多个 IP-Prefix 条目,每个IP-Prefix条目对应一个索引号(index)。路由将按照索引号从小到大依次检查 IP-Prefix 列表,任意一个 IP-Prefix 匹配成功,将不再检查其余项。若所有IP-Prefix 都匹配失败,路由信息将被过滤。

        根据匹配的前缀不同,前缀过滤列表可以进行精确匹配,也可以进行在一定掩码长度范围内匹配。

        前缀过滤列表可以进行精确匹配或者在一定掩码长度范围内匹配,可以通过配置头键字 greater-equal 和 less-equal 指定待匹配的前缀掩码长度范围。如果没有配置关键字greater-equal或 less-equal,前缀过滤列表进行精确匹配,即只匹配掩码长度为前缀过滤列表掩码长度的相同P 地址路由:如果只配置了关键字 greater-equal,则待匹配的掩码长度范围为从 greater-equal 指定值到 32 位长度:如果只匹配了关键字 less-equal,则待匹配的掩码长度范围为从指定的掩码到关键字 less-equal 指定值。

三.ip-prefix 特点

        当所有前缀过滤列表均未匹配时,缺省情况下,存在最后一条默认匹配模式为 deny。

        当引用的前缀过滤列表不存在时,默认匹配模式为 permit。

四.IP前缀列表的配置

创建一个IP前缀列表的配置如下

[Huawei]ip ip-prefix name [ index index-number] { permit | deny } ip-address mask-length [greater-equal greater-equal-value ][less-equal less-equal-value ],

        Name参数是本IP前缀列表的名称。

        Index关键字及参数指示本表项在本|P前缀列表中的序号( 或索引号)该关键字及参数是可选的。缺省情况下,该序号值按照配置先后顺序依次递增,每次加10,第一个序号值为10.

        Permit及deny关键字用于配置本表项的匹配模式。

        ip-address mask-length参数用于分别制定IP地址及掩码长度。

        [ greater-equal greater-equal-value][less-equal less-equal-value]是可选配置,用于指定掩码长度的范围。

        如果在命令中只指定了greater-equal,则前缀范围为[greater-equal-value,32];

        如果在命令中只指定了less-equal,则前缀范围为[mask-length,less-equal-value]。

        IP前缀列表由列表名称进行标识,每个IP前缀列表可以包含多个表项。下面的配置展示了一个名为abcd它包含两个表项:

[Huawei] ip ip-prefix abcd index 10 deny 1.0.0.0 8

[Huawei] ip ip-prefix abcd index 20 permit 2.0.0.0 8

        在IP前缀列表的匹配过程中,设备按索引号升序依次检查各个表项,只要有一个表项满足条件,就不再去匹配后续表项。

        以ip ip-prefix abcd index 10 deny 1.0.0.0 8为例,这个表项属于IP前缀列表abcd,它的索引号为10并且匹配模式为拒绝,在该表项中IP前缀为1.0.0.0,掩码长度为8,因此这个表项用于匹配路由1.0.0.0/8只有该路由才会被匹配,并且该路由将会被该表项过滤( deny )。这个命令中没有定义掩码长度范围,如果一条路由无法被一个!P前缀列表中的所有表项匹配,那么这条路由被视为被该前缀列表拒绝通过。也就是说,一个IP前缀列表的末尾,隐含着一条拒绝所有的表项。

五.IP-Prefix 示例

1) ip ip-prefix FlLTER index 10 permit 1.1.1.0 24

该 ip-prefix 为精确匹配,只有 1.1.1.1/24 才能 permit

2)ip ip-prefix FlLTER index 10 permit 1.1.1.0 24 less-equal 32

掩码范围在 24-32 之间的网络 1.1.1.0 才能 permit

3)ip ip-prefix FlLTER index 10 permit 1.1.1.0 24 greater-equal 26

掩码范围在 26-32 之间的网络 1.1.10 才能 permit

4)ip ip-prefix FlLTER index 10 permit 1.1.10 24 greater-equal 26 less-equal 32

掩码范围在 26-32 之间的网络 1.1.1.0 才能 permit

5)ip ip-prefix FlLTER index 10 permit 0.0.0.0 0 greater-equal 8 less-equal 32

所有掩码长度在 8到 32 的路由都被 permit

6)匹配以下路由(用最精确最简洁的方式)

        192.168.4.0/24

        192.168.5.0/24

        192.168.6.0/24

        192.168.7.0/24

ip ip-prefix abcd permit 192.168.4.0 22 greater-equal 24 less-equal 24

        上面这条命令的意思是,允许那些网络地址的前22bit与192.168.4.0的前22bit相同,并且网络掩码长度为24的路由。注意此处"greater-equal 24less-equal24"要求网络掩码长度既大于或等于24又小于或等于24,因此只能是24。

特殊实例

1)匹配默认路由0.0.0.0/0:

ip ip-prefix FlLTER permit 0.0.0.0 0

注意:IP前缀为0.0.0.0时表示通配地址。此时不论掩码指定为多少,都表示掩码长度范围内的所有

路由全被匹配。

2)匹配所有/32主机路由:

ip ip-prefix FlLTER permit 0.0.0.0 0 greater-equal 32

3)匹配任意路由(any):

ip ip-prefix FlLTER permit 0.0.0.0 0 less-equal 32

六.IPv6-Prefix

        IPv6-Prefix根据配置的规则对 IPv6 报文进行分类,其实现原理和IP-Prefix基本相同。

         IPv6 地址前缀列表用于过滤 IPv6 地址。同一个地址前缀列表可包含多个表项,每个表项指定一个地址前缀范围。此时,各表项之间是“或”的关系,即只要通过其中一个表项就认为已通过该地址前缀列表的过滤,所有表项都没有通过则意味着没有通过该地址前缀列表的过滤。

        默认所有未匹配的路由将被拒绝通过过滤列表。如果所有表项都配置成 deny 模式则任何路由都不能通过该过滤列表。因此,需要在多条 deny 模式的表项后定义一条 permit ::0 less-equal 128 的表项,以允许其它所有 IPv6 路由信息通过。

七.IPv6-Prefix示例

        允许掩码长度在 32 位到 64 位之间的地址通过。

[Huaweil ip ipv6-prefix abc permit . 0 greater-equal 32 less-equal 64

        拒绝前缀为 3FFE:D00::/32,且前缀长度大于 32 位的地址通过,允许其他的 IPv6 路由通过。

[Huaweil ip ipv6-prefix abc deny 3FFE:D00:: 32 less-equal 128[Huaweil ip ipv6-prefix abc permit :: 0 less equal 128

        配置名为 p3 的地址前缀列表,拒绝::1~::FFFF:FFFF 范围内的所有路由通过,允许其他路由通过。

[Huaweil ip ipv6-prefix p3 index 10 deny :: 96 match-network[Huawei] ip ipv6 prefix p3 index 20 permit :: 0 less-equal 128

http://www.dtcms.com/a/299771.html

相关文章:

  • springboot企业级后台管理平台-计算机毕业设计源码02282
  • java网络请求工具类HttpUtils
  • 如何查找php配置文件php.ini
  • URL与URI:互联网世界的“门牌号“与“身份证“
  • 【机器学习深度学习】模型微调:多久才算微调完成?——如何判断微调收敛,何时终止训练
  • Linux库——库的制作和原理(2)_库的原理
  • 微软中国高级架构师步绍鹏受邀为第十四届PMO大会演讲嘉宾
  • gig-gitignore工具实战开发(五):gig add完善
  • 单片机中的三极管
  • write`系统调用
  • 字节跳动正式开源AI智能体开发平台Coze
  • LeetCode——1957. 删除字符使字符串变好
  • 1.安装anaconda详细步骤(含安装截图)
  • Typecho插件开发实战:构建专业级访问日志系统
  • ESP32-idf学习(五)esp32C3移植lvgl①
  • 贝叶斯决策论
  • Spring AI MCP 客户端
  • Django+celery异步:拿来即用,可移植性高
  • SSSM框架相关问题总结
  • 拒绝SQL恐惧:用Python+pyqt打造Excel数据库查询系统
  • [Java恶补day47] 整理模板·考点十【二叉树层序遍历】
  • 快速入门Linux操作系统(一)
  • LeetCode 面试经典 150_数组/字符串_删除有序数组中的重复项(3_26_C++_简单)
  • RabbitMQ--消息丢失问题及解决
  • 是德科技 | AI上车后,这条“高速公路”如何畅通?
  • 如何高效合并音视频文件(时间短消耗资源少)(二)
  • 计网-TCP可靠传输
  • 周末小游戏推荐,离线也能畅玩
  • 阿里云对象存储OSS(Object Storage Service)全面解析
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘ipython’问题