在liunx雙機下自己動手實現浮動IP技術

來源:互聯網
上載者:User

原文: http://www.360doc.com/content/11/0823/18/5907545_142730623.shtml

有兩台Linux伺服器,其中一台主機(IP:139.24.214.22)對外提供了一定的網路服務,另一台從機(IP:139.24.214.24)能提供相同的服務,但IP地址沒有對外部公開。

用戶端串連的都是139.24.214.22這個IP地址,如果主機故障,則會使網路服務暫時中斷,時間越長造成損失越大,

由於沒有採用雙機熱備份技術,考慮自己用Linux指令碼來實現簡單的浮動IP技術,當主機故障時從機獲得139.24.214.22這個IP,暫時替代主機提供服務,當主機恢複時,從機自動釋放這個IP。

思路:
利用單個網卡綁定多個IP地址的技術和crontab自動執行技術
為主機的網卡多綁定一個靜態IP,如139.24.214.82,這個地址是便於從機判斷的,
為從機的網卡多綁定一個動態IP,127.0.0.1,它在主機故障時將會被指令碼修改為139.24.214.22
在從機上添加一個指令碼 /root/autoFloatIP.sh,使用crontab技術讓這個指令碼每分鐘執行一次,這個指令碼的作用是判斷主機的地址82能否Ping通,一旦不正常則將讓自己的網卡多餘的那個IP地址改為139.24.214.22,如果主機恢複,則將這個地址改回為127.0.0.1

步驟
1.為主機添加一個靜態IP139.24.214.82,由於這個是靜態IP,可以採用在圖形化介面中設定此IP並儲存的辦法,或者在/etc/sysconfig/network-scripts目錄裡面建立一個名為ifcfg-eth0:1的檔案,內容為:
DEVICE=eth0:1
IPADDR=139.24.214.82
NETMASK= 255.255.255.0
ONBOOT= yes

2.在從機上,在/root下建立一個指令碼autoFloatIP.sh
用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在電腦重啟會消失

3從機上建立crontab
用crontab -e命令
讓後加上這樣的一行並儲存
* * * * * /root/autoFloatIP.sh > /dev/null 2>&1

小提示
在測試時,你可以先將這句話改為 * * * * * /root/autoFloatIP.sh
這樣你可以用mutt收到很多郵件,使用者跟蹤指令碼執行情況

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.