Re: [問題] 請教Basic NAT的實做方法
※ 引述《saap (我是好人囧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,
: 感覺好像不是這樣作?
你有那麼多public IP可以用啊?
現在NAPT應該比較多吧 大家都用同樣的IP和不同的port出去
: RFC 3022看了也了解他的步驟,
: 可是要實做...完全沒有頭緒,
: 想找範例碼來參考又找不到,
我在網路上有找到過 還可以通過ICMP和FTP(active mode)
再找一下吧
: 因此特來請教迷津,
: 謝謝。
我是這樣做的啦,細節我不說了
我是在windows上用MFC+winpcap作的
WAN ------------- eth1 = s
e
r
v
e
r =eth0 ------LAN (也許接到一個switch)
eth0 IP設192.168.0.254 其他clients的gateway也設192.168.0.254
從eth0進來且目的地是WAN的封包(ARP之類的不用轉送) 隨機分配62000+的
port number出去,IP當然用eth1的IP,並紀錄Translation table
從eth1進來的且dest port是62000+的,才轉送進LAN(你可以加上其他限制,
就變成Restricted Cone NAT, Port Restricted Cone NAT 之類的)
要送到哪裡應該不用我教了
如果要讓FTP p2p之類可以通過, 要設定static translation table
不然又外面來的連線(port <62000)我們是不會理的。
例如client 1的eMule port設47662,那你就在處裡eth1封包那裡把送給47662的
封包轉給client 1,這樣子就不會看到low ID了~~
如果client 2想架FTP,以filezilla server來說的話,可以設定filezilla server
只使用30000~31000的port,然後你的NAT就把這個port範圍的封包轉給client 2就可以了
(不過用passive mode就沒這個問題了)
table要管理好,要定時清理,不然跑沒多久就爆掉了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.114.79.114
※ 編輯: Linvail 來自: 140.114.79.114 (04/19 18:16)
推
04/21 00:19, , 1F
04/21 00:19, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
Programming 近期熱門文章
PTT數位生活區 即時熱門文章