免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3901 | 回复: 3
打印 上一主题 下一主题

[FreeBSD] FreeBSD下PF双线负载均衡带链路检测 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-09-25 21:47 |只看该作者 |倒序浏览
  1. #!/bin/sh

  2. #write by loulancn#163.com

  3. #定义两个出口的网关

  4. gw1=192.168.6.1
  5. gw2=192.168.15.1

  6. #负载均衡和单线路故障时的pf规则

  7. PF_Load_Balance=/etc/pf/PF_Load_Balance.conf
  8. PF_Lan1=/etc/pf/PF_Lan1.conf
  9. PF_Lan2=/etc/pf/PF_Lan2.conf

  10. #记录链路状态和线路故障的事件

  11. Link_State=/etc/Link_State
  12. Link_State_Log=/var/log/Link_State_Log

  13. #获取上一次的状态值

  14. Previously_Link_State=`cat $Link_State`


  15. #程序开始

  16. if ping -c1 -W1 $gw1 >/dev/null 2>&1
  17. then
  18.   if ping -c1 -W1 $gw2 >/dev/null 2>&1
  19.         then
  20.         L_State=2
  21.         echo $L_State > $Link_State
  22.         else
  23.         L_State=1
  24.         echo $L_State > $Link_State
  25.         fi
  26. else
  27.         if ping -c1 -W1 $gw2 >/dev/null 2>&1
  28.         then
  29.         L_State=0
  30.         echo $L_State > $Link_State
  31.         else
  32.         L_State=-1
  33.         echo $L_State > $Link_State
  34.         fi
  35. fi

  36. if [ $Previously_Link_State -eq $L_State ]
  37. then
  38. echo " Link State Not Change !"
  39. else

  40.         case $L_State in
  41.         2)
  42.         echo "All Link is UP at `date`! " >> $Link_State_Log
  43.         pfctl -f $PF_Load_Balance
  44.         ;;

  45.         1)
  46.         echo "Link $gw1 is UP! Link $gw2 is Down at `date`!" >> $Link_State_Log
  47.        
  48.         #单线路时对默认路由的修改
  49.         route delete default
  50.         route add default $gw1

  51.         pfctl -f $PF_Lan1
  52.         ;;

  53.         0)
  54.         echo "Link $gw1 is Down ! Link $gw2 is UP at `date`!" >> $Link_State_Log
  55.         route delete default
  56.         route add default $gw1
  57.         pfctl -f $PF_Lan2
  58.         ;;

  59.         -1)
  60.         echo "All Link is Down at `date`!" >> $Link_State_Log
  61.         ;;
  62.         esac

  63. fi
复制代码



脚本下载:http://loulan.lapp.cn/attachment.php?id=5

PF_Load_Balance=/etc/pf/PF_Load_Balance.conf
PF_Lan1=/etc/pf/PF_Lan1.conf
PF_Lan2=/etc/pf/PF_Lan2.conf


这三个文件比较简单,网上有很多相关的帖子或是可以看PF的FAQ。

论坛徽章:
0
2 [报告]
发表于 2007-09-25 22:02 |只看该作者
把上面的内容保存为/etc/pf_monitor.sh

[root@ts ~]#chmod +x /etc/pf_monitor.sh

在/etc/crontab   加入以下内容:

  1. *     *       *       *       *       root    /etc/pf_monitor.sh
复制代码

论坛徽章:
0
3 [报告]
发表于 2009-04-17 10:02 |只看该作者

回复 #2 loulancn 的帖子

这个脚本你测试过没有.

论坛徽章:
0
4 [报告]
发表于 2009-04-17 10:08 |只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP