分享
 
 
 

基于Linux实现多个ADSL捆绑

王朝厨房·作者佚名  2007-01-05
窄屏简体版  字體: |||超大  

摘要:基于Linux实现多个ADSL捆绑

现在很多公司,为了节约成本,往往会放弃E1等等这样高价的链路,选择廉价的ADSL作为基本接入方式。单条ADSL带宽有限,动态ip,链路连接也不很稳定。多条ADSL可以满足一定的带宽需求,但是一般情况下,都是内网设置多个网关,内网用户手动指定网关选择ADSL出口,管理维护比较繁琐。部分ADSL接入商通过支持MPPP来提供ADSL多链路带宽捆绑服务,但是同样会收取比较高的费用。这里将介绍一个方法,通过Linux网关实现多个ADSL链路的捆绑。

必要条件,是有一台外部的Linux主机,并且通过ADSL能快速访问。一般情况下可以选择本地IDC提供的主机托管服务。这里可以做一个简单的速度测试,用FlashGet通过ADSL下载主机上的文件,能占满ADSL带宽即可。

先简单介绍一下原理。首先是通过ppp over ssh建立一条基本tunnel。然后通过Linux对mppp的支持,将多个tunnel聚集到一起。剩下来的问题,就是如何充分利用多个存在的ADSL网关,答案就是依靠ssh -b参数指定source ip,然后再利用linux的source routing来选择具体网关。

--------------------|-ADSL1-GW-- ..................-|

--------------------|-ADSL2-GW-- ..................-|

LinuxGW(LG) ---|-ADSL3-GW-- (MPPP Link) --- External Linux Host(LE)

--------------------|-ADSL4-GW-- ..................-|

--------------------|-ADSL5-GW-- ..................-|

配置基本的ppp over ssh tunnel

首先是在LE上建立一个普通的用户,并且配置好ssh key验证

# groupadd adslin

# useradd -g adslin -m adslin

在LG上使用ssh-key建立一对key文件

# ssh-key -t dsa -f /etc/ppp/peers/adsl-out-key

然后将/etc/ppp/peers/adsl-out-key.pub复制到LE上~adslin/.ssh/authorized_keys文件里面。需要注意一下这个文件的属性,owner必须是adslin:adslin.

做一下测试,保证ssh可以在不输入口令的情况下,登录到LE上

# ssh -i /etc/ppp/peers/adsl-out-key adslin@LE

确定一切无误之后,我们继续

下面的工作在LE上完成:

1.复制系统的pppd到adslin HOME目录中,并且设这正确属性

# cp /usr/sbin/pppd ~adslin

# chmod u+s ~adslin/pppd

2.准备密码验证文件,在/etc/ppp/chap-secrets文件中添加两行

adslin adslout 123456 *

adslout adslin 123456 *

(实际应该只要一行,我也不确定到底哪行是起作用的)

3.在/etc/ppp/peers目录中建立一个adslin文件,内容如下

-- BEGIN --

endpoint phone:144145

name adslin

remotename adslout

netmask 255.255.255.0

1.2.3.4:4.3.2.1

multilink

nodetach

+chap

require-chap

-- END --

其中endpoint, multilink是为了支持mppp的.netmask以及ip需要更具具体需要修改。

下面工作在LG上完成

1.与上面LE上的操作相同,给/etc/ppp/chap-secerts添加相同的两行。

2.在/etc/ppp/peers/目录中建立adslout文件,内容如下

-- BEGIN -- endpoint phone:144145

name adslout

remotename adslin

netmask 255.255.255.0

4.3.2.1:1.2.3.4

multilink

nodetach

+chap

require-chap

pty "ssh -t -i /etc/ppp/peer/adsl-out-key adslin@LE ./pppd call adslin"

-- END --

可以看出来,这个文件和LE上的adslin基本相同,除了name/remotename以及ip对调了一下。同时增加了pty这个option,pppd将利用这个option提供的命令行来建立连接管道。

最后我们来测试一下,在LG上运行

# pppd call adslout

看看是否能基于ssh链路建立正常的ppp连接。

现在的工作,就是准备策略路由。我们都知道,标准IP的路由规则,都是根据目的地址来选择路由的,对于一个相同的目的地址,我们如何实现控制TCP连接选择不同的网关喃?先看一下下面的例子。

# ip addr add 192.168.1.201/24 dev eth0

# ip rule add pref 12001 from 192.168.1.201 table 101

# ip route add default via 192.168.1.1 table 101

# ip addr add 192.168.1.202/24 dev eth0

# ip rule add pref 12002 from 192.168.1.202 table 102

# ip route add default via 192.168.1.2 table 102

简单的解释一下,第一句ip addr add,是给eth0这个interface新增加一个ip。ip rule add是增加一个策略,所有源地址是192.168.1.201的IP包,都使用table 101这个route表,而不是使用缺省的系统路由表。ip route add是添加了一条缺省路由(default route),仔细看最后的参数,table 101,意思就是说这条路由是加在table 101中,而不是缺省的系统路由表中。

言下之意,如果源地址为192.168.1.201的IP包,会匹配12001(pref 12001)这个规则去查询101这个路由表。而101这个路由表的网关就是192.168.1.1。同样的道理,如果源地址为192.168.1.202的话,就会选择192.168.1.2作为网关。现在我们明白了,我们可以通过控制源地址来控制具体的网关选择。可是我们又如何来控制IP包的源地址喃?

man ssh,我们可以看到-b这个选项,bind address,right,就是这个选项。ssh -b 192.168.1.201 ...将会使用1.1这个网关,ssh -b 192.168.1.202 ...就会通过1.2网关建立连接。我们可以通过-b参数来控制连接的源地址,也就选择了这个连接所使用的网关。

转自ChinaITLab

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有