STUN 【Session Traversal Utilities for NAT】 Simple Traversal of UDP Through NAT
概要
STUN(Session Traversal Utilities for NAT)とは、インターネットとの境界でNATによるアドレス変換が行われているネットワーク内の端末から、外部の相手と双方向の通信を行うためのプロトコル(通信手順)の一つ。IP電話やビデオ会議などのUDP通信で利用されることが多い。家庭や企業、大学などの構内ネットワーク(LAN)では、内部の機器間はLAN内でのみ通用するプライベートIPアドレスで通信し、インターネットへ中継するルータのみがグローバルIPネットワークで外部と通信するという構成を取ることが多い。
その際、内外で通信を中継するため、ルータが「NAT」(Network Address Translation)や「NAPT」などの技術によって、内部側と外部側のIPアドレスとポート番号を対応付けて相互に変換するという処理を行う。
NATは内部の端末から外部のサーバへ接続することを想定しており、内部の端末が自身のグローバルIPアドレスやポート番号を直接知ることはできないため、そのままでは互いにNATの内側にある端末同士が直に接続を確立してデータを伝送することができない。
STUNはこれを解決するNATトラバーサル技術の一種で、インターネット上で接続を仲介する専用のサーバ(STUNサーバ)を必要とする。端末はまずSTUNサーバへ通信を行い、NATルータに自分用のポート番号を確保させる。
STUNサーバは接続元のIPアドレスとポート番号をオウム返しに送り返し、接続元の端末に自身のグローバルIPアドレスとポート番号を知らせる。この情報をシグナリングサーバなどを介して相手方と交換することにより、直に接続を確立することができるようになる。
STUNサーバは最初のアドレスやポート番号の検出のみを行い、端末同士の通信の中継などは行わないため、サーバ運用の負荷が少ないが、NATの運用方式によっては接続できない場合がある。そのような場合には通信自体をサーバが中継(リレー)するTURN(Traversal Using Relay around NAT)などの技術を用いる。
STUNは2003年にIETFによってRFC 3489(Simple Traversal of UDP Through NAT)として標準化され、2008年にRFC 5389(Session Traversal Utilities for NAT)として、2020年にRFC 8489(同)として改訂された。
関連用語
関連リンク (外部サイト)
- RFC 3489 - STUN - Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs) - IETFによる仕様書(初版)
- RFC 5389 - Session Traversal Utilities for NAT (STUN) - IETFによる仕様書(改訂版)
- RFC 8489 - STUN - Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs) - IETFによる仕様書(最新版)