[問答] NAT問題請教
小弟是網路領域的新手
最近在試著做p2p相關的東西
遇到了一個無法理解的問題 ( 資料也查了很多,但是看不懂的部分就是不懂... )
過程是這個樣子
前提 :
Client A ,B 皆在NAT後面 (手機行動網路)
過程皆使用UDP封包,SDP用SIP交換
過程 :
1. client A 先去跟Stun Server要回了要做media傳輸的public ip , port
ex : client A private ip : 10.123.32.56:22222
public ip: 42.117.71.31:12345
2. 透過SDP交換得知client B的 public ip, port ( client B 也得知client A 的 public ip)
ex : client B: 123.193.80.105:7890
3. client B 往 client A 的42.117.71.31:12345 傳送RTP封包 ( 只有B往A單向傳送 )
問題:
到步驟三這時候,實際上觀看client A 的 log 是沒有封包進來的
直到client A 往 client B 的 123.193.80.105:7890 丟出第一個封包之後
才收的到來自 B 的 RTP封包 ( B依然一直往42.117.71.31:12345傳送封包 )
但我混淆的點是
步驟一,用 private ip往stun server 發出stun封包的時候
在NAT上面不是就已經建立了 client A private ip 跟 public ip 的對映
ex : 10.123.32.56:22222 <--> 42.117.71.31:12345
為何後面在NAT後面等待封包卻收不到 ?
還是NAT上 僅有已方private ip 跟 public ip的對映,NAT是不會幫忙轉送
還必須建立 已方NAT的public ip 與對方 public ip 的對映才行 ?
如果是這樣,是不是就沒辦法在已方NAT後面等待來自任何ip的封包 ?
問題很新手,不過困擾很久...懇請解惑
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.193.80.31
※ 文章網址: https://www.ptt.cc/bbs/Network/M.1498808973.A.F5F.html
推
06/30 15:59, , 1F
06/30 15:59, 1F
→
06/30 15:59, , 2F
06/30 15:59, 2F
→
06/30 16:00, , 3F
06/30 16:00, 3F
P大的意思是說,我要讓B傳封包進來,就必須先讓A傳個封包到B的public ip:port
這樣轉送表才會記錄B進來的封包要往A送,類似NAT打洞的意思嗎
感謝,我一直以為 stun 回來之後 NAT內外的ip對映已經做完
所有送到 A 這個public ip:port 上封包就會進到private ip:port了
※ 編輯: good3583 (123.193.80.31), 06/30/2017 17:27:02