閱讀699 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Iptables實現HA雙機進出口ip一致性,保證驗證一致性!

Iptables實現HA雙機進出口ip都為浮動ip,更保證了收發信驗證的一致性!

這個項目是前一陣子,幫老師配置雙機的時候遇到的,跟大家分享下,好久沒有進入自己的博客了哈~不過倒是經常關注咱們的chinaunix,希望這個網站越來越強大!

客戶環境:

PS: 老師那邊給的倆個真實ip(網絡通信的ip),都配置在eth0上,而這倆個ip實際都沒有對外開放的,原先主機使用的是浮動ip。這樣就就帶來了後續的問題:

第一,修改浮動ip和真實ip兌換之後,重啟肯定是無法遠程了,隻能qq遠程,不過我都配置好雙機才更改的ip,所以不一會啟動主機雙機服務就可以訪問了;
第二:配置完雙機之後出口ip都是真實的ip地址,使得僅能夠收信而無法正常往外發信。具體的現象那就是,雖然服務器能夠正常解析外網服務器的DNS,但是無法正常連接外網任何一台server。由於老師所給的這倆個真實ip原先沒有開通,我在項目操作的時候才得知,再者當時向電信申請開通是需要一段時間的。為了盡快讓老師恢複服務器的使用,我臨時寫了個腳本實現進出口ip都變為浮動ip,這樣就解決了發信的問題。


腳本內容如下:
=============================================================================================================
#!/bin/bash
IPtables_Nums=`iptables-save|grep "*.*.*.*"|wc -l`    //此 *.*.*.*為浮動ip。
if [ $IPtables_Nums -ne 2 ];then
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/modprobe iptable_filter
/sbin/modprobe ip_tables
/sbin/modprobe iptable_nat
/sbin/iptables -t nat -F
/sbin/iptables -F
IP=`cat /etc/sysconfig/network-scripts/ifcfg-eth0 |grep "IPADDR" |cut -d= -f2`
iptables -t nat -A PREROUTING -d $IP -p tcp -m tcp --dport 25 -j DNAT --to-destination *.*.*.*:25
iptables -t nat -A POSTROUTING -s $IP -p tcp -m tcp --dport 25 -j SNAT --to-source *.*.*.*
fi
=================================================================================================================
備注:
1、為了讓雙機正常切換的同時,iptables也能夠同時生效,建議把此腳本放到雙機的resource.d目錄裏麵,並且改為可執行權限。
2、這個是針對這個客戶做的iptables,其他的客戶部署時稍微注意些,腳本裏麵有清除所有規則的功能,最終隻保留新增加的倆條規則,所以在使用時需要特殊修改。
3.大家有更好的點子都可以跟我交流,希望更大的進步,謝謝!

最後更新:2017-04-03 19:06:48

  上一篇:go DS18B20溫度傳感器測溫顯示在數碼管上(29.9℃)
  下一篇:go ubuntu11.10 刪除UNITY 側邊欄