作者 主題: 請教iptables nat的設定  (閱讀 3111 次)

0 會員 與 1 訪客 正在閱讀本文。

chanchenting

  • 可愛的小學生
  • *
  • 文章數: 29
    • 檢視個人資料
請教iptables nat的設定
« 於: 2011-11-03 16:57 »
iptables -F
iptables -X
iptables -Z
iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat
iptables -P INPUT   ACCEPT
iptables -P OUTPUT  ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING  ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT      ACCEPT
iptables -t nat -A PREROUTING -i eth0  -d 125.252.32.245 -j DNAT --to 192.168.55.11
iptables -t nat -A PREROUTING -i eth0  -d 125.252.32.246 -j DNAT --to 192.168.55.12
iptables -t nat -A PREROUTING -i eth0  -d 125.252.32.247 -j DNAT --to 192.168.55.13
iptables -t nat -A PREROUTING -i eth0  -d 125.252.32.248 -j DNAT --to 192.168.55.21
iptables -t nat -A PREROUTING -i eth0  -d 125.252.32.249 -j DNAT --to 192.168.55.22
iptables -t nat -A PREROUTING -i eth0 -s 192.168.55.11 -j SNAT --to 125.252.32.245
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.55.0/24 -j MASQUERADE

iptables eth0是125.252.32.244  eth0:1 eth0:2 分別都有綁上125.252.32.245,125.252.32,246等等
我設定DNAT 125.252.32.245可以連到內部192.168.55.11 這個沒問題
但是我想讓內部192.168.55.11對外的ip是125.252.32.245請問這個要怎麼設定呢?
我目前設定這條無效iptables -t nat -A PREROUTING -i eth0 -s 192.168.55.11 -j SNAT --to 125.252.32.245
內部192.168.55.11對外ip還是跑125.252.32.244

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17484
    • 檢視個人資料
    • http://www.study-area.org
Re: 請教iptables nat的設定
« 回覆 #1 於: 2011-11-04 12:20 »
不要用 alias 看看?
iptables -t nat -A PREROUTING  -s 192.168.55.11 ! -d 192.168.55.0/24 -j SNAT --to 125.252.32.245

scc_james

  • 可愛的小學生
  • *
  • 文章數: 23
    • 檢視個人資料
Re: 請教iptables nat的設定
« 回覆 #2 於: 2011-11-05 11:19 »
樓主的需求跟我現在的環境有點類似,可以試試看下列方式是不是符合需求.

[環境]
公司(外部IP) -Linux閘道(Iptables)-部門Lab測試網段(內部IP)
  > 需求1: 部門Lab測試網段所有主機都要能上網(NAT成閘道eth0的外部IP)
  > 需求2: 某些測試主機要能由外部透過存取外部IP的方式NAT進部門Lab特定主機(靜態NAT)
  > 需求3: 有些Traffic是雙向的,所以靜態NAT的部門Lab主機對外連線時,需要使用相同外部IP

[主機]
公司外部IP網段: 192.168.1.0/255.255.255.0
部門Lab內部IP網段: 192.168.2.0/255.255.255.0
Linux閘道: 外部IP (eth0: 192.168.1.254) & 內部IP (eth1: 192.168.2.254)
Lab需要靜態NAT的主機: 192.168.2.10 (靜態外部IP: 192.168.1.10)

[Iptables]
引用
iptables -F -t filter
iptables -X -t filter
iptables -Z -t filter
iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -A PREROUTING -d 192.168.1.10 -i eth0 -j DNAT --to-destination 192.168.2.10
iptables -t nat -A POSTROUTING -s 192.168.2.10 -o eth0 -j SNAT --to-source 192.168.1.10
iptables -t nat -A POSTROUTING -s 192.168.2.0/255.255.255.0 -o eth0 -j SNAT --to-source 192.168.1.254
iptables -A INPUT -i eth0 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT

請試試看.
« 上次編輯: 2011-11-05 11:46 由 scc_james »

dark

  • 俺是博士!
  • *****
  • 文章數: 1581
    • 檢視個人資料
Re: 請教iptables nat的設定
« 回覆 #3 於: 2011-11-06 22:06 »
iptables -t nat -A PREROUTING -i eth0 -s 192.168.55.11 -j SNAT --to 125.252.32.245

下這行指令沒出現錯誤嗎 ? ... 記得 PRE 搭配 SNAT 就會警告的
應該 POST -o eth0 就可以了

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17484
    • 檢視個人資料
    • http://www.study-area.org
Re: 請教iptables nat的設定
« 回覆 #4 於: 2011-11-07 14:58 »
iptables -t nat -A PREROUTING -i eth0 -s 192.168.55.11 -j SNAT --to 125.252.32.245

下這行指令沒出現錯誤嗎 ? ... 記得 PRE 搭配 SNAT 就會警告的
應該 POST -o eth0 就可以了

啊,多哦,都沒注意到...

應該修改為 POSTROUTING 才對...