01 iptables简介
iptables
ipfirewall(内核1.x时代)
ipchains(内核2.x时代)
iptables
网络协议栈
Link Layer 数据链路层的数据流向,根据mac寻址找到对应的网卡后向上进入网络层
Network Layer 网络层的数据流向,与数据链路层不同的是使用ip路由寻址的方式寻找网卡。iptables/ipvs将会在这层生效
Protocol Layer 传输层的数据流向,根据传输的协议寻找对应的应用
Application Layer 应用层,拆除所有包结构后处理真实数据的地方
iptables四表五链
Raw表——连接追踪机制表
Mangle表——拆解报文,做出修改,并重新封装 的功能
Nat表——地址转换
filter表——过滤数据包
PREROUTING链——路由选择前的规则
FORWARD链——转发数据包策略
INPUT链——入栈数据包策略
OUTPUT链——出栈数据包策略
POSTROUTING链——路由选择后规则
02
iptables链路规则
iptables查询
iptables处理动作
ACCEPT:允许数据包通过。
DROP:直接丢弃数据包,不给任何回应信息,这时候客户端过了超时时间才会有反应。
REJECT:拒绝数据包通过,必要时会给数据发送端一个响应的信息,客户端刚请求就会收到拒绝的信息。
ChainName:别的链路名称,在iptables中通过链路的调用构建庞大的链路体系。
RETURN:返回调用者链路
iptables常用模块
03
iptables网络隔离
iptables网络隔离
iptables -t filter -I INPUT -s 10.120.1.81 -j DROP
iptables -t filter -I OUTPUT-d 10.120.1.81 -j DROP
容器网络需求
IP-per-Pod,每个 Pod 都拥有一个独立 IP 地址,Pod 内所有容器共享一个网络命名空间。
集群内所有 Pod 都在一个直接连通的扁平网络中,可通过 IP 直接访问。
所有容器之间无需 NAT 就可以直接互相访问。
所有 Node 和所有容器之间无需 NAT 就可以直接互相访问。
容器自己看到的 IP 跟其他容器看到的一样。
Service cluster IP 尽可在集群内部访问,外部请求需要通过 NodePort、LoadBalance 或者 Ingress 来访问。
iptables容器网络隔离
容器网络隔离规则定义
iptables容器网络隔离