带宽叠加+负载均衡

以下资料大部分来自网络,感谢原博主的分享,本人只做部分适配修改,如有侵权请联系博主,谢谢

1.需要安装rp-pppoe,拨号所需

2.创建拨号配置文件,以/etc/sysconfig/network-scripts/ifcfg-ppp0为例,根据实际情况不必照抄

[[email protected]***** ~]# cat  /etc/sysconfig/network-scripts/ifcfg-ppp0

USERCTL=yes

BOOTPROTO=dialup

NAME=DSLppp0

DEVICE=ppp0

TYPE=xDSL

ONBOOT=no

PIDFILE=/var/run/pppoe-adsl0.pid

FIREWALL=NONE

PING=.

PPPOE_TIMEOUT=80

LCP_FAILURE=3

LCP_INTERVAL=20

CLAMPMSS=1412

CONNECT_POLL=6

CONNECT_TIMEOUT=60

DEFROUTE=yes

SYNCHRONOUS=no

ETH=eth4 #这里我使用物理网卡ETH4,记得把猫的网线插在这个网卡上,这样才能拨号

PROVIDER=DSLppp0

USER=XXXXX  #ADSL帐号

PEERDNS=no

DEMAND=no

3.创建拨号的密码文件

vim /etc/ppp/pppoe-server-options.rpmsave

auth #连接必须验证

require-chap  # 选择验证方式,分为PAP和CHAP 我建议用CHAP,因为PAP不***全,容易被人把密码抓走

login #据说加了这个就能后再使用PAP 方式就能允许使用本地帐号登录了,不过我一直没成功

lcp-echo-interval 10 #每十秒检测一次链路状态,查看是否正常

lcp-echo-failure 2  #如果10秒后状态依然不正常 再等两秒后 确认断开连接

ms-dns x.x.x.x#给客户端的DNS

[[email protected]**** ~]# cat /etc/ppp/chap-secrets

# Secrets for authentication using CHAP

# client   server  secret          IP addresses

####### redhat-config-network willoverwrite this part!!! (begin) ##########

####### redhat-config-network willoverwrite this part!!! (end) ############

"ADSL帐号"    *  "密码"

4.把所有的猫都插在不同的物理网卡上。按照2,3步骤一次添加配置文件和密码。#此处也可以采用单卡多播的方式处理

5.现在测试拨号(然后一次测试不同配置文件,等同于测试不同的帐号是否都可以拨号成功,注意猫是否都加载电源,网线是否插好)

/sbin/adsl-start/etc/sysconfig/network-scripts/ifcfg-ppp309

若拨号成功,ifconfig后显示ppp0的相关信息

断开拨号连接

[[email protected]**** ~]#ifconfig ppp0

ppp0     Link encap:Point-to-Point Protocol

inet addr:121.34.103.105 P-t-P:121.34.100.1  Mask:255.255.255.255

UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492  Metric:1

RX packets:54809 errors:0 dropped:0 overruns:0 frame:0

TX packets:57439 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:3

RX bytes:47257780 (45.0 MiB)  TXbytes:4184643 (3.9 MiB)

6.所有拨号成功后,现在创建iptables规则,让服务器提供NAT功能(这里有4条ADSL,ppp0~ppp3)

iptables -t nat -F

iptables -t nat -X

iptables -t nat -P PREROUTING ACCEPT

iptables -t nat -P POSTROUTING ACCEPT

iptables -t nat -P OUTPUT ACCEPT

iptables -t mangle -F

iptables -t mangle -X

iptables -t mangle -P PREROUTING ACCEPT

iptables -t mangle -P INPUT ACCEPT

iptables -t mangle -P FORWARD ACCEPT

iptables -t mangle -P OUTPUT ACCEPT

iptables -t mangle -P POSTROUTING ACCEPT

iptables -F

iptables -X

iptables -P FORWARD ACCEPT

