使用ip route命令实现多链路负载均衡
使用ip route命令实现多链路负载均衡 其实在linux下实现多链路负载均衡很简单,只需借助ip route命令即可。 环境:ubuntu 10.04 ,两个3G网卡,分别为CDMA2000 和 WCDMA 1.分别将两个网卡拨号上网,方法不再具体描述,拨号成功后会多出两条链路ppp0和ppp1,注意拨号脚本里不要添加默认网关,(具体请参见《pppd
·
使用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/
更多推荐
已为社区贡献13条内容
所有评论(0)