Linux课程设计Linux下的网关服务 第6页

Linux课程设计Linux下的网关服务 第6页
这样修改的优点是,系统默认是禁止转发IP数据包,对服务器本身来说是很安全的。但作为网关每次启动网络服务或主机,都要输入该命令有些麻烦。可以将命令写入脚本文件自动执行。可以写入文件/etc/rc.d/rc.local.
# !/bin/sh
#
# This is script will be executed *after* all the other init scripts
# you can put your own initialization stuff in here if you do not want
# to do the full Sys v style init stuff
#
touch /var/lock/subsys/local
Echo “1”> /proc/sys/net/ipv4/ip_foeward

总结:以上是在Linux操作系统下的简单的路由设置,主要是修改自身的配置文件,当然路由的设置要比这复杂的多,但此处主要是实现数据包的转发,使网内的用户可以通过网关上网。
5流量控制
  由于带宽的限制,网关不可能满足内部网络对外部网络数据的无限制的需求。如果总是大量下载数据,会造成其他用户无法正常使用网络。尤其是对内部网络进行网段划分,为了避免网段间的相互干扰,应限制每个网段对网关带宽的使用。根据各网段的需求,对总带宽划分,给各网段分配流量。本节主要介绍Linux网络流量控制基本原理和流量控制工具iproute,并联系实际网络环境,利用TC命令进行不同网络流量需求的控制,实现了专业路由器的流量控制功能。
5.1 安装
  在linux系统盘中,带有流量控制工具程序包。使用rpm查看系统是否安装该程序包
[root@localhost root]# rpm –q iproute
 iproute -2.4.7-7

若出现上面的结果表示已经安装了iproute,否则用下面的命令安装此软件。
[root@localhost root]# rpm –ivh iproute-2.4.7-7
 
安装后,应有tc命令。使用命令whereis 查看命令是否存在。
[root@localhost root]# whereis tc
 tc: /sbin/tc

命令是做流量控制时,要使用的重要的命令。
5.2 流量控制的基本原理
  Linux操作系统中的流量控制器(Traffic Control)主要是通过在输出端口处建立一个队列来实现流量控制。Linux流量控制的基本原理如图1所示。
  
图3 Linux流量控制的基本原理
 接收包从输入接口(Input Interface)进来后,经过流量限制(Ingress Policing)丢弃不符合规定的数据包,由输入多路分配(InputDe-Multiplexing)进行判断选择:如果接收包的目的是本主机,那么将该包送给上层处理;否则需要进行转发,将接收包交到转发块(Forwarding Block)处理。转发块同时也接收本主机上层(TCP、UDP等)产生的包。转发块通过查看路由表,决定所处理包的下一跳。然后,对包进行排列以便将它们传送到输出接口(Output Interface)。一般我们只能限制网卡发送的数据包,不能限制网卡接收的数据包,所以我们可以通过改变发送次序来控制传输速率。Linux流量控制主要是在输出接口排列时进行处理和实现的。
配置和使用流量控制器TC,主要分以下几个方面:分别为建立队列、建立分类、建立 过滤器和建立路由,另外还需要对现有的队列、分类、过滤器和路由进行监视。
◆ 队列规则(Queue Discipline)
  无论何时,内核如果需要通过某个网络接口发送数据包,它都需要按照为这个接口配置的QDisc(排队规则)把数据包加入队列。然后,内核会尽可能多地从QDisc里面取出数据包,把它们交给网络适配器驱动模块。
◆ 分类(Classes)
  某些QDisc(排队规则)可以包含一些类别,不同的类别中可以包含更深入的QDisc(排队规则),通过这些细分的QDisc还可以为进入的队列的数据包排队。通过设置各种类别数据包的离队次序,QDisc可以为设置网络数据流量的优先级。
◆ 过滤器(Filters)
  filter用于为数据包分类,决定它们按照何种QDisc进入队列。无论何时数据包进入一个划分子类的类别中,都需要进行分类。分类的方法可以有多种,使用filter(过滤器)就是其中之一。使用filter(过滤器)分类时,内核会调用附属于这个类(class)的所有过滤器,直到返回一个判决。如果没有判决返回,就作进一步的处理,而处理方式和QDisc有关。
因此,Linux流量控制主要分为建立队列、建立分类和建立过滤器三个方面。其基本实现步骤为:
(1) 针对网络物理设备(如以太网卡eth0)建立队列规则;
(2) 在该队列上建立分类class;
(3) 为每一分类建立一个基于路由的过滤器filter;
(4) 最后与过滤器相配合,建立特定的路由表。
5.3设置流量控制
  假设我们建立的网关中网卡eth0连接内部局域网,网卡eth1连接路由器,服务商为我们 提供的带宽为10M。为了 查看效果,让内部局域网中的IP地址为192.168.0.22的主机通过网关上公网使用带宽为0.1M,基本处于中断状态。而网段192.168.0.0./55.255.0.0的主机对带宽使用为总带宽所在内部局域网的eth0上,做流量控制。网卡eth0为百兆网卡。
5.3.1 建立队列
 一般情况下,针对一个网卡只需建立一个队列。一个cbq队列绑定到网络物理设备eth0上,其编号为1:0;网络物理设备eth0的实际 带宽为10 Mbit,包的平均大小为1000字节;包间隔发送单元的大小为8字节,最小传输包 大小为64字节。

上一页  [1] [2] [3] [4] [5] [6] [7] 下一页

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有