本記事では、7月6日に開催された SORACOM Discovery 2023 内のセッション『SORACOMの「コアネットワーク」へのご招待』の内容についてご紹介します。
ソラコムでは、LTEや5Gといったセルラー通信の中核となる「コアネットワーク」をAWSクラウド上で自社開発しています。こちらのセッションは、この自社開発コアネットワークの概要から、本邦初公開の内容を含む実装の裏側までを紹介するというものでした。
スピーカーは、初期からコアネットワークの開発に携わってきたエンジニアの小熊(ニックネーム: ogu)と、ソリューションアーキテクトの内田(ニックネーム: jet)の2名。セッションの途中では、他のステージが終わった後に駆けつけたCTO(最高技術責任者)の安川からのコメントが入る場面もあり、2日目最後のセッションにふさわしい Dive Deepな内容でした!
一般的なLTEの接続の仕組み
まずは一般的なLTEの接続の仕組みの解説からスタートしました。
皆さんがお持ちのスマートフォンは電波で通信します。その時、電波の送受信をしているのが「基地局」で、その先にはインターネットへつながっています。基地局とインターネットとの間に存在するのが、通信事業者(Mobile Network Operator: MNO) の管理する「コアネットワーク」です。
コアネットワークの中にも、役割によって様々な名前が付いたシステムが存在します。それが以下の図です。
MME (Mobility Management Entity):端末が今どの基地局で接続しているのかなどを管理し、端末の接続や移動に伴う様々な制御を行うシステムです。
HSS (Home Subscriber Server):加入者情報を管理しているシステムで、認証に用いるためにSIMカードに保存されているものと共通の認証鍵が保存されています。
SGW (Serving Gateway) とPGW (PDN Gateway) :端末が基地局を経由してインターネットとの間でデータの転送を行うための通信経路を構成します。
データの通信経路は、SGWとPGWの2段に分かれているところがポイントです。端末が移動して接続先の基地局が変わると、それにあわせてこれらの通信経路が切り替わります。インターネット上のサーバから見ると、端末の場所に関わらず同じ PGW に向けて IP パケットを送れば、あとは LTE の仕組みが端末までパケットを届けてくれます。こうやって、端末がどこにいても同じ IP アドレスで通信できる仕組みを提供しているんですね!
MNOと呼ばれる通信事業者は、各地の基地局の設置と運営や、コアネットワークの運用をしています。昨今では「MVNO」 (仮想移動体通信事業者)という事業形態も出てきました。MVNO とは「基地局を自前で持っていないテレコムオペレーター」で、持っていない設備は大手の通信事業者のものを使用し、コアネットワークの一部だけを自前で提供する通信事業者です。
ソラコムが2015年にサービスを開始した当時は、plan-Dというサブスクリプション(契約)のSIMを提供していました(もちろん、今もあります)。このplan-Dの通信の裏側をご紹介すると、コアネットワークの内、PGW だけをソラコムが提供し、その他の設備(基地局やHSSなど)は、NTTドコモ社のものを使用する形でした。このように PGW だけを提供する形態は実装や運用の規模が小さく済むため、参入障壁が低い利点があります。PGWを制御することで、例えば通信速度に応じた料金を設定できたりと、ユースケースに合わせた事業展開が可能です。このような規模のMVNOをライトMVNOと呼ぶ場合もあります。
そこで次に取り組んだのが、PGW に加えて 加入者情報の管理システム「HSS」 も自社で提供する構成です。先のライトMVNOに対してフルMVNOと呼ぶこともあります。HSS を自社で提供することで、独自でSIMを発行できるようになります。この利点の1つにSIMの形状があります。カード型だけでなくチップ型SIM(eSIM)も作れるわけです。また、SIMの中にHSSと連動する独自の機能を加えることもできます。
例えば、ソラコムが独自に発行しているSIM(SORACOM IoT SIM)には、SIM中のサブスクリプション(契約)を OTA (Over-the-Air) で 追加できる「サブスクリプションコンテナ」機能をインストールして出荷しています。。このおかげで、SIM をデバイスに組み込んだ後からであっても、よりカバーエリアの広い通信キャリアや、料金の安い通信キャリアに切り替えるといったことができるようになったんですね!それ以外にも、SIM自体をクラウド連携の認証鍵として使える「 SORACOM Krypton」や「SORACOM Endorse」 といった、データ通信以外のIoT向けサービスを提供できるようになったのも、この構成によるものです。
このように、HSSの実装・運用することで、データ通信を超えた付加価値をつけることができます。
SORACOM の PGW の仕組み
ここからいよいよ SORACOM のコアネットワークの解説です!SORACOM の PGW の内部を示した図がこちらです。
この図のポイントはSGWとPGWの接続で、この通信にはIPが用いられます。例えばシンプルにIPアドレス毎にPGW(サーバー)を用意するアーキテクチャにした場合、処理量を増やす手法はスケールアップ(サーバーの増強)のみとなります。また、PGWサーバー1台1台の可用性も極めて高い状態にする必要があります。
そこでCTOの安川が考えたのが、SGWとPGWの間にロードバランサ (LB) 相当を置くことで、MNO側のSGWの構成やIPアドレス数に依存せず、ソラコム側のPGW を自由にスケールできるようにするというものでした。この構成は、クラウドの上で作るWeb系システムでは良く知られるアーキテクチャですが、この考え方をセルラー通信に取り入れて、処理量の弾力的な変化と可用性向上を実現しました。
例えば1つのPGWが壊れたとしても、ロードバランサ経由で他のPGWにトラフィックを迂回することで通信途絶を回避できます。また、積極的にPGW内のソフトウェアの更新を行い、新機能やプランを迅速に提供できます。この根底にあるのは「Everything fails, all the time (全ての物はいつか必ず壊れる)」という、Amazon.comのCTOであるWerner Vogels氏の考え方があり、2015年のサービス立ち上げ前に最初に作ったとのこと。
より詳しい構成も解説されていました。PGW は、端末ごとの通信経路(二つ前の「フルMVNOの接続図」にピンク色で描かれているトンネル)を構成するために、GTP (GPRS Tunneling Protocol) というプロトコルを使用します。ロードバランサの部分も、単純な L3 のロードバランサではなく、GTP のヘッダを解釈して、同じセッションのパケットは同じ PGW に振り分ける仕組みになっています。GTP のプロトコルスタックはオープンソース実装を利用して開発したものを、EC2 インスタンスの上で動かしています。セッション情報を管理する API サーバはAmazon Elastic Container Service (Amazon ECS)コンテナで、データベースはAmazon DynamoDB です。
セッション中での会話を一部ご紹介します。
jet: ソラコムって DynamoDB が好きですね?
ogu: そうですね(笑)
jet: PGWが切り替わる時に通信が途切れたりはしないのですか?
ogu: 切り替え先のPGWが存在していれば問題なく切り替わります。この切り替え先PGWは故障の前兆を検知したときや、計画メンテナンス時に自動もしくは手動で準備しています。
SORACOM の HSS の仕組み
続いて、加入者情報の管理システム「HSS」の解説に移りました。
HSS も PGWと似ている構成です。DEA(Diameter Edge Agent)がPGWの仕組みにおけるLBの様に機能して、 その後ろに HSS がいるという2段構えになっています。ステートフルな情報は DynamoDB に格納されています。
SORACOMの初期は、3GにおけるHSSに相当するHLR (Home Location Register) から実装を始めました。この内部で使われているプロトコルスタックの多くはテレコムの世界以外では目にしない特殊なもので、クラウド向けの実装が見つけられなかったため、結局Go言語でスクラッチから実装したとのこと。HSS については、オープンソースも活用することで HLR よりはシンプルに実装ができました。
HSS/HLR のインターフェースについて規定した 3GPP 標準の仕様書は、Word 形式で複数合わせて 1000ページを超えるようなものですが、開発者の ogu は読み解きながら実装したとのこと。相当大変だったそうです。
そんなoguに対してjetからは、このような問いがありました。
jet: 色々やっていて凄いんですが、ソラコムの人ってみんなそんな感じなんですか?
ogu: いえ、皆それぞれ得意分野があるエンジニアで、お互いに補いながらやっています。
ローミングの話
ここから趣向を変えてローミングの話になりました。ローミングとは、他の事業者の設備やネットワークを通じて通信を利用できるようにする仕組みです。
世界170を超える国と地域(2023年7月時点)で使えるソラコムの IoT SIM ですが、ある国で SORACOM の SIM を使って通信しようとすると、IPX (IP eXchange)という国際中継事業者のネットワークを経由して、それぞれの国のMNOの SGW とソラコムの PGW が接続されます。
この仕組みで、多くの国や地域での通信が可能となりますが、無駄があることに気が付きました。
例えばソラコムの PGW が日本にあって、接続元の「ある国」がブラジルだとします。すると、同じブラジルの中にある端末とサーバ同士が通信したい場合であっても、パケットが全て一旦日本を経由することになります。これでは遅延が大きくなり非効率ですよね。
そこで、現地になるべく近い場所に PGW を立てることで、現地で完結して通信できるようにするのが Local Breakout (LBO)。ソラコムではこの PGW の設置場所のことをランデブーポイントと呼んでいます。SORACOM Discovery 2023 開催日の7/6 から、日本、ドイツ、米国に加えて、オーストラリアが利用できるようになりました!
ソラコムはAWS上でシステムを構築しているので、AWS のリージョンがある場所なら PGW を設置できるんですね。
VPG (Virtual Private Gateway) の話
続いて VPG の話題です。VPGというのはお客様専用のPGWです。
ソラコムが普段運用・提供しているPGWは、複数のお客様で共用されます。もちろん通信セッションは分離されていて、他のお客様の通信内容が見えたりはしないのですが、設備としては共通です。VPG は実態としては PGW と同じものなのですが、VPGを設定した SIM のお客様だけがそれを占有して使える仕組みになっています。
そうすると、VPG からインターネットに抜ける際のグローバル IP アドレスをお客様専用のものに固定できるとか(固定グローバルIPアドレスオプション)、同じ VPG の下の SIM 同士で通信する(SORACOM Gate D2D)といった機能が利用できます。。また、お客様の Amazon VPC と peering したりとか(SORACOM Canal)、オンプレミスのネットワークと VPN や専用線で閉域接続する(SORACOM Door / SORACOM Direct)こともできます。まだ使ったことのない方は、ぜひ試してください!
SORACOM Arc の話
最後は SORACOM Arc の話です。SORACOM Arc はWireGuardによるVPNでSORACOMプラットフォームに接続できるサービスです。
非セルラーのデバイスからでも、SORACOM Air と同じように SORACOM の各種サービスが利用できる SORACOM Arc ですが、実はこれも PGW の2段構えの仕組みを応用して提供されています。
SORACOM Arcの場合は、前段のロードバランサの部分(図内の “Tier1”)が通常のMNOとの接続に用いるGTPプロトコルではなく、インターネットからのWireGuardの接続を受け付けるようになっています。そして後段はセルラーと共通のPGWやVPGで収容することで、SORACOM Arc で入ってきたデータも SORACOM Air と同じように取り扱うことができるわけですね。
セルラーだけでなく多様なネットワークを取り込めるようになったのも、この構成の強みと言えるでしょう。
締めくくり
非常に密度の濃いセッションでしたが、SORACOM がクラウドを使って柔軟な仕組みを構築していることを感じ取っていただけたでしょうか。セッション内では、この記事で紹介した他にも苦労話や裏話がたくさんありました。SORACOM Discovery 2023 に参加できなかった方など、もっと話を聞きたい!という方は SORACOM UG やソラコムのオープンハウスなどの機会に、ソラコムのエンジニアにぜひ会いに来てください。ソラコムでは、今回ご紹介したコアネットワークを構築・運用するエンジニアをはじめとして、さまざまな職種のメンバーを募集しています。ご興味をお持ちいただけましたら、ぜひ SORACOM の採用サイトからご応募ください。
クラウドが普及することで多くのWebサービスが生まれたのと同じように、SORACOM によって多くの IoT システムが生まれることが、SORACOM の願いです。今後も進化を続けてゆきますので、ご注目ください!
― ソラコム岡坂 (ニックネーム: shozo)