iptables -P INPUT ACCEPT

iptables -P OUTPUT ACCEPT

iptables -t raw -F

iptables -t raw -X

iptables -t raw -P PREROUTING ACCEPT

iptables -t raw -P OUTPUT ACCEPT

####

modprobe ip_conntrack hashsize=30000 #根据流量大小调整

iptables -t nat -A POSTROUTING -s10.0.0.0/255.255.0.0 -o ppp0 -j MASQUERADE

iptables -t nat -A POSTROUTING -s10.0.0.0/255.255.0.0 -o ppp1 -j MASQUERADE

iptables -t nat -A POSTROUTING -s10.0.0.0/255.255.0.0 -o ppp2 -j MASQUERADE

iptables -t nat -A POSTROUTING -s10.0.0.0/255.255.0.0 -o ppp3 -j MASQUERADE

iptables -t nat -A POSTROUTING -s10.0.0.0/255.255.0.0 -o eth0 -j MASQUERADE #若ADSL都失效的话,让起走默认的ETH0,备用策略;这条规则根据实际情况添加

iptables -A FORWARD -s 10.0.0.0/16 -jACCEPT

iptables -A FORWARD -d 10.0.0.0/16 -jACCEPT

###

iptables -A INPUT -s 10.0.0.0/16 -p icmp -jACCEPT

iptables -A INPUT -m state --stateRELATED,ESTABLISHED -j ACCEPT #启用连接追踪

iptables -A INPUT -s 127.0.0.1 -j ACCEPT

iptables -A INPUT -d 127.0.0.1 -j ACCEPT

ip route

7.到目前位置,还有一个问题没有解决,如何带宽的负载均衡?

ip route replace default equalize nexthopdev ppp0 weight 1 nexthop dev ppp1 weight 1 nexthop dev ppp2 weight 1 nexthopdev ppp3 weight 1

但还是有问题啊,万一那条ADSL DOWN掉了肿么办呢?

这个问题,让下面这个脚本来解决吧。

脚本工作原理:每隔5秒检测当前ADSL连线的状态,若有掉线的,将此线路踢出网关集合中(这里4条线路,你有几条就自己重新修改脚本啊,千万不要照抄……)

#!/bin/bash

#check ppp status

#

#

##########################################################################################################

ip route replace default equalize nexthopdev ppp0 weight 1 nexthop dev ppp1 weight 1 nexthop dev ppp2 weight 1 nexthopdev ppp3 weight 1

ACTIVE_PPP_STATUS="15"

while (true)

do

PPP_STATUS="0"

if [ "`ifconfig | awk -F"[:]" ‘/ppp0/{print $1}‘`" = "ppp0" ]; then

PPP_STATUS=`expr $PPP_STATUS + 1`

fi

#

if [ "`ifconfig | awk -F"[:]" ‘/ppp1/{print $1}‘`" = "ppp1" ]; then

PPP_STATUS=`expr $PPP_STATUS + 2`

fi

#

if [ "`ifconfig | awk -F"[:]" ‘/ppp2/{print $1}‘`" = "ppp2" ]; then

PPP_STATUS=`expr $PPP_STATUS + 4`

fi

#

if [ "`ifconfig | awk -F"[:]" ‘/ppp3/{print $1}‘`" = "ppp3" ]; then

PPP_STATUS=`expr $PPP_STATUS + 8`

fi

###

if [ $ACTIVE_PPP_STATUS -ne $PPP_STATUS ];then

case "$PPP_STATUS" in

0) /root/check-ppp-status.sh

;;

1) ip route replace default via120.197.94.1 #该默认网关根据实际情况添加

;;

2) ip route replace default via120.197.94.1

;;

3) ip route replace default equalizenexthop dev ppp0 weight 1 nexthop dev ppp1 weight 1

;;

4) ip route replace default via120.197.94.1

;;

5) ip route replace default equalizenexthop dev ppp0 weight 1 nexthop dev ppp2 weight 1

