2011年7月25日 星期一

STUN (Simple Traversal of UDP Through Network Address Translators - RFC 3489 )

STUN (Simple Traversal of UDP Through Network Address Translators - RFC 3489 ), 是最著名和最常被使用的VoIP穿越NAT防火牆的解決辦法。STUN 利用位於 Internet 上的伺服器幫助防火牆內的UA獲知他們被NAT 轉換過的外部位址, 並協助他人的VoIP呼叫穿透防火牆送達牆內的UA。
很多應用層的 VoIP程式必須仰賴 UA 主動提供自身的IP 位址及port number, 讓VoIP兩端的UA 彼此知道對方的IP 位址及port number, 才能互送封包, 建立雙向的通話。但是如果UA 是在NAT 後面, 在沒有外部的協助下,一個UA 無法看到 它自己被NAT 轉換過的外部位址,就無法提供此項資訊,讓 VoIP順利運作。



圖 9.10 UA 與STUN 溝通獲知外部位址
STUN 伺服器可作為中介者協助UA 看到自己被轉換過的外部位址,如圖9.10所示。 UA 送一個message 給STUN 伺服器,而STUN 伺服器可從封包中挖出來該 UA 的外部位址,並將此資訊回傳給UA。 此外,STUN 伺服器也可透過一系列的測試封包獲知NAT 的型態,並提供 相對應的穿越方法,圖9.11及9.12顯示STUN 伺服器探測NAT型態之架構與流程。 可惜的是,STUN無法穿透Symmetric NAT, 而偏偏這種NAT已經成為NAT市場上的主流。 以下是公眾STUN 伺服器的位址。
  • stun.fwdnet.net
  • stun.fwd.org (no DNS SRV record)
  • stun01.sipphone.com (no DNS SRV record)
  • stun.softjoys.com (no DNS SRV record)
  • stun.voipbuster.com (no DNS SRV record)
  • stun.voxgratia.org (no DNS SRV record)
  • stun.xten.com
  • stun1.noc.ams-ix.net (DNS SRV record on domain ams-ix.net not noc.ams-ix.net)
  STUN 伺服器探測NAT型態之架構

STUN 伺服器探測NAT型態之流程

How to use simple speedtest in RaspberryPi CLI

  pi@ChunchaiRPI2:/tmp $  wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py --2023-06-26 10:4...