投稿日

SORACOMで拡張する企業ネットワークの構築例

はじめまして、ソリューションアーキテクトの松本です。

既に完成している企業ネットワークにモバイルデバイスを接続する場合、可能であれば既存のネットワークにできるだけ手を加えずにモバイルデバイスを接続したいと考えませんでしょうか。

例えば以下のような構成を考えるかと思います。

2

しかしながら、モバイルデバイスの接続にはいくつか考慮事項があり、シンプルには接続できないケースもあります。
この記事ではこのような構成のネットワークを SORACOM サービスを活用してどのように実現するかご紹介します。

SORACOM Junction とは?

鍵を握るのは SORACOM Junction(以下Junction)です。
Junction はソラコムサービスの中ではネットワークサービスの位置付けになっており、「透過型トラフィック処理」として次の3つの機能を提供しています。

  • Junction Mirroring – VPGを通過するパケットのコピーを指定の宛先に送信します
  • Junction Redirection – VPG を通過するユーザパケットが常にお客様が指定したサーバを経由するように経路を変更して転送します
  • Junction Inspection – VPG を通過するパケットの統計情報を提供します

これらのうち Inspection と Mirroring はトラフィック分析用のサービスとして利用イメージがつきやすいのですが、 Redirection に関しては使い所が難しいと感じていらっしゃる方も多いのではないでしょうか。
Junction Redirection のサービス説明ページには以下のように記載があります。

リダイレクション機能は、VPG を通過するユーザパケットが常にお客様が指定したサーバを経由するように経路を変更して転送します。
例えばトラフィックを制御するエンジンを経由させることで、ファイル配信やファームウェアダウンロードなどの帯域を絞ってセンサーデータやアラートを優先したり、特定のアプリケーションの通信のみを許可するなど、独自のポリシーに従ったトラフィックの制御が可能となります。

https://soracom.jp/services/junction/ から引用

動的なネットワークの構築向けにみえる Junction Redirection ですが、実は上記のような複雑なネットワーク機能を達成するだけではなく、一般的によくある企業ネットワーク要件を実現する用途にもお使いいただけます。

Junction Redirection を利用したネットワーク設計

冒頭の構成の一例として、 SORACOM Air for Cellular のデバイスサブネット(10.10.0.0/16)をお客様ネットワーク(10.0.0.0/16)に追加(接続)してアプリケーションからデバイスへの接続を行うケースを考えてみます。

1

これまでも SORACOM Gate をご利用いただくことで双方向通信を行うことができましたが、アプリケーションサーバが Gate Peer のさらに奥にある場合、 Junction Redirection を使わない場合でもいくつかのネットワーク構成が考えられますがいずれも制約があります。

  1. Canal/Door/Directで普通にルーティングする(VPGでNATされるので双方向通信が難しい)
  2. デバイスでのアプリケーションの宛先IPアドレスを Gate Peer にする(ただし Gate Peer で宛先アドレスをNATする必要がある)

1つ目の構成ではアプリケーションがデバイス個別のIPアドレスを正しく認識できないので、アプリケーションサーバから始まる通信に課題があります。

vpg

2つ目の構成ではデバイス側がアプリケーション側のいずれかもしくは両方で設定を変更しなければならないかもしれません。

上記のような制約を回避し、

  • アプリケーションからみて送信元IPアドレスがデバイスサブネットのIPアドレスのままであること
  • デバイスからみて送信先IPアドレスがアプリケーションサブネットのままであること

を達成したい場合に Junction Redirection が活用できます。

なぜ Junction Redirection が必要なのか?

なぜ Junction Redirection が必要なのでしょうか?そして Junction Redirection とは具体的に何をしているのでしょうか?
デバイスが Gate Peer の先のお客様ネットワークと疎通するには、どうにかして Gate Peer まで通信をルーティングする必要があります。(そしてもちろん Gate Peer でもルーティングを行います)
このうちデバイスから Gate Peer までのルーティングを行うのが Junction Redirection の機能です。


