ひかり電話をVPN経由で使う方法 | ゆきすけのブログ

ゆきすけのブログ

たぶん放置されます。

Twitterでこんな質問を受けたので回答まとめ。


いつきさん以外の方にも使えるように少し汎用に
さて、前提
1.[必須]端末がひかり電話用のSIPを喋れる事
意外と面倒です。
ひかり電話のコーデックはpcmu事、G.711 μ-lawなのでSIPクライアントが喋れる必要があります。
またそれに付随した色々なネゴ回りで微妙な挙動を示す物もあったり。
AGEphoneとかは、ひかり電話公認アプリなのでソレを入れちゃうのが一番お手軽です。

2.[オプション]VPNをそもそも張れる事
これも意外と面倒です。
オプションとしたのはひかり電話のSIPポートを外に大解放という手も有るという物です。
その場合はひかり電話ルータのユーザーIDとパスワードによる認証による保護のみです。
(でも一番使いやすいのは実はコレだったりする・・・)
ネックは2点で
パターンA:回線によってVPNに必要なプロトコルが通らない
docomoのspモード、auのCGNではPPTP VPNで必要なGREトンネルプロトコルのパケットが通らない
IIJmioではプロトコル制限が無いため大丈夫です。(当然CGNの考慮は必要ですが。)
3G網外でもぷららのようにデフォルトでは着信できないISPも有りますが・・・
パターンB:3G回線ではAndroid実装バグによりPPTP VPNが途絶する
暗号化を有効にして暫くすると通信不能になり接続中表示ですがパケットが通らなくなります。
N-04Cはメーカーが独自Fix済みのように見えますが、Softbankの003SH/005SHはダメでした。
この不具合は標準実装がバグってるという救いようのないバグです。
対処法はPPTPでの暗号化を諦めるか、IPSec系でVPNを行うか、Wi-Fi経由では問題ないのでWi-Fiルータを使うか、pppdを自前でビルドし置き換える(要ビルド環境と&root)という物です。
# サポセンに訴えて次回fixに含めて貰うのも手かもしれません。

3.[参考]実施例
自宅ネットワーク(2012年5月末時点) 
まぁ、見づらいですが、うちのネットワークはこんな構成になってます。
うちの環境ではPPTP VPNでなく、L2TP/IPSec VPNがメインとなっています。
ごっちゃり構成の原因の半分は固定IPで運用してる外向けサーバーをローカルセグメントから分離してる事、各種不具合の回避(後述)が理由ですね・・・

在宅時、スマートフォン系はクライアント群である192.168.Z系に所属しており、ひかり電話ルータに直接アクセスしてます。
 

外に出るとWi-Fiモバイルルータ経由の接続で、即時VPNを有効にして、VPN経由でひかり電話ルータにアクセスしてます。
 

4.[参考]上記ネットワーク構築時に遭遇した制約・不具合情報
I.AirStation PPTPサーバーの仕様
現行のAirStationのPPTP VPNサーバーはデフォルトゲートウェイを通知しないようでして、その場合、外部ネットワーク(=インターネット)につながらなくなります。
Windowsだとルーティングを変えるので気づかないのですが。


II.AirStationのWAN/LAN間パケット漏れによるネットワークダウン(ブロードキャストストーム?)
詳細の解析を実施していませんが、起きる現象のみ。

AirStationをPPPoEクライアントにする場合最も手軽なのがひかり電話ルータのPPPoEブリッジの有効化し、AirStationのWANを接続する事です。

※[WAN]-[ひかり電話ルータ]-[AirStation]-[PC]
しかし、そのような接続だとひかり電話ルータ側へそのままでは接続出来ないので、AirStationのLAN側もひかり電話ルータに接続して同一セグメントにしようとするのですが、その様な接続だとネットワークがダウンします。

まぁ、LAN口からPPPoEやら色々流れ込むので異常動作しても当たり前のような気もしますが。

(WAN側インタフェースに固定IPを振ってルーティング設定出来たりすれば良いだけなのですが・・・

その為、VDSLモデム直下にあるVDSL LANやUNIといった口でHUBで分離し、WAN/LANが適切に分割されるようにします。

フレッツのIPv6機器を使用する場合、どちらか一方からのみIPv6ブリッジを許可するのをオススメします。