lvs_keepalive_nat动态DR端IP侦测脚本
因为是动态ADSL,IP时不时变,一不小心IP变了,重启了服务。环境就变了,为此写一个脚本。第一个脚本,用于检测重启网络服务时,自动启动iptables,keepalive
[*]#!/bin/bash
[*]#des:used for start network,iptables,keepalived
[*]#env
[*]ip_address=`ifconfig ppp0 | grep inet | cut -d ":" -f 2 | cut -d " " -f 1`
[*]ipt_status=`iptables -L -t nat | grep MASQUERADE`
[*]today=`date +%Y-%m-%d-%H:%M`
[*]. /etc/init.d/functions
[*]case "$1" in
[*]start)
[*] service network start
[*] sleep 5
[*] /root/iptables.sh
[*] /root/dy_lvs_ip_check.sh
[*];;
[*]stop)
[*] service network stop
[*] /sbin/iptables -F
[*] /sbin/iptables -F -t nat
[*] /sbin/iptables -X
[*] /sbin/iptables -Z
[*];;
[*]restart)
[*] service network restart
[*] /root/iptables.sh
[*] /root/dy_lvs_ip_check.sh
[*];;
[*]status)
[*] echo "+++++++++++++++++++++++++++++"
[*] echo "Time: $today"
[*] echo "+++++++++++++++++++++++++++++"
[*] echo "PPP0 ipaddress: $ip_address"
[*] echo "+++++++++++++++++++++++++++++"
[*] echo "iptables nat table: $ipt_status"
[*] echo "+++++++++++++++++++++++++++++"
[*] /sbin/ipvsadm
[*] echo "+++++++++++++++++++++++++++++"
[*];;
[*]*)
[*] echo "Usage: $0 {start|stop|restart|status}" esac
iptables脚本:
[*]#env
[*]ipt=/sbin/iptables
[*]net1=192.168.10.0/24
[*]
[*]#clean rules
[*]$ipt -F
[*]$ipt -X
[*]$ipt -Z
[*]
[*]$ipt -F -t nat
[*]$ipt -X -t nat
[*]$ipt -Z -t nat
[*]
[*]
[*]#define
[*]$ipt -P INPUT DROP
[*]$ipt -P OUTPUT ACCEPT
[*]$ipt -P FORWARD ACCEPT
[*]#state
[*]$ipt -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
[*]#lo and localnetwork
[*]$ipt -A INPUT -i lo -j ACCEPT
[*]$ipt -A INPUT -s $net1 -j ACCEPT
[*]#icmp
[*]$ipt -A INPUT -p icmp -j ACCEPT
[*]#http
[*]$ipt -A INPUT -p tcp -m multiport --dports 2222,80,8080,8088 -j ACCEPT
[*]$ipt -A INPUT -p udp -m multiport --dports 2222,80,8080,8088 -j ACCEPT
[*]
[*]#nat
[*]$ipt -t nat -A POSTROUTING -o ppp0 -s $net1 -j MASQUERADE
dy_lvs_check.sh:检测keepalive以及动态IP
[*]#!/bin/bash
[*]#Des: used for check ppp0 ipaddress
[*]keepalive_conf=/etc/keepalived/keepalived.conf
[*]new_ppp0=`ifconfig ppp0 | grep inet | cut -d ":" -f 2 | cut -d " " -f 1`
[*]old_ppp0=`grep 8080 /etc/keepalived/keepalived.conf | cut -d " " -f 2`
[*]
[*]if [ "$new_ppp0" != "$old_ppp0"];then
[*] sed -i "23c\virtual_server "$new_ppp0"8080 {" $keepalive_conf
[*] echo "ppp0 ipaddress is $new_ppp0"
[*] /etc/init.d/keepalived restart
[*] sleep 3
[*] /sbin/ipvsadm
[*]else
[*] echo "keepalive is OK"
[*]fi
[*]~
页:
[1]