Linux 软路由性能测试及分析20081124

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

本文介绍了Linux 软路由的工作原理,并使用普通PC 计算机作为硬件设备,在实际网络环境中测试和讨论了Linux 软路由的性能。实验证明,在百兆以太网络环境中,Linux 软路由的数据报转发速度取决于网络卡的实际速度,并随着软路由系统的应用层服务的增加而降低。该结果为Linux 软路由的应用和普及提供依据。

0、引言

随着开源软件的发展,越来越多的人开始了解、使用和研究Linux。目前Linux 环境下的软路由设计和应用案例已有很多;但是对于实际网络环境中Linux 软路由的负载性能一直缺乏相关的实测和讨论。本文从Linux 软路由的框架和实验两部分进行讨论,并给出结论。

1、Netfilter 框架

Netfilter 框架上是整个Linux 软路由运作的体系,是Linux2.4 内核处理数据报的流水操作系统。它能够运做在IPv4、IPv6 及Decnet 等网络栈中。Netfilter 框架的概念的提出及主要实现者是Rusty Russell。

Netfilter 框架如图所示:

Figure xxx. Requires a heading

(1)Netfilter 为每种网络协议定义一套钩子函数,其中为IPv4 定义了以下5个钩子函数:

[1]NF_IP_PRE_ROUTING.

[2]NF_IP_LOCAL_IN

[3]NF_IP_FORWARD

[4]NF_IP_POST_ROUTING

[5]NF_IP_LOCAL_OUT

(2)这些钩子函数在Linux 内核的模块中注册,并与之挂接。当数据报流入框架的网络层时,内核模块在框架的钩子函数处[1]接收数据报,并对它进行检查、转发、丢弃或指示Netfilter 将该数据报通过[2]传入用户空间队列。

(3)如果该数据报被传递给用户空间,将在应用层被异步处理。该层的用户进程(Local Process)在对数据报进行更加精细的检查,修改和装配之后,通过钩子函数[4]把它重新递交给网络层。

Netfilter 框架的数据报分流结构使它极大地降低了数据报转发的延迟,提高了数据报控制的精度;在节省系统开销,提高数据报的处理效率上超越了工作在Windows 平台的路由软件。

2、Iptables 指令系统

如果Netfilter 框架是一个数据报流水线,那么我们就需要有能控制流水线作业的指令系统,这个指令系统在Linux2.4 内核及以上版本中被称为Iptables。Iptables 的指令由表和规则组成,它直接控制着钩函数和Linux 内核模块完成数据报的过滤、转发和修改工作。

(1)数据报过滤(Packet Filter):Iptables 中filter 表格负责检查数据报,并根据规则决定放行或丢弃资料报,它工作在Netfilter 框架的Local Process 中。

(2)网络地址转换(NAT:Network Address Translation):Iptables 中的NAT 表格实现对需要转发的数据报的源地址和目的地址的转换。NAT 表格不同于filter 表,它只将新连接的第一个数据报遍历表格,而随后的资料报将根据第一个数据报的结果进行同样的转换处理。这使得NAT 表能在网络层上高速的转发数据报。

(3)数据报处理(Packet Mangling):Iptables 中的mangle 表格可以实现对数据报的修改或给资料报附上一些额外数据。随着Iptables 的升级,这个操作将越来越精确。

3、测试代码和计算机配置

Linux 软路由的硬设备采用普通PC 计算机,计算机的其中一块网络卡(eth0)设置为内网网关,IP 地址为10.1.10.1;另一块网络卡(eth1)设置为外网IP ,IP 地址为211.155.226.121

3.1、Iptables 代码

##清空原有Iptables 规则。

##打开Linux 内核数据报转发功能

##把原地址为局域网内的数据报通过Linux 软路由转发出去

##开启日志记录功能

##映像HTTP 协议80端口

##映射FTP 端口

3.2、计算机配置

表1.硬件配置

设备型号实际带宽约

100M 网络卡×2 DLink DFE-530TX 10.7 MBps

32位33MHz PCI总线MSI865PE 60.0 MBps

7200rpm 硬盘SAMSUNG SP0812C 39.3 MBps

400MHz 内存威刚512M DDR400 405.8 MHz

800MHz System Bus Pentium4 2.4c 811.5 MHz

由表1可知,网络卡的实际数据传输速度为10.7MBps,若使用两块PCI 网络卡则带宽需2×10.7MBps =21.4MBps,小于32 位33MHz PCI 总线带宽60MBps;而计算机CPU 、内存传输速度远远大于PCI 总线和网络卡数据传输速度,因此理论上软路由数据报转发速度取决于网络卡速度。

4、测试结果

软路由稳定运行10天后系统性能:

内核空间CPU 占用率(sy)为0.3%,空闲CPU(id)为99.7%

系统占用物理内存稳定在198M(系统启动时占用物理内存74M)

5Min 内TCP 连接数最大值为4120

网络卡eth0平均数据流量2.77MBps,网络卡eth1 平均数据流量2.45MBps,网络负载较轻

通过网关传输文件实测平均速度约为7.64MBps,最高速度10.8MBps,较好的符合了表1 中的实际带宽。这个数值约为网络卡理论速度的86.4%(网络卡理论速度为12.5 MBps)

开启并使用VPN 和DHCP 服务10 天后,测试系统性能:

内核空间CPU 占用率(sy)为0.7%

系统占用物理内存稳定在297M

5Min 内TCP 连接数最大值为4108

相关文档
最新文档