;;

6) ip route replace default equalizenexthop dev ppp1 weight 1 nexthop dev ppp2 weight 1

;;

7) ip route replace default equalizenexthop dev ppp0 weight 1 nexthop dev ppp1 weight 1 nexthop dev ppp2 weight 1

;;

8)ip route replace default via 120.197.94.1

;;

9) ip route replace default equalizenexthop dev ppp0 weight 1 nexthop dev ppp3 weight 1

;;

10) ip route replace default equalizenexthop dev ppp1 weight 1 nexthop dev ppp3 weight 1

;;

11) ip route replace default equalizenexthop dev ppp0 weight 1 nexthop dev ppp1 weight 1  nexthop dev ppp3 weight 1

;;

12) ip route replace default equalizenexthop dev ppp2 weight 1 nexthop dev ppp3 weight 1

;;

13) ip route replace default equalizenexthop dev ppp0 weight 1 nexthop dev ppp2 weight 1  nexthop dev ppp3 weight 1

;;

14) ip route replace default equalizenexthop dev ppp1 weight 1 nexthop dev ppp2 weight 1  nexthop dev ppp3 weight 1

;;

15) ip route replace default equalizenexthop dev ppp0 weight 1 nexthop dev ppp1 weight 1  nexthop dev ppp2 weight 1  nexthop dev ppp3 weight 1

;;

esac

ip route flush cache

fi

ACTIVE_PPP_STATUS="$PPP_STATUS"

sleep 5

done

然后呢,放到后台去处理把…… #如果PPPOE连接断后系统没有擦除ifconfig中相应连接项,该脚本需要修改后才能使用

nohup sh 你创建的脚本名 &

8.后续的一些交代……

察看当前路由情况和网关

ip route

察看ADSL连线情况

ip link ls

其实,可以修改上面的脚本,如果有连线异常,可以做发邮件或短信报警,主要是否有额外需求了。

引用自:运维人生  linux下多条ADSL实现带宽负载均衡

时间: 2024-10-24 02:15:00

带宽叠加+负载均衡的相关文章

Citrix Netscaler负载均衡算法

众所周知,作为新一代应用交付产品的Citrix Netscaler具有业内领先的数据控制.应用交付的能力,然而作为根本内容之一的ADC功能,如果不具备强大的.多元化的均衡算法是不可能适应如此众多的应用场景,更无法做到好的应用交付产品.因此我们在此讨论一下比较常用的负载均衡算法就很有必要. 目前最新版本的Netscaler支持17种均衡算法,目前先讨论最常用的12种 1.轮询算法(Round Robin) 当NetScaler 使用轮询的负载均衡算法时,它会将来自客户端的请求轮流分配给后台中的服务

ONOS:负载均衡路由算法及应用开发(一)

