Song <Song.bbs@bbs.cynix.com.tw> wrote in message
news:3dKkeF$5TZ@bbs.cynix.com.tw...
> ※ 引述《netmanforever@yahoo.com (網中人)》之銘言:
> > Song <Song.bbs@bbs.cynix.com.tw> wrote in message
> > news:3dKYl9$6z_@bbs.cynix.com.tw...
> > >     ?? 這是說您沒有自己架設 DNS 嗎?
> > >     那麼您內部電腦的 DNS 指向哪裡?
> > >     最簡單的解決方式是,在 client 上建立 hosts 檔,設定
mail.domain.com
> > >     的 IP 指向內部位置,而非 Firewall 的 eth0。
> > >     但這會造成後續維護上的困難。
> > >     如果您有自己架設 DNS,您可以在 DNS 上修改 /etc/hosts 的設定,
> > >     將 mail.domain.com 的 IP 指向內部位置,而非 Firewall 的 eth0。
> > >     這個問題應還是 ICMP 的 Redirect 所產生的問題,您可找尋舊的文章:
> > >     [問題]NAT中redirect port如何讓private ip也能access?
> > >     這個系列的討論文章。
> > song 兄﹐這問題似乎需要再探討一下的。
> > 關於DNS﹐他也說過是 ISP 那邊幫忙指定的﹐只要 IP 找對了﹐是否在自己網路上

> > DNS 似乎影響不大﹐除非兩邊的 DNS 資料不一至。他已經指出用 IP 來連接的
話﹐沒
> > 有問題。那他這裡所指的 IP﹐在 outlook 上面應該是設 POP 的 IP 吧﹖當然也
可以
> > 設定 SMTP 的﹐但不確定不是他所問的。不過﹐他又說在家可以連接﹐那這樣的推
斷﹐
> > 是不是他自己的 DNS 設定有問題﹖
>
>     ㄣ ... 弟詢問 DNS 的位置是想確認,如果有自己架設的 DNS 才能在其上修改
>     /etc/hosts 的設定。
>
> > 如果 DNS 設定沒問題﹐那就回到前一個問題﹕究竟 server 擺在那邊﹖在內部嗎
﹖那
> > 會碰到 host route redirect 的 ICMP 問題。解決之道是可以修改內部的 DNS ﹐
讓之
> > 指到內部 server 的 IP 去﹐或是在所有 clients 上面用 hosts 檔來寫死地址。
>
>     是的,弟也是指出可建立 client 上的 hosts 檔,只是這樣日後維護會很累。
>     所以弟也是建議修改 DNS 上的 /etc/hosts 檔。(如果有 DNS 的話 :)
>     只是弟少提了一個地方,就是 /etc/host.conf 及 /etc/resolv.conf
>     的相關性。 :)
>
> > 另一個方法是升級到 kernel 2.4 用 iptables 來做﹕
> > # iptables -t nat -A PREROUTING -d 1.2.3.4 \
> >         -p tcp --dport 80 -j DNAT --to 192.168.1.1
> > # iptables -t nat -A POSTROUTING -d 192.168.1.1 -s 192.168.1.0/24 \
> >         -p tcp --dport 80 -j SNAT --to 192.168.1.250
>
>     Yes, 本來也想提這個 iptables,但是又想大概還很少人在用,所以就算了。
>     既然提到了,怎能不順勢推薦一下您的新作? :)

誤導觀眾哦﹐應聲新(譯)作啦。  :)

>     Linux 2.4 Packet Filtering HOWTO
>     http://ccns.ncku.edu.tw/study_area/tips/packet-filter-howto
>          /packet-filtering-HOWTO-chn.html

謝謝 Song 兄推薦。除了這篇 packet-filter ﹐同時還有另一便 NAT 的 HOWTO 放在
上面﹐歡迎有興趣研究 iptables 的朋友來交流一下心得﹗

>
>
> > 他原本的架構是有三張網路卡﹕一對外﹐一對內﹐一對 DMZ。
> > 我想(雖然他沒明確指出)﹐客戶端的 request 應該會從對內界面傳入﹐然後經過
port
> > forward 之後會由 DMZ 的界面出去。照這樣的設計﹐應該不至於出現 ICMP
Redirect
> > 的現象才對。
>
>     這點弟也不敢確定,但是推斷起來還是非常有可能。
>     如果,port forward 設定的 IP 所處的介面是在「對內介面」的話,就可以肯

>     不會發生。但是現在 port forward 設定的 IP 應該是在「對外介面」上,所以
>     其封包所經過的路徑為:
>     client → 「對內介面」 → 「對外介面」 → 「DMZ介面」 → Server
>     他還是可以將「對外介面」這關省略掉。

弟認為是否「省略」對外界面﹐並不導致 ICMP 之 Redirect。
router 之所以會回應 host-route-redirect 封包﹐是因為它檢查到來源與目的地之間
存在著更短(佳)路徑。
以目前的假設來看﹐有下面兩種情況﹕
1) client → 「對內介面」 → 「對外介面」 → 「DMZ介面」 → Server
2) client → 「對內介面」 → 「DMZ介面」 → Server

無論是那個路徑﹐client 和 server 的最佳路徑還是會經過 router 本身(也就是依然
從對內界面傳入)﹐所以不會有 host-route-redirect 的 ICMP 封包回應給 client。
既然封包仍是經過這台 NAT﹐那封包改寫就不成問題。


>
> > 無論如何﹐在判斷問題之前﹐我們有必要先將一些不必要的非明朗因素排除掉﹐例
如確
> > 定封包沒有被 ipchains 或其它過濾系統擋掉了﹐以及路由的設定是可行的。
>
>     如果封包被檔掉,或是路由設定的問題的話,應該是指定 IP 也不行的。
>     而,由外面進入又是正常,表示 port forward 的 ipmasqadm 的設定都有完
成,
>         不論是 smtp 或是 pop3 。

嗯﹐看來原來的提問似乎有點不清楚﹐或是把狀況搞混所至。這裡似乎有一個怪圈的存
在﹕
既然 IP 通﹐那就不管 ICMP 的 Redirect 了﹔那就是 DNS 的問題。
但既然外面通﹐那又似乎是不是 DNS 的問題﹐而像是一個 Redirect 的問題。

>
>     所以,弟才會直接妄下猜測,認為其為 ICMP 的 Redirect 所產生的問題。
>     還請  兄指教。

請教不敢當﹐song 兄的能力遠在弟之上。只是看到了也就和大家討論一下而已。