lvs_keepalive_nat动态DR端IP侦测脚本

因为是动态ADSL,IP时不时变,一不小心IP变了,重启了服务。环境就变了,为此写一个脚本。

第一个脚本,用于检测重启网络服务时,自动启动iptables,keepalive

  
  
  
  
  1. #!/bin/bash  
  2. #des:used for start network,iptables,keepalived  
  3. #env  
  4. ip_address=`ifconfig ppp0 | grep inet | cut -d ":" -f 2 | cut -d " " -f 1`  
  5. ipt_status=`iptables -L -t nat | grep MASQUERADE`  
  6. today=`date +%Y-%m-%d-%H:%M`  
  7. . /etc/init.d/functions  
  8. case "$1" in  
  9. start)  
  10.         service network start  
  11.         sleep 5  
  12.         /root/iptables.sh  
  13.         /root/dy_lvs_ip_check.sh  
  14. ;;  
  15. stop)  
  16.         service network stop  
  17.         /sbin/iptables -F  
  18.         /sbin/iptables -F -t nat  
  19.         /sbin/iptables -X  
  20.         /sbin/iptables -Z  
  21. ;;  
  22. restart)  
  23.         service network restart  
  24.         /root/iptables.sh  
  25.         /root/dy_lvs_ip_check.sh  
  26. ;;  
  27. status)  
  28.         echo "+++++++++++++++++++++++++++++"  
  29.         echo "Time: $today"  
  30.         echo "+++++++++++++++++++++++++++++"  
  31.         echo "PPP0 ipaddress: $ip_address"  
  32.         echo "+++++++++++++++++++++++++++++"  
  33.         echo "iptables nat table: $ipt_status"  
  34.         echo "+++++++++++++++++++++++++++++"  
  35.         /sbin/ipvsadm  
  36.         echo "+++++++++++++++++++++++++++++"  
  37. ;;  
  38. *)  
  39.         echo "Usage: $0 {start|stop|restart|status}" 
  40. esac

iptables脚本:

  
  
  
  
  1. #env  
  2. ipt=/sbin/iptables  
  3. net1=192.168.10.0/24  
  4.  
  5. #clean rules  
  6. $ipt -F  
  7. $ipt -X  
  8. $ipt -Z  
  9.  
  10. $ipt -F -t nat  
  11. $ipt -X -t nat  
  12. $ipt -Z -t nat  
  13.  
  14.  
  15. #define  
  16. $ipt -P INPUT DROP  
  17. $ipt -P OUTPUT ACCEPT  
  18. $ipt -P FORWARD ACCEPT  
  19. #state  
  20. $ipt -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT  
  21. #lo and localnetwork  
  22. $ipt -A INPUT -i lo -j ACCEPT  
  23. $ipt -A INPUT -s $net1 -j ACCEPT  
  24. #icmp  
  25. $ipt -A INPUT -p icmp -j ACCEPT  
  26. #http  
  27. $ipt -A INPUT -p tcp -m multiport --dports 2222,80,8080,8088 -j ACCEPT  
  28. $ipt -A INPUT -p udp -m multiport --dports 2222,80,8080,8088 -j ACCEPT  
  29.  
  30. #nat  
  31. $ipt -t nat -A POSTROUTING -o ppp0 -s $net1 -j MASQUERADE 

dy_lvs_check.sh:检测keepalive以及动态IP

  
  
  
  
  1. #!/bin/bash  
  2. #Des: used for check ppp0 ipaddress  
  3. keepalive_conf=/etc/keepalived/keepalived.conf  
  4. new_ppp0=`ifconfig ppp0 | grep inet | cut -d ":" -f 2 | cut -d " " -f 1`  
  5. old_ppp0=`grep 8080 /etc/keepalived/keepalived.conf | cut -d " " -f 2`  
  6.  
  7. if [ "$new_ppp0" != "$old_ppp0"  ];then  
  8.         sed -i "23c\virtual_server "$new_ppp0"  8080 {" $keepalive_conf  
  9.         echo "ppp0 ipaddress is $new_ppp0"  
  10.         /etc/init.d/keepalived restart  
  11.         sleep 3  
  12.         /sbin/ipvsadm  
  13. else  
  14.         echo "keepalive is OK"  
  15. fi  

 

你可能感兴趣的:(shell,LVS,NAT,KeepAlive,动态ip)