kong的IP RESTRICTION的配置

本文详细解析了Kong插件IPRESTRICTION与基本认证(BasicAuth)在服务test-service上的执行顺序,通过实例和源码揭示了插件优先级决定的运行逻辑。重点在于配置顺序对IP访问控制的影响和插件PRIORITY值的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Kong的IP RESTRICTION就是IP控制插件,可以控制全局、服务、路由、消费方的IP地址,通过设置黑白名单,来限制访问的IP和IP段。IP或CIDR范围到白名单的逗号分隔列表。必须在白名单或黑名单之间至少指定一个。
1、 如果配置了白名单,则白名单之外的IP都不允许访问。
2、 如果配置了黑名单,则黑名单之外的IP都允许访问。
3、 如果同时配置了黑白名单,则只允许白名单的访问。
我们将该插件配置到test-service服务上,并设置限制黑名单的IP地址为调用服务的IP。
在这里插入图片描述

在这里插入图片描述

上图我们看一下,业务服务test-service配置插件的先后执行顺序我们如何知道呢?首先从调用上来验证一下:
1、 调用服务时,首先出现的是认证,那么证明basic-auth在IP RESTRICTION和acl之前执行 :
在这里插入图片描述

2、 输入用户名密码之后,出现:
在这里插入图片描述

证明IP RESTRICTION是第二个起作用的。
3、那么针对上面的调用,如果我们改以下IP RESTRICTION限制的IP地址,让IP认证通过,则会出现:
在这里插入图片描述

因为使用的BASIC-AUTH用户不在ACL的群组中,所以ACL插件在最后起了作用,控制了服务的消费。如果换成在ACL群组中的其他用户认证,则可获得结果:
在这里插入图片描述

那么如何知道所有插件的执行先后顺序呢,最根源的办法还是阅读源码,我们从每个插件得handle.lua中查看可以得到:
ACLHandler.PRIORITY = 950
IpRestrictionHandler.PRIORITY = 990
BasicAuthHandler.PRIORITY = 1001
PRIORITY值越大越先执行,从源码中可以看到插件的先后顺序是 BasicAuth(认证)-》ipRestriction (IP控制)-> ACL(访问控制)
因此我们得到结论,由PRIORITY来决定插件运行的先后顺序的规则是无问题的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值