NAT越えについてメモ

switchの通信対戦なんかでNAT越えの問題がよくあるみたいですが、ここら辺なんでダメなのかよくわかっていなかったのでメモ。

  • local <-> grobalIPを変換するのがNAT
  • local側に複数端末を割り当てるときは一つのgrobal ipでは外側からの通信をどの端末に届けていいかわからないので、ポート番号も組み合わせる。これがNAPT
  • 割り当てはルータのNATテーブルに定義。これのフィルタリングがフルコーン(すべてok)・過去にlocalから通信した外部の端末のIPならok・過去にlocalから通信した外部の端末のIPとポートならok・シンメトリック型(LAN,WANのポートとIPで一組)の4つの形式がある
  • 普通のクライアントサーバ型のオンラインゲームなんかだとNAT越えは比較的簡単
  • というのもlocal側から外に向かって通信しているので、その段階でNATテーブルが定義されているから
  • なんでswitchとかでNATを超えられないのかというと、P2P通信だから、お互いに外側からどこに向けて通信すればいいのかわからない。
  • これを解決するためにSTUNサーバのような外側から自分がどう見えているかを通知するやり方がある。