首页 > 运维 > linux运维 > 正文

k8s使用的iptables,具体原理是什么?深入浅出

絕刀狂花
发布: 2025-07-12 10:36:12
原创
787人浏览过
  1. netfilter

netfilter指的是linux内核中的一个框架,这个框架在协议栈中引入了5个hook点,并允许内核模块在这些hook点注册回调函数。

1.1. iptables和netfilter的关系 iptables是一个用户空间的工具,通过特定的机制与内核中的netfilter框架进行交互,负责在这些hook点上配置回调函数。

  1. netfilter的5个hook k8s使用的iptables,具体原理是什么?深入浅出

2.1. 数据包常见的三种hook路径

  • 本机接收到的,目标IP是本机的数据包:NF_IP_PRE_ROUTING -> NF_IP_LOCAL_IN
  • 本机接收到的,目标IP不是本机的数据包:NF_IP_PRE_ROUTING -> NF_IP_FORWARD -> NF_IP_POST_ROUTING
  • 本机发送出去的数据包:NF_IP_LOCAL_OUT -> NF_IP_POST_ROUTING
  1. hook回调函数:注册到hook点的规则(rule)就是回调函数,rule由匹配条件(match)和目标操作(target)组成。

示例: 3.1. match

  • -p tcp:--protocol tcp,指定TCP协议
  • --dport 21:--destination-port,指定目的端口为21

3.2. target

  • -j ACCEPT:接受此数据包

常见的target有:

  • DROP:丢弃数据包
  • RETURN:跳出当前链
  • ACCEPT:通过数据包
  • QUEUE:将数据包放入用户空间队列
  • custom-chain:跳转到用户自定义的链
  1. table:对规则进行分类 规则具有不同的功能,根据其功能分为五类,如:
  • Filter表:用于过滤规则
  • NAT表:用于地址转换规则
  • Mangle表:用于修改IP数据包头,如TTL
  • Raw表:用于给数据包打标记
  • Security表:与SELinux相关的规则
  1. hook如何调rule:hook调用chain,chain将rule组织成链 规则数量众多,而hook点只有5个,hook如何调用这些规则呢?

答:将规则组织成5条链,每条链对应一个hook点。

table-chain-rule关系: k8s使用的iptables,具体原理是什么?深入浅出k8s使用的iptables,具体原理是什么?深入浅出

  1. 自定义chain 创建自定义链时需要指定在哪个表中创建,默认是在filter表中。

在nat表中创建自定义链时,hook点无法直接调用自定义链,hook点调用5大官方链,官方链中的规则通过jump跳转到自定义链。

  1. 总结 netfilter包的处理流程汇总如下:
  • 数据包按照netfilter框架分别经过5个hook点
  • 每个hook点调用自己对应的官方链
  • 官方链串联的规则按类别分布在5张表中
  • 官方链按照预先定义的表的顺序执行规则
  • 表中的规则可以跳转到表内自定义的链

以上就是k8s使用的iptables,具体原理是什么?深入浅出的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号