【入門編】 SCTP(Stream Control Transmission Protocol)のポート番号38412(NGAP)とマルチホーム機能 – 家庭用ネットワーク・IoT・モバイル通信実践ガイド

こんにちは!ネットワークやガジェットの裏側にある「見えない仕組み」を紐解くのが大好きなライターの私です。

皆さんは普段、スマホで動画を見たり、オンラインゲームをしたりするとき、どれくらい5Gの恩恵を受けているでしょうか。「速いな〜」となんとなく感じてはいても、その裏側でパケットたちがどんなドラマを繰り広げているか、気になったことはありませんか?

今回は、最新のモバイル通信(5G)の根幹を支える、ちょっとマニアックだけど最高にクールなプロトコル「SCTP(Stream Control Transmission Protocol)」、そしてその中でも「ポート番号38412(NGAP)」と「マルチホーム機能」という、インフラエンジニアのロマンが詰まったテーマを、身近な例えを交えながら優しく紐解いていきたいと思います。

難しい専門用語が出てきても「一歩ずつ理解していきましょう!」ね。それでは、5Gコアネットワークの旅に出発しましょう!

—

そもそも「SCTP」って何? TCPやUDPとの違い

インターネットの世界では、長年データのやり取りといえば「TCP」と「UDP」が王様でした。

  • TCP: 確実にデータを届けるけれど、途中で1つでも迷子が出ると「そこから先はストップ!」と全体が止まってしまう真面目だけど融通のきかない優等生。
  • UDP: とにかくスピード重視でノーガード。届いたかどうかは気にしない、ライブ配信向きの韋駄天。

ここで登場するのが「SCTP」です。SCTPは、TCPの良いところ(確実性)を受け継ぎつつ、さらに現代のモバイル通信(5G)のスピードとタフさに最適化された、いわば「超高性能な特急便」です。

郵便配達でイメージしてみよう

TCPが「1通の大きなダンボール箱に荷物を詰め込み、受領印をもらうまで次の箱を出さない」配達員だとしたら、SCTPは「複数の独立した引き出し(ストリーム)を持つ、超大型のコンテナトラック」です。

ある引き出しの荷物(例えば、音声データ)が渋滞に巻き込まれても、別の引き出しの荷物(例えば、Webブラウジングのデータ)はスイスイ目的地に届きます。これをネットワークの世界では「マルチストリーミング機能」と呼びます。5Gのように、音声、動画、IoTセンサーのデータなど、性質の異なる大量の通信が同時に飛び交う世界では、この仕組みが絶対に欠かせないのです。

—

5Gの心臓部!ポート番号38412と「NGAP」の正体

さて、本題の「ポート番号38412」と「NGAP」についてです。

5Gの基地局(私たちが街中で見かけるアンテナ)と、通信キャリアの中枢にある頭脳(5Gコアネットワーク:5GC)の間で、「このスマホの通信を繋いであげて」「ハンドオーバー(基地局の切り替え)をするよ」といった重要な指令をやり取りする言葉(プロトコル)を「NGAP(Next Generation Application Protocol)」と呼びます。

そして、このNGAPのメッセージを乗せて、基地局とコアネットワークの間を駆け巡るトランスポート層のプロトコルこそが、先ほど紹介した「SCTP」なのです。IANA(インターネットの番号管理機関)によって、このNGAP専用のSCTPポート番号として「38412」が公式に割り当てられています。

つまり、ネットワークのパケットキャプチャ(Wiresharkなど)を開いたとき、ポート番号 38412 を持つパケットが見えたら、それはまさに「5Gの基地局とコアネットワークが、スマホの命運を握る重要な会話をしている瞬間」というわけです。

—

止まらない通信!「マルチホーム機能」の泥臭い魅力

そして、今回のテーマのもう一つの主役が「マルチホーム(Multi-homing)」です。これが本当にすごいんです。

通常のTCPコネクションは、「送信元のIPアドレス」と「宛先のIPアドレス」が1対1でガッチリ結ばれています。そのため、もし使っている回線(例えばWi-Fi)がプツリと切れたり、ルーターが故障したりすると、コネクションは即座に切断され、TCPは「あぁ、接続が切れました…最初からやり直してください」と泣き寝入りします。

