手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网站运营>建站经验>列表

Linux路由器的宽带复用

来源:互联网 作者:west263.com 时间:2008-04-16
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

② 主路由表的维护
在我们的配置中,主路由表维护系统本地网络,默认的主路由表优先级是32766,处于路由表的最下端,需要将其优先级提高,防止访问本地网络使用外部网络接口:
#ip rule add prio 10 table main

③ 外网接入路由表的维护
在主路由表之后是外网接入路由表,我们配置了101、102、103三个表,分别对应DSL线路1、DSL线路2、和数字电路1,目的是配置外网各自的默认路由,同时配置prohibit关键字使用户在线路无法使用时获取网络失效信息,从而刷新后可改用其他线路。如DSL线路1配置如下:
#ip rule add prio 101 from 1.0.0.2/24 table 101
#ip route add default via 1.0.0.1 dev eth0 proto static table 101
#ip route append prohibit default table 101 metric 1 proto static

④ 等值路由表的设定
配置等值路由表200于用户路由表的末端,提供三个接入线路的随机分配。其中 proto static关键字是我们补丁所实现的功能。
#ip rule add prio 200 table 200
#ip route add default table 200 proto static \
nexthop via 1.0.0.1 dev eth1 \
nexthop via 1.0.0.1 dev eth2 \
nexthop via 3.0.0.1 dev eth3

⑤ 线路检测
系统已能够自动检测失效路由并自动调整路由表,但当线路恢复正常时还无法自动起用该线路,因此需要定期对任何外网线路进行检测,我们能够使用以下脚本发送ICMP包检测线路并且使用 cron定时(每分钟)执行。
#!/bin/sh
ping -c 1 1.0.0.1
ping -c 1 3.0.0.1

路由性能监测

使用MRTG工具监测路由器带宽能够直观地看出网络高峰时的使用情况,如图2,在没有实现复用前,单个DSL线路(DSL线路1,带宽2M)是十分拥塞的:

图2
经过复用后,该线路(DSL线路1,带宽2M)的流量由三条宽带线路分担,明显缓解了带宽的压力(如图3):

图3
由于MRTG只能监控三条单独的线路,监测结果不是很直观,因此我们用PERL编写了一个MRTG扩展程式(virtual_line.pl),使之能够将三条2M线路逻辑累加为一条6M的虚拟线路,便于管理员的监测。
基于NAT的流量监控事实上是对Iptables的FORWARD链进行计量,因此我们能够对每一条宽带线路进行监控,在Iptables中为每一条线路添加流入和流出计量(如对数字电路1):
#iptables -N FORW-IN1
#iptables -N FORW-OUT1
#iptables -A FORWARD -i eth3 -j FORW-IN1
#iptables -A FORWARD -o eth3 -j FORW-OUT1

然后在MRTG中定时运行我们的virtual_line.pl,即可对三条线路逻辑累加虚拟线路进行监控。virtual_line.pl的源代码如下:
#!/usr/bin/perl
#==========初始化配置============
$iptables =“/sbin/iptables”;
$uptime =“/usr/bin/uptime”;
$host =“server.gic.ac.cn”;
#对三条线路进行流入和流出流量统计
@chain_in=(“FORW-IN1”,“FORW-IN2”,“FORW-IN3”);
foreach (@chain_in) {
$_=‘$iptables -nvxL | grep $_ | grep -v Chain’;
s/^\s \d \s (\d ).*$/\n/s;
$in=$in $_;
}
print“$in\n”;
@chain_out=(“FORW-OUT1”,“FORW-OUT2”,“FORW-OUT3”);
foreach (@chain_out) {
$_=‘$iptables -nvxL | grep $_ | grep -v Chain’;
s/^\s \d \s (\d ).*$/\n/s;
$out=$out $_;
}
print“$out\n”;
#显示系统时间和主机名
($uptime = ‘$uptime’) =~ s/^.*up (.*,[\d: ] ),.*$//s;
print “$uptime$host\n”;
#============ end ==============

由虚拟线路的监测图能够看出,网络总体对带宽的最大需求为3M,我们的总带宽有6M,所以该复用线路完万能够满足需要。


图4

方案讨论

通过以上讨论,最终切实可行的宽带复用方案如下:
1.首先对Linux内核升级,使内核能够对STATIC路由表进行管理;
2.配置NAT和加载必要的模块;
3.提高主路由表的优先级,并建立外网接入路由表;
4.建立等值路由表;
5.配置定时检测线路;
6.使用MRTG对线路进行监测。
由于复用技术基于IP随机分配算法,在一个缓存期内,对任何内网的访问需求,内核根据其目的IP地址随机分配一个外网IP,因此对某些网站的高强度访问会带来线路的部分不均衡,实际的使用过程中,不平衡值会高达15%以上。我们能够通过配置透明代理,使用SQUID代理服务器来平衡线路负载,可使多条线路的流量更加均衡。
理论上,可复用无限多条宽带线路,上限仅和Linux主机的PCI插槽数量有关。
由于Linux系统良好的稳定性和路由功能的日益完善,并且随着电脑硬件的价格下降,基于Linux系统的路由应用越来越广泛。在中国科技网广州节点,近十台Linux路由器和其他Cisco路由器一起,承担着繁重的路由交换和高层网关工作,几年的良好运行,证实了Linux系统良好的稳定性和出色的网络性能。


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!