作者 主題: Prerouting 及 Postrouting 是專有名詞嗎  (閱讀 14921 次)

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

小金

  • 可愛的小學生
  • *
  • 文章數: 23
    • 檢視個人資料
Prerouting 及 Postrouting 是專有名詞嗎
« 於: 2002-10-31 02:55 »
在 linux 的 iptable 中引入的參數中有一個叫 Prerouting 及 Postrouting, 我想問這兩個是一個專有名詞嗎, 我這裡的意思是像 TCP/IP, RIP, Routing 等等這方面有廣泛認受性, 還是 iptable 或一少數領域自己發明的東東. 例如我跟一個對 Router 很有認識 有什麼 CCNA CCNP 等認證的人說 Prerouting 及 Postrouting (但沒有 Linux 知識 <-- 好像沒可能, 在這例是這樣), 會知道這兩個 Terms 的意思嗎?

謝謝

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17484
    • 檢視個人資料
    • http://www.study-area.org
Prerouting 及 Postrouting 是專有名詞嗎
« 回覆 #1 於: 2002-10-31 11:18 »
不是,是 iptables 中的兩個 chain 名。

prexxxxx 就是  xxxxx 之前,
postxxxxx 就是 xxxxxx 之後。
英文知識而已。

小金

  • 可愛的小學生
  • *
  • 文章數: 23
    • 檢視個人資料
Prerouting 及 Postrouting 是專有名詞嗎
« 回覆 #2 於: 2002-10-31 14:28 »
謝謝指教.

問這問題是有特殊原因的. 在做 Prerouting 時, 例如 Redirect 我是這樣理解的, 一個遠端主機進入 NAT 主機時, 要能 Redirect 進內部的主機, 必須在還沒有進入內部主機之前做 DNAT, 這情況比較接近於遠端主機進入的那張向外連接的 Interface (Prerouting), 不然的話就沒有機會把 Packet "拋" 到向內連接的 Interface, 所以用 Prerouting 可以很容易理解. 但到了 SNAT 就有點令我摸不著頭腦了, 例如在 IP Masquerading 中, 用的是 Postrouting, 但就我的理解而言, 真的只能在 Output 之前一刻 (Prerouting) 做 Source Socket Modification 嗎! 就內部主機的 Socket Pair 到達 NAT 主機的時候, 若以 Prerouting 推想, NAT 主機也只是改掉 Source Socket 資料, 對把 Packet "拋" 到連接外部網絡的 Interface 沒有影響, 不就可以以 Prerouting 做嘛! 那麼把這分為 Prerouting 及 Postrouting 不就失其意思嗎, 盡管在 iptable 中不是這樣, 但就我認識的好像沒有問題. 那麼是我在這觀念上出了問題, 還是因 Prerouting 及 Postrouting 是 iptable 的作者認為把她們作這樣的分類會比較清楚. 但就我的理解作者作這樣的分類好像反而令問題複雜了, 反正 IP Masquerading 可以以 Prerouting 來做 (我的觀念), 不就沒有 Postrouting 也可! 那麼把她們統一為 Routing 不就可以嗎!, 反正在 iptable 中不打 -A POSTROUTING 或 -A PREROUTING 還會簡單些. 我想我可能有些東西搞錯了, 應該不會像我這樣想吧........

就這問題我曾求教過一位拿了 CCNP 的朋友, 他沒有對我所描述的情況予以否定, 但就為何 IP Masquerading 以 Postrouting 作合理解釋沒有清楚的答案. 不幸的, 這就如你所說她不是專有名詞, 那麼我就不能從多方面搜集資料去理解她, 也只能單單在 iptable 的觀念去求解......

謝謝

小金

  • 可愛的小學生
  • *
  • 文章數: 23
    • 檢視個人資料
Prerouting 及 Postrouting 是專有名詞嗎
« 回覆 #3 於: 2002-10-31 14:33 »
不好意思, 上面的有點打錯了.


原文
....真的只能在 Output 之前一刻 (Prerouting) ......

應為
....真的只能在 Output 之前一刻 (Postrouting) ......

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17484
    • 檢視個人資料
    • http://www.study-area.org