しかし、SCTPのマルチホーム機能を使えば、1つの通信セッションの中に、複数のIPアドレス(複数の通信経路)を同時に登録しておくことができます。

二刀流の配達ルート

イメージしてみてください。あなたの家に荷物を届ける配達員が、なんと「メイン通り(回線A)」と「裏道(回線B)」の2つのルートの鍵を最初から持っています。

もし、メイン通りで事故(回線障害)が起きて通れなくなっても、配達員は「おっと、じゃあ裏道に切り替えるね」と、荷物を落とすことなく(通信を切断することなく)、一瞬でルートを切り替えて配達を続行します。

これが、5Gの超高信頼・低遅延(URLLC)や、絶対に止まってはいけない社会インフラ、自動運転、工場(ローカル5G)などの現場でSCTPのマルチホームが愛される理由です。

—

実務で役立つ設定とパケットの確認方法

ここからは、実際にLinux環境などでSCTPやNGAPを扱うインフラエンジニアや学習者に向けて、実務で役立つ設定や確認コマンドをご紹介します。一歩ずつ見ていきましょう!

1. LinuxカーネルでのSCTPモジュールの有効化

UbuntuやCentOSなどの一般的なLinuxディストリビューションでは、SCTPはデフォルトでカーネルモジュールとして用意されていますが、ロードされていない場合があります。以下のコマンドで確認・有効化を行います。

# 現在ロードされているカーネルモジュールから sctp を探す
lsmod | grep sctp

# もしロードされていなければ、手動でカーネルモジュールをロードする
sudo modprobe sctp

# 再起動後も自動でロードされるように設定ファイルに追記する
echo "sctp" | sudo tee /etc/modules-load.d/sctp.conf

2. システムパラメータ(sysctl)のチューニング

モバイルコアネットワーク(Open5GSやfree5Gcなどのオープンソース環境)を構築する際、SCTPのハートビート(生存確認)間隔などを調整することがあります。/etc/sysctl.conf に以下のような設定を記述します。

# SCTPのハートビート間隔をミリ秒単位で設定(例: 5000ms = 5秒ごとに生死を確認)
net.sctp.hb_interval_ms = 5000

# パケットの再送回数の上限を設定(ネットワークの揺らぎに対する耐性を決める)
net.sctp.association_max_retrans = 4

# マルチホーム環境において、プライマリーパス障害時に切り替えるまでの閾値設定
net.sctp.path_max_retrans = 5

設定を反映させるには、以下のコマンドを実行します。

sudo sysctl -p

3. ポート38412(NGAP)の疎通確認・パケットキャプチャ

実際に5G基地局(Simulator等)とコアネットワークの間で、ポート 38412 を使ったSCTP通信がどのように行われているか、tcpdump を使ってキャプチャしてみましょう。

# 特定のインターフェซで、SCTPポート38412(NGAP)のパケットをキャプチャする
sudo tcpdump -i eth0 -nn -v 'sctp port 38412'

このコマンドを実行すると、SCTP特有のハンドシェイクである INIT、INIT-ACK、COOKIE-ECHO、COOKIE-ACK といったパケットが流れる様子や、マルチホーム環境下で複数のIPアドレスがネゴシエーションされる臨場感をリアルに味わうことができます。

—

まとめ

今回は、モバイル通信の進化を支えるSCTPのポート番号 38412(NGAP)と、驚異の耐障害性を持つ「マルチホーム機能」について解説しました。

  • SCTPは、複数の独立した引き出し(ストリーム)を持ち、データの渋滞を防ぐ。
  • ポート38412は、5Gの心臓部であるNGAP(基地局とコア間の制御信号)専用の通り道。
  • マルチホームは、複数のIPアドレスを束ね、片方の回線が死んでも通信を途切れさせない無敵の耐障害性機能。

教科書を読むだけでは難しく感じるプロトコルも、こうして「郵便配達」や「現実世界のルート選択」に例えてみると、パケットがネットワークを駆け巡る姿が少し身近に感じられたのではないでしょうか?

日々のインフラ構築やトラブルシューティングの現場で、「あ、今この瞬間もポート38412の上をマルチホームなパケットが走っているんだな」と想像してもらえると、エンジニアとしてのワクワクがさらに広がるはずです。

それでは、また次回のネットワーク・ガジェット解説でお会いしましょう!

コメント

タイトルとURLをコピーしました