Linux 软路由性能测试及分析

发表于:2008-11-24 14:32

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:网络转载

#
Linux

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

  0、引言

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

  1、Netfilter框架

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

  Netfilter框架如图所示:

  Figurexxx.Requiresaheading

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

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

  2、Iptables指令系统

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

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

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

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

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

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

  3.1、Iptables代码

iptables–F

iptables-tnat–F

iptables-tmangle–F

  ##清空原有Iptables规则。

echo"1">/proc/sys/net/ipv4/ip_forward

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

iptables-tnat-APOSTROUTING-s10.1.10.0/24-jSNAT--to211.155.226.121

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号