2022-01-06

ソフトフォンの NAT 越えに関して

 

 

 ケーブルインターネットでの NAT 越え問題 

 

ある、ケーブルインターネット利用の方から、自宅 WiFi で接続の場合に、会社の IP-PBX に接続できない、というコメントがありました。

 

 

SIP - REGISTER がエラーになっているようです。

 

 

 

当初は会社 IP-PBX(Brekeke だそうです)が外部公開されていないのではないか、というところから始まりました。

 

 

やりとりしている中でどうやら プロキシ が外部公開されていて、インターネットから接続できるようです。

 

 

会社同僚の方の自宅 WiFi からは接続できている、とのことでした。

 

また、ご本人からは モバイル4G では接続できているとのことでした。

 

 

 

 

紆余曲折がありましたが、最終的にケーブルインターネットからはプライベート IP が払い出されているということでした。

 

 

そのためにいわゆる 二重 NAT になっていて、SIP がこれを越えていない、と考えられます。

 

 

二重 NAT でも、通常の NAT トラバーサル(セッションの KeepAlive)で越える場合があることは、ウチ環では検証済みです。

 

 

ですが、今回のケースは越えていないと思われます。

 

 

ケーブルインターネットからは プライベート IP が払い出されているようですのでルーターは2段になっているはずです。

 

 

どちらかが Symmetric NAT の可能性があります。

 

 

Symmetric NAT の場合は「セッションの KeepAlive」では NAT 越えできません。

 

 

 

 

 モバイル・インターネットは NAT 越えできている 

 

モバイル事業者の場合、多くがプライベート IP(クラスC)または CG-NAT で プライベート IP 扱いです。

 

 

 

ウチでは現在、楽天モバイル / OCN モバイル ONE / povo2.0 / IIJmio の4種類のモバイル回線を利用中です。

 

 

これらの中で OCN モバイル ONE のみがグローバル IP です。


これに対して IIJmio は CG-NAT で、楽天モバイルと povo2.0 はクラスC のプライベート IP です。



OCN モバイル ONE 以外は、ルーターが事業者の網内にあることになりますが、NAT は1段でしょう。

 

 

いずれのモバイル事業者の場合も、シグナリング(SIP メソッド)とメディア(音声)は流れていて問題はありません。

 

 

つまり「セッションの KeepAlive」による NAT 越えができていることになります。

 

 

 


 ケーブルインターネットで 二重 NAT 越えはどうするか 

 

ケーブルインタネット事業者が プライベート IP を加入者に払い出している場合、網内にルーターがあるはずです。

 

また、加入者側にはケーブルモデム一体型ルーターがあります。

 

 

いわゆる二重 NAT になっています。

 

 

この状態での「セッションの KeepAlive」ができていないと思われ、どちらかのルーターが Symmetric NAT の可能性があります。

 

 

事業者側ルーターが Symmetric NAT では? と思われますが定かではありません。




代表的な NAT トラバーサルである UDP hole Punching では Symmetric NAT を越えられません。


 

 

 

回避するには STUN または TURN を使う手があります。

 

 

ウチはコメントされた方とは同じ環境ではありません。

 

 

二重 NAT 化しても Symmetric NAT ではありませんので、コメントされた方の試行待ちです。

 





 STUN の有効性を検証してみる 


STUN 自体は以下の3つを試して問題ないことを確認済みです。

 

 

 Google ----------- stun.l.google.com:19302

 Grandstream ---- stun.ipvideotalk.com

 Zoiper ------------ stun.zoiper.com:3478


 

 

 

他に公開されている STUN サーバーの一覧は、次にあります。

 

https://gist.github.com/mondain/b0ec1cf5f60ae726202e 

 

 

 

Google が一番遅延特性が低いのでオススメです。

 

 

STUN 設定できるソフトフォンアプリを使う必要があります。

 

 

このとき、iPhone ならばプッシュ着信対応 できているソフトフォンにする必要があります。

 

 

なぜなら、非プッシュ着信型(常駐型)だとバッテリー消費が大きい からです。

 

 

Android の場合はどちらのタイプでもバッテリー消費は少ない ので気にしなくてもいいでしょう。

 

 

 

 

 

件の方は、zoiper を STUN 設定して NAT 越えできたそうです。

 

 

iPhone をお使いのようなのでバッテリー消費を考えるとプッシュ着信型のソフトフォンアプリにせざるを得ないようです。

 

 

 

ただ、zoiper と Bluetooth ヘッドセットの相性なのか、音声途切れが発生するということで、結局自宅でも Sessiontalk を 4G で使うことにしたそうです。

 

 

 

 

 

 

 

0 件のコメント: