




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第 36卷 第 6期 电 子 科 技 大 学 学 报 V ol.36 No.62007年 12月 Journalof University of Electronic Science and Technology of China Dec. 2007 改进及优化 Linux 网络协议栈童 浩,陈兴蜀,严 宏(四川大学计算机学院 成都 610064【 摘要 】 针对 X86通用硬件平台,分析了 Linux 网络协议栈工作原理及网络安全功能实现的机理,及基于 Linux 协议栈设 计与配置网络安全平台中存在的问题,对原有 Linux 网络协议栈进行了改进及优化,实现了一种适应网络安全平台要求的、基
2、 于网络硬件端口转发、转发端口与管理端口分离,与原有 Linux 网络协议栈兼容的新的网络协议栈。通过测试,利用该协议栈 实现的网络安全平台比基于传统 Linux 协议栈实现的网络安全平台性能有较大辐度的提升, 并可使网络安全产品的设计更具紧 凑性与正交性。关 键 词 Linux; 网络 ; 端口 ; 协议栈中图分类号 TN918; O332 文献标识码 AImproved Network Protocol Stack of Linux NetworkTONG Hao, CHEN Xing-shu, YAN Hong(College of Computer Science, Sichuan U
3、niversity Chendu 610064Abstract Focusing on the X86 platform, this paper analyzes the theory of Linux network protocol stack andthe mechanism of firewall under this architecture, The problems of designing the Linux protocol stack and configuring secure network platform are pointed out. Then we intro
4、duce a new Linux network protocol stack which is based on the network hardware port transmission and the separation of transmission port and managerial port. By testing and comparing to traditional Linux protocol stack, this technology can greatly improve the performance of secure network platform a
5、nd it makes the design of secure network products more compactness and orthogonality.Key words Linux; network; port; stack收稿日期:2007 05 30基金项目:国家 242信息安全计划项目 (2005C47; 2006电子发展基金 (信部运 634号 ;四川省科技攻关项目 (06GG0618作者简介:童 浩 (1971 ,男,硕士生,主要从事信息安全、计算机网络方面的研究;陈兴蜀 (1968 ,女,博士,副教授,主要从事信息安全 方面的研究;严 宏 (1984 ,男,硕士
6、,主要从事信息安全、计算机网络方面的研究 .目前国内广泛使用 X86+Linux 作为网络防火墙 或其他类似安全设备的开发平台。 X86架构采用了 通用 CPU 和 PCI 总线接口, 具有很高的灵活性和可扩 展性; Linux 作为开放源代码的操作系统,开发者具有良好的开发环境和系统源码支持。基于该平台的产品功能主要由软件实现,可以根据用户的需求灵活调整功能模块,因此它一直作为网络安全设备开发的主要平台。X86+Linux 架构的缺点:X86通用的计算平台结构层次较多,不易优化; Linux 作为通用的操作系 统,更多考虑的是系统的通用性,没有对应用作进 一步的性能优化。该平台往往作为防火墙
7、低端产品 的开发平台 1。随着 CPU 性能的不断提升,总线结构的不断发 展 2, X86+Linux 平台上的网络安全产品逐步向高 端发展。为与硬件平台发展相适应,本文针对 Linux 操作系统, 特别是对 Linux 网络协议栈进行了优化与 改进,提高了系统的处理能力,使之能适应网络安 全发展的需求。 1 网络安全设备实现及存在的问题许多网络安全设备通常会采用 Linux 网络协议 栈中的 netfilter 框架 3来实现。它将一个网卡作为内 网口,另一个网卡作为外网口,当数据从网口进入 协议栈后,通过桥方式或路由方式实现数据包的转 发。在数据包的转发路径上,通过 netfilter 框
8、架上的 钩子点 (PreRouting、 Forward 、 PostRouting 实现对数 据包的审查与处理 4。网络安全平台的功能模块可分类为两大部分:网络数据的审查处理模块与网络数据的寻址路由模 块。审查处理模块可通过在 netfilter 框架中注册钩子 函数,以实现对网络数据包的审查处理 5;寻址路电 子 科 技 大 学 学 报 第 36卷 1494由模块由协议栈中路由判决模块和桥判决模块 6来 实现,用户根据设备工作的不同环境配置确定设备 是路由模式还是桥模式。路由模式和桥模式都是解决数据包从哪个接口 进入设备,又应由哪个接口输出的问题。这些工作 与网络安全设备所关注的数据包的安
9、全审查处理无 关。由于每个数据包都需要进行寻址路由,当数据 流量较大时,寻址路由操作及相关的路由表、 mac 地址表的更新工作需花费大量的机器处理时间。对 于大多数网络安全设备而言,网络安全平台设备的 数据从一个端口流入,另一个端口流出,其流入端 口和流出端口是固定的,并不需要寻址和路由。对 于这类具有固定的流入流出端口的网络安全平台而 言,路由模块和桥模块完全是冗余的。如果能裁剪 掉这部分不必要的寻址操作,将大大提高系统运行 的效率。分析产生这些问题根源, 是由于 Linux 通用的网 络协议栈造成的。由于 Linux 是一个通用的网络系 统, 没有考虑到网络安全设备转发数据的特殊需求。 理
10、想的网络安全设备的工作模式应该是:数据包进 入数据包审查处理数据包送出,并不希望协议 栈中除了网络安全功能以外的其他部分对转发的数 据包进行处理及响应。但在 Linux 协议栈中,只要目 标地址是本机或者是与本机相关的多播、广播包, 相应的模块就会作出响应。 这是因为到 Linux 协议栈 中的所有与本机相关的数据包都会通过栈中的 Input 、 Output 链接到达本机中的相应模块。本来只 想通过设备进行转发的数据包中的一些多播、广播 包也会通过协议栈到达网络安全设备本机。而对这 些数据包,特别是多播、广播包处理响应往往会影 响到网络安全设备的正常运行;同时设备对这些包 的回应,反过来又会
11、对网络产生影响。在网络中, 这样的多播、广播数据包是大量存在的,设备会给 网络带来的许多不可预知的问题,使得基于传统的 Linux 协议栈构造的网络安全设备平台的兼容性受 到很大的影响。2 建立快速转发机制2.1 实现原理及框架实际应用中,许多网络安全设备并不都需要路 由和网桥的功能,只需将数据包从一个网口接收, 经审查处理后到另一网口转发即可,其输入接口与 输出接口都已指定,没有必要对数据包的流向进行 寻址。应用中,由于每个到达 Linux 协议栈的数据包 都需要通过路由或网桥模块,都需要对数据包进行 路由或网桥处理,并且还伴随大量路由表和网桥表 的更新工作,极大地降低了系统的性能。对这类应
12、 用中的路由及网桥模块进行修改和裁减十分必要。 本文对传统的 Linux 网络协议栈进行了修改, 建 立了改进的网络安全平台协议栈。根据平台需要, 在原桥模块和路由模块的基础上,增加了一个面向 端口的快速转发模块,如图 1所示。当数据包进入网络协议栈时,首先判断是否存 在该网卡进行快速转发设置,若是,则进入快速转 发模块,进行快速转发;否则,数据上传,进入上 层协议栈,进行桥处理或路由处理,上层协议栈仍 然保持传统 Linux 协议栈不变,以保持兼容性。 为了防止网络安全设备与网络的相互影响,本 文将网络安全设备的数据转发端口与设备管理端口 分开。对经由数据转发端口通过网络安全设备的数 据包,
13、 不送入网络安全设备的上层协议 (应用层 进行 处理。因此,在设计转发模块时,不再提供 Input 和 Output 链入本机,防止了转发的数据包对设备内部 参数设置的依赖,避免设备内部设置与网络的相互 影响。管理安全设备所需数据包,统一通过管理接 口进行接收发送。当需要对网络安全平台进行管理 时,数据包从管理口进入本机时,首先判断接口有第 6期 童 浩 等 : 改进及优化 Linux 网络协议栈 1495无进行快速转发的设置,由于本文的管理口没有设 置为快速转发接口,接口即将数据包转入传统网络协议栈进行处理,不会影响平台本身接收与发送网 络数据。 图 1 改进后的 Linux 网络协议栈从理
14、论上讲,在整个快速转发的模块中,对数 据包的安全审查处理,只需要建立一个钩子 (hook点,在该钩子点上注册审查处理模块就可以了。但 为与传统 netfilter 框架结构保持一致,本文定制了三 个钩子点,注册在传统 netfilter 框架结构中的模块都 可以不加修改地移植在这三个钩子点上。 2.2 具体实现方法在内核中建立快速转发虚拟设备 fast_transfer (简称 FT 设备, FT 设备中定义了快速转发的接口对, 将 FT 设备加入用于网络设备管理的 net_device8队 列,通过编写 ioctl 命令对快速转发虚拟设备对进行 初始化,确定快速转发的输入输出接口对。当数据
15、包到达指定网口时,首先判断快速转发设备是否存 在, 该网卡是否加入了快速转发的输入输出接口对, 是则进入快速转发模块,遍历本文定制的 netfilter 钩 子点, 然后通过 net_device数据结构取得将要转发的 网卡接口,对数据包 skb_buff中相应的参数进行设 置,交由网卡进行发送,即实现数据包的快速转 发 9,如图 2所示。 图 2 数据快速转发流程图电 子 科 技 大 学 学 报 第 36卷1496 3 性能测试本文对快速转发协议栈与传统协议栈的性能进 行对比测试。测试平台为:双路 Intel Xeon Processor 3.0 G、 Intel E7520 芯片组, In
16、tel 82571 EB, PCI-E 网络控 制器。测试方式:Smartbits 6 000 吞吐量项目 10。从图 3的测试结果中可以看到, 基于网络接口的 快速转发协议栈效率明显高于其他两种方式。 Avg % passed(快速 Avg % passed(网桥 Avg % passed(路由 Frame size/BP a s s e d R a t e /(%图 3 吞吐量对比图在实际上线测试中 (四川大学校园网 , 该设备实 现了设备的透明上线与转发,不需要对设备周边环 境的设置作任何改变。4 总 结本文对传统 Linux 协议栈进行了改进, 实现对网 络协议栈中基于端口的快速转发,
17、使网络数据包转 发处理更加简洁,提高了设备运行效率;将实现转 发接口与管理接口分离,在转发路径上不再提供到 达本机的路径。通过隔离,提高了网络安全设备在 转发数据时的透明性,隔离了转发接口的广播包对 设备本身的影响,消除了网络安全设备对转发数据 响应带给网络的不可预测的影响;同时在进行网络安全功能设计时,只需考虑对网络数据包中感兴趣 的内容审查处理,不用再考虑网络传送的数据包对 本机的影响,更不用关注对网络安全平台中路由、 桥等相关协议参数的设置。在这样的协议栈上设计 网络安全设备,可以更专注于相关安全功能模块的 设计,使整个模块更加清晰、简洁,提高了整个网 络安全支持平台的紧凑性和正交性。参
18、 考 文 献1 李 烨 , 张红旗 , 杜学绘 , 等 . 千兆防火墙技术分析和研 究 J. 微计算机信息 , 2006, 22(33: 103-105.2 孟 会,刘雪峰 . PCI Express总线技术分析 J. 计算机工 程 , 2006, 32(23: 253-255.3 SCHUYMER B D, FEDCHIK N. Ebtables/iptables inter- action on a Linux based bridgeEB/OL. http:/ebtables. 2003-11-10.7 PERLMAN D. 网 络 互 :网 桥 . 路 由 器 . 交 换机 和 互 联 协 议 M. 高传善 , 译 . 北京 : 机械工业出版社 , 2001.8 CORBET J, KROAH-HARTMAN G, RUBINI A . Linux d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 心理学核心概念讲解:课件导航
- 感恩的心:父母养育之恩主题班会课件
- 审计流程规范与核心要素试题及答案
- 高级审计师角色定位试题及答案
- 移动营销实务(第2版) 课件 07 微博营销
- 2024年甘肃省定西地区岷县数学三上期末质量检测模拟试题含解析
- 造师考试应对技巧试题及答案
- 硕士外语考试新型试题及答案
- 静脉输液治疗安全管理
- 《结构分析》课件
- 公司劳务管理综合考评表
- 变更户主情况登记表(填写样式)
- 山东省医院护理服务质量评价细则简介
- 辽宁本溪国家地质公园环境保护自查报告
- 手卫生相关知识考核试题与答案
- 中国工农红军长征教学课件
- “钓鱼法”钢管桩沉桩施工
- 喷(烤)漆房VOCs治理设施日常运行台账
- 南方测绘_平差易2005说明书
- 动静脉内瘘的穿刺与护理-PPT课件
- 开姆洛克指南
评论
0/150
提交评论