RTX1210によるVPN構築の実践

「ヤマハルータでつくるインターネットVPN」を執筆した際に実感したことだが、ことにIPsecを用いてVPN(Virtual Private Network)を構築してトンネルを "貫通" させるのは、比較的難易度が高い作業だ。

もともとヤマハルータではコマンド操作による設定を行う方法が基本で、慣れればそれほど面倒には感じられなくなる。ただし、パケットフィルタの設定は比較的難易度が高い部類に属するかもしれない。とはいえ、敷居を下げることにも重要な意味があるわけで、現在はWebブラウザを活用したGUI(Graphical User Interface)設定画面も利用できるようになっている。

そもそも、なぜルータは、とりわけIPsec VPNの設定が難しく感じられるかといえば、IPsecそのものの設定だけでなく、ファイアウォールの設定も絡んでくるからだ。IPsecの設定が正しくても、それを通過させるためのファイアウォールの設定に問題があると、結果的にIPsecの通信が途中で阻止されてしまい、VPNトンネルが "貫通" しない。

また、VPNトンネルが "貫通" しても、ルーティングの設定が間違っていると、双方のネットワークの間でトラフィックを適切に行き来させることができないので、結果的にトンネルが "貫通" していないのと同じことになる。

新製品のRTX1210では、このIPsecを使ったVPNの設定がどこまで簡単になるかがポイントだ。そこで、もっとも基本的なパターンとして、「RTX1210とRTX1200を対向させて、IPsecによるLAN間接続VPNを構築する」作業を試みた。なお、インターネットを介する代わりに、WAN側は固定IPアドレスをそれぞれ割り当てている。

RTX1200の方は、自著で使用しているサンプルのうち「ルータ #2」にあたる方のconfigをそのままアップロードして使用。対するRTX1210の方は、「ルータ #1」の設定と同じ内容をGUIで設定してみた。

実験で使用したRTX1200(下)とRTX1210(上)

結論からいうと、あっさりVPNトンネルが開通してしまい、びっくりした。これでは解説書の書き手は失業してしまう。それでは、RTX1210のGUI設定を順番に見ていこう。

RTX1210におけるGUIの改良

箱から出したRTX1210を据え付けてPCをLAN1インタフェース側に接続した状態で、まずWebブラウザで設定画面を見てみよう。最初に表示されるのが、新機能のダッシュボードだ。

RTX1210の新機能・ダッシュボード。これを見るだけで動作状況を把握できる

もしも何かトラブルや通知があれば、このように表示してくれる

最初に行う作業は、NetVolanteシリーズと同様、インターネット接続のための設定である。一般的には、DHCPサーバによる割り当てやPPPoE接続を使用することが多いと思われるが、今回は実験環境として2台のルータを直結しているので、IPアドレスを固定設定した。

LAN側IPアドレスは初期値の「192.168.100.1/24」のままとしたが、複数のRTX1210を使用するのであれば、もちろん2台目以降は設定変更が必要だ。

実験のために2台のルータを直結しているので、LAN2インタフェースのWAN側IPアドレスは固定設定とする

IPsecでVPNを構築してみる

次に行ったのが、IPsecによる拠点間VPNの設定である。設定すべき項目は、相手側ルータのWAN側IPアドレス、事前共有鍵となるテキスト、暗号化とハッシュ関数のアルゴリズム選択、といったところだ。それに続く別画面で、ルーティングの設定に必要となる(VPNを通じた先の)相手側LANのネットワークアドレスを指定する。

IPsec関連のパラメータを指定する

ルーティングの設定に必要な、相手側LANのネットワークアドレスについては、上の画面に続いて表示される別画面で指定する。

念のために、IPsecの設定を行った後でフィルタ設定がどうなっているかを確認してみると、ちゃんとIPsec関連のプロトコルを通過させるようになっていた。画面例は割愛するが、相手側LANに通じるルーティングの設定も登録されていた。