Prerouting 及 Postrouting 是專有名詞嗎
« 回覆 #4 於: 2002-10-31 14:38 »
你將 routing 及 nat 搞混了。

iptables 跟本不管 routing 。routing desision 是 kernel 的工作。

小金

  • 可愛的小學生
  • *
  • 文章數: 23
    • 檢視個人資料
Prerouting 及 Postrouting 是專有名詞嗎
« 回覆 #5 於: 2002-10-31 14:50 »
還是不明白.

即使 nat 跟 routing 是分開的. 那在 Prerouting 那邊做 IP Masquerading 有何問題? 在入那邊改 Source Socket 再交由 Kernel Route 到向外的 Interface 似乎還是可行的.

謝謝.

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17484
    • 檢視個人資料
    • http://www.study-area.org
Prerouting 及 Postrouting 是專有名詞嗎
« 回覆 #6 於: 2002-10-31 15:09 »
我想,您應寫信去跟 netfilter 的作者作深入的討論了。

若我用 masquerade ,那是 dynamic SNAT ,也就是將 ip 換成 outgoing interface 的 IP ,事先不知哪個,得要 routing 判斷完才知。

若在 routing 之前要作 SNAT ,請問你怎知道要換成哪個?
想想看:你有 10 張界面在上面!

好學不是壞事,但腦筋會不會轉彎更重要。

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17484
    • 檢視個人資料
    • http://www.study-area.org
Prerouting 及 Postrouting 是專有名詞嗎
« 回覆 #7 於: 2002-10-31 15:25 »
p.s.

你的信箱常退信,請改一個吧。要不我將 lock 住你的 account 了:

golden_man@hongkong.com

小金

  • 可愛的小學生
  • *
  • 文章數: 23
    • 檢視個人資料
Prerouting 及 Postrouting 是專有名詞嗎
« 回覆 #8 於: 2002-10-31 15:43 »
我想跟多少張 NIC 沒關係, 像以下:
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.0/24 -j MASQUERADE

其中 -o ppp0 不就已經指定了出去的 interface 嘛, 直接把 Source Socket 換成這個, 再將 Packet "拋" 到 ppp0. 那麼
iptables -t nat -A PREROUTING -o ppp0 -s 192.168.100.0/24 -j MASQUERADE

雖然不正確, 但觀念上像是還可以的.....但總覺得有點不對勁....

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17484
    • 檢視個人資料
    • http://www.study-area.org
Prerouting 及 Postrouting 是專有名詞嗎
« 回覆 #9 於: 2002-10-31 15:48 »
引述: "小金"
我想跟多少張 NIC 沒關係,....


絕對有關係!

請重看 routing table 關於 destination 與 interface 的部份。

在 routing 還沒做之前(prerouting),請問你如何知到 -o 是哪張?
(同樣假設有 10 張界面)

算了,小金,看來你很堅持己見,也很愛鑽牛角尖。接下來我不想討論了。請好好將 networking 的基礎打好,再來討論 nat 吧。

好自為之。我不多言了。

小金

  • 可愛的小學生
  • *
  • 文章數: 23
    • 檢視個人資料
Prerouting 及 Postrouting 是專有名詞嗎
« 回覆 #10 於: 2002-10-31 15:50 »
那個可恨的 hongkong.com 改了收郵件的方式, 我已修理好了.

小金

  • 可愛的小學生
  • *
  • 文章數: 23
    • 檢視個人資料
Prerouting 及 Postrouting 是專有名詞嗎
« 回覆 #11 於: 2002-10-31 16:32 »
我嘗試再看有關資料吧.

我不認為我沒事前準備而亂發問題, 只是跑到不明白的地方才發問, 討論版及 Newsgroup 的用途不是這樣嗎. 你這樣一句冷語我就不再問了.....

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5411
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
Prerouting 及 Postrouting 是專有名詞嗎
« 回覆 #12 於: 2002-10-31 17:09 »
引述: "小金"
我想跟多少張 NIC 沒關係, 像以下:
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.0/24 -j MASQUERADE

其中 -o ppp0 不就已經指定了出去的 interface 嘛, 直接把 Source Socket 換成這個, 再將 Packet "拋" 到 ppp0. 那麼
iptables -t nat -A PREROUTING -o ppp0 -s 192.168.100.0/24 -j MASQUERADE

