昨天發現了一個問題,一直覺得很困惑,
希望如果有對網路架構較熟的大大們可以予以指教,感謝~~
目前有的對外getway有192.168.1.1與192.168.1.2兩部router,
當主機使用.1.1,client也使用.1.1為getway時,以php上傳檔案均正常無誤。
但是當主機使用.1.1,client使用.1.2為getway時,以php上檔案時就會失敗。
原先不知道是getway的問題,一直以為是其它如檔案權限、apache設定或php.ini設定的問題,
不過,我想既然同getway可以上應該不是設定或code的問題了。
為什麼不同getway時就會出現這樣的問題呢??
可以再把使用的Gateway設備是什麼也PO上來嗎
這樣才能把問題再釐清
從192.168.1.2連線進來時,主機也必須從192.168.1.2做回應.
所以你要設定 routing table
同網段設兩部gateway..?
這蠻不合理的.
除非一臺是192.168.1.1 另外一部192.168.2.1
這樣的話就要設routing table.
通常都會是使用.1.1為所有設備的getway,不過因為router可使用的ip只有一個,如果有一個以上的使用同樣服務的主機(如web)就使用以外的getway使他們都可以正常對外提供服務。
不過,或許也是這樣造成了內部網路架構的問題....就是底下laiout兄所提的loop問題。
還是說...loop問題也可以由routeing table獲得改善嗎?
給tibandyli:
如果只是為了兩個或兩個以上的web站台,可以只用同一個ip即可,例如用IIS可"主機標頭"設定不同的網址對應到同一個IP位址即可。
因為考慮到機器效能.....
而且平台不同,一個是RH9+PHP4+MYSQL3一個是CENTOS+PHP5+MYSQL5....
雖然說系統轉移也是勢在必行…但…這離題了~~ 有磁到問題再回來討論囉@@"
兩個getway阿
那你應該是用分流設備做指向囉
我之前也有遇到這樣子狀況
我這邊發現的原因為不會的getway會有不同出口
基本上一定會預設網路是從1.1getway出口
但是你現在設定getway為1.2時,你封包出從1.2出去
SERVER出口為1.2但封包入口卻從1.1回來
就會發現封包無回應或是連線失敗
我想你可以從你的分流設備中看到有ACT但是卻無回應
這部分應該為線路預設及DOMAIN NAME設定關係吧.....以上給你參考看看
同一個網段有兩部router,是連往不同的地方(網段)嗎?如果是連往不同地方應該以其中一個為default gateway(如192.168.1.1),再於此router上設定routing table要往另一個網段走另一部router(如192.168.1.2);如果兩部router是通往同一個網段,只是做分流時,建議改用load balance設備,避免形成loop。
Gateway 的用途, 就像是一個城門, 如同樓上 kaiin323 所述.
可以想像如同要到隔壁鄰居家去串門子, 那是不必走遠路出城門再轉回來的.
你的主機和 Client 都在相同網段 >> 192.168.1.XXX
所以探討 Gateway 沒意義.
請檢查一下:
主機和client都在同網段沒錯,
不過走的Gateway是不相同,出城門之後的身份也就不同了。
如果是直接指向ip,我想應該就不會有問題,
可是因為指向的是domain,client勢必要先向dns查詢這部主機的ip為何,此時便已經出城門了
dns回覆也會是主機的外部ip,所以…資料應該是從client送到.1.2經internet到.1.1再nat轉向到主機。
不過我想應該是routing table有問題的機會比較高....
剛剛說錯了...是client到1.1經internet到1.2再nat到主機
比較好的做法, 應該是 DNS 分內外兩組,
就如同專供內部使用的 AD Server 它所雍有的 DNS 與
外部專用的 DNS,
內部DNS所解析出來 Server 的 IP ,
應該是屬於Local 192.168.x.x 的範圍,
而外部 DNS 則是用於解析公司 Domain 正確的外部實體 IP 位置,
兩者作用不同. Security 的控管上也明顯不同.
所以, Client 端的 DNS 應該指向內部專用 DNS, 這樣在 Intranet
的運用上也才會是正確的, 封包流經的途徑不會有問題.
不建議把所有的Client 都指向外部 DNS, 如此前述動作所有的封包就都會丟出Gateway, 再從外部的實體IP 進入 Server,
設的不好, 那 PHP 解析出的內外 IP 混淆的機率很高,
除非公司簡略到內部無 Inranet 運用, 一切資源都在外部, 不需要內部 DNS.
因為當你使用 192.168.1.2 時, 他的網段是 192.168.1.3~192.168.1.254, 所以你的192.168.1.1 自然就不在 list 裡, 所以你就失敗了, 你若用 192.168.1.2當getway 時, 主機請設 192.168.1.3 自然就成功了