Re: [問題] 請教Basic NAT的實做方法

看板Programming作者時間18年前 (2007/04/19 17:32), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/3 (看更多)
※ 引述《saap.bbs@ptt.cc (我是好人囧rz)》之銘言: > 請教一下各位前輩們, > Basic NAT要如何實做呢? > 即假設內部網段是192.168.1.0/24網段, > 藉由NAT Server的內部IP:192.168.0.254, > 每個內部IP都對應到實體IP, > EX: > 192.168.1.1 <---> 1.1.1.1 > 192.168.1.2 <---> 1.1.1.2 > . > . > . > . > 192.168.1.100 <---> 1.1.1.100 > 小弟的問題在於該NAT是否要在外部網卡設上每個實體IP, > 意即該NAT對外網卡上設1.1.1.1, 1.1.1.2, 1.1.1.3, ... 1.1.1.100及自己的對外IP, > 感覺好像不是這樣作? > RFC 3022看了也了解他的步驟, > 可是要實做...完全沒有頭緒, > 想找範例碼來參考又找不到, > 因此特來請教迷津, > 謝謝。 我以前的專題有做過類似的事情. 當時是用 DOS 做的. 首先, 你可以考慮使用 Linux 做為你開發的環境, 利用 promiscuous mode 的方式, 去聽每一個 interface 進來的所有 Packet. 也可以在 User Mode 下面做到收送封包. 這個專題很久了, 大概只記得部份而己 大致上的步驟是 Packet From LAN | 確認是往 WAN Interface | Search NAPT Table 是不是有對應的 Record NAPT Table 應該會記錄 SrcIP/PORT,DestIP/PORT, WanIP/PORT | 將 Packet 內的 SIP/PORT 換成 WanIP/PORT | 重新計算 Checksum | 從 WAN 端將 Packet 送出去. Packet From WAN. | Search NAPT Table | 將 Packet 內的 DIP/PORT 換成 NAPT Table 內查到的 SrcIP/PORT | 重新計算 Checksum | 從 LAN 端將 Packet 送出去. 大致上的步驟就是這樣. 複雜一點還會碰到有關 Routing 的議題之類的 當然也可以偷懶去用 netfilter 做 NAT , 不過我想這樣就失去學習的本意了 -- 以上的文字都是誤會 看到的一切都是幻覺 -- ※ Origin: 土匪.山寨 <bbs.techarea.org / poorman.twbbs.org> ◆ From: richliu.techarea.org

04/21 00:12, , 1F
推後面那句話...謝謝建議^^
04/21 00:12, 1F
文章代碼(AID): #169pSL00 (Programming)
文章代碼(AID): #169pSL00 (Programming)