最近在基于openwrt盒子实现一个业务引流的方案,涉及到很多linux系统NetFilter,、IP Tables and Conntrack的理解和简单使用。由于没有相关使用和开发经验查找了大量的资料,这里总结一下。 1、linux kernel doc文档查找链接--下面一tun/tap介绍为例: https://www.kernel.org/doc/Documentation/networking/tuntap.txt 或者下面网页方式: https://www.kernel.org/doc/html/latest/networking/tuntap.html 2、Linux NetFilter, IP Tables and Conntrack Diagrams关系图--这个还是非常不错的。 https://gist.github.com/nerdalert/a1687ae4da1cc44a437d
下面文章中关系图:
3、一篇详细介绍ipsec 报文流程图 Nftables - Netfilter and VPN/IPsec packet flow
ipsec封装和解封装图:
4、高并发问题:nf_conntrack: table full, dropping packet相关问题解决方案 https://andblog.cn/?p=1826
在引流方案中,就遇到了类似问题,由于nf_conntrack链接表的影响导致引流后报文出wan口时未进行nat处理。通过设置不跟踪链接的规则,暂时解决,iptables -t raw -A PREROUTING -i-j NOTRACK
5、连接跟踪(conntrack):原理、应用及 Linux 内核实现--篇幅很长,介绍相当全面。 http://arthurchiao.art/blog/conntrack-design-and-implementation-zh/ 6、iptables学习系列文章----图文并貌详细介绍了ipstables配置使用,了解和学习iptables非常有帮助。 https://www.zsythink.net/archives/tag/iptables/ 7、云计算底层技术-netfilter框架研究 https://opengers.github.io/openstack/openstack-base-netfilter-framework-overview/