雖然不正確, 但觀念上像是還可以的.....但總覺得有點不對勁....


routing 還沒決定, 你怎麼知道就是經過 ppp0 出去 ? 如果我還有 ppp1 可以出去呢 ?
對於 prerouting 來說, -o 根本就是無意義的, 因為還不能確定...

假定你出去有 eth0, eth1 兩個介面, ip 是 111.111.111.111 與 222.222.222.222
如果依照你的說法, 在 routing 之前就可以做 SNAT (MASQUERADE) 了, 那你認為應該用那個 ip ?
如果用 111.111.111.111, 假定 routing 決定由 eth2 出去, 那這個 ip 對於 eth2 的網路來說, 不就是不認得的 ?
所以... SNAT 只能在 routing 決定之後才做, 也就是在 POSTROUTING 中處理.

潛水夫

  • 可愛的小學生
  • *
  • 文章數: 21
    • 檢視個人資料
Prerouting 及 Postrouting 是專有名詞嗎
« 回覆 #13 於: 2002-10-31 17:22 »
我再來插一下嘴好了.
通常POSTROUTING是在封包出去時候用, 而PREROUTING則是用在封包進來的時候用.
再用之前所舉的例子, 再加一點料:
遠端PC : 1.2.3.4
NAT對外 : 3.4.5.6(eth0)
NAT對外 : 3.4.5.7(eth0:1)
NAT對外 : 3.4.5.8(eth0:2)(通常去申請Hinet固接ADSL, 會給八個IP, 用三個做代表)
NAT對內 : 9.8.7.6
NAT內PC : 9.8.7.5
NAT內Web Server : 9.8.7.3 (DNS登記的是, 3.4.5.8)

當遠端PC要連到Web Server時, 其封包如下:
1.2.3.4|3.4.5.8
當NAT接到之後, 因為PREROUTING有設定(一定會有), 所以把封包改成
1.2.3.4|9.8.7.3
而傳到真正的Web Server上, 而當Web Server要回應時, 其封包如下:
9.8.7.3|1.2.3.4
但這時一定會有一條POSTROUTING來處理, 且會配合SNAT而不會用MASQUERADE, 如此封包才會改為:
3.4.5.8|1.2.3.4
如果是配合MASQUERADE的話, 封包會變成
3.4.5.6|1.2.3.4
因為3.4.5.6是"代表號"

這麼講好了, 從Internet從入NAT到你的私人網路用以下的示意圖來表示:
Internet ----- NAT ------- 私人網路
而在NAT中有兩樣東西, 偽裝IP及Router, 示意圖便變成如下
Internet ----- 偽裝IP --- Router -----私人網路
所以不論是出去或是進來, 都要經過偽裝IP的處理, 但要怎麼讓它知道如何處理呢??當然就是利用POST及PRE囉!!!!所以一個負責進來, 一個負責出去囉!!!!

說得有點亂, 不知道看得懂嗎????

不要再挑我毛病了, 就針對小金的問題好嗎????

潛水夫

  • 可愛的小學生
  • *
  • 文章數: 21
    • 檢視個人資料
Prerouting 及 Postrouting 是專有名詞嗎
« 回覆 #14 於: 2002-10-31 17:27 »
我想那個POST及PRE指的應該是對我所講的那個Router而言, POSTROUTING是指封包出去, 透過Router, 是在Router之後做處理, 而封包進來, 會先做處理再透過Router, 所以是PREROUTING.
試試看這樣想, 能不能弄通!!!!

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17484
    • 檢視個人資料
    • http://www.study-area.org
Prerouting 及 Postrouting 是專有名詞嗎
« 回覆 #15 於: 2002-10-31 17:45 »
引述: "小金"
我嘗試再看有關資料吧.

我不認為我沒事前準備而亂發問題, 只是跑到不明白的地方才發問, 討論版及 Newsgroup 的用途不是這樣嗎. 你這樣一句冷語我就不再問了.....


sorry ,是我不好。

我早說過:別界意我的語氣,而關心你是否學到。就算我幫你捶背好了,若你沒學到要學的,你會感激我嗎?

