Chinaunix首页 | 论坛 | 博客
  • 博客访问: 44081
  • 博文数量: 20
  • 博客积分: 1419
  • 博客等级: 上尉
  • 技术积分: 220
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-23 13:02
文章分类
文章存档

2010年(20)

我的朋友

分类: LINUX

2010-03-24 19:24:08

--------------------------------主备路由
编写脚本思路(管理主备路由):
while true
do
1)检查   A_IP(192.168.0.3)
     
通:不动

     
不通:删 A_IP
           
B_IP(192.168.0.2)

2)检查
  A_IP
     
通:删
B_IP
         
A_IP
     
不通:不动

done

开始编写脚本:
vim route.sh
#!/bin/bash
A_route=192.168.0.3
B_route=192.168.0.2

while true
do
  while ping $A_route -c1 &> /dev/null   #ping
通的时候设置一个返回值为空,只看到返回是否正确
  do
         sleep 3   #
设置一个休眠时间
  done
  route del default          #
A路由ping不通的时候,把它删掉,添加一个B路由
  route add default gw $B_route
  until ping $A_route -c1 &> /dev/null   #
这里是until循环,与while循环正好相反
  do
        sleep 3
  done
  route del default          #
A路由正常了,这时需要切换回来,所以把B路由删掉,添加A路由
  route add default gw $A_route
done
---------------------------------------------------------------
---------------------------ECMP
路由(等值多重路由)
Linux 核心中叫做 equal cost multipath(CONFIG_IP_ROUTE_MULTIPATH) 比较正确的说法应该是 "destination address-based load balancing". 一般 Linux 想要为某个 IP 位址找到路由, 会因为效能的问题去查验暂存(cache) 中的资料,
如果目标 IP 并没有在暂存空间中, 那麼他便会去查 routing table 来决定该 IP 位址的路由, 并将该路由放进 cache
.
基于session连接的分配


                   
配置
• routeA 192.168.0.1
• routeB 192.168.0.2
• ip ro add default nexthop dev eth0 via 192.168.0.1 weight 1 nexthop dev eth1 via 192.168.0.2 weight 1

三台机器作实验:
ip route add default mpath rr nexthop via 192.168.0.1 dev eth0 weight 10 nexthop via 192.168.0.2 dev eth0 weight 20 nexthop via 192.168.0.3 dev eth0 weight 30

**********************mpath rr(
这是算法)  weight 30(权重)

ip route show  -----
可查看路由


********************
使用tracepathtraceroutemtr 观察变化


                    
注意
因为Route Cache所以不能100%达到公平
解决办法:
     
编译内核增加Route Cache模式下的ecmp支持
编译内核流程回顾:
• 1
、下载新版内核
• 2
cp 原版内核.config 到源码目录树中
• 3
make oldconfig 补充选项
• 4
make menuconfig
• 5
make
• 6
make modules_install
• 7
make install
• 8
、重新启动更换内核

阅读(438) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~