《運維案例:實現網段之間的主機通過指定外網IP共享上網》要點:
本文介紹了運維案例:實現網段之間的主機通過指定外網IP共享上網,希望對您有用。如果有疑問,可以聯系我們。
172.16.1.0/24段所有主機通過124.32.54.26外網IP共享上網
iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j SNAT –to-source 124.32.54.26
iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j MASQUERADE
一、參數說明:
1.-t:指定對應的iptables表
2.-A:新增規則到某個規則鏈中,該規則將會成為規則鏈中的最后一條規則
3.-s:用來比對封包的來源 IP,可以比對單機或網絡,比對網絡時請用數字來表示屏蔽,例如:-s 192.168.0.0/24,比對 IP 時可以使用 ! 運算子進行反向比對,例如:-s ! 192.168.0.0/24
4.-j:參數用來指定要進行的處理動作
5.SNAT:源地址轉換,目標地址不變,重新改寫源地址,并在本機建立NAT表項,當數據返回時,根據NAT表將目的地址數據改寫為數據發送出去時候的源地址,并發送給主機
6.–to-souce:意思就是將-s后面的地址,轉換成–to后面的地址,這個就是地址轉發的作用(NAT)
7.POSTROUTING:路由之后指定相應的iptables鏈,意思為在NAT TABLE的路由后改做什么處理
二、規則說明
echo 1 > /proc/sys/net/ipv4/ip_forward
注釋:
1.完成nat的實現,數據要經過prerouting—forword–postrouting這3個鏈,要想實現ip轉發,需要將內核參數ip_forward的值改為1,這樣允許iptalbes FORWARD.
2.設置ip轉發許可
方法一:echo 1 > /proc/sys/net/ipv4/ip_forward
方法二:在內核參數文件/etc/sysctl.conf中增加如下內容,然后執行:sysctl -p
net.ipv4.ip_forward = 1
iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j SNAT –to-source 124.32.54.26
注釋:
1.當172.16.1.0/24網段的IP想訪問外網的時候,iptables會將源地址進行轉換成124.32.54.26,實現上外網
2.SNAT,目前大多都是解決內網用戶用同一個公網地址上網的情況(具體請看上面參數說明)
iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j MASQUERADE
注釋:
1.在解釋這條規則之前,首先提出一個問題,如果不是固定的124.32.54.26怎么辦?
解答:我們都知道當我們使用聯通或者電信上網的時候,一般它都會在每次你開機的時候隨機生成一個外網的IP,意思就是外網地址是動態變換的.這時我們就要將外網地址換成 MASQUERADE(動態偽裝):它可以實現自動尋找到外網地址,而自動將其改為正確的外網地址.
注意:地址偽裝并不適用于所有的地方哦!
相信大家看了上面這個問題之后,就明白這條規則了!
該案例來自老男孩教育
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/2728.html