首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | 镜像站
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
Linux资讯 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>网络管理>网络应用>正文

Linux配置多线路ADSL的方法

http://www.oklinux.cn  2006-02-21  来源: oklinux收集整理  linux      会员收藏  游客收藏  【 】 
经过一段时间的观察,证明运行良好,现把设置过程及方法总结一下,欢迎指正.
    此文档可以说明双adsl及多adsl增加线路的配置过程.
实验环境:
    操作系统: RedHat7.3
    两条adsl,长期观察线路稳定,动态ip,带宽2M,
    三块网卡: eth0 tulip,接内网
              eth1 3c59x,接第一条adsl
              eth2 8139too,接第二条adsl
       ethn xxxx,(如果还有的话....)

目的:用两条adsl共同上网,分担负载,实现一般的简单负载平衡,带动内网上网.

1.添加网卡
  插入网卡,启动机器,如果需要双线路上网,就要三块网卡了,配置网卡也可以参考其他资料.
  配置为找到相应的型号模块,例如:eth2是8139的网卡
  [root@kindgeorge root]# vi /etc/modules.conf

    alias parport_lowlevel parport_pc
    alias eth0 tulip
    alias eth1 3c59x
    alias eth2 8139too
  把新的线路插在eth2上

2.配置adsl
  方法一:
  (1)运行adsl-setup程序,会一步一步的提示你完成配置过程.
     创建ppp0和ppp1的拨号配置文件,并保存配置,一般保存在/etc/sysconfig/network-scripts/ifcfg-ppp1

  (2)确定/etc/sysconfig/network-scripts/ifcfg-ppp0文件,其中的PIDFILE参数设为:
     PIDFILE=/var/run/ppp-adsl.pid
     修改/etc/sysconfig/network-scripts/ifcfg-ppp1文件,将其中的PIDFILE参数设为:
     PIDFILE=/var/run/ppp-adsl1.pid
   如果你有更多的线路,可以继续增加0,1,2,3....等
   这是为了使不同的拨好用不同的pid,如果不修改此参数将无法启动第二条线路接口。

  (3)配置文件一般是:
     USERCTL=no
     BOOTPROTO=dialup
     NAME=DSLppp1
     DEVICE=ppp1
     TYPE=xDSL
     ONBOOT=yes
     PIDFILE=/var/run/pppoe-adsl1.pid
     FIREWALL=NONE
     PING=.
     PPPOE_TIMEOUT=20
     LCP_FAILURE=3
     LCP_INTERVAL=20
     CLAMPMSS=1412
     CONNECT_POLL=6
     CONNECT_TIMEOUT=60
     DEFROUTE=yes
     SYNCHRONOUS=no
     ETH=eth2 (对应新线路的网卡)
     PROVIDER=DSLppp1
     USER=isp提供的新用户名字2
     PEERDNS=no


方法二:
(1)直接拷贝
   cp /etc/sysconfig/network-scripts/ifcfg-ppp0 /etc/sysconfig/network-scripts/ifcfg-ppp1
(2)修改其中的ppp0为ppp1,
   修改PIDFILE=/var/run/pppoe-adsl.pid 为PIDFILE=/var/run/pppoe-adsl1.pid
   修改采用的新接线路的网卡,例如:改ETH=eth1 为ETH=eth2
(3)增加新线路的帐号和密码.  帐号密码一般是保存在/etc/ppp/chap-secrets 和pap-secrets
   我们只需要在最后增加新的用户名2和密码2即可.
   /etc/ppp/chap-secrets文件一般是这样的:
   # Secrets for authentication using CHAP
   # client        server  secret                  IP addresses
   "用户名1"       *       "密码1"
   "用户名2"       *       "密码2"
   "用户名n"       *       "密码n"

3.启动ppp接口
  因为adsl-start 命令缺省只能启动第一的ppp接口。所以要启动两个接口,必须指定配置文件。
  可以用:方法一:
   ifup ppp0
   ifup ppp1
   (ifup pppn...)
   或方法二:
   adsl-start /etc/sysconfig/network-scripts/ifcfg-ppp0
   adsl-start /etc/sysconfig/network-scripts/ifcfg-ppp1
   (adsl-start /etc/sysconfig/network-scripts/ifcfg-pppn)

4.查看新设置是否启动:
   方法一:执行: ifconfig
   出现ppp0 和ppp1 ,并且均得到ip了.说明成功了,结果象这样:
   ppp0   Link encap:Point-to-Point Protocol  
          inet addr:218.114.37.137  P-t-P:61.142.110.30  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1
          RX packets:165721 errors:0 dropped:0 overruns:0 frame:0
          TX packets:123673 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:157324193 (150.0 Mb)  TX bytes:14068892 (13.4 Mb)

   ppp1   Link encap:Point-to-Point Protocol  
          inet addr:218.114.35.62  P-t-P:61.142.110.30  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1
          RX packets:560055 errors:0 dropped:0 overruns:0 frame:0
          TX packets:439711 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:530025378 (505.4 Mb)  TX bytes:80895162 (77.1 Mb)

  方法二:  执行ip高级命令:  ip link ls
  也可以检验ppp0和ppp1,结果象这样:
         1: lo: mtu 16436 qdisc noqueue
            link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
         2: eth0: mtu 1500 qdisc pfifo_fast qlen 100
            link/ether 00:50:bf:07:4e:32 brd ff:ff:ff:ff:ff:ff
         3: eth1: mtu 1500 qdisc pfifo_fast qlen 100
            link/ether 00:01:02:9a:31:b9 brd ff:ff:ff:ff:ff:ff
         4: eth2: mtu 1500 qdisc pfifo_fast qlen 100
            link/ether 00:e0:4c:79:44:71 brd ff:ff:ff:ff:ff:ff
       268: ppp1: mtu 1492 qdisc pfifo_fast qlen 3
            link/ppp
       273: ppp0: mtu 1492 qdisc cbq qlen 3
            link/ppp

  方法三: 用命令测试反应
        ping -I ppp0 202.96.134.133    (测试ppp0的线路状况)
