zoukankan      html  css  js  c++  java
  • LVS之NAT和DR服务脚本

    NAT服务控制脚本

    #!/bin/bash
    #
    # chkconfig: - 88 12
    # description: LVS script for VS/NAT
    #
    . /etc/rc.d/init.d/functions
    #
    VIP=192.168.2.168
    DIP=192.168.2.170
    RIP1=192.168.2.171
    RIP2=192.168.2.172
    #
    case "$1" in
    start)           
    
      /sbin/ifconfig eth0:1 $VIP netmask 255.255.255.0 up
    
    # Since this is the Director we must be able to forward packets
      echo 1 > /proc/sys/net/ipv4/ip_forward
    
    # Clear all iptables rules.
      /sbin/iptables -F
    
    # Reset iptables counters.
      /sbin/iptables -Z
    
    # Clear all ipvsadm rules/services.
      /sbin/ipvsadm -C
    
    # Add an IP virtual service for VIP 192.168.0.219 port 80
    # In this recipe, we will use the round-robin scheduling method. 
    # In production, however, you should use a weighted, dynamic scheduling method. 
      /sbin/ipvsadm -A -t $VIP:80 -s rr
    
    # Now direct packets for this VIP to
    # the real server IP (RIP) inside the cluster
      /sbin/ipvsadm -a -t $VIP:80 -r $RIP1 -m
      /sbin/ipvsadm -a -t $VIP:80 -r $RIP2 -m
      
      /bin/touch /var/lock/subsys/ipvsadm.lock
    ;;
    
    stop)
    # Stop forwarding packets
      echo 0 > /proc/sys/net/ipv4/ip_forward
    
    # Reset ipvsadm
      /sbin/ipvsadm -C
    
    # Bring down the VIP interface
      ifconfig eth0:1 down
      
      rm -rf /var/lock/subsys/ipvsadm.lock
    ;;
    
    status)
      [ -e /var/lock/subsys/ipvsadm.lock ] && echo "ipvs is running..." || echo "ipvsadm is stopped..."
    ;;
    *)
      echo "Usage: $0 {start|stop}"
    ;;
    esac
    

    DR服务控制脚本

    Director脚本:

    #!/bin/bash
    #
    # LVS script for VS/DR
    #
    . /etc/rc.d/init.d/functions
    #
    VIP=192.168.2.170
    RIP1=192.168.2.171
    RIP2=192.168.2.172
    PORT=80
    
    #
    case "$1" in
    start)           
    
      /sbin/ifconfig eth0:1 $VIP broadcast $VIP netmask 255.255.255.255 up
      /sbin/route add -host $VIP dev eth0:1
    
    # Since this is the Director we must be able to forward packets
      echo 1 > /proc/sys/net/ipv4/ip_forward
    
    # Clear all iptables rules.
      /sbin/iptables -F
    
    # Reset iptables counters.
      /sbin/iptables -Z
    
    # Clear all ipvsadm rules/services.
      /sbin/ipvsadm -C
    
    # Add an IP virtual service for VIP 192.168.0.219 port 80
    # In this recipe, we will use the round-robin scheduling method. 
    # In production, however, you should use a weighted, dynamic scheduling method. 
      /sbin/ipvsadm -A -t $VIP:80 -s wlc
    
    # Now direct packets for this VIP to
    # the real server IP (RIP) inside the cluster
      /sbin/ipvsadm -a -t $VIP:80 -r $RIP1 -g -w 1
      /sbin/ipvsadm -a -t $VIP:80 -r $RIP2 -g -w 2
    
      /bin/touch /var/lock/subsys/ipvsadm &> /dev/null
    ;; 
    
    stop)
    # Stop forwarding packets
      echo 0 > /proc/sys/net/ipv4/ip_forward
    
    # Reset ipvsadm
      /sbin/ipvsadm -C
    
    # Bring down the VIP interface
      /sbin/ifconfig eth0:1 down
      /sbin/route del $VIP
      
      /bin/rm -f /var/lock/subsys/ipvsadm
      
      echo "ipvs is stopped..."
    ;;
    
    status)
      if [ ! -e /var/lock/subsys/ipvsadm ]; then
        echo "ipvsadm is stopped ..."
      else
        echo "ipvs is running ..."
        ipvsadm -L -n
      fi
    ;;
    *)
      echo "Usage: $0 {start|stop|status}"
    ;;
    esac
    

     RealServer脚本:

    #!/bin/bash
    #
    # Script to start LVS DR real server.
    # description: LVS DR real server
    #
    .  /etc/rc.d/init.d/functions
    
    VIP=192.168.2.170
    host=`/bin/hostname`
    
    case "$1" in
    start)
           # Start LVS-DR real server on this machine.
            /sbin/ifconfig lo down
            /sbin/ifconfig lo up
            echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
            echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
            echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
            echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
    
            /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
            /sbin/route add -host $VIP dev lo:0
    
    ;;
    stop)
    
            # Stop LVS-DR real server loopback device(s).
            /sbin/ifconfig lo:0 down
            echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore
            echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce
            echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
            echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
    
    ;;
    status)
    
            # Status of LVS-DR real server.
            islothere=`/sbin/ifconfig lo:0 | grep $VIP`
            isrothere=`netstat -rn | grep "lo:0" | grep $VIP`
            if [ ! "$islothere" -o ! "isrothere" ];then
                # Either the route or the lo:0 device
                # not found.
                echo "LVS-DR real server Stopped."
            else
                echo "LVS-DR real server Running."
            fi
    ;;
    *)
                # Invalid entry.
                echo "$0: Usage: $0 {start|status|stop}"
                exit 1
    ;;
    esac
    
  • 相关阅读:
    c#中out与ref的用法与区别
    一次不该出现的bug
    js弹出蒙版
    foreach中不能修改元素的值
    C#中使用正则表达式来过滤html字符
    细微之处才能显示水平
    js画直线 拓荒者
    XSLT模板转换XML文档 拓荒者
    怪异的JavaScript Date对象 拓荒者
    [转]C++ 笔记点滴 拓荒者
  • 原文地址:https://www.cnblogs.com/jjzd/p/6786434.html
Copyright © 2011-2022 走看看