小州 <kenduest.bbs@bbs.cynix.com.tw>
wrote in message
news:3bbRlA$81e@bbs.cynix.com.tw...
> ※ 引述《netmanforever@yahoo.com
(網中人)》之銘言:
>
> 來看一下原發問者的文章:
>
> 請問一下~~~我有架nat將內外網路區分開來~~~但web
server架在nat機器上~~~
> 不過現在有個問題~~~在網頁上我有做個超連結到內部某台機器的web上~~~因為
> 內部的是假的ip~~~所以想請問一下 dns要如何設定~~~ipchains
又該如何設定~~
> 麻煩一下~~小弟試了好幾天都失敗~~~謝謝!!!
>
> 所以知道是:
>
> 1. nat 主機,本身就是 web server
> 2. web server
要提供一個連結,不過連結處的主機是在內部網域內。
>
> 所以簡單說,使用 ipmasqadm 的話,可以在這個
web/nat 主機上開個
> port,然後導向到內部某個 web 主機的某個 port
就可以了。
>
> > 或者﹐您又會想﹕用另一個有別於80的跑 port 來做 link
的 portfw ﹐
> > 但這需要非常慎密的設計。其牽涉的已經不是簡單的
URL 定址的問題了﹐
> > 除了 routing 和 DNS 外﹐NAT的設計也異常複雜。
> > 任何微小的疏忽﹐也會讓您通盤計劃付諸東流。
是的﹐我們的確可以用 ipmasqadm 做 port fw 來讓外面循 link
連接到內部的主機
去。
但是有條件限制的。
首先﹐在原網頁上的 link 不知道要如何寫﹖
HREF="URL" 應是一個 IP 還是 DNS 名稱﹖
假如是 IP﹐別忘了我們現在是談內部的私有 IP
哦﹐那似乎不妥。
好了﹐那就用 DNS 名稱吧﹐但﹐總不能設回這個私有 IP吧﹖
既然如此﹐無論用 IP 還是 DNS ﹐都要設為對外的 IP 去。
如果假設我們的環境只使用一台 NAT而已﹐無疑﹐DNS 解釋到的
IP 必須要綁在
這個 NAT 去。假如我們仍然堅持將 link
導向內部網路﹐我們可以選擇的有兩個﹕
1﹐用 IP Alias 來綁多個 IP 在 NAT 上。
2﹐用不同的 port 來做重導。
假如用第一個方法﹐相信比較容易。
只要將 IP-Alias 的 port 80 重導向 link 所指的機器就可以了。
假如用第二個方法﹐也就是弟在上一篇回應中所以為的(抱歉﹐希望沒有理解錯誤吧)﹐
那麼﹐網頁中的 HREF="URL" 後面還要指定要使用哪個
port ﹐否則的話﹐
在預設的情況下還是使用 port 80 ﹐既然目前這個 port 是 NAT
主機的 WEB 服務
口﹐
那麼﹐當關於 link 的請求到達時(假設沒有指定另外的 port)﹐那麼這個請求也自然
被 NAT 主機接管(假如 NAT 並沒有重導 port 80﹐重導此 port
的問題上一篇已經講
過)﹐
結果是﹕link 還是無法到達內部網路。
Okay﹐或許我們可以用不同的 port 將第一個 link
成功導向了。那麼﹐可以設想一下
接下來的 HTTP 請求嗎﹖
如果到達 link 後還有其它 link 呢﹖(暫時假設所有 link 都是在
local 的好了)
這樣還是會回到老問題﹕如果不另外指定 port
﹐外面的請求還是會丟給 NAT 的 port
80。
或許﹐還真有人逐個 link
的修改下去﹐但﹐如果這台主機同時也對內提供服務呢﹖
被改了的 port ﹐要在 local
端做出相應的對應。假如這樣﹐恐怕 httpd.conf 和
services
檔案也逃不過被修改的命運吧﹖假如 server 上還跑個 PHP
什麼的﹐其複雜度可想而
知。
算了吧﹐換了我的話﹐想已經放棄了。