使用ip route命令实现多链路负载均衡
来源:互联网 发布:keep软件使用步骤 编辑:程序博客网 时间:2024/05/17 01:14
使用ip route命令实现多链路负载均衡
其实在linux下实现多链路负载均衡很简单,只需借助ip route命令即可。
环境:ubuntu 10.04 ,两个3G网卡,分别为CDMA2000 和 WCDMA
1.分别将两个网卡拨号上网,方法不再具体描述,拨号成功后会多出两条链路ppp0和ppp1,注意拨号脚本里不要添加默认网关,(具体请参见《pppd拨号与默认网关》),而是手动添加两条默认路由。
2.利用iptables进行nat转换,不再赘述。
3.此时路由表里会有两条默认路由,其实只有第一个起作用,所有的流量都会从这条链路出去,没有实现负载均衡的效果,只需使用如下命令:ip route replace default equalize nexthop dev ppp0 weight 1 nexthop dev ppp1 weight 1
其中weight表示权重,根据链路的实际情况设置相应数值。
equalize
allow packet by packet randomization on multipath routes. Without this modifier, the route will be frozen to one
selected nexthop, so that load splitting will only occur on per-flow base. equalize only works if the kernel is
patched.
allow packet by packet randomization on multipath routes. Without this modifier, the route will be frozen to one
selected nexthop, so that load splitting will only occur on per-flow base. equalize only works if the kernel is
patched.
--关于负载平衡--
关于负载平衡 CONFIG_IP_ROUTE_MULTIPATH内核选项将把所有这些路径(缺省路由)等同看待,然后再根据/usr/src/linux /Documentation/Configure.help来选择其特定的方式。Ip route命令的equalize选项,会让Linux内核基于IP地址平衡外部连接。对于一个特定的IP地址,内核会选择一个接口用于传输流出的数据包,然后内核会为该IP地址在路由缓冲中建一个记录。这样,其它到达的有相同IP地址的数据包就会使用同一个接口,直到该记录从路由缓冲中删除。我们可以使用ip route list cache命令来查看路由缓冲。
通过DNS循环来实现的服务的负载平衡
各种不同的服务(DNS、SMTP、HTTP、LDAP、SSH等) 可以通过DNS循环来实现。
循环复用DNS还有太多的限制(DNS缓存,忽略TTL值,修改后的刷新时间,不能意识到服务器的可用性),只能算是一种勉强可接受的负载平衡方案
关于负载平衡 CONFIG_IP_ROUTE_MULTIPATH内核选项将把所有这些路径(缺省路由)等同看待,然后再根据/usr/src/linux /Documentation/Configure.help来选择其特定的方式。Ip route命令的equalize选项,会让Linux内核基于IP地址平衡外部连接。对于一个特定的IP地址,内核会选择一个接口用于传输流出的数据包,然后内核会为该IP地址在路由缓冲中建一个记录。这样,其它到达的有相同IP地址的数据包就会使用同一个接口,直到该记录从路由缓冲中删除。我们可以使用ip route list cache命令来查看路由缓冲。
通过DNS循环来实现的服务的负载平衡
各种不同的服务(DNS、SMTP、HTTP、LDAP、SSH等) 可以通过DNS循环来实现。
循环复用DNS还有太多的限制(DNS缓存,忽略TTL值,修改后的刷新时间,不能意识到服务器的可用性),只能算是一种勉强可接受的负载平衡方案
4.测试:内网机器进行网络活动,在网关利用命令tc -s qdisc ls dev ppp0,tc -s qdisc ls dev ppp1,分别查看两条链路的流量,发现基本流量是按照1:1的比率的。
5.问题:内网的机器通过多链路网关访问外网速度比单链路得到提升,但是网关本身访问外网的速度比单链路要慢得多,甚至不能访问网站,原因不详,猜想是http数据包从不同的链路进出,不能很好的拼凑给网关。
http://www.2cto.com/net/201310/253805.html
http://blog.itpub.net/13794466/viewspace-712058/
0 0
- 使用ip route命令实现多链路负载均衡
- 使用ip route命令实现多链路负载均衡
- 使用ip route命令实现多链路负载均衡
- 关于ip route 线路负载均衡的一些总结
- 关于ip route 线路负载均衡的一些总结
- IIS负载均衡-Application Request Route详解第四篇:使用ARR实现三层部署架构
- IIS负载均衡-Application Request Route详解第四篇:使用ARR实现三层部署架构
- Linux Route/NAT 负载均衡
- linux中的IP负载均衡实现原理
- 使用mod_proxy_balancer实现负载均衡
- 使用Linux实现负载均衡
- 使用Apache实现负载均衡
- 使用Linux实现负载均衡
- 使用mod_proxy_balancer实现负载均衡
- 使用Nginx实现负载均衡
- 使用Nginx实现负载均衡
- 负载均衡之IP
- 负载均衡之IP
- css鼠标光标属性样式大全
- IP地址数据库 二分查找
- linux3.0内核移植(S3C2440)
- BZOJ 1132 POI 2008 Tro 计算几何
- 责任声明和转载声明
- 使用ip route命令实现多链路负载均衡
- HDOJ 题目2554 最短路(spfa)
- QString和string类型相互转换
- Mahout推荐算法API详解
- STM32的USART注意
- 20141128-OrCAD16.6输出有链接有属性信息的PDF
- 将科学计数法转为非科学计数法并显示小数位数
- C# - Static Members
- Python实现支持JSON存储和解析的对象