令外,我也早說過:
1) nat 與 routing 分開。您嘗試分開就好辦,否則越是打結。iptables 不是 "拋" 封包,只改 header 而已,這些修改,有些是 routing 前必須改,而有些則是 routing 後才能改。
2) ..... 不知道您解決哪些了? 若這些都通了,NAT? piece of cake! 若不懂,那,就努力囉....

只要你不 "執著" 你自己所認定的,跳開這個框框,自然就容易了。我夠膽提出打基礎的建議,就是覺得你基礎不夠(否則 routing 不會與 nat 混在一起的)。你若聽得進去,最大的受益者是你。我的得益只在於 "不必再糾纏原理問題上而已",也僅此而已。

再想想:
1) 我是否有意務答你?
2) 我給的建議你可接受多少?
3) 你是為技術還是感受來討論?

假如你認為我傷害閣下了,我願道歉。但,我也希望我好心的建議同樣獲得尊重。謝謝!

小金

  • 可愛的小學生
  • *
  • 文章數: 23
    • 檢視個人資料
Prerouting 及 Postrouting 是專有名詞嗎
« 回覆 #16 於: 2002-10-31 22:09 »
twu2
多謝你的指教, 我還以為沒多人對我回覆感興趣. 我想我有少少頭緒了. 給我一點時間消化.



潛水夫
謝謝你那麼詳細的指導, 我要點時間把 Prerouting, Postrouting, NAT, IP Masquerading 等等在思維中重新整理, 腦子太亂了, 要把新概念重整.

理解上有問題的的或許會再打搞各位,煩請到時高抬貴手 ^^.



netman
sorry ,是我不好。
>>老實說我真的很火光,現在已下了不少.


我早說過:別界意我的語氣,而關心你是否學到。就算我幫你捶背好了,若你沒學到要學的,你會感激我嗎?
>>不會,我覺得知識是自己的,學了沒人能偷走.


令外,我也早說過:
1) nat 與 routing 分開。您嘗試分開就好辦,否則越是打結。iptables 不是 "拋" 封包,只改 header 而已,這些修改,有些是 routing 前必須改,而有些則是 routing 後才能改。
2) ..... 不知道您解決哪些了? 若這些都通了,NAT? piece of cake! 若不懂,那,就努力囉....
>>嘗試再了解中


只要你不 "執著" 你自己所認定的,跳開這個框框,自然就容易了。我夠膽提出打基礎的建議,就是覺得你基礎不夠(否則 routing 不會與 nat 混在一起的)。
>>這方面我會再多搜集資料


你若聽得進去,最大的受益者是你。我的得益只在於 "不必再糾纏原理問題上而已",也僅此而已。
再想想:
1) 我是否有意務答你?
>>沒有一個人有義務回答另一人的問題,同時沒有一個人願意為一個答案而背起多番的責備.
2) 我給的建議你可接受多少?
>>不是不接受,只是理解不來,正在努力中.
3) 你是為技術還是感受來討論?
>>我為的當然是技術,我的朋友都跟我說不要再理這個了,但我就是想知道原因,老實說,知道了我的薪金不會有變,又得不到什麼實質的大益處, 我只單單就可充實知識而發問.
我想說一些話,有點離題.我由小到大都愛發問,人慢慢大了,人家總覺得我經常無病呻吟,多數人也是冷言冷語,這使得我學會不再發問,求人不如求己,維持了很久很久的一段日子,人大了就覺得不應把孩子時的"每事問"收起,反正人不可憑一人之力求解,慢慢又把每事問的性格再找出來, 不然的話跟閉門造車沒兩樣.我想有很多人就是受了多番壓力下把這性格收起來,從此多數事也不聞不問,沒多個會願意為了一個答案而受多番責備的,為這埋沒了求知慾多可惜呢.再者,這裡問不了我大可以走到别處去問.這就是資訊科技的力量,你也用不著那麼凶.


假如你認為我傷害閣下了,我願道歉。
>>不必了


但,我也希望我好心的建議同樣獲得尊重。謝謝!
>>我就是覺得這裡的人在技巧方面比較全面才來這裡發問,每個建議都會被受尊重,正如你所言,我一直都認為人家回答已是一種恩惠.

