作者 主題: 關於ip mapping的問題  (閱讀 6886 次)

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

arielsheen

  • 懷疑的國中生
  • **
  • 文章數: 42
    • 檢視個人資料
關於ip mapping的問題
« 於: 2004-12-03 11:37 »
求教各位前輩一個ip mapping的問題
 
    我的環境是    
                           
             
代碼: [選擇]
        ==  Internet  ==== FireWall =========公司內部私人ip=

            Web server-------  NAT+
            Mail Server-------Proxy(squid) -------公司內部
            Ftp Server--------                (192.168.1.0/24)


   未來我希望能把 Web Server,Mail Server,Ftp Server都搬到公司內部網路

 
代碼: [選擇]
     ==  Internet  ==== FireWall ==============公司內部 私人ip=

                         NAT+
         Internet -----  Proxy  ------------------公司內部
                        (對外ip 210.202.xx.100)    (192.168.1.0/24)
                        (對內ip 192.168.1.254)     Web Server(192.168.1.1)
                                                  Mail Server
                                                  (192.168.1.2)
                                                  Ftp Server
                                                  (192.168.1.3)

     我試過 port Mapping 和 ip Mapping都不行,請問我的作法那邊有問題,
   我的做法是
   
    1.先把各個Server 在Internet上的public ip 綁在 Nat Server 對外的網卡上
     /sbin/ifconfig eth1:1 210.202.XX.1 broadcast 210.202.XX.XX netmask 255.255.255.240
    /sbin/ifconfig eth1:2 210.202.XX.2 broadcast 210.202.XX.XX netmask 255.255.255.240
    /sbin/ifconfig eth1:3 210.202.XX.3 broadcast 210.202.XX.XX netmask 255.255.255.240
   
    2.打開 Forward 機制
         echo "1" > /proc/sys/net/ipv4/ip_forward

    3.使用 DNAT的方式  (先舉 Web Server開始,其中紅色那一行是我後來才加上去的,也不行)
     #WebServer Mapping
        /sbin/iptables -t nat -A PREROUTING -d 210.202.XX.1 -p tcp --dport 80 -j DNAT --to 192.168.1.1:80
      /sbin/iptables -t nat -A POSTROUTING -d 192.168.1.1 -p tcp --dport 80 -j SNAT --to-source 192.168.1.254

     4.Web Server 的default Gateway 也有指回 Nat的內部ip 192.168.1.254

     5.用別台電腦,使用 Public ip 連 210.202.XX.1 等很久都沒回應
            用別台電腦,使用 內部 ip 連 210.202.XX.1 等很久都沒回應
            用別台電腦,使用 內部 ip 連 192.168.1.1 (Web Server)  ok 可以連線


QA: 1.我不知道是不是我一張網卡綁好幾個ip的問題
         2.iptables 做DNAT的方式錯誤
         3.請問上面紅色那一行 SNAT的方式,那麼 當 Web Server把訊息回給 gateway , Nat Server 那邊的記錄會把 Source ip 和 destination ip 復原,並將訊息傳給 internet 上,呼叫此網頁的電腦嗎?

洋蔥叔叔

  • 榮譽博士
  • 鑽研的研究生
  • *****
  • 文章數: 830
    • 檢視個人資料
    • 洋蔥叔叔的隨意漫談電腦、網路、.NET、軟體本地化、雜七雜八
關於ip mapping的問題
« 回覆 #1 於: 2004-12-03 11:52 »
引用

請問上面紅色那一行 SNAT的方式,那麼 當 Web Server把訊息回給 gateway , Nat Server 那邊的記錄會把 Source ip 和 destination ip 復原,並將訊息傳給 internet 上,呼叫此網頁的電腦嗎?

不會
你給Web Server/LAN作NAT的POSTROUTING是怎麼寫的

arielsheen

  • 懷疑的國中生
  • **
  • 文章數: 42
    • 檢視個人資料
關於ip mapping的問題
« 回覆 #2 於: 2004-12-03 12:00 »
紅色上面那一行

/sbin/iptables -t nat -A PREROUTING -d 210.202.XX.1 -p tcp --dport 80 -j DNAT --to 192.168.1.1:80

洋蔥叔叔

  • 榮譽博士
  • 鑽研的研究生
  • *****
  • 文章數: 830
    • 檢視個人資料
    • 洋蔥叔叔的隨意漫談電腦、網路、.NET、軟體本地化、雜七雜八
關於ip mapping的問題
« 回覆 #3 於: 2004-12-03 12:12 »
那你Web Server怎麼跟Internet連線

arielsheen

  • 懷疑的國中生
  • **
  • 文章數: 42
    • 檢視個人資料
關於ip mapping的問題
« 回覆 #4 於: 2004-12-03 12:25 »
對外來(來自internet)的user, 用DNAT的方式

    /sbin/iptables -t nat -A PREROUTING -d 210.202.XX.1 -p tcp --dport 80 -j DNAT --to 192.168.1.1:80

對來自公司內部的user, 我希望打 210.202.xx.1 or 192.168.1.1可以

我的 Web Server 放到公司內部後,身上的ip是 192.168.1.1 ,
 本身它自己透過nat Server 連上 internet是沒問題的

洋蔥叔叔

  • 榮譽博士
  • 鑽研的研究生
  • *****
  • 文章數: 830
    • 檢視個人資料
    • 洋蔥叔叔的隨意漫談電腦、網路、.NET、軟體本地化、雜七雜八
關於ip mapping的問題
« 回覆 #5 於: 2004-12-03 12:30 »
換個方式問
你nat server上為了讓內部網路上網而寫的SNAT規則是怎麼寫的

