小州 <kenduest.bbs@bbs.cynix.com.tw>
wrote in message
news:3bb572$545@bbs.cynix.com.tw...
> ※ 引述《jason517@bbs.openfind.com.tw
(瘋中之瓜)》之銘言:
> > > 欲連結的主機在軍事區內 ,那使用 ipmasqadm
提供某個 port
> > > 進行 forward
就可以了。要不然您就把要連結的主機搬到非軍事區
> > > 區域,那就不需要額外的設定了。
> > 可是我照做了還是不行說~~~~
> > ipmasqadm portfw -a -P tcp -L web_IP 2222 -R real_ip 3333
> > 請問我該如何做才能將網頁中的超連結forward到內部的網站~~~謝謝!!
>
> 首先,您的這台 web_ip 主機本身提供 IP MASQ
服務嗎?簡單說,就是
> real_ip 這台主機是使用 web_ip 主機的 NAT
服務可以連上 internet 。
>
> 簡單說,就是外面的使用者,可以使用 http://web_ip:2222
連結到
> 您 real_ip 這台內部主機的 port:3333 。
>
> 而這裡要補充說明的就是,您在 web
這台主機上,無法直接使用
> web_ip:2222 連上 real_ip:3333 ,這個需要在非 web
主機內的
>
區域網路測試,要在其他非該區域網域內測試才會成功。
>
> 另外或者是您到 http://freshmeat.net
抓相關的 proxy 代理程式,
> 常駐 listen web_ip port 2222 ,然後指定讓他連結到
real_ip port
> 3333 ,這樣子也是可以的 。
看來這篇討論對 NAT
的架設來說是頗具代表性的﹐不如和大家討論一下吧。
首先﹐原發問者的架構是﹕
在 NAT 上建一個 WEB 伺服器﹐其中有 link 指到內部的私有 IP
去。
這裡有一個問題是﹕如果沒有安裝 ipmasqadm
的話﹐所有來自外部的查詢﹐
是無法到達私有 IP 去。所以﹐那樣的 link 是不工作的。
根據這樣的推斷﹐我們或許會很順理成章的使用 ipmasqadm
來進行 port fw ﹐
以滿足私有 IP 回應外部查詢的要求。
這完全是可行的。但問題又來了﹕
假如我們將外部 IP A 的 port 80 (正常的 WEB 請求) 轉到私有 IP B
的 port 80
去﹐
那麼﹐原本架於 NAT 的 WEB
伺服器的正常請求也一並被轉遞了。
換句話說﹐原本的 NAT 的 WEB
服務將失效。既然這樣﹐我們也無從看到
那個含有 link 的網頁﹐那﹐我們又如何讓外面連起﹖
至此﹐我們或許可以干脆將整個 NAT 的 WEB 搬進私有 IP 去﹐用
ipmasqadm
進行 IP A:80 對 IP B:80 的對應。照想是沒問題了吧﹖
但﹐請再想想﹕假如在這個 IP B 上有一個 link 指向私有 IP C
去。
這時候將會發生什麼樣的狀況呢﹖
首先﹐我們必須明白﹕在使用 HTTP 標準 port 80
的情況下﹐不管 IP B 或 IP C﹐
經過 ipmasqadm 之後﹐從外部看來﹐都只有一個﹕IP A﹗
Okay﹐有這點認識之後﹐我們不難發覺﹐就算我們用一個 link
從 IP B 指到 IP C
去﹐
從外面連接的話﹐還會是連接到 IP A 去。既然我們已經將 IP A
轉遞向 IP B 了﹐
那麼﹐這個連接﹐還是被導引到 IP B 去﹐IP C 還是無法到達。
這樣說其實還是非常表面的﹐事實上﹐在 IP B 上面指向 IP C
的 link ﹐
根本上就無法從外面辨識得到。因為它們都是使用私有 IP﹐路由首先就過不了。
這還沒牽涉到 DNS 的解釋呢。
明白了﹖
當我們明白到這原理之後﹐我們不難發現﹕用 link
的方式來指向私有 IP 的辦法﹐
其實並不可取。它只能工作於真實 IP 上面。
或者﹐您又會想﹕用另一個有別於80的跑 port 來做 link 的
portfw ﹐
但這需要非常慎密的設計。其牽涉的已經不是簡單的 URL
定址的問題了﹐
除了 routing 和 DNS 外﹐NAT的設計也異常複雜。
任何微小的疏忽﹐也會讓您通盤計劃付諸東流。
最後我們發現原發問者﹐已經改變其設計﹕用 NAT
轉址到另一個真實的 IP 去﹕
> > ipmasqadm portfw -a -P tcp -L web_IP 2222 -R real_ip 3333
這裡﹐我不禁有一個疑問﹕既然是用 real_ip﹐有必要再多此一舉嗎﹖
只要 routing 通了﹐直接 link 就可以了吧﹖關鍵點是﹕routing
而已。
我記得上星期也討論過 NAT 的 rouging 問題﹐也就是﹕NAT
上面的界面﹐
如果有多張網路路卡使用相同 subnet 的話﹐將會是一個問題。
這裡我不打算再討論這個了﹐有興趣的話翻翻前面的文章吧。題目是﹕
"Re: 請問要在NAT內部(private network)架設server...."