コロナ禍による影響ですっかりテレワークという言葉が浸透し(言葉だけですよ!)、それに伴いVPNという仕組みも世間で随分認知されるようになりました。
スマホ内線が使えなくなった!
VPNについてはいくつか構築に関する記事を書いてきました。私は現在OpenVPNサーバーを宅内に設置して使っています。
また、NTTのひかり電話回線でスマホを子機にする機能も利用しています。使っているアプリはこちらです。
電話の度に受話器を取りに行かなくても手元のスマホで通話出来たり、外出先からVPN経由で自宅の電話回線を利用し通話したりと重宝していました。
ところがある日、外出先からVPNで自宅へ接続していてもAGEphoneが使えなくなっていることに気付きました。ホームゲートウェイ(以下HGW)には接続出来ているのですが、通話が始まると強制切断されてしまうのです。
通話できなくなった原因
利用できなくなったのはどうもOpenVPNを利用するようになってからのようです。「なんでだろう??」と色々試すも改善されず数か月。OpenVPNにはルーティングモードとブリッジモードの2つがあり、これはルーティングモードで利用する際に起こる事象らしいことが漸く分かりました。
では「OpenVPNをブリッジモードで使えば良いのでは?」と思いましたが、iOSデバイスがブリッジモードでは接続できないことが分かり、いよいよ八方塞がりです。
PPPoEを復活させる
では、そもそもなぜOpenVPNを使うようになったかといえば、IPoE化によりそれまで利用していた手段(L2TP/IPsec)では自宅へVPN接続できなくなったからでした。
折角安定・高速化実現のために導入したIPoEも良いことばかりではないのです。その点についてはこちらの記事にまとめました。
では、どうするか
かなり時間をかけて解決策を考えてみたものの、私の知識ではどうにもなりそうにありませんでした。そのため、L2TP/IPsecでVPNを利用できるPPPoEセッションを復活させたのです。
ではここで、本職のエンジニアさんが見たら発狂しそうな図をご覧いただきましょう。

フレッツは標準で2セッションまで接続できるので、青色のIPoE回線(OpenVPNで利用)に加え緑色表示のPPPoE(L2TP/IPsecで利用)を復活させたのです。L2TP/IPsecはルーティングもDHCPもRTX1210にお任せで良く、スマホ内線も問題無く利用できるのです。
1つだけハマった点
今回PPPoEはなるべく安価に済ませたかったのでインターリンクで契約してみました。
RTX1210はGUIでポチポチするだけでプロバイダ設定が完了します(個人的にはヘタな家庭用ルーターより簡単だと思います)。
設定も終わりリンクアップ確認!ネットも繋がっているしチョロいチョロいとなどと思っていたところでVPNが繋がらないことに気付きました。
ログを見ているとWAN側からVPNを繋ぎに来た形跡はあるのですが・・・
繋がらなかった理由
RTX1210のコンフィグを眺めているとこちらに目が止まりました。
ip route default gateway tunnel 1
tunnel1(IPoEを設定している経路)を使って通信するよーという設定ですね。しかし、L2TP/IPsecのセッションはtunnel 1ではなくpp(PPPoE)から接続しますので、先ほどの図にある緑の経路から入ってきたものを青い経路から送り返そうとしていることになります。
緑の経路から来た通信は緑の経路から戻してあげねばならないので、VPNが繋がらないのも納得です。
ルートの変え方が分からない・・・
そこまでは良かったのですが、その先が分かりません。この辺がGUIポチポチ星人とコンフィグゴリゴリ星人の差。残念ながらポチポチ星人の限界です。
ということで、今回もヤマハルーターお客様ご相談センターのお力をお借りしました。コロナ禍で業務過多になっておられるであろうところ、いつも丁寧にご対応頂き本当に有難うございます!
通信内容によってデフォルトルートを変える
L2TP/IPsecの通信はpp(PPPoE)、それ以外の通信はtunnel 1(IPoE)へ向けたい場合、ppへ送りたい通信をフィルタで定義します。
ip filter 2 pass * * udp 500,4500,1701 *
ip filter 3 pass * * tcp * 2002
ip filter 4 pass * * udp * domain
ip filter 5 pass * * esp
filter 2とfilter 5は見覚えがあるのですが、3と4が何に必要な通信か分からなかったので質問したところ、ヤマハさんが提供されているネットボランチDNSを利用する場合に必要なフィルタとのこと。めっちゃ使わせて頂いています!!
そして、フィルタの定義が終わったらデフォルトルートを修正します。
#修正前
ip route default gateway tunnel 1
#修正後
ip route default gateway pp 1 filter 2 3 4 5 gateway tunnel 1
filter 2-5に合致する通信はpp(PPPoE)を、それ以外の通信はtunnel 1(IPoE)を使うよーという設定になります。
これで無事L2TP/IPsecでVPNを利用できること、当初の目的のスマホ内線を利用できることを確認しました!
通話を利用するVPNはL2TP/IPsecで、それ以外の通信はOpenVPNといった住み分けで使い様子を見ようと思います。
あとがき
私は零細企業の何でも屋なので別に知らなくても良いことかもしれませんが、引き出しが増えたことが嬉しいのと同時にコンフィグを「読めるけど書けない」のがものすごく悔しいのであります(涙)
それが仕事とはいえ、こんな私にでもユーザー目線で技術を教え伝えて下さる方々の存在は本当に有難いです。私も自分が身に着けた知識が、いつかまたどなたかのお役に立つといいなあと思います。
コメント