arielsheen

  • 懷疑的國中生
  • **
  • 文章數: 42
    • 檢視個人資料
關於ip mapping的問題
« 回覆 #6 於: 2004-12-03 13:03 »
我的 Nat 設的方式
/sbin/iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j MASQUERADE

洋蔥叔叔

  • 榮譽博士
  • 鑽研的研究生
  • *****
  • 文章數: 830
    • 檢視個人資料
    • 洋蔥叔叔的隨意漫談電腦、網路、.NET、軟體本地化、雜七雜八
關於ip mapping的問題
« 回覆 #7 於: 2004-12-03 13:25 »
那加上
iptables -t nat -I POSTROUTING -s 192.168.1.1 -p tcp --sport 80 -j SNAT --to 210.202.XX.1
看看
紅色那條拿掉,是錯的

arielsheen

  • 懷疑的國中生
  • **
  • 文章數: 42
    • 檢視個人資料
關於ip mapping的問題
« 回覆 #8 於: 2004-12-03 13:44 »
還是連不上網頁.....

下面是我設出來的結果

表格: nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
DNAT       tcp  --  anywhere             NK210-202-xx-1.vdsl.static.apol.com.twtcp dpt:http to:192.168.1.1:80

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
SNAT       tcp  --  192.168.1.1        anywhere           tcp spt:http to:210.202.xx.1
MASQUERADE  all  --  192.168.1.0/24       anywhere

洋蔥叔叔

  • 榮譽博士
  • 鑽研的研究生
  • *****
  • 文章數: 830
    • 檢視個人資料
    • 洋蔥叔叔的隨意漫談電腦、網路、.NET、軟體本地化、雜七雜八
關於ip mapping的問題
« 回覆 #9 於: 2004-12-03 14:04 »
FORWARD有允許嗎?或Web Server有防火牆嗎?

arielsheen

  • 懷疑的國中生
  • **
  • 文章數: 42
    • 檢視個人資料
關於ip mapping的問題
« 回覆 #10 於: 2004-12-03 14:26 »
我的FORWARD 是 ACCEPT的

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination



Web Server 是win2000平台的,沒有防火牆

洋蔥叔叔

  • 榮譽博士
  • 鑽研的研究生
  • *****
  • 文章數: 830
    • 檢視個人資料
    • 洋蔥叔叔的隨意漫談電腦、網路、.NET、軟體本地化、雜七雜八
關於ip mapping的問題
« 回覆 #11 於: 2004-12-03 14:33 »
hmm, 照理講其實有
/sbin/iptables -t nat -A PREROUTING -d 210.202.XX.1 -p tcp --dport 80 -j DNAT --to 192.168.1.1:80
/sbin/iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j MASQUERADE

應該就ok了

要不然在router上抓幾個internet來的http封包看看

arielsheen

  • 懷疑的國中生
  • **
  • 文章數: 42
    • 檢視個人資料
關於ip mapping的問題
« 回覆 #12 於: 2004-12-03 15:03 »
210.202.xx.5 是我用來測試的PC ,我在上面用 Ethereal 去抓封包)

我抓到封包的結果是 (ARP 那段不說)

  1.  210.202.xx.5 把 http 的封包送給 210.202.XX.1
         (封包內容  source IP 210.202.xx.5
                  destination IP 210.202.xx.1)

 2. 可是 210.202.xx.1 竟然回應 ICMP 封包 ,訊息是 destination unreachable

  我需要去把 有關 icmp的設定撤掉嗎?

arielsheen

  • 懷疑的國中生
  • **
  • 文章數: 42
    • 檢視個人資料
關於ip mapping的問題
« 回覆 #13 於: 2004-12-03 15:38 »
2. 可是 210.202.xx.1 竟然回應 ICMP 封包 ,訊息是 destination unreachable

  上面的原因,我已經知道了,對不起,因為我把Web Server 內部ip設錯了


可是改完後,再試,出現一個蠻奇怪的問題
  210.202.xx.5 (測試機) 向 210.202.xx.1 送 http 的封包
  網頁一樣沒出來
  我去看封包回應的竟是 192.168.1.1 直接回應給 210.202.xx.5
                         而不是 210.202.xx.1 回應給 210.202.xx.5

  可是我有設
      /sbin/iptables -t nat -I POSTROUTING -s 192.168.1.1 -p tcp --sport 80 -j SNAT --to 210.202.xx.1


  我再檢查看看

arielsheen

  • 懷疑的國中生
  • **
  • 文章數: 42
    • 檢視個人資料
關於ip mapping的問題
« 回覆 #14 於: 2004-12-03 16:46 »
奇怪 SNAT 已經設好了,我也覺得沒問題...
/sbin/iptables -t nat -I POSTROUTING -s 192.168.1.1 -p tcp --sport 80 -j SNAT --to 210.202.xx.1

可是 210.202.xx.5 (測試機) 只會收到的封包
是 source ip  192.168.1.1    destination ip 210.202.xx.5
應該是 source ip  210.202.24.1    destination ip 210.202.xx.5 才對

SNAT沒作用耶!!

arielsheen

  • 懷疑的國中生
  • **
  • 文章數: 42
    • 檢視個人資料
關於ip mapping的問題
« 回覆 #15 於: 2004-12-03 17:35 »
sorry!!! 封包已經可以正長收送了,可是 IE 一直在開啟中,不知道是什麼原因?
IE的左下角 會一直出現 " 正在開啟網頁 http://210.202.xx.1/... "
可是網頁還是一直沒出來耶!!!!