ping -I ppp1 202.96.134.133    (测试ppp1的线路状况)  
ping -I ppp2 ......n     (如果还有多条的话)   

5.如果单单是要实现链路负载平衡,让ppp0和ppp1分担负载,那么我们象以下设置一下配置:
  (1)启动路由,允许转发echo 1 > /proc/sys/net/ipv4/ip_forward
  (2)进行伪装:
       iptables -A POSTROUTING -t nat -s 192.168.1.0/24 -o ppp0 -j MASQUERADE
       iptables -A POSTROUTING -t nat -s 192.168.1.0/24 -o ppp1 -j MASQUERADE
       iptables -A POSTROUTING -t nat -s 192.168.1.0/24 -o pppn -j MASQUERADE (如果还有多条的话)
  (3)修改网关
      ip route replace default scope global nexthop dev ppp0 weight 1 nexthop dev ppp1 weight 1
            说明: 用replace的原因是当原来没有网关时会增加这个网关,当已经存在网关时,会修改原来的网关.
           用add 也可以,但是当已经存在默认网关时就要先delete再add.
     两个weight 1的意思是这两条链路的权值是相等的,两条链路承担的网络流量是相等的。
     有一点是需要说明的,因为路由表是基于缓存的,所以在实际中两条链路并不能100%的平分流量
         nexthop NEXTHOP 设置多路径路由的下一跳地址。NEXTHOP比较复杂,它的语法和以下高层参数类似:
                via ADDRESS--表示下一跳路由器;
                dev NAME--表示输出设备;
                weight NUMBER--在多路由路径中,这个元素的权重。表示相对带宽或者服务质量。
            如果你有多条线路,那么继续在其中增加 nexthop dev ppp2(ppp3......)即可
  (4) 刷新路由
      ip route flush cache

6.即时检查数据的方向:
  用tcpdump 分别监察两条线路,用下面命令:
  tcpdump -i ppp0
  tcpdump -i ppp1
  tcpdump -i ppp2......n (有多条的话)

7.为了每次启动时自动启动,把命令写在启动脚本里面,在 /etc/rc.local 后面增加:
  ifup ppp0
  ifup ppp1
  echo 1 > /proc/sys/net/ipv4/ip_forward
  iptables -A POSTROUTING -t nat -s 192.168.1.0/24 -o ppp0 -j MASQUERADE
  iptables -A POSTROUTING -t nat -s 192.168.1.0/24 -o ppp1 -j MASQUERADE
  ip route replace default scope global nexthop dev ppp0 weight 1 nexthop dev ppp1 weight 1
  ip route flush cache
结果:运行数月,效果稳定良好.
    上网会明显加快,为何呢,因为两条线路分摊了负载.例如,内网80人同时上网,
    如果网络是一条2M的adsl,那么整条线路都拥挤,挤得死死的,每人分得的带宽可能只有30k.大家都会明显感觉上网很慢.
    如果增加多一条线路,那么两条2M共同分摊拥挤程度,这样,可能每人分得的带宽就会变成60K,是原来的加倍,以这种形式来加快上网速度,增加了并发连接的个数.

[ Last edited by linux on 2006-2-21 at 10:14 ]

上一篇:Linux下启动ftp及xdm配置   下一篇:Linux下mono配置


收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·Linux下启动ftp及xdm配置
·Linux下mono配置
·免费的Linux在构建绿色校园网中的应用
·清除Linux上的蠕虫程序Ramen
·在LINUX环境中配置WU-FTP服务器
·Linux成为"文件服务器"
·Linux网络设置技巧:实现多网卡bonding
·提高 Linux 上 socket 性能
·在linux下设置WWWServer
·在unix和类unix系统上安装动网asp+mssql论坛
·linux路由器建立心得
·全力打造多功能FreeBSD服务器
·Apache FAQ集锦
·Suse Linux下的samba设置用户说明
·打造Linux网络自动补丁机(图)
·使用Turbo Linux建立局域网服务器
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·VMware下让Linux系统与真实主机共享上
·Linux系统下服务器的硬件检查和文件传
·在虚拟机Redhat Linux下安装Samba服务
·Linux操作系统下PPPOE拨号共享上网方法
·xManager连接Linux的配置方法
·Linux和Window系统远程桌面相互访问方
·Ubuntu下用手机连接蓝牙局域网pan/pand
·如何解决Xmanager不能登陆Linux系统问
·通过Amora用symbian手机控制Linux计算
·在Linux操作系统下单网卡实现双IP的设
·Linux下使用Openssh工具远程管理Solari
·VMware下Linux与真实主机共享上网的方
  阅读排行
·LVS集群学习笔记(NAT\DR\IP tunnel)
·防火墙也能DIY----免费的专业级防火墙M
·Linux系统邮件服务器常见错误报告列表
·linux下文件服务Vsftp详细介绍
· 快速架设apache/vsftpd/samba/sendmai
· Linux下Tomcat配置技巧详解分析
·如何利用集群技术实现Web服务器的负载
·Suse Linux下的samba设置用户说明
·Linux操作系统下SVN服务器的搭建详解
·RHEL5实现高可用HA集群+GFS+Enterprise
· Snort 用户手册
·使用 screen 管理你的远程会话
·Linux操作系统下的集群工作原理及实战
·用Xmanager远程管理LINUX,AIX等UNIX系
·路由器和防火墙软件coyote Linux配置指
网摘收藏: