首页 百科知识 框架的组成

框架的组成

时间:2024-10-11 百科知识 版权反馈
【摘要】:Netfilter提供了一个抽象、通用化的框架,该框架定义的一个子功能的实现就是包过滤子系统。在这几个点中,协议栈将把数据报及钩子函数标号作为参数调用netfilter框架。Netfilter框架的提出及主要实现是由Rusty Russell完成,它是ipchains的合作完成者及Linux防火墙的维护者,此外,Marc Boucher,James Morris,HaraldWelter等都参与了Netfilter项目。

10.2.2 Netfilter框架的组成

Netfilter提供了一个抽象、通用化的框架,该框架定义的一个子功能的实现就是包过滤子系统。Netfilter框架包含如下几个部分。

(1)为每种网络协议(IPv4,IPv6等)定义一套钩子函数(IPv4定义了5个钩子函数)。这些钩子函数在数据报流过协议栈的几个关键点被调用。在这几个点中,协议栈将把数据报及钩子函数标号作为参数调用netfilter框架。

(2)内核的任何模块可以对每种协议的一个或多个钩子进行注册,实现挂接,这样当某个数据包被传递给netfilter框架时,内核能检测是否有任何模块对该协议和钩子函数进行了注册。若注册了,则调用该摸块的注册时使用的回调函数,这样这些模块就有机会检查(可能还会修改)该数据包、丢弃该数据包及指示netfilter将该数据包传入用户空间的队列。

(3)那些排队的数据包是被传递给用户空间的异步地进行处理。一个用户进程能检查数据包,修改数据包,甚至可以重新将该数据包通过离开内核的同一个钩子函数中注入到内核中。

(4)任何在IP层要被抛弃的IP数据包在真正抛弃之前都要进行检查。例如允许模块检查ip-spoofed包(被路由抛弃)。

Netfilter框架的提出及主要实现是由Rusty Russell完成,它是ipchains的合作完成者及Linux防火墙的维护者,此外,Marc Boucher,James Morris,HaraldWelter等都参与了Netfilter项目。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