p.s. 不好看的,可以把這篇刪除,我不介意(說真的).

g220132110

  • 憂鬱的高中生
  • ***
  • 文章數: 95
    • 檢視個人資料
Prerouting 及 Postrouting 是專有名詞嗎
« 回覆 #17 於: 2002-11-01 06:12 »
大家好:

剛剛做了惡夢醒來,睡不著只好來上網看看有什麼好學習的吧!
看到前面還很好,到後來的對話,有點擔心!
實在搞不懂後來兩個人會鬧僵?


雖然個人看法不同,我還是要說句實在話:

要跟人家求知識,態度還是要謙卑一點,特別是對義務服務熱心回答的高手們‧因為他們真的沒有回答的義務,如果還要低聲下氣來道歉,那真的太委屈了!

這裡的高手們還不錯,會回答問題,態度也不錯,大家都喜歡,否則誰要來?
大家應該去過很多網站吧!很多人根本不鳥你的問題,當然後來就沒什麼人氣了‧

好好珍惜這個學習環境,不要因為這裡不錯就養壞了學習者的胃口,偶而犧牲一下學習的脾氣可以嗎?思考用另一種態度來面對,會獲得更多東西,而不是今天這種彼此生氣的場面了!

這個站我很喜歡,希望能保持下去,因為我還想學很多東西,我還有很多問題想問,拜託大家氣完了就好(頂多不相往來而已)!

潛水夫

  • 可愛的小學生
  • *
  • 文章數: 21
    • 檢視個人資料
Prerouting 及 Postrouting 是專有名詞嗎
« 回覆 #18 於: 2002-11-01 08:32 »
小金:
其實iptables沒有那麼複雜(或許有, 只是我不知道), 它只在做一種事情, 檢查封包(很多東西, 但只針對你的問題)的(sa,sp,da,dp), 及更換封包內的address及port.
再畫一次示意圖好了:

Internet --------- iptables ------ router ------ 內部網路
Internet : 1
iptables : 2
router : 3
內部網路 : 4

當封包的行進路程是 1 -> 2 -> 3 -> 4 的話, 要對封包做動作是在router之前, 所以用PREROUTING來處理(以路程來看, 是在router之前).
而當封包的行進路程是 4 -> 3 -> 2 -> 1 時, 要對封包做動作是在router之後, 所以用POSTROUTING來處理(以路程來看, 是在router之後).

所以iptables和router的工作可以說是完全沒有關係.

而PREROUTING, 你可以看成是一種mapping的動作, 如之前所提, 你對外公佈的Web Server IP 是2.2.3.4, 可是你真正的Web Server是藏在內部網路, 且IP是9.8.7.6, PREROUTING就會把da的內容換掉, 好讓封包可以到達真正的Web Server.
而POSTROUTING, 你可以看成是偽裝(分指定和預設), 假設你對外的合法IP有三個, 而內部網路你又分成三段, 你想讓第一段在出去時大家看到的是第一個合法IP, 而第二段則是第二個IP, 第三段是第三個IP, 就要利用POSTROUTING及配合SNAT來達成, 但是如果你的真實IP只有一個, 或是不想指定的話, 就不需要SNAT, 只需要MASQUERADE就可以了.

說了一堆, 試著從這個方向去想, 或許會比較容易了解.

PS : 上面那個 iptables ------ router 你要把它們看成是NAT Server中的兩個Services, 而不是各自獨立的兩台機器.

ericshei

  • 全區板主
  • 俺是博士!
  • *****
  • 文章數: 2257
    • 檢視個人資料
Prerouting 及 Postrouting 是專有名詞嗎
« 回覆 #19 於: 2002-11-01 09:43 »
引述: "潛水夫"

當Web Server要回應時, 其封包如下:
9.8.7.3|1.2.3.4
但這時一定會有一條POSTROUTING來處理, 且會配合SNAT而不會用MASQUERADE, 如此封包才會改為:
3.4.5.8|1.2.3.4
如果是配合MASQUERADE的話, 封包會變成
3.4.5.6|1.2.3.4
因為3.4.5.6是"代表號"

