在Linux 雙機下自己手動實現浮動ip技術


兩台Linux服務器,一台為主機(IP:124.158.26.30)對外提供了一定的網絡服務,另一台從機(IP:124.158.26.31)能提供相同的服務,但ip地址沒有對外部公開客戶端連接的都是124.158.26.30這個ip地址,如果主機故障,則會使網絡服務暫時中斷,時間越長造成損失越大由於沒有采用雙機熱備技術,考慮自己用Linux腳本來實現簡單的浮動ip技術,當主機故障時從機獲取124.158.26.30這個ip,暫時替代主機提供服務,當主機恢復時,從機自動釋放這個ip
 
實現:
 利用單個網卡綁定多個ip地址的技術和crontab自動執行技術
 為主機的網卡多綁定一個靜態ip,如124.158.26.32 ,這個地址是便於從機判斷的,為從機的網卡多綁定一個動態ip,127.0.0.1,它在主機故障時將會被腳本修改為124.158.26.30
 在從機添加一個腳本 floatip.sh,使用crontab技術讓這個腳本每分鍾執行一次,這個腳本的作用是判斷主機的地址32能否ping通,一旦不通則將讓自己的網卡多余那個ip地址改為124.158.26.30,如果主機恢復,則將這個地址改回為127.0.0.1
 
步驟:
 一、為主機多綁定一個靜態ip124.158.26.32 

/etc/sysconfig/network-scripts目錄里面創建一個名為

ifcfg-eth0:1的文件,內容為:  

DEVICE=eth0:1  

IPADDR=139.24.214.82  

NETMASK= 255.255.255.0  

ONBOOT= yes


二、在從機上建立腳本floatip.sh
 c1=`ping 124.158.26.32 -c 1 | grep Unreachable | wc -l`
 c2=`ping 124.158.26.32 -c 10 | grep Unreachable | wc -l`
 c3=`ping 124.158.26.30 -c 10 | grep Unreachable | wc -l`
 c4=`/sbin/ifconfig |grep 124.158.26.30 |wc -l`
  if [ $c1 -gt 0 ] ;then
  if [ $c2 -gt 9 ] ;then
  if [ $c3 -gt 9 ] ;then
  /sbin/ifconfig eth0:1 124.158.26.30 netmask 255.255.255.0
  echo "float ip to 30"
  fi
  fi
 echo "can not connect"
 else
  if [ $c4 -gt 0 ] ;then
  /sbin/ifconfig eth0:1 127.0.0.1 netmask 255.255.255.0
  echo "reset ip"
  fi
 echo "connection is ok"
 fi
 

用chmod +x autoFloatIP.sh

讓它可以執行,腳本的內容為

c1=$(ping 139.24.214.82 -c 1|grep Unreachable|wc -l) 

if [ $c1 -gt 0 ]  then 

c2=$(ping 139.24.214.82 -c 10|grep Unreachable|wc -l) 

if [ $c2 -gt 9 ]  then 

    c3=$(ping 139.24.214.22 -c 10|grep Unreachable|wc -l) 

      if [ $c3 -gt 9 ]  then 

         /sbin/ifconfig eth0:1 139.24.214.22 netmask 255.255.254.0 

echo "float ip to 22" 

      fi 

fi 

echo "can not connect" 

else 

c4=$(/sbin/ifconfig|grep 139.24.214.22|wc -l) 

if [ $c4 -gt 0 ]  then 

    /sbin/ifconfig eth0:2 127.0.0.1 netmask 255.255.254.0 

    echo "reset ip" 

fi  

echo "connection is ok" 

fi 

其中關鍵的命令為

/sbin/ifconfig eth0:1 139.24.214.22 netmask 255.255.254.0 

/sbin/ifconfig eth0:2 127.0.0.1 netmask 255.255.254.0 

用這個方法來動態修改

IP

,動態

IP

在電腦重啟會消失

 

 

 

 


從機上建立crontab

讓后加上這樣的一行並保存

 

* * * * * /root/autoFloatIP.sh > /dev/null 2>&1 

小提示

 

在測試時,你可以先將這句話改為

 * * * * * /root/autoFloatIP.sh  

這樣你可以用

mutt

收到很多郵件,用戶跟蹤腳本執行情況


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM