プライベート5Gネットワークの構築:Open5GSとsrsRANによる実践ガイド

Networking tutorial - IT technology blog
Networking tutorial - IT technology blog

Wi-Fiの限界を突破する

スマート倉庫を想像してみてください。50台の自律走行搬送ロボット(AMR)が、24時間体制で狭い通路を行き来しています。ハイエンドのWi-Fi 6を導入したとしても、すぐに限界が見えてくるでしょう。

デバイスの密度が高まるにつれ、低遅延(レイテンシ)はスムーズな20msから不安定な500msへと跳ね上がることがあります。ロボットがアクセスポイント間を移動する際のハンドオフ遅延が100msを超えると、緊急停止がトリガーされることもあります。さらに、2.4GHz帯や5GHz帯は、通常、近隣のオフィスネットワークや機械の干渉によって飽和状態にあります。

そこで、プライベートセルラーネットワークが真価を発揮します。現代の企業は5Gの確定的(デターミニスティック)なパフォーマンスを必要としていますが、パブリック回線の高いコストやデータ主権の欠如に躊躇することがよくあります。プライベートなセットアップを構築することで、周波数帯とデータを完全に制御できるようになります。

技術的なギャップ:なぜWi-Fiは苦戦するのか

そのフラストレーションの原因は、これらの技術がトラフィックを処理する方法にあります。Wi-Fiは「送信前に聴取する」メカニズム(CSMA/CA)に依存しています。混雑した場所では、デバイス同士が実質的に互いに大声で叫んでいるような状態で、衝突や予測不可能な待ち時間が発生します。一方、5Gは異なります。スケジューリングされたリソースブロックを使用し、すべてのデバイスに正確な時間と周波数のスロットを割り当てます。衝突も、叫び合いもありません。

歴史的に、プライベートな基地局を構築することは、ほとんどのエンジニアにとって手の届かないものでした。そこには3つの大きな壁がありました。

  • 法外なコスト: NokiaやEricssonのような既存ベンダーは、通常2万ドルから始まり、急速にコストが膨れ上がる「ブラックボックス」ソリューションを販売しています。
  • 規格の複雑さ: 3GPPの仕様書は数万ページに及び、独自のカスタム実装は悪夢のような作業です。
  • 周波数帯へのアクセス: 無線周波数のライセンス取得には、かつては巨額の政府入札が必要でしたが、米国でのCBRSなどの新しい選択肢により、この障壁は低くなっています。

5Gソフトウェアスタックの選択

コアネットワークを一から書く必要はありません。いくつかのオープンソースプロジェクトがその重労働を肩代わりしてくれています。現在の状況は以下の通りです。

  1. OpenAirInterface (OAI): 重量の王者です。機能は非常に充実していますが、学習曲線が険しく、特定のハードウェアタイミングを必要とします。
  2. Free5GC: このプロジェクトは学術研究や5G Core (5GC) アーキテクチャの学習には最適ですが、異なる無線ベンダーと組み合わせる際に調整が必要になることがあります。
  3. Open5GS & srsRAN: 多くの開発者にとっての「スイートスポット」です。Open5GSは軽量で高性能なC言語ベースのコアです。srsRANはモジュール式のgNodeB(基地局)を提供し、設定が驚くほど簡単です。

私はこの組み合わせを複数のテストベッドに導入してきましたが、ラボ環境から機能的なプロトタイプへと移行する際に、一貫して最高の安定性を提供してくれます。

ブループリント:仮想5Gラボの構築

コアネットワークにはOpen5GSを、無線側にはsrsRAN_Projectを使用します。コストをゼロに抑えるため、ZeroMQ (ZMQ) を利用します。これにより、ローカルネットワーク上で電波をシミュレートできるため、無線化の準備ができるまで1,000ドルのUSRP SDRを購入する必要はありません。

1. 環境の準備

クリーンなUbuntu 22.04 LTSのインストールから始めます。加入者データを保存するためのMongoDBと、いくつかの基本的なネットワーキングツールが必要です。

