Netfilter框架是Linux 2.4(包括以后)内核的一个子系统,它使得诸如数据包过滤、网络地址转换(NAT)以及网络连接跟踪等技巧成为可能,而且使用简单,可以仅通过使用内核网络代码提供的各式各样的hook就可以完成。
在Linux内核发包的整个网络流程中,Netfilter在若干位置放置了一些检测点(HOOK),而在每个检测点上登记了一些函数,就是这些函数对数据包进行过滤、NAT等操作,用户自己还可以定义函数挂载在HOOK点上。
那这几个HOOK点,到底是什么呢?
NF_IP_PRE_ROUTING **次进入IP层的数据包在此点进行版本号、校验和检测并完成目的地址转换(如果需要)