ここで一つ疑問がある方もいらっしゃるのではないでしょうか。
例えばデバイスのルーティングテーブルにお客様ネットワーク宛の通信のネクストホップを Gate Peer にする経路を追加すれば、 一見 Junction Redirection が必要ないようにみえます。

3

こうなる?

例えば以下のように設定したとします。

デバイスのインタフェース設定

pi@raspberrypi:~ $ ip a show dev ppp0
6: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 3
    link/ppp
    inet 10.10.74.219 peer 10.64.64.64/32 scope global ppp0
       valid_lft forever preferred_lft forever
</pointopoint,multicast,noarp,up,lower_up>

デバイスのルーティングテーブル

※2行目の経路を手作業で追加していますが、これはイメージであり実際には複数の要因でこの設定は動作しません。

pi@raspberrypi:~ $ netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         0.0.0.0         0.0.0.0         U         0 0          0 ppp0
10.0.0.0        10.10.10.10     255.255.0.0     UG        0 0          0 ppp0

しかし・・・

しなしながら、この設定ではデバイスから宛先ネットワークに到達できません。その理由は2つあります。

  1. デバイスとSORACOMプラットフォームの間がGTPで接続されているため
  2. VPGがアプリケーションの宛先お客様ネットワークへの経路を持っていないため

Juntion Redirection が必要な理由1

デバイス(SORACOM Air)とSORACOMプラットフォームはGTPで接続されています。
SORACOMでは PDP context がIPのサービスを提供しておりますので、 Raspberry Pi と AK-020 で接続している場合、次のようなプロトコルスタックになります。

4

Ethernet上でのスタティックルートの場合、お客様ネットワーク(10.0.0.0/16)宛の通信はネクストホップ(10.10.10.10)にルーティングされるとうまくいきそうです。
SORACOMでもデバイスからみてネクストホップ (Gate Peer) が同一サブネットなので、宛先MACアドレスに 10.10.10.10 のものを格納したフレームでうまく転送される
・・・ようにみえますが、実際にはパケットはGTPに吸い込まれてSORACOMプラットフォームに搬送されるので、ルーティングはVPGに任せられます。

5

Junction Redirection が必要な理由2

今回の構成ではVPGにお客様ネットワークとのトンネル接続に必要な経路のみが与えられています。
Gate Peer の先にあるお客様ネットワークへの経路は別途設定を行う必要があります。

6

もしあらかじめVPGがお客様ネットワークへの経路をトンネル(Canal/Door/Direct)向きに持っていると、送信元IPアドレスがNATされてルーティングされるので要件を満たせません。
VPGと Gate Peer はVXLANで結ばれていますので、理由1に記載の経路情報を追加することで要件を満たすお客様ネットワークへの到達性が確保されます。
この経路を追加するのが Junction Redirection です。

7

Junction Redirection の設定方法

Junction Redirection には あらかじめ SORACOM Gate の設定が必要です。
こちら の手順に従って Gate Peer の設定を済ませてから以下の手順をお試しください。

Junction Redirection を有効にしたいVPGの設定画面で、以下の手順で設定を行います。

junction

注意点

Junction Redirection を有効にするとデバイスからの全ての通信が Gate Peer を経由するようになりますので、例えばインターネット向けの通信が必要な場合は Gate Peer 以降のネットワークで適切にインターネットへの到達性を保持する必要があります。

Junction の利用には費用が発生します。具体的な費用はこちらのページでご確認ください。
https://soracom.jp/services/junction/price/

まとめ

Junction Redirection は企業ネットワークによくあるパターンのネットワークを構築する上で使い勝手のいいサービスとなっています。
他のSORACOMネットワークサービス(Canal/Door/Direct/Gate)と組み合わせてぜひ皆さんだけのネットワークを構築してみてください!(そしてぜひブログに書いておしえてください!)

松本