samsungsamsung 发表于 2019-1-5 11:33:05

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]
查看完整版本: lvs_keepalive_nat动态DR端IP侦测脚本