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,是原來的加倍,以這種形式來加快上網速度,增長了併發鏈接的個數。

相關文章
相關標籤/搜索