Netfilter实现机制和扩展技术.doc

Netfilter实现机制和扩展技术.doc

ID:49700393

大小:199.50 KB

页数:22页

时间:2020-03-03

Netfilter实现机制和扩展技术.doc_第1页
Netfilter实现机制和扩展技术.doc_第2页
Netfilter实现机制和扩展技术.doc_第3页
Netfilter实现机制和扩展技术.doc_第4页
Netfilter实现机制和扩展技术.doc_第5页
资源描述:

《Netfilter实现机制和扩展技术.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、窗体顶端LinuxNetfilter实现机制和扩展技术本文从Linux网络协议栈中报文的流动过程分析开始,对Linux2.4.x内核中最流行的防火墙构建平台Netfilter进行了深入分析,着重介绍了如何在Netfilter-iptables机制中进行应用扩展,并在文末给出了一个利用扩展Netfilter-iptables实现VPN的方案。2.4.x的内核相对于2.2.x在IP协议栈部分有比较大的改动,Netfilter-iptables更是其一大特色,由于它功能强大,并且与内核完美结合,因此迅速成为Linux平台下进行网络应用扩展的主要利器,这些扩展不仅包括防火墙的实现--这只

2、是Netfilter-iptables的基本功能--还包括各种报文处理工作(如报文加密、报文分类统计等),甚至还可以借助Netfilter-iptables机制来实现虚拟专用网(VPN)。本文将致力于深入剖析Netfilter-iptables的组织结构,并详细介绍如何对其进行扩展。Netfilter目前已在ARP、IPv4和IPv6中实现,考虑到IPv4是目前网络应用的主流,本文仅就IPv4的Netfilter实现进行分析。要想理解Netfilter的工作原理,必须从对LinuxIP报文处理流程的分析开始,Netfilter正是将自己紧密地构建在这一流程之中的。1.IPPack

3、etFlowingIP协议栈是Linux操作系统的主要组成部分,也是Linux的特色之一,素以高效稳定著称。Netfilter与IP协议栈是密切结合在一起的,要想理解Netfilter的工作方式,必须理解IP协议栈是如何对报文进行处理的。下面将通过一个经由IPTunnel传输的TCP报文的流动路径,简要介绍一下IPv4协议栈(IP层)的结构和报文处理过程。IPTunnel是2.0.x内核就已经提供了的虚拟局域网技术,它在内核中建立一个虚拟的网络设备,将正常的报文(第二层)封装在IP报文中,再通过TCP/IP网络进行传送。如果在网关之间建立IPTunnel,并配合ARP报文的解析,

4、就可以实现虚拟局域网。我们从报文进入IPTunnel设备准备发送开始。1.1报文发送ipip模块创建tunnel设备(设备名为tunl0~tunlx)时,设置报文发送接口(hard_start_xmit)为ipip_tunnel_xmit(),流程见下图:图1报文发送流程1.2报文接收报文接收从网卡驱动程序开始,当网卡收到一个报文时,会产生一个中断,其驱动程序中的中断服务程序将调用确定的接收函数来处理。以下仍以IPTunnel报文为例,网卡驱动程序为de4x5。流程分成两个阶段:驱动程序中断服务程序阶段和IP协议栈处理阶段,见下图:图2报文接收流程之驱动程序阶段图3报文接收流程之

5、协议栈阶段如果报文需要转发,则在上图红箭头所指处调用ip_forward():图4报文转发流程从上面的流程可以看出,Netfilter以NF_HOOK()的形式出现在报文处理的过程之中。2.NetfilterFrameNetfilter是2.4.x内核引入的,尽管它提供了对2.0.x内核中的ipfw以及2.2.x内核中的ipchains的兼容,但实际上它的工作和意义远不止于此。从上面对IP报文的流程分析中可以看出,Netfilter和IP报文的处理是完全结合在一起的,同时由于其结构相对独立,又是可以完全剥离的。这种机制也是Netfilter-iptables既高效又灵活的保证之一

6、。在剖析Netfilter机制之前,我们还是由浅入深的从Netfilter的使用开始。2.1编译在NetworkingOptions中选定Networkpacketfiltering项,并将其下的IP:NetfilterConfigurations小节的所有选项设为Module模式。编译并安装新内核,然后重启,系统的核内Netfilter就配置好了。以下对相关的内核配置选项稍作解释,也可以参阅编译系统自带的Help:【Kernel/Usernetlinksocket】建立一类PF_NETLINK套接字族,用于核心与用户进程通信。当Netfilter需要使用用户队列来管理某些报文时

7、就要使用这一机制;【Networkpacketfiltering(replacesipchains)】Netfilter主选项,提供Netfilter框架;【Networkpacketfilteringdebugging】Netfilter主选项的分支,支持更详细的Netfilter报告;【IP:NetfilterConfiguration】此节下是netfilter的各种选项的集合:【Connectiontracking(requiredformasq/NAT)】连接跟踪,用于

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。