iptables實現負載均衡


例子:

iptables -t nat -A PREROUTING -d 10.192.0.65/32 -p tcp -m tcp --dport 8080 -m statistic --mode nth --every 2 --packet 0 -j DNAT --to-destination 10.1.160.14:8080
iptables -t nat -A POSTROUTING -d 10.1.160.14/32 -p tcp -m tcp --dport 8080 -j SNAT --to-source 10.192.0.65

iptables -t nat -A PREROUTING -d 10.192.0.65/32 -p tcp -m tcp --dport 8080 -m statistic --mode nth --every 1 --packet 0 -j DNAT --to-destination 10.1.160.15:8080
iptables -t nat -A POSTROUTING -d 10.1.160.15/32 -p tcp -m tcp --dport 8080 -j SNAT --to-source 10.192.0.65

 

實現的目的:

2014-2-26 13-54-39

即負載均衡地訪問10.1.160.14和10.1.160.15

注意:需要在10.192.0.65上打開net.ipv4.ip_forward=1

修改/etc/sysctl.conf文件 ,然后執行sysctl -p命令

原理解釋:

第一條使用statistic模塊,模塊的模式是nth,—every 2是每兩個數據包,—packet 0是第一個數據包,

第二條iptables rule匹配時,第一條規則匹配上的數據已經被拿走,剩下的數據包重新計算。

如果有計數器的話:奇數號數據包被第一條規則匹配,偶數號數據包被第二條規則匹配。

 

 

對iptables的一些理解

tables:表是對鏈功能的歸納。

如filter 表是對數據包的過濾,根據方向的不同有INPUT,OUTPUT,FORWARDING三條鏈

mangle表可以改變我們可以改變不同的包及包 頭的內容,比如 TTL,TOS或MARK。數據包必然具有包頭,所以它適用於每條鏈,也就是在沒條鏈那里都可以根據需求實現mangle的功能

nat表是進行NAT轉換的,替換source ip地址是snat,替換destination ip是dnat。

可以進行snat轉換的是有postrouting鏈和output鏈

可以進行dnat轉換的是只有prerouting

213457974

 

http://jafy00.blog.51cto.com/2594646/651856


免責聲明!

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



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