IPsec VPNの設定を行った後の、フィルタ設定画面。ちゃんとIKEとESPを通過させる設定がなされているので、阻止される心配はなさそうだ(図ではフィルタ#10と#11)

VPNはあっさり開通

画面右上には、文字が小さめでやや目立たないのだが、「TECHINFO」というアイテムがある。これをクリックすると、configだけでなくログや動作状況などに関する情報をまとめて表示できる。技術サポートに頼るときには、ここで表示した情報を使うわけだ。そのため、Webブラウザの画面で表示するだけでなく、テキストファイルとしてダウンロードすることもできる(これは、隣接する「CONFIG」も同じ)。

「TECHINFO」画面の表示操作例

そして、この「TECHINFO」画面を下方にスクロールしていくと、ログの表示も出てくる。それを詳細に見ていくと、「IP Tunnel[1] UP」との表示がある。

「TECHINFO」画面の表示例(ログ)

そこで、コマンドプロンプトでpingしてみた。まず、RTX1210のLAN側IPアドレス(192.168.100.1)、続いてVPNトンネル経由で対向しているRTX1200のLAN側IPアドレス(192.168.101.1)を試した。どちらも、ちゃんとレスポンスがある。

RTX1210のLAN側IPアドレスはもちろんのこと、VPNトンネルを通じて対向しているRTX1200のLAN側IPアドレスもあっさりpingで

つまり、ログに表示されている通り、すでにVPNトンネルは貫通していたというわけだ。簡単になったと聞いており、期待もしていたが、こんなにあっさりトンネルが貫通するとは思わなかった。設定すべきパラメータさえ間違えなければ、本当に簡単にVPNトンネルを貫通させることができる。

しかも、(図らずも)自著で過去に使用したconfigのIPsec VPNと、RTX1210の「かんたん設定」で設定するIPsec VPNの相互接続性も確認できてしまった。

なお、拠点間接続VPNの一覧とそれぞれの接続状態は、ダッシュボード機能の「VPN接続状態 ( 拠点間 )」というガジェットでグラフィカルに確認できる。

ちなみに、RTX1200のGUI設定とは

ヤマハのルータにおけるWebブラウザによるGUI設定は、ずいぶん前のモデルから取り入れられている。実は、筆者の自宅で今も現役にあるRTX1000でもWebブラウザでIPsec VPNやファイアウォールの設定を行えるし、意外なところではRTV700も同様だ。ただ、世代が新しくなれば、GUI設定画面の内容についても改良が図られるのは当然の流れといえよう。

では、前モデルのRTX1200では、どういう画面を使用していたか。すでに利用されている方にとっては既知の話だが、御存知ない方もいらっしゃるかも知れないので、いくつか紹介する。

IPsecの設定画面(トップ)。これは、すでにトンネルをひとつ追加した状態

IPsecトンネルの追加設定を行っている画面。IPsecの設定に必要なパラメータを入力、あるいは選択して[登録]をクリックする、ごく一般的なデザインである

いちいちコマンドを入力するよりも楽だが、ひとつ不便な点があるとすれば、IPsecの設定と、ファイアウォール・NAT・ルーティングの設定が連携していないところだろうか。つまり、IPsec関連の設定とは別に、矛盾がないようにファイアウォール・NAT・ルーティングの設定も行わなければならない。

ルーティングの設定を登録している例。相手側LANと正しく通信できるようにするには、VPNトンネルを通じる経路設定を登録する必要がある

RTX1200の設定画面は、源流をたどるとRTX1000のWeb Assistanceに行き着くし、実際、画面デザインのテイストや全体の構成はよく似ている。つまり、あくまで基本はコンソールによる設定で、それを部分的に楽にするための手段としてのGUI、という位置付けだったわけだ。だから、設定できる項目、あるいは機能的な面で限りがあったということなのだろう。ただ、RTX1210のGUIは今後どんどん拡張し、RTX1200のGUIで設定できていたことは改善しつつ移植していく予定だという。

NetVolanteシリーズでPPTPによるVPNを構築する作業は、もっと簡単だ。ちゃんとVPN設定に合わせてファイアウォール・NAT・ルーティングの設定が連動する。同じことをRTXシリーズとIPsecの組み合わせでも実現できれば、利用に際しての敷居が下がるのは間違いない。それをRTX1210で具現化したわけだ。だから、RTX1210では「かんたん設定」というアイテムの先にVPN設定の画面が現れる。「管理支援」とはいっていない。

もちろん、従来通りにコンソールによる設定も行えるし、RTX1200で使っていたconfigをそのままRTX1210に転用することもできる。だから、GUIが改良されたからといって、GUIでなければ使えないルータになってしまったわけではない。コンソール派の皆さんも安心していただきたい。

GUIを改良するために専門の担当者が

実は、「利用に際しての敷居を下げる」ことが、RTX1210における重要なテーマのひとつになったという。だから、GUIの設定画面を高機能化して、可能な限りコンソールと同じ設定を行えるようにする工夫が取り入れられた。単に見てくれを良くすればよいという話ではなく、メニュー構成の見通しの良さも求められる。ユーザーが迷子になってはいけないのだ。

ユーザーから寄せられた声によると、RTX810のGUI設定画面の方が、RTX1200のそれよりも評判が良かったという。そこでRTX1210では、RTX810の設定画面から長所を取り入れる形で改良を図ったのだそうだ。ただし、そこで単にRTX810と同じデザイン・同じ画面構成にするだけでは済ませずに、さらなる改良を図った。

そこでポイントになるのが、画面のデザインや操作性を一新したことだ。いかにも「技術者が作りました」というシンプルな画面デザインを、もっとフレンドリーに、使いやすいものにしましょう、というわけだ。

ただ、GUIの画面デザインや操作性を改善するといっても、簡単な仕事ではない。色彩感覚、人間工学、さらには心理的な部分にまで踏み込んだ検討や配慮が求められる。なにもネットワーク機器に限ったことではないが、設計する側が「よもや、ユーザーはこんな使い方はしないだろう」「こんな誤操作はしないだろう」と思ったことが実際に起きてしまうのが、マン・マシン・インタフェースの世界である。その「よもや…だろう」が原因で、飛行機が墜ちることすらある。

だから、誤操作を防ぎ、使いやすさを向上させるには、メニュー構成・画面構成だけでなく、それぞれの設定画面で使用するアイテムのデザインや配置にも気を配る必要がある。操作性に関する配慮が必要なのは当然のことだが、さらにRTX1210では画面の中で使用している用語についても、全面的に見直しを図ったそうだ。

その改善作業の過程で、Web関連の技術の進歩による恩恵があったという。スタティックなHTML文書とフォーム画面しか使えなかった昔と違い、今ならJavaScriptやHTML5といったテクノロジーを活用できる。その分だけ、使いやすいユーザー・インタフェースを実装するのは容易になった。

また、ヤマハのルータとしては初めての試みとして、開発者だけでなくデザイナーがチームに加わり、共同でGUIの改善に取り組んだ。これは、ネットワーク機器としては珍しい試みだったかもしれない(そもそも、社内にそれができる人材がいるかどうかという問題がある)。もちろん、「実現したいこと」と「実現できること」の相克はあっただろうし、喧嘩… もとい、意見が合わなくて議論になったこともあったのだろう。

デザイン面の改善やさまざまなWebテクノロジーの活用、そして対応ブラウザの拡大は、ユーザーにとっては極めて恩恵の大きい話だが、テストの負担を大幅に増やしてしまう。テストケースを作る作業と、それを実際に試す作業の両方が必要になるのだ。

しかも、単に複数のブラウザでそれぞれ動作確認をするだけではなくて、ウィンドウのサイズや文字サイズを変えてテストする手間もかかったはずだ。ユーザー・インタフェースを改善すれば、それだけ画面がリッチになってテスト項目が増えるのは容易に想像できる。筆者もソフトウェアのテストを行った経験があるから、その辺の事情は察しがつく。

RTX1210のGUI画面には、そういった開発者やデザイナーの苦労が詰まっているのだ。