潛水夫兄:
請教,這您的例子中,"3.4.5.6是"代表號""這是什麼意思??
為什麼不會用MASQUERADE呢??
如果下
iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE
會與您的例子有違背嗎??

在您的例子中,用固8的方式,而eth2為(3.4.5.8):
iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth2 -j SNAT --to 3.4.5.8
比較這二則rule
在下覺得並無不一樣的地方,只要eth2的ip 不變,MASQUERADE永遠是3.4.5.8

不知己在下的認知是否正確! :roll:

ericshei

  • 全區板主
  • 俺是博士!
  • *****
  • 文章數: 2257
    • 檢視個人資料
Prerouting 及 Postrouting 是專有名詞嗎
« 回覆 #20 於: 2002-11-01 09:46 »
引述: "g220132110"
大家好:

剛剛做了惡夢醒來,睡不著只好來上網看看有什麼好學習的吧!
看到前面還很好,到後來的對話,有點擔心!
實在搞不懂後來兩個人會鬧僵?


雖然個人看法不同,我還是要說句實在話:

要跟人家求知識,態度還是要謙卑一點,特別是對義務服務熱心回答的高手們‧因為他們真的沒有回答的義務,如果還要低聲下氣來道歉,那真的太委屈了!

這裡的高手們還不錯,會回答問題,態度也不錯,大家都喜歡,否則誰要來?
大家應該去過很多網站吧!很多人根本不鳥你的問題,當然後來就沒什麼人氣了‧

好好珍惜這個學習環境,不要因為這裡不錯就養壞了學習者的胃口,偶而犧牲一下學習的脾氣可以嗎?思考用另一種態度來面對,會獲得更多東西,而不是今天這種彼此生氣的場面了!

這個站我很喜歡,希望能保持下去,因為我還想學很多東西,我還有很多問題想問,拜託大家氣完了就好(頂多不相往來而已)!

呵....呵......大家和氣生財麻~~
其是我每天在這晃呀晃的,對這個地方,我只有一句話,心存感激~

ericshei

  • 全區板主
  • 俺是博士!
  • *****
  • 文章數: 2257
    • 檢視個人資料
Prerouting 及 Postrouting 是專有名詞嗎
« 回覆 #21 於: 2002-11-01 09:55 »
引述: "潛水夫"
假設你對外的合法IP有三個, 而內部網路你又分成三段, 你想讓第一段在出去時大家看到的是第一個合法IP, 而第二段則是第二個IP, 第三段是第三個IP, 就要利用POSTROUTING及配合SNAT來達成, 但是如果你的真實IP只有一個, 或是不想指定的話, 就不需要SNAT, 只需要MASQUERADE就可以了.


在下目前的認知,除非interface上的ip不固定(撥接adsl),否則用MASQUERADE或SNAT並無差異.

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17484
    • 檢視個人資料
    • http://www.study-area.org
Prerouting 及 Postrouting 是專有名詞嗎
« 回覆 #22 於: 2002-11-01 11:49 »
小金兄,所謂 "苦口良藥利於身、逆耳忠言利於行",想信你聽過吧?
先說我為何喜歡技術討論吧,因為技術這家伙是騙不了人的,基本上,來回兩三次就知道真正的水平在哪了。
而您的問題,請恕我直言:就是技術基礎不過關。
何說?
我敢保證,若是你對 routing, arp, csma/cd  這些原理真正花過功夫的話,你絕對不會提出當前的"辯駁"。而你,卻一直將精神耗在 nat 上面,那的確是鑽牛角尖了啊。有見及此,我勸你:
1) 加強基礎學習
2) 腦筋轉轉彎
難道說錯了?居然讓你"火冒三丈"?你也未免太小氣了吧?
當杯子是滿的時侯,是再也裝不下半滴水的。
打從開始,我就勸你將注意力放在"學習知識"上面,
但似乎你更計較別人的批評,同時也很固執自己的成見。比方說:
1) 我勸你拆開 nat 與 routing
你卻堅持將 routing 放進 nat 去談,不肯跳出舊有框框。
2) 我跟你說多界面下沒法在 routing 前判斷哪張是 outgoing
你卻堅持 "跟多少張 NIC 沒關係"。
3) 我跟你說好好打基礎,然後再來談
你卻堅持認為"不認為我沒事前準備而亂發問題"。
4) 我跟你反映信箱有問題
你卻怪人家 hongkong.com "可恨"...
從頭到尾,從沒見過你認真的檢討 "自己",總之,有不對的,都怪別人。人家好心好意給你一些針對你問題所在的建議(你的問題不在 nat ,而是 routing!),你不僅聽不進去,還認為是對你的連翻羞辱、憤而火冒!

