暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

iptables 理论基础及日志记录

3350



写在之前


iptables 是一个包过滤防火墙,可以对包进行封装、过滤、重定向或者网络地址转换(DNAT、SNAT)、地址伪装、透明代理、访问控制、连接跟踪等功能,它是一个免费开源的软件,工作在用户空间,那么 iptables 底层又是谁实现的呢?iptables 底层是 netfilter,它工作在内核空间,是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集,iptables 在用户空间的插入、修改、删除等操作最终都会反映到内核的规则集中。

规则


iptables 规则就是当数据包“流经”系统时,数据包符合什么样的条件,就做出什么样的策略进行处理。这些规则中包括源地址、目的地址、源端口、目的端口、传输协议、服务类型等,当数据包与规则匹配时,iptables根据定义好的规则进行 accept、drop、reject、jump、queue等处理。

链 和 表


iptables 规则作用在哪里呢?其实就是在 IP 层,IP 层有5个钩子点的位置,其实就对应iptables的 5 条链:INPUT、OUTPUT、PREROUTING、POSTROUTING、FORWARD。

五链五表







iptables 日志记录


Centos 7 开启日志记录功能


添加至系统日志自动滚动


重启 rsyslog 服务

systemctl restart rsyslog.service


iptables 配置中添加记录日志

# 记录所有通过防火墙的日志
[root@k8s-master-1 ~]# iptables -A INPUT -j LOG --log-prefix "[k8svip ipvs]"
[root@k8s-master-1 ~]# iptables -A OUTPUT -j LOG --log-prefix "[k8svip ipvs]"
[root@k8s-master-1 ~]# iptables -t mangle -A POSTROUTING -j LOG --log-prefix "[k8svip ipvs]" --log-level debug
[root@k8s-master-1 ~]#


操作无非是增删改查,可以自行 Google 学习下。


简单通过kubernetes  cluster ip进行测试


通过dmesg 可以看到 cluster IP 转发到哪个 pod ip,在查询问题时很重要。

总结


iptables 是学习 kubernetes 的基础,这里简单进行下总结,网络数据包主要有三种类型,入站数据流、出端数据流和转发数据流,这个一定要理解,否则学习 kubernetes kube-proxy 中流量转发时,就会一头雾水。

文章转载自Linux点滴运维实践,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论