本記事は、当社が遠隔保守用のゲートウェイを設計・実装するなかで確認してきた内容をまとめたものです。特定のお客様の構成は扱っておらず、ネットワーク構成の一般的な考え方として書いています。実際の回線での挙動は事業者や契約によって変わるため、導入時は必ず現地の回線で確認してください。
現場に行くしかない、を終わらせる
工場、倉庫、屋外設備、無人の施設——そういった場所に置いたネットワークカメラやレコーダー、制御機器は、不具合が起きるたびに人が行くしかない状態になりがちです。行ってみたら設定がひとつ違っていただけ、ということも珍しくありません。片道2時間の現場なら、確認だけで半日が消えます。
この状態から抜ける方法自体ははっきりしています。現場のネットワークとオフィスのネットワークを、拠点間VPNでつないでしまうことです。つながってさえいれば、オフィスの席から現場の機器へ、その場にいるのと同じようにアクセスできます。
ただ、実際にやってみると教科書どおりには進みません。現場に固定回線がない、モバイル回線ではグローバルIPがもらえない、夜のあいだに接続が切れている、既存機器の設定を変えたくない。当社がこの仕組みを組むなかで実際に詰まったのは、いつも同じ4か所でした。順に見ていきます。
どちら向きにVPNを張るか
最初に決めるのは、どちらから接続を開始するかです。ここを間違えると、後の工程がすべて苦しくなります。
オフィス側から現場へ接続しに行く設計にすると、現場のルーターで着信ポートを開け、外から入れる状態を作らなければなりません。これは現場ごとにルーターの設定を変えて回ることを意味しますし、情報システム部門の承認も通りにくくなります。何より、後述するモバイル回線ではそもそも外から入れません。
そこで、現場のゲートウェイ側から発信し、オフィス側で待ち受ける向きにします。この向きなら現場側に外部からの入口を一切作らずに済みます。オフィス側は固定のグローバルIPを1つ持ち、VPNを終端できるルーターがあればよく、拠点が増えても受け入れ設定を足すだけです。
| 接続の向き | 現場側に必要なこと | モバイル回線での成立 |
|---|---|---|
| オフィス → 現場 | 着信ポートの開放、固定IPまたはDDNS | ほぼ不可(CGNATのため) |
| 現場 → オフィス | なし(発信のみ) | 可能 |
方式としては、ヤマハのRTXシリーズが持つリモートVPNアカウントを使ったL2TP/IPsec、あるいはIKEv2の拠点間接続のどちらかを使います。どちらもゲートウェイ側から張り出せます。
モバイル回線とCGNAT、NAT越えの実際
現場に固定回線が引けない場合、モバイルルーターを使うことになります。ここで必ず出てくるのがCGNAT(キャリアグレードNAT)です。
通常のモバイル回線では、契約者にグローバルIPアドレスが割り当てられません。事業者の設備の内側でプライベートIPが配られ、多数の契約者が少数のグローバルIPを共有します。つまり外部からその回線を名指しで呼び出す手段が存在しません。前節で「現場発にする」と決めたのは、この制約が理由です。
発信であれば通せますが、IPsecはNATと相性が悪いプロトコルです。そこでNAT-T(NAT Traversal)を使います。IKEの通信はUDP 500で始まり、NATを検出するとUDP 4500へ切り替えて、以降の暗号化通信をUDPで包んで送ります。UDPで包むことで、途中のNAT機器から見ればただのUDP通信になり、通過できるようになります。
- UDP 500——IKEの鍵交換。ここが通らなければトンネルは始まりません
- UDP 4500——NAT-T。実際のデータはここを通ります
- ESP(プロトコル番号50)——NAT-T を使う場合はUDPに包まれるため、そのままでは流れません
事業者や契約によっては、UDPの特定ポートを遮断していたり、通信の内容によって帯域を絞っていたりします。「モバイル回線なら通る」と一般化はできません。UDPがどうしても通らない回線に当たった場合は、TCP 443で通す方式(SoftEtherなど)に切り替えるという逃げ道を用意しておくと、現場ごとの当たり外れに対応できます。
つながったのに、朝には切れている
設定を終えてトンネルが張れると、その場では問題なく通信できます。ところが翌朝アクセスすると届かない——これが次に来る壁です。
原因はNATテーブルの寿命です。途中のNAT機器は「この内側アドレスとこの外側ポートを対応させている」という表を持っていますが、その対応は一定時間通信がないと破棄されます。夜間のように誰もアクセスしない時間が続くと、対応表から消え、戻りの通信が行き場を失います。トンネル自体は張れているつもりなのに通信が届かない、という状態になります。
対策は単純で、無通信の時間を作らないことです。当社の構成では30秒ごとに小さなパケットを送り、対応表を維持しています。あわせてDPD(Dead Peer Detection)を有効にして、相手からの応答が途切れたら自動でトンネルを張り直すようにします。回線が一時的に切れても、復旧すれば自動で戻ってきます。
- keepalive 30秒——NATテーブルを維持する。長くしすぎると夜間に落ちる
- DPDで自動再接続——切断を検知したら張り直す。人が現場へ行かずに復旧できる
- 起動時のリトライ——電源投入直後は回線がまだ上がっていないことがあるため、間隔を空けて数回試す
見落としやすいのは3つ目です。停電から復帰したとき、ゲートウェイのほうがモバイルルーターより先に起動してしまうと、1回目の接続は必ず失敗します。一度失敗したら終わり、という作りにしないことが、無人の現場では効いてきます。
既存機器を1台も触らずに通す
最後の壁が、いちばん現場に嫌がられるところです。トンネルが張れても、そのままでは現場の機器から返事が返ってきません。
オフィスのパソコンから現場のカメラへパケットが届いたとき、カメラから見ると送信元は「知らないネットワークのアドレス」です。カメラは自分のデフォルトゲートウェイへ返事を投げますが、そこにはトンネルへの経路がありません。返事が迷子になります。
正攻法は、カメラやレコーダーのデフォルトゲートウェイを変更するか、スタティックルートを追加することです。しかし稼働中の設備でこれをやるのは、台数が多いほど現実的ではありません。触った瞬間に「動いていたものを止めた」責任が発生します。
そこで、ゲートウェイ側でSNAT(送信元アドレスの書き換え)を行います。トンネルから出てきたパケットの送信元を、ゲートウェイ自身の構内LAN側アドレスに書き換えてから転送する方法です。カメラから見れば、同じLAN内の機器から話しかけられているだけになります。返事はゲートウェイに戻り、ゲートウェイが同じトンネルでオフィスへ返します。
- 既存機器の設定変更がゼロ——デフォルトゲートウェイもスタティックルートも触らない
- プロトコルを選ばない——HTTPやRTSPだけでなく、メーカー独自の管理ツールもそのまま通る
- 逆向きは通さない——現場側からオフィスのネットワークへ出られないよう、転送は片方向に限定する
3つ目は忘れずに設定してください。現場のネットワークに何がつながっているかを完全に把握できることは稀です。現場からオフィスへ入れる経路を作らないことが、この構成を情報システム部門に説明できるものにします。
導入前に実回線で確かめる5項目
ここまでの内容は、机上で設計を決めるためのものです。実際にうまくいくかどうかは現場の回線でしか分かりません。当社では導入前に、必ず次の5項目を実際の回線で確認しています。
| 確認項目 | 見ているもの |
|---|---|
| UDP 500 / 4500 の疎通 | そもそもIKEとNAT-Tが通る回線か |
| トンネルの確立 | 鍵交換が最後まで進むか |
| NATテーブルの維持 | 無通信の時間を挟んでも戻りの通信が届くか |
| 実効スループット | 映像を見るのに足りるか。カタログ値ではなく現地の実測 |
| 24時間の連続稼働と自動復帰 | 一晩置いて生きているか、回線を抜いて戻したら復旧するか |
とくに4番目は軽視されがちです。トンネルが張れても、映像がコマ送りになるようでは保守の役に立ちません。確認したい機器の映像を実際に再生してみるところまでを、事前確認に含めてください。
当社ではこの構成を、装置と初期設定まで含めた遠隔保守ゲートウェイサービス「GENBA Gate」として提供しています。ここに書いた事前確認も、導入前に当社が現地の回線で実施しています。
よくある質問(FAQ)
- Q. 拠点間VPNとサイト間VPNは違うものですか?
- A. 同じものを指します。離れた二つのネットワーク同士をまるごとつなぐ方式で、英語のsite-to-site VPNの訳語です。パソコン1台ずつにソフトを入れる「リモートアクセスVPN」と違い、拠点にゲートウェイを1台置けば、その先の機器はソフトを入れずに通信できます。
- Q. モバイル回線でも拠点間VPNは張れますか?
- A. 張れます。ただしモバイル回線はグローバルIPが割り当てられないCGNAT環境がほとんどで、外から接続することはできません。現場側のゲートウェイから発信する向きに設計し、NAT-T(UDP 4500)でNATを越える構成にする必要があります。
- Q. 既存のカメラやレコーダーの設定を変えずに済みますか?
- A. ゲートウェイ側でSNAT(送信元アドレスの書き換え)を行えば変えずに済みます。既存機器からは同じLAN内の機器との通信に見えるため、デフォルトゲートウェイの変更やスタティックルートの追加が要りません。稼働中の設備に触らずに導入できることが、この方式の一番の利点です。
まとめ
離れた現場をオフィスから見に行けるようにするとき、詰まるのは暗号化の設定そのものではありませんでした。接続の向きを現場発に決めること、CGNATをNAT-Tで越えること、無通信でNATテーブルを落とさないこと、SNATで既存機器を触らずに済ませること——この4つを設計の段階で押さえておけば、あとは現地の回線で確かめる作業になります。
一般化できる学びがあるとすれば、「稼働中の設備に触らない」を制約として先に置くと、設計が決まりやすいということです。既存機器の設定変更を許容すると選択肢は増えますが、そのぶん導入の合意が取りにくくなります。触らないと決めた瞬間に、SNATを使う構成が自然に残ります。
当社では、この構成を装置と初期設定込みで提供するGENBA Gateのほか、Raspberry Piやマイコンを使った現場向け機器の受託開発を行っています。組込みシステム開発のご相談として、「遠隔で見られるようにしたいが、どこから手を付ければよいか分からない」という段階からでも歓迎です。