小金朋友,你既然肯花時間來打字,何不先花時間聽聽別人的建議呢?先撇開 nat ,然後將 routing 的前後原理搞懂、以及封包在純 routing 上的變化、了解每一個欄位、了解 routing table 、了解 ip forward ...
然後,你自然不會將 nat 與 routing 混為一談了。

或許,你至今也不承認自己將 routing 與 nat 搞混了吧。好,那我告訴你吧:
"-A POSTROUTING -o ppp0" 的意思是:"從 ppp0 送出的封包才符合。"
而你卻理解為 "將封包導向 ppp0 送出"!
真是荒天下之大謬:封包要經哪個 interface 送出,是按 routing table 來決定的,也就是 routing 要管的,iptables 甚麼時侯決定封包的 routing 了?就因為這一步錯,以後就步步錯了...
若你肯聽、夠虛心接受,搞不好你已將 routing 原理弄明白了,而不是來這裡跟我吵架!

你有脾氣,難道我不能有?一而再、再而三的叫你別糾纏在 nat 而應往基礎原理去解,到頭來還讓你來責怪?換了你,將作如何感受?哦,連我的道歉都視為"不必"了哦,這算甚麼態度?

告訴你,技術的學習是短暫的,但態度與方法的學習卻是一輩子的!你花一個星期集中在 iptables 上,大不了只解決了"當前"的疑惑,若花兩個月在 tcp/ip 基礎上,你將受用一輩子!想清沒有?哪樣的建議才是"真正"對你好?還以為自己受委屈了呢?恐怕,你還沒到過國外的論壇問過"蠢"問題吧?別人哪管你那麼多,一句 RTFM 或 RTFW 就打發你了... 真是身在福中不知福!想當初,我問別人的問題,有誰願意給我那麼多建議啊?因此我最感激我的一位澳洲同學,因為他給我的答案是這樣的:
"it is all in the manual..."
小金兄,你知道我有多感激這句話嗎?因為 --- 它給了我一輩子受用無窮的方法與態度!

小金應是香港人吧,有空問問長輩:甚麼叫"塞錢落你袋"。若問不到,再來跟我說,我再告訴你好了。

潛水夫

  • 可愛的小學生
  • *
  • 文章數: 21
    • 檢視個人資料
Prerouting 及 Postrouting 是專有名詞嗎
« 回覆 #23 於: 2002-11-01 13:33 »
其實從實做中可以得到一些平常想不到的東西.
我所謂的"代表號"是指, 是指當使用MASQUERADE的方式來做偽裝的話, 外面看到的IP, 當一張網路卡上有不止一組IP時(像我前面所提的, eth0;eth0:1;eth0:2, 這樣就有三組IP了), 若是使用MASQUERADE時, 外面看到的連線IP是"eth0"的, 但若使用上SNAT時, 就可以指定是"eth0:1"或"eth0:2"的IP了, 這是我實際實作時所得出的結果.
像你所提的, 我可沒用到eth2喔!!是eth0:2, 所以你下的那兩條規則, 上面那個, 外面人看到的是"eth0"的IP, 而下面的那一條, 外面人看到的是"eth0:2"的IP.

潛水夫

  • 可愛的小學生
  • *
  • 文章數: 21
    • 檢視個人資料
Prerouting 及 Postrouting 是專有名詞嗎
« 回覆 #24 於: 2002-11-01 13:43 »
小金兄:
聽我一句建言, 當你有問題時, 你來發問, 有人來解時, 試著用解題者的角度來想問題, 而不是局限在自己所想的那個範圍內, 如此才不容易"雞同鴨講", 也不致讓解題者覺得自己的好心白費了.
同時因為是用文字表達, 所以有些時候, 能不省幾個字, 就不要省, 如你的"不必", 我想你是想表達"沒有那麼嚴重, 不用道歉", 但你一個"不必", 我看了都覺得怪怪的, 所以自己以後要小心自己的文字表達.