sudo apt update
sudo apt install -y software-properties-common mongodb curl
sudo systemctl start mongodb
sudo systemctl enable mongodb

2. Open5GSコアのデプロイ

Open5GSチームは安定したPPAを維持しています。これにより、他のLinuxパッケージと同様に簡単にインストールできます。

sudo add-apt-repository ppa:open5gs/latest
sudo apt update
sudo apt install open5gs

インストール後、AMF(Access and Mobility Management)やUPF(User Plane Function)などのコア機能がバックグラウンドサービスとして実行されます。`systemctl status open5gs-amfd` を使用して、これらがアクティブであることを確認してください。

3. 仮想ネットワークインターフェースの設定

5Gデバイスが外部と通信する手段が必要です。セルラーのトラフィックをLinuxのネットワークスタックにブリッジするためのTUNインターフェースを作成します。

sudo ip tuntap add name ogstun mode tun
sudo ip addr add 10.45.0.1/16 dev ogstun
sudo ip link set ogstun up

# デバイスがインターネットにアクセスできるようにNATを有効にする
sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -t nat -A POSTROUTING -s 10.45.0.0/16 ! -o ogstun -j MASQUERADE

4. 加入者のプロビジョニング

5Gのセキュリティは厳格です。固有のID(IMSI)と暗号化キーが事前登録されていない限り、デバイスはネットワークに接続できません。Open5GSには、このためのWebベースのダッシュボードが含まれています。Node.jsでセットアップしましょう。

curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs
cd /usr/lib/node_modules/open5gs/webui
sudo npm install
sudo npm run start

ブラウザで `http://localhost:3000` を開きます。`admin/12345` でログインし、以下のテスト値を使用して加入者を追加します。

  • IMSI: 901700000000001
  • K: 465B5CE8B199B49FAA5F0A2EE238A6BC
  • OPC: E8ED289DEBA952E4283B54E88E6183CA

5. srsRAN (gNodeB) のコンパイル

次に、無線アクセスネットワークを構築します。ソースからコンパイルすることで、仮想シミュレーション用のZeroMQプラグインが有効になっていることを確実にします。

sudo apt install -y build-essential cmake libfftw3-dev libmbedtls-dev libboost-program-options-dev libconfig++-dev libsctp-dev libzmq3-dev

git clone https://github.com/srsran/srsRAN_Project.git
cd srsRAN_Project
mkdir build && cd build
cmake ../ -DENABLE_ZEROMQ=ON
make -j$(nproc)
sudo make install

6. ネットワークの起動

まず、gNodeBを起動します。これが仮想の基地局として機能します。設定ファイルがAMF接続のために `127.0.0.1` を指していることを確認してください。

sudo gnb -c configs/gnb_rf_zmq.conf

2つ目のターミナルで、UE(User Equipment)シミュレータを起動します。これは、基地局に接続する5Gスマートフォンを模したものです。

sudo srsue configs/ue_zmq.conf

7. データパスの確認

gNodeBのログを確認してください。「Registration Request」に続いて接続成功(attach)が表示されるはずです。UE側では、`tun_srsue` という新しいインターフェースが表示されます。これは `10.45.0.2` のようなIPアドレスを自動的に取得します。

5Gトンネルを通じてゲートウェイにpingを送信し、エンドツーエンドの接続を確認します。

ping -I tun_srsue 10.45.0.1

シミュレーションから現実へ

仮想ラボから物理的な電波への移行は驚くほど簡単です。ZMQのテストに合格したら、ZMQの設定をUHD(USRP Hardware Driver)の設定に置き換えるだけです。USRP B210やLimeSDRを接続すれば、ライブの5G信号の送信を開始できます。

ライセンスが必要な周波数帯でテストする場合は、必ずファラデーケージやシールドケーブルを使用することを忘れないでください。このセットアップにより、セルラー技術は「通信事業者専用」の世界から飛び出し、ソフトウェア定義ネットワーク(SDN)ツールキットの多才な要素となります。これで、Wi-Fiでは到底及ばない、低遅延で極めて安全なネットワークを構築する力を手に入れました。

Share: