Android 12以降を実行しているデバイスの場合、Androidは5Gネットワークスライシングのサポートを提供します。これは、ネットワーク仮想化を使用して、単一のネットワーク接続を複数の異なる仮想接続に分割し、さまざまなタイプのトラフィックにさまざまな量のリソースを提供します。 5Gネットワークスライシングにより、ネットワークオペレーターは、ネットワークの一部を特定の顧客セグメントに特定の機能を提供することに専念させることができます。 Android 12には、ネットワークオペレーターがエンタープライズクライアントに提供できる次の5Gエンタープライズネットワークスライシング機能が導入されています。
フルマネージドデバイスのエンタープライズデバイススライス
フルマネージドの企業デバイスを従業員に提供する企業の場合、ネットワークプロバイダーは、企業デバイス上のすべてのトラフィックがルーティングされる1つのアクティブな企業ネットワークスライスを従業員に提供できます。 Android 12では、Androidを使用すると、キャリアはAPNを介してスライスを設定する代わりに、URSPルールを介してエンタープライズスライスを提供できます。
仕事用プロファイルを持つデバイスのエンタープライズビジネスアプリのスライス
仕事用プロファイルソリューションを使用している企業の場合、Android 12を使用すると、デバイスは仕事用プロファイル内のすべてのアプリから企業ネットワークスライスにトラフィックをルーティングできます。企業は、デバイスポリシーコントローラー(DPC)を介してこの機能を有効にできます。
作業プロファイルソリューションは、作業プロファイル内のエンタープライズアプリからのトラフィックのみがエンタープライズネットワークスライスにルーティングされるようにするために企業が必要とする自動レベルの認証とアクセス制御を提供します。エンタープライズネットワークスライスを明示的に要求するために、仕事用プロファイルのアプリを変更する必要はありません。
AOSPでの5Gネットワークスライシングの仕組み
Android 12では、AOSPのテレフォニーコードベースとテザリングモジュールを追加して、ネットワークスライシングに必要な既存の接続APIを組み込むことで、5Gネットワークスライシングのサポートを導入しています。
Androidテレフォニープラットフォームは、HALおよびテレフォニーAPIを提供して、コアネットワークコードによって提出されたネットワーク要求に基づくスライスと、モデムの5Gスライス機能をサポートします。図1は、5Gネットワークスライシング機能のコンポーネントを示しています。
図1.AOSPの5Gネットワークスライシングアーキテクチャ。
テレフォニーおよび接続プラットフォームは以下をサポートします。
- スライスカテゴリのネットワーク要求をトラフィック記述子に変換し、URSPトラフィックマッチングとルート選択のためにモデムに渡します。
- 要求されたスライスが利用できない場合は、デフォルトのネットワークにフォールバックします
- 仕事用プロファイルの下にあるすべてのアプリから対応する接続へのトラフィックのルーティング
エンタープライズスライシングのサポート
- デバイス上の作業プロファイルの存在を検出する
- 企業のIT管理者が使用するDPCから提供されたアクセス許可またはルーティング方向を確認する
コアネットワーキングサービスには、Android12のテザリングモジュールに対する次の変更が含まれています。
- ほとんどの
android.net.*
パブリックまたはシステムAPIクラスをテザリングモジュールに追加します テザリングモジュールの境界を拡張して、次のものを含めます。
-
f/b/core/java/android/net/…
-
f/b/services/net/…
-
f/b/services/core/java/com/android/server/connectivity/…
-
f/b/services/core/java/com/android/server/ConnectivityService.java
-
f/b/services/core/java/com/android/server/TestNetworkService.java
-
VPNコードをテザリングモジュールから移動します
Android 12は、次の機能を備えたコードをテザリングモジュールに移動します。
- アプリからネットワーク接続のリクエストを受信する
- システムからのリクエストの受信(たとえば、「これらのアプリをエンタープライズスライスに配置する」、Android 12で導入)
- システムからテレフォニーコードにリクエストを送信します。テレフォニーコードは、HALAPIとモデムを経由してネットワークまたはスライスをセットアップしようとします。
- アプリごとにトラフィックをルーティングする方法をnetdに通知する(Android 12で導入)
-
NetworkCallback
、getActiveNetwork
、getNetworkCapabilities
などのConnectivityManager
APIを介して、ネットワークトラフィックに何が起こっているかをアプリに通知します。
実装
デバイスで5Gスライシングをサポートするには、デバイスに、setupDataCall_1_6APIを備えたsetupDataCall_1_6
をサポートするモデムが必要です。このAPIはデータ接続をセットアップし、5Gスライシングをサポートするための次のパラメーターを含みます。
-
trafficDescriptor
:モデムに送信されるトラフィック記述子を指定します sliceInfo
:EPDGから5Gへのハンドオーバーの場合に使用されるネットワークスライスの情報を指定しますmatchAllRuleAllowed
:デフォルトのすべて一致URSPルールの使用を許可するかどうかを指定します
getSlicingConfig
APIでサポートされていないと報告されない限り、モデムはgetSlicingConfigAPIも実装する必要がgetHalDeviceCapabilities
ます。
エンタープライズ要件
以下では、企業がAndroidエンタープライズ展開のデバイスで5Gネットワークスライシングを使用するための要件について説明します。
- 仕事用プロファイルでセットアップされたフルマネージドデバイスまたは従業員デバイスが、
setupDataCall_1_6
をサポートするモデムで5GSA対応であることを確認します。 - スライスのセットアップとパフォーマンスまたはSLA特性について、キャリアパートナーと協力します。
仕事用プロファイルでセットアップされたデバイスで5Gスライシングを有効にする
作業プロファイルが設定されているデバイスの場合、AOSPでは5Gネットワークスライシングがデフォルトでオフになっています。ネットワークスライシングを有効にするために、エンタープライズIT管理者は、 DevicePolicyManager
(DPM) API(Androidで導入)のsetPreferentialNetworkServiceEnabled
メソッドを使用するEMM DPCを介して、従業員ごとにエンタープライズネットワークスライスへの作業プロファイルアプリトラフィックルーティングをオンまたはオフにできます。 12)。
カスタムDPCを使用するEMMベンダーは、エンタープライズクライアントをサポートするためにDevicePolicyManager
を統合する必要があります。
URSPルール
このセクションには、エンタープライズ、CBS、低遅延、高帯域幅のトラフィックなど、さまざまなスライスカテゴリのURSPルールの設定に関する通信事業者向けの情報が含まれています。さまざまなスライスカテゴリにURSPルールを設定する場合、通信事業者は次のAndroid固有の値を使用する必要があります。
ID | 価値 | 説明 |
---|---|---|
OSId | 97a498e3-fc92-5c94-8986-0333d06e4e47 | Android用のOSIdは、名前空間ISOOIDと名前「Android」で生成されたバージョン5のUUIDです。 |
キャリアは、トラフィック記述子コンポーネントを「OS Id + OS App Id type」として、スライストラフィックごとにURSPルールを構成する必要があります。たとえば、「ENTERPRISE」スライスの値は0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345
である必要があります。この値は、OSId、OSAppIdの長さ( 0x0A
)、およびOSAppIdを連結したものです。トラフィック記述子コンポーネントタイプの詳細については、 3GPPTS24.526表5.2.1を参照してください。
次の表に、さまざまなスライスカテゴリのOSAppId値を示します。
スライスカテゴリ | OSAppId | 説明 |
---|---|---|
企業 | 0x454E5445525052495345 | OSAppIdは、文字列「ENTERPRISE」のバイト配列表現です。 |
エンタープライズ2 | 0x454E544552505249534532 | OSAppIdは、文字列「ENTERPRISE2」のバイト配列表現です。 |
エンタープライズ3 | 0x454E544552505249534533 | OSAppIdは、文字列「ENTERPRISE3」のバイト配列表現です。 |
エンタープライズ4 | 0x454E544552505249534534 | OSAppIdは、文字列「ENTERPRISE4」のバイト配列表現です。 |
エンタープライズ5 | 0x454E544552505249534535 | OSAppIdは、文字列「ENTERPRISE5」のバイト配列表現です。 |
CBS | 0x454E544552505249534535 | OSAppIdは、文字列「CBS」のバイト配列表現です。 |
PRIORITIZE_LATENCY | 0x5052494f524954495a455f4c4154454e4359 | OSAppIdは、文字列「PRIORITIZE_LATENCY」のバイト配列表現です。 |
PRIORITIZE_BANDWIDTH | 0x5052494f524954495a455f42414e445749445448 | OSAppIdは、文字列「PRIORITIZE_BANDWIDTH」のバイト配列表現です。 |
URSPルールの例
次の表は、エンタープライズ、CBS、低遅延、高帯域幅、およびデフォルトトラフィックのURSPルールの例を示しています。
エンタープライズ1
URSPルール#1(エンタープライズ1) | |
---|---|
優先順位 | 1(0x01) |
トラフィック記述子#1 | |
OS ID+OSアプリIDタイプ | 0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345 |
ルート選択記述子#1 | |
優先順位 | 1(0x01) |
コンポーネント#1:S-NSSAI | SST:XX SD:YYYYYY |
コンポーネント#2:DNN | 企業 |
ルート選択記述子#2 | |
優先順位 | 2(0x02) |
コンポーネント#1:DNN | 企業 |
エンタープライズ2
URSPルール#2(enterprise2) | |
---|---|
優先順位 | 2(0x02) |
トラフィック記述子#1 | |
OS ID+OSアプリIDタイプ | 0x97A498E3FC925C9489860333D06E4E470A454E544552505249534532 |
ルート選択記述子#1 | |
優先順位 | 1(0x01) |
コンポーネント#1:S-NSSAI | SST:XX SD:YYYYYY |
コンポーネント#2:DNN | エンタープライズ2 |
ルート選択記述子#2 | |
優先順位 | 2(0x02) |
コンポーネント#1:DNN | エンタープライズ2 |
エンタープライズ3
URSPルール#3(enterprise3) | |
---|---|
優先順位 | 3(0x03) |
トラフィック記述子#1 | |
OS ID+OSアプリIDタイプ | 0x97A498E3FC925C9489860333D06E4E470A454E544552505249534533 |
ルート選択記述子#1 | |
優先順位 | 1(0x01) |
コンポーネント#1:S-NSSAI | SST:XX SD:YYYYYY |
コンポーネント#2:DNN | エンタープライズ3 |
ルート選択記述子#2 | |
優先順位 | 2(0x02) |
コンポーネント#1:DNN | エンタープライズ3 |
エンタープライズ4
URSPルール#4(enterprise4) | |
---|---|
優先順位 | 4(0x04) |
トラフィック記述子#1 | |
OS ID+OSアプリIDタイプ | 0x97A498E3FC925C9489860333D06E4E470A454E544552505249534534 |
ルート選択記述子#1 | |
優先順位 | 1(0x01) |
コンポーネント#1:S-NSSAI | SST:XX SD:YYYYYY |
コンポーネント#2:DNN | エンタープライズ4 |
ルート選択記述子#2 | |
優先順位 | 2(0x02) |
コンポーネント#1:DNN | エンタープライズ4 |
エンタープライズ5
URSPルール#5(enterprise5) | |
---|---|
優先順位 | 5(0x05) |
トラフィック記述子#1 | |
OS ID+OSアプリIDタイプ | 0x97A498E3FC925C9489860333D06E4E470A454E544552505249534535 |
ルート選択記述子#1 | |
優先順位 | 1(0x01) |
コンポーネント#1:S-NSSAI | SST:XX SD:YYYYYY |
コンポーネント#2:DNN | エンタープライズ5 |
ルート選択記述子#2 | |
優先順位 | 2(0x02) |
コンポーネント#1:DNN | エンタープライズ5 |
CBS
次に、CBSトラフィックのURSPルールの例を示します。
URSPルール#6(CBS) | |
---|---|
優先順位 | 6(0x06) |
トラフィック記述子#1 | |
OS ID+OSアプリIDタイプ | 0x97A498E3FC925C9489860333D06E4E470A434253 |
ルート選択記述子#1 | |
優先順位 | 1(0x01) |
コンポーネント#1:S-NSSAI | SST:XX SD:YYYYYY |
コンポーネント#2:DNN | cbs |
ルート選択記述子#2 | |
優先順位 | 2(0x02) |
コンポーネント#1:DNN | cbs |
低遅延
URSPルール#7(低遅延) | |
---|---|
優先順位 | 7(0x07) |
トラフィック記述子#1 | |
OS ID+OSアプリIDタイプ | 0x97A498E3FC925C9489860333D06E4E470A5052494f524954495a455f4c4154454e4359 |
ルート選択記述子#1 | |
優先順位 | 1(0x01) |
コンポーネント#1:S-NSSAI | SST:XX SD:YYYYYY |
コンポーネント#2:DNN | レイテンシー |
ルート選択記述子#2 | |
優先順位 | 2(0x02) |
コンポーネント#1:DNN | レイテンシー |
高帯域幅
URSPルール#8(高帯域幅) | |
---|---|
優先順位 | 8(0x08) |
トラフィック記述子#1 | |
OS ID+OSアプリIDタイプ | 97A498E3FC925C9489860333D06E4E470A5052494f524954495a455f42414e445749445448 |
ルート選択記述子#1 | |
優先順位 | 1(0x01) |
コンポーネント#1:S-NSSAI | SST:XX SD:YYYYYY |
コンポーネント#2:DNN | 帯域幅 |
ルート選択記述子#2 | |
優先順位 | 2(0x02) |
コンポーネント#1:DNN | 帯域幅 |
デフォルト
URSPルール#9(デフォルト) | |
---|---|
優先順位 | 9(0x09) |
トラフィック記述子#1 | |
マッチオール | 該当なし |
ルート選択記述子#1 | |
優先順位 | 1(0x01) |
コンポーネント#1:S-NSSAI | SST:XX SD:YYYYYY |
テスト
5Gネットワークスライシングをテストするには、次の手動テストを使用します。
テスト用のデバイスをセットアップするには、次の手順を実行します。
URSPポリシーが、エンタープライズカテゴリに一致するデフォルト以外のルールで設定されていること、および対応するルート選択記述子がエンタープライズカテゴリをエンタープライズスライスにマップしていることを確認します。トラフィックをデフォルトのインターネットスライスに転送するデフォルトのルール。
デバイスに作業プロファイルが構成されていることを確認します。
DPCを介したネットワークスライシングの使用をオプトインする
5Gネットワークスライシングの動作をテストするには、次の手順を実行します。
- エンタープライズスライスでPDUセッションが確立されていること(たとえば、特定のIPアドレスを使用して)、および作業プロファイル内のアプリがそのPDUセッションを使用していることを確認します。
- デフォルトのインターネットスライスを使用して別のPDUセッションが確立されていること、および個人プロファイル内のアプリがPDUセッションを使用していることを確認します。