在K8S中,Iptables 四表五链有哪些?
在K8S中,iptables 四表五链具体如下:
- 四表:
- filter 表:主要用于过滤数据包。它根据系统管理员预定义的一组规则对进入和离开系统的网络流量进行过滤。对于防火墙而言,主要利用在 filter 表中指定的规则来实现对数据包的过滤。Filter 表是默认的表,如果没有指定哪个表,iptables 就默认使用 filter 表来执行所有命令。filter 表包含 INPUT 链(处理进入的数据包)、FORWARD 链(处理转发的数据包)和 OUTPUT 链(处理本地生成的数据包)。在 filter 表中只能允许对数据包进行接受、丢弃的操作,而无法对数据包进行更改。
- nat 表:用于网络地址转换(NAT),可以实现一对一、一对多、多对多等 NAT 工作。nat 表包含 PREROUTING 链(修改即将到来的数据包)、OUTPUT 链(修改路由之前本地生成的数据包)和 POSTROUTING 链(修改即将出去的数据包)。
- mangle 表:主要用于对特定数据报进行修改。在内核版本 2.4.18 后的 linux 版本中,mangle 表包含 INPUT 链(处理进入的数据包)、FORWARD 链(处理转发的数据包)、OUTPUT 链(处理本地生成的数据包)、POSTROUTING 链(修改即将出去的数据包)和 PREROUTING 链(修改即将到来的数据包)。
- raw 表:优先级最高,只使用在 PREROUTING 链和 OUTPUT 链上。因为优先级最高,所以当用户使用了 raw 表在某个链上,raw 表处理完后,将跳过 NAT 表和 ip_conntrack 处理,即不再做地址转换和数据包的链接跟踪处理了。
- 五链:
- PREROUTING 链:数据包进入路由表之前,对数据包做路由选择前应用此链路中的规则。所有的数据包进来的时候都先由这个链处理。
- INPUT 链:通过路由表后目的为本机,进来的数据报应用此规则链上的策略。
- FORWARD 链:通过路由表后,目标地址不为本机,做转发数据报时应用此规则链上的策略。
- OUTPUT 链:由本机产生的外出的数据包向外转发时,应用此规则链中的策略。
- POSTROUTING 链:数据报做路由选择后发送后到网卡接口之前应用此链中的规则,所有的数据包出来的时候都先由这个链处理。
综上所述,iptables 的四表五链提供了一种灵活而强大的机制来管理和控制 Linux 系统中的网络流量。通过合理配置这些表和链,可以实现各种复杂的网络策略,如防火墙规则、NAT 转换、数据包修改等。