ericshei

  • 全區板主
  • 俺是博士!
  • *****
  • 文章數: 2257
    • 檢視個人資料
Prerouting 及 Postrouting 是專有名詞嗎
« 回覆 #25 於: 2002-11-01 14:40 »
引述: "潛水夫"
其實從實做中可以得到一些平常想不到的東西.
我所謂的"代表號"是指, 是指當使用MASQUERADE的方式來做偽裝的話, 外面看到的IP, 當一張網路卡上有不止一組IP時(像我前面所提的, eth0;eth0:1;eth0:2, 這樣就有三組IP了), 若是使用MASQUERADE時, 外面看到的連線IP是"eth0"的, 但若使用上SNAT時, 就可以指定是"eth0:1"或"eth0:2"的IP了, 這是我實際實作時所得出的結果.
像你所提的, 我可沒用到eth2喔!!是eth0:2, 所以你下的那兩條規則, 上面那個, 外面人看到的是"eth0"的IP, 而下面的那一條, 外面人看到的是"eth0:2"的IP.


啊~sorry~sorry~
恕在下眼睛太大,竟沒看到是alias.
那不知,
iptables -t nat -A POSTROUTING -o eth0:2 -j MASQUERADE
成不成立,當然這和在下原先的問題無關了^^

手邊沒機器,不知您有試過嗎??

ericshei

  • 全區板主
  • 俺是博士!
  • *****
  • 文章數: 2257
    • 檢視個人資料
Prerouting 及 Postrouting 是專有名詞嗎
« 回覆 #26 於: 2002-11-01 14:50 »
引述: "ericshei"
引述: "潛水夫"
其實從實做中可以得到一些平常想不到的東西.
我所謂的"代表號"是指, 是指當使用MASQUERADE的方式來做偽裝的話, 外面看到的IP, 當一張網路卡上有不止一組IP時(像我前面所提的, eth0;eth0:1;eth0:2, 這樣就有三組IP了), 若是使用MASQUERADE時, 外面看到的連線IP是"eth0"的, 但若使用上SNAT時, 就可以指定是"eth0:1"或"eth0:2"的IP了, 這是我實際實作時所得出的結果.
像你所提的, 我可沒用到eth2喔!!是eth0:2, 所以你下的那兩條規則, 上面那個, 外面人看到的是"eth0"的IP, 而下面的那一條, 外面人看到的是"eth0:2"的IP.


啊~sorry~sorry~
恕在下眼睛太大,竟沒看到是alias.
那不知,
iptables -t nat -A POSTROUTING -o eth0:2 -j MASQUERADE
成不成立,當然這和在下原先的問題無關了^^

手邊沒機器,不知您有試過嗎??

潛水夫兄您好:
嗯??
剛又看了一遍,還是覺得怪怪的,可能是您沒把rule寫出來吧~
先假設,如果
iptables -t nat -A POSTROUTING -o eth0:2 -j MASQUERADE
這則rule成立.

那下面這二則rule在您的case中就沒差囉!  ^^
iptables -t nat -A POSTROUTING -o eth0:2 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0:2 -j SNAT --to 3.4.5.8

ericshei

  • 全區板主
  • 俺是博士!
  • *****
  • 文章數: 2257
    • 檢視個人資料
Prerouting 及 Postrouting 是專有名詞嗎
« 回覆 #27 於: 2002-11-01 14:55 »
說者無心,聽者有意.
更何況討論區是用"文字"來表達一切~
有時覺得 :D  :)  8)  :lol:  :P ,這些東西麻重要的~ :D

潛水夫

  • 可愛的小學生
  • *
  • 文章數: 21
    • 檢視個人資料
Prerouting 及 Postrouting 是專有名詞嗎
« 回覆 #28 於: 2002-11-01 22:32 »
eth0 : 3.4.5.6
eth0:1 : 3.4.5.7
eth0:2 : 3.4.5.8
我登記的Web Server IP是3.4.5.8, 而我不希望內部人員上網時被偽裝的IP和Web Server一樣, 請問一下你會如何設定?