一.应用介绍 当新流量发起时,本应用将为其选择一条路由路径,这条路径具有全局负载均衡意义上的最小权值(Weight/Cost).本应用即将开源在笔者的Github[https://github.com/MaoJianwei/ONOS_LoadBalance_Routing_Forward]本系列文章后续也将同步在笔者的博客Blog[http://maojianwei.github.io/] 为负载均衡举一个简单的例子,在一个三节点的环形网络中,Host2想要访问Host1,此时网络中已经有了一些

海量图片的分布式存储及负载均衡研究

http://blog.163.com/sun_jian_zhang/blog/static/1878040412012512112347454/ 海量图片的分布式存储及负载均衡研究 2012-06-12 11:23:47|  分类: 默认分类|举报|字号 订阅 前言 针对海量图片给网站带来的访问速度下降.性能压力增大和I/O瓶颈等问题,提出一种海量图片的分布式存储及负载均衡技术.通过把图片数据和网站内容分开部署.在数据库中记录和维护图片服务器状态信息等方法实现图片和页面数据的分离.实验结果表明

企业局域网多线路负载均衡,怎样进行运营商多线路分流?

为了提高出口带宽,很多企业都申请了宽带多线接入.但是,在实际使用中,并不是申请了多条线路,你就可以立即实现带宽的叠加和负载均衡的.多线路的带宽叠加和线路均衡,还需要技术手段进行实现.简单来说,多线路的负载均衡,至少需要实现如下的基础功能: 基于权重的多线带宽叠加.由于多条线路不可能都是一样的带宽,所以多线的带宽叠加必须要基于真实的带宽权重. 运营商多线路分流.举例来说:电信IP走电信线路,网通IP走网通线路.从而优化网络访问. 以下是"WFilter上网行为管理系统"进行多线路负载均衡

大型网站架构系列:负载均衡详解

面对大量用户访问.高并发请求,海量数据,可以使用高性能的服务器.大型数据库,存储设备,高性能Web服务器,采用高效率的编程语言比如(Go,Scala)等,当单机容量达到极限时,我们需要考虑业务拆分和分布式部署,来解决大型网站访问量大,并发量高,海量数据的问题.从单机网站到分布式网站,很重要的区别是业务拆分和分布式部署,将应用拆分后,部署到不同的机器上,实现大规模分布式系统.分布式和业务拆分解决了,从集中到分布的问题,但是每个部署的独立业务还存在单点的问题和访问统一入口问题,为解决单点故障,我们可

负载均衡原理

双机热备:有流量经过的设备即为主设备,为流量经过的设备即为备份设备 防火墙基于会话状态的数据同步:批量备份.实时备份批量备份:先运行的防火墙会将已有的会话表项一次性同步到加入的设备实时备份:保证表项完全一致,防火墙在产生新表项或表项变化后会及时备份到另一台设备上 双机热备:只支持数据同步.不支持配置同步 链路负载均衡:策略路由策略路由配置不方便,不够灵活,无法适应动态网络结构变化,策略路由无法根据带宽进行报文分发链路负载均衡通过动态算法,能够在多链路中进行负载均衡,算法配置简单,且具有自适应能力

负载均衡

负载均衡作用: 建立在现有网络结构之上,提供一种廉价.有效.透明的方法,来扩展网络设备和服务器的带宽,并发量,吞吐量,加强网络数据处理能力,提高网络灵活性,扩展性和可用性. 负载均衡相关: 什么是cookie 指某些网站为了辨别用户身份.进行 session 跟踪而储存在用户本地终端上的数据 Cookie 是由 Web 服务器保存在用户浏览器上的小文本文件,它包含有关用户的信息 cookie的应用 提供应用的服务器默认是不知道客户端做了什么的,当你暂时需要记录你在网站上的一些操作时,怎么解决呢?

LVS+Keepalived实现负载均衡

一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是Web应用服务器集群,也可以是数据库服务器集群,还可以是分布式缓存服务器集群等等. 古人有云:当一头牛拉不动车的时候,不要去寻找一头更强壮的牛,而是用两头牛来拉车. 在实际应用中,在Web服务器集群之前总会有一台负载均衡服务器,负载均衡设备的任务就是作为Web服务器流量的入口,挑选最合适的一台Web服务器,将客户

大型网站架构系列:负载均衡详解(1)

面对大量用户访问.高并发请求,海量数据,可以使用高性能的服务器.大型数据库,存储设备,高性能Web服务器,采用高效率的编程语言比如(Go,Scala)等,当单机容量达到极限时,我们需要考虑业务拆分和分布式部署,来解决大型网站访问量大,并发量高,海量数据的问题. 从单机网站到分布式网站,很重要的区别是业务拆分和分布式部署,将应用拆分后,部署到不同的机器上,实现大规模分布式系统.分布式和业务拆分解决了,从集中到分布的问题,但是每个部署的独立业务还存在单点的问题和访问统一入口问题,为解决单点故障,我们