Linux配置多线路ADSL的方法

Linux配置多线路ADSL的方法缓存

做者:兄弟连网络

此文档能够说明双ADSL及多ADSL增长线路的配置过程。并发

Linux配置多线路ADSL的方法tcp

powered by KindGeorge http://kindgeorge.at.3322.org\通过一段时间的观察,证实运行良好,现把设置过程及方法总结一下,欢迎指正.oop

此文档能够说明双adsl及多adsl增长线路的配置过程.测试

实验环境:操作系统

操做系统: RedHat7.3server

两条adsl,长期观察线路稳定,动态ip,带宽2M,接口

三块网卡: eth0 tulip,接内网ip

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,是原来的加倍,以这种形式来加快上网速度,增长了并发链接的个数。

相关文章
相关标签/搜索