Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

アドレスプールマネージャーの概要

このガイドを使用して、アドレスプールマネージャーを設定および管理します。

アドレスプールマネージャーの概要

Juniper アドレスプールマネージャー(APM)は、Kubernetesクラスター上で動作するクラウドネイティブのコンテナベースのアプリケーションで、ネットワーク内のIPv4アドレスプールを管理します。BNGがアドレスプールを使い果たす前に、一元化されたアドレスプールからブロードバンドネットワークゲートウェイ(BNGs)にプレフィックスを自動的にプロビジョニングします。BNGは、APMから提供されたプレフィックスを新しいプールとしてリンクされたアドレスプールに追加します。リンクされたアドレスプールと、プールに関連付けられた属性(使用率、しきい値など)は、 プールドメインと呼ばれます。

BNGは、次のように、ドメインのしきい値に対してドメインのフリーアドレスを常に監視します。

  • BNGは、ドメイン内の空きアドレスの数がドメインの apportion-thresholdに達するか下回ると、追加のアドレスを要求するアラームをAPMに送信します。

  • APMは、要求されたプレフィックス長に一致するプールプレフィックスの要求された数を割り当て、アラーム応答でアドレスを返します。

  • ドメイン内の空きアドレスの数がドメインの再利用しきい値に達するか超えると、BNG は削除するプール プレフィックスを選択します。また、再利用を要求する APM にアラームを発生させます。

  • APMは、プールにアクティブドレインを配置するようにBNGに指示することで、再利用アラームに応答します。プールが完全にドレインされると(割り当てられたアドレスがない場合)、BNG はプールドレインアラームを発生させます。

  • APMは、プレフィックスがドメインのソースパーティションに返され、BNGがドメインからプールプレフィックスを安全に削除できることをBNGに通知します。

  • これで、再利用されたプレフィックスは、別の BNG が要求できるようになります。

手記:

このドキュメントの BNG という用語は、BNG CUPS コントローラにも適用されます。

図1 は、BNGを監視し、必要なときに必要なアドレスでプロビジョニングするAPMオペレーションの概要を示しています。

図 1: 基本的な APM 操作 Basic APM Operations

APMは、ネットワーク事業者がIPv4アドレスを効率的に割り当てるのに役立つアドレス管理ソリューションを提供します。一般的なアドレス割り当てスキームは複雑で、ネットワーク事業者が必要とするほど効率的ではありません。プロバイダは通常、最悪のケースの負荷を処理するために、デバイスのアドレスが不足するのを防ぐために、ネットワーク デバイスにアドレスを事前にプロビジョニングします。これは、デバイスが動作時間のほとんどでオーバープロビジョニングされていることを意味します。

アドレスは必要なく、他の場所で使用される可能性があるため、APMはアドレスを事前にプロビジョニングしません。APMは、事前プロビジョニングの代わりに、BNGが必要とする場合にのみプレフィックスを割り当てます。アドレスのタイムリーで効率的な割り当てに影響を与える可能性のある特定のネットワーク上の考慮事項には、次のものがあります。

  • アドレスを消費するネットワークデバイスの数

  • VPNの存在

  • システム冗長化スキーム

  • ネットワーク要素の地理的分布

APMは、プレフィックスを再利用して、プレフィックスの分散を継続的に調整し、アドレス空間の利用率を最大化します。プレフィックス再利用はAPMで発生し、アドレス再利用はBNGで発生します。プレフィックス再利用は、BNG に IP アドレスが余っている場合に発生します。BNGは、再利用する推奨プールプレフィックスを含む再利用アラームをAPMに送信します。APMは、プールのドレイン要求を開始して、APMがプールプレフィックスを再利用する前に、プールにアドレス割り当てがないことを確認します。APMは、BNGがアドレスの枯渇に近づき、より多くのアドレスが必要になった場合、その管理対象BNG間の他のプールにプレフィックスを再割り当てすることができます。

アドレスプールマネージャーのメリット

  • 効率性—アドレス利用の効率を向上させます。APMは、ネットワーク内の複数のBNGのアドレス割り当てを一元化し、自動化します。APMはジャストインタイムのプレフィックス割り当てを使用するため、BNGが追加のIPアドレスを必要とする場合にのみプレフィックスをプロビジョニングします。

    APMは、BNGが必要とする数のプレフィックスのみをプロビジョニングします。APMグローバルプールをプレフィックスのグループに分割した後、APMはBNGの要求に一致するようにプレフィックスをさらに細分化します。この細分化により、APMは割り当てるプレフィックスのサイズを最適化できます。

  • 簡素化:各BNGを手動で監視してプロビジョニングするオーバーヘッドや複雑さを回避します。

  • 容易な導入性:要件を満たすあらゆるハードウェアにインストールして運用します。

  • 再利用可能性:使用中のプレフィックスを、IPアドレスをほとんど使用していないプールから中央のプールに再利用し、必要な他のプールに再配布します。

アドレッシング用語

IPアドレッシング、クラスレス ドメイン間ルーティング(CIDR)、可変長サブネットマスク(VLSM)、およびIPプレフィックスをサブネットワーク(サブネット)に分割する方法について十分に理解している必要があります。アドレス指定戦略を考案する場合 (このドキュメントの範囲外)、または手動アドレス再利用を使用する場合は、IP サブネット計算ツールを表示すると役立つ場合があります。そのような計算機はオンラインでたくさん見つけることができます。

このドキュメントでは、次の用語を使用します。

  • プレフィックス—CIDR 表記を使用して表現された 32 ビットの IPv4 ネットワーク アドレスとプレフィックス長。たとえば、198.51.100.0/24 です。プレフィックスは、IP アドレスのネットワーク部分を定義します。プレフィックスはサブネットワークを表します。

  • プレフィックス長—プレフィックスの長さとIPアドレスのネットワーク部分のサイズを決定するビット数。/24 プレフィックス長は、アドレスのネットワーク部分が 24 ビットであることを意味します。残りのビット(32ビットのうち)は、ネットワークアドレスのホスト部分を表します。プレフィックス長が /24 のプレフィックスの場合、ホスト部分は 8 ビットです(32 – 24 = 8)。

  • ネットワーク サイズ - この用語は、文脈に応じて複数の異なる意味で使用されることがあり、あいまいさにつながる可能性があります。プレフィックス長と、それがサブネットワーク内のホストアドレス数にどのように対応するかを、次のように説明します。

    • プレフィックス長が長いほど、サブネットワークごとに割り当てるホストアドレスが少なく、サブネットワークが多くなります。

    • プレフィックス長が短いほど、サブネットワークごとに割り当てるホスト アドレスが多くなり、サブネットワークの数が減ります。

  • 空きアドレスは、使用可能でサブスクライバーに割り当てられていないIPアドレスです。

APMの仕組み

APMは、ネットワーク内のBNGグループのIPプレフィックスの集中コレクションを維持します。APM CLI では、管理対象 BNG をエンティティとして参照します。このドキュメントでは一般に BNG という用語を使用しますが、このドキュメントでは エンティティという用語を使用する場合もあります。

APMは、プールドメインの作成をBNGと連携します。各プール ドメインは、BNG 上の特定のルーティング インスタンスの組み合わせのリンク アドレス プールに対応します。また、BNG CUPS コントローラでは、プール ドメインは、特定の加入者グループとルーティング インスタンスの組み合わせのリンク アドレス プールに対応します。プールドメインは動的に作成されるため、BNGとAPMの両方で、プールドメインのインスタンス化に必要な属性を含むプロファイルまたはテンプレートが維持されます。APMプロファイルには、配分、再利用しきい値、自動再利用動作などの属性が含まれています。BNG。プロファイルには、プレフィックスサイズやルート破棄インストール動作などの属性が含まれます。

APMi バージョン 1(Junos OS リリース 22.1R1 以降と互換性あり)。APMi のバージョンを確認するには、 show apm entity コマンドを実行します。

しきい値とアラーム

BNG はプール ドメインを作成し、プール ドメイン内の空きアドレスの数を監視します。フリー アドレスの数がしきい値を超えた場合、BNG は APM にアラーム メッセージを送信します。BNG は、以下のしきい値に対してフリー アドレスの数を監視します。

  • 割り当てしきい値:空きアドレスの数がこの値に達するか下回ると、BNGはアドレスを使い果たすリスクを負います。BNGは、APMに按分アラームを送信し、追加のアドレスを要求します。APMは割り当て可能なプレフィックスを選択し、そのプレフィックスをBNGに割り当て、BNGは1つ以上のプレフィックスをプールドメイン内の新しいプールとして追加します。プレフィックスの割り当てに失敗すると(たとえば、空のパーティション)、否定応答が返されます。再試行時間は、要求を受信した時点から 15 分のタイムスタンプに設定されます。BNG がドメインのプレフィックスをまだ必要とする場合は、指定されたタイムスタンプ値で再試行します。
  • 再利用しきい値:空きアドレスの数がこの値に達するか、この値を超えると、BNG のアドレスが余剰になります。BNG は、ドレインする推奨プールを含む再利用アラームを APM に送信します。構成によっては、APM がプールのドレインを開始する場合があります。ドレインされたプールには、加入者が使用しているプール内に IP アドレスがありません。

    ドレイン中、BNG ルーターはプールからのアドレスの割り当てを停止し、加入者がログオフしてアドレスを解放するまで待機します。

    プールをドレインした後、BNG はプール ドレイン アラームを APM に送信します。APMは、プールドメインからプールを削除するメッセージをBNGルーターに送信します。

    手記:

    APMは、次の場合にプールの再利用プロセスを開始します。

    • プールドメインに対して自動再利用が有効になっています。
    • 現時点では再利用が可能です。

    自動レクラメーションがウィンドウ外であったためにAPMがレクラメーションアラームを処理できない場合、APMは ALARM_NACK/NOOP と、自動レクラメーションウィンドウが開始する秒に設定された再試行時間で応答します。

プールドメインプロファイルで、割り当てしきい値と再利用しきい値を設定します。しきい値は、BNGに十分な空きアドレスがあるかどうか、およびAPMがプレフィックスを割り当てまたは再利用するタイミングを決定します。 図 2 の次の架空のタイムラインについて考えてみます。BNG は、加入者がログインするとアドレスを割り当て、ログアウトするとアドレスを再利用します。タイムラインには、一定期間に BNG によって追跡された空きアドレスの数が表示されます。 表 1 は、フリー アドレスの数が異なるしきい値を超えたときに、さまざまなシナリオで BNG と APM が実行するアクションを示しています。

図 2: BNG Free Addresses on a BNGのフリー アドレス
表 1: さまざまなアラームに対して APM が実行するアクション
BNG から送信された時間アラームの説明
T0 入力されたプール ドメインを含むタイムラインの開始。
T1の アラームを按分する 加入者がログインすると、BNG 上のフリー アドレスの数は配分しきい値を下回ります。BNG は配分アラームを送信します。APM は配分アラームを受信し、プレフィックスをプール ドメインに割り当てます。BNG は、プール ドメインのプール プレフィックスからアドレスを割り当てます。
T2の アラームを按分する

APM は配分アラームを受信しますが、パーティションに使用可能なプレフィックスがありません。アラームは NACK され、再試行タイムスタンプは 15 分後に設定されます。BNG は、アドレスが不要になるまで、このタイムスタンプで割り当てアラームを再試行します。

T3の アラームを按分する 再試行タイムスタンプで、フリー アドレスの数がまだ割り当てしきい値を下回っているため、BNG は割り当てアラームを再送します。
T4の アラームの再利用 サブスクライバーは、空きアドレスの数が再利用しきい値を超えるまでログアウトを続けます。BNG は、再利用する推奨プールを含む再利用アラームを送信します。APM は提案されたプールにドレインを配置し、BNG はプールでドレイン プロセスを開始します。
T5の プールドレインアラーム アドレス プールの加入者が 0 の場合、プール内に割り当てられたアドレスはありません。BNG はプール ドレイン アラームを APM に送信します。APMは、削除リクエストでプールドレインアラームに応答します。BNG は、プール ドメインのプール リストからプールを削除します。APMは、再割り当てのために、対応するプレフィックスをパーティションに戻します。

プールを削除すると、空きアドレスの数は減少します。

T6の アラームの再利用 APM は再利用アラームを受信しますが、アラームは再利用ウィンドウ外で発生したため、アクションを実行しません。APMは、再試行タイムスタンプが再利用ウィンドウの開始時刻に設定されたアラームNACKを返します。BNG は、まだ空きアドレスが余っている場合、この時点で再利用アラームを再試行します。

APMの一般的な操作

次の手順では、APM の一般的な操作について説明します。

  1. BNGとAPMは、ジュニパー定義のgRPCベースのプロトコルであるAPMiを使用して通信します。Google RPC(gRPC)は、拡張可能で相互運用可能な通信プロトコルを構築するための共通フレームワークです。最初の接続時に、BNG はプール ドメインの同期を開始します。プールドメインの同期プロセスでは、アクティブなプールドメインのセットが同期されます。APMは、アクティブなプールドメインのリストをBNGのプールドメインのリストに合わせます。プール ドメインの同期後、BNG はプール ドメインごとにプールの同期(ディスカバリ)を実行します。APMは、各ドメインのプールのリストをBNGのリストに合わせます。APMが追加のプールを保持している場合(BNGのドメインのプールリストにない場合)、プールプレフィックスはパーティションに解放されます。APMにプールがない場合、APMはプールの割り当てを試みます。
  2. APM は、BNG から送信されるアラーム メッセージを監視します。

  3. APMはアラームを評価し、それに基づいて処理します。例えば、BNGのアドレスが不足している場合、BNGはAPMに按分アラームを送信します。APMは、ドメインのソースパーティションから要求された数のプレフィックスを割り当て、アラーム応答で返します。BNG は、これらのプール プレフィックスをプール ドメインに追加します。

図 1 は、1 つの APM インスタンスのさまざまな機能コンポーネント間の関係をより詳細に示しています。各マネージャ ブロックには、使用するデータベース テーブルが表示されます。

図3:APMFunctional Components of APMの機能コンポーネント
手記:

ネットワーク内の複数の異なるクラスタで、APMの複数のインスタンスを同時に実行できます。APMのこれらのインスタンスは独立しており、互いに認識されていません。インスタンスは状態や構成を共有しません。

各APMインスタンスには、アプリケーションの機能コンポーネントとして次のマイクロサービスが含まれています。

  • エンティティ マネージャー:管理下にある BNG のプール管理アクティビティを調整します。これらのアクティビティには、アラームの処理、プールプレフィックスの割り当てと再利用が含まれます。

  • アドレス マネージャー:アドレスの中央プールをパーティションに編成し、各パーティションに設定されたルート プレフィックスの割り当てを管理します。ルート プレフィックスをより小さいプレフィックスに細分化し、BNG に設定された基準に従ってプレフィックスを割り当てます。

  • プロビジョニング マネージャー:BNG とインターフェイスし、プール ドメインとそれに関連付けられたアドレス プールをプロビジョニングします。プロビジョニング マネージャは、ドメインと関連する割り当て済みプール プレフィックスが APM と BNG 間で同期された状態を維持するようにします。

    APMプロビジョニングマネージャーは、APMiを使用して管理対象BNGと通信します。プロビジョニング マネージャーは gRPC メッセージを送信し、BNG によって開始されるドメイン アラームに応答して、BNG のプレフィックスを直接プロビジョニングおよびプロビジョニング解除します。

  • MGMTマイクロサービスには、テキストベースの設定スキーマとCLIが用意されているため、グローバルプレフィックスプール、マネージドBNG、およびそれらに関連付けられたプールドメイン属性を設定できます。CLI を使用して、さまざまな機能コンポーネントの統計情報と状態を表示できます。出力は、システム負荷、効率、使用率、およびエラーまたは異常な状態に関する情報を提供します。
  • ブロードバンドエッジ(BBE)イベントの収集と可視化(クラウドベースの集中型ユーティリティ)—APMマイクロサービスのライフサイクルにわたるAPMログをキャプチャする方法を提供します。このユーティリティは、APMマイクロサービスのインスタンス間でログを収集して保存します。

  • データベースインスタンス(DB)—APMの各機能コンポーネントが使用するデータベーステーブルへの共有アクセスを提供します。データベースには、アドレス、BNG、およびプール ドメイン情報のテーブルが含まれています。データベースは、構成情報と運用状態のための永続ストレージを提供します。

    APMは、エンティティ、プールドメイン、プール、プレフィックス、割り当て、構成などに関する状態情報を含むデータベースを採用しています。2つのデータベース・インスタンス(プライマリおよびスタンバイ)は、ホット・スタンバイ・モードでデプロイされます。データベースインスタンスは、プライマリデータベースの障害を検出するデータベースセンチネルサービスによって監視されます。1 次データベースに障害が発生すると、新しいスタンバイ・データベースがリストアされる間、2 次データベースが 1 次データベースの役割を引き継ぎます。

    手記:

    冗長性には、プライマリ・ノードに加えて、少なくとも3つのワーカー・ノードが必要です。ワーカー・ノードは、すべて別々の物理サーバー上にある必要があります。ただし、ノードは物理マシンでも仮想マシンでもかまいません。

APMの機能コンポーネント

CLIおよび構成管理

ユーザーインターフェイス(MGMT)は、Junos OS管理プロセスのコンテナ化されたバージョンです。このインターフェイスでは、設定と監視に Junos OS と同じ CLI 構造を使用できます。MGMT は、APM をリモートで管理できるインターフェイスも提供します。

APMは、次のタスクを実行します。

  • 他のAPMコンポーネントがランタイム状態に進む前に、管理サービスからデータベースに初期APM設定を読み込みます。

  • コマンドと構成を、APMマイクロサービスが理解できるアクションとパラメーターに変換します。

  • 初期設定とその後の変更をデータベースに記録し、永続化します。変更があれば、APMコンポーネントに通知します。

エンティティマネージャー

エンティティー・マネージャーは、エンティティーの状態に影響を与える他の機能コンポーネントの操作を調整します。

管理下にある各 BNG について、エンティティー・マネージャーは以下の情報を追跡します。

  • BNG アドレスは、管理対象プールをホストする BNG のトランスポート アドレスです。

  • 管理対象のプールドメインのリスト。

プールドメインは、BNG上のリンクされたアドレスプールを表します。エンティティーマネージャーは、プールドメインごとに、次の情報を追跡します。

  • プール ドメイン名 - BNG の管理対象プールを識別するユーザー定義の文字列。各プール ドメイン名は、その BNG に対して一意である必要があります。つまり、プールのドメイン名は実質的にキーとして機能します。これは、プールドメインキーと呼ばれることもあります。エンティティによって構築されたユーザー定義の文字列。BNG の場合、文字列はルーティング インスタンス名にリンクされたドメイン プロファイル名で構成されます。BNG CUPS コントローラの場合、文字列は加入者グループ名およびルーティングインスタンス名にリンクされたドメインプロファイル名で構成されます。

  • APMは、 pool-domain-name-sequence-number の形式を使用して、作成するプールに名前を付けます。 sequence-number は 4 桁以上で、値が 1,000 未満の場合、シーケンス番号の先頭に 0 が埋め込まれます。したがって、0001、0999、1000、213339は有効なシーケンス番号です。たとえば、プール・ドメインの名前がtest-pdの場合、APMは最初のプールにtest-pdという名前を付けます。後続のプールには、test-pd-0000、test-pd-0001 などの名前が付けられます。

  • [プレフィックス(Prefixes)]:プール ドメインを構成するプレフィックスの順序指定リスト。

エンティティーマネージャーは、プールドメインに対するさまざまな操作 (最終ディスカバリー、最終割り当て、最終再利用など) について、多数の揮発性統計を収集します。統計情報には、アラーム数、プールの数、関連するプレフィックス、タイムスタンプが含まれます。これらの統計は、show apm entityなどのAPMshowコマンドで表示できます。

エンティティ マネージャーは、プロビジョニング マネージャーが BNG からエンティティ マネージャーに配分アラームをリレーするときに、アドレス マネージャーにプール ドメインの新しいプレフィックスを要求します。

プレフィックス要求には、次の情報が含まれます。

  • アドレス ファミリー—現在 IPv4 をサポートしています

  • [Allocation key]:管理対象 BNG の IP アドレスとプール ドメイン

  • [Requested prefix length]:パーティションからプール ドメインに割り当てるプレフィックスのサイズ。

続いて、エンティティーマネージャーは、割り当てられたプレフィックスを BNG のアドレスプールにプロビジョニングしようとします。

エンティティマネージャは、プロビジョニングマネージャがBNGに到達可能であることをエンティティマネージャに通知すると、管理下のBNGプールドメイン(同期)を検出して調整するプロセスを開始します。プロビジョニングマネージャーは、到達可能性の状態が変化するたびに、エンティティマネージャーに到達可能性レポートを送信します。エンティティー・マネージャーは、その BNG で管理されているすべてのプール・ドメインのディスカバリーを要求します。

検出プロセスでは、プロビジョニング インターフェイスを使用して、BNG が認識するプール ドメインと関連するプール情報を検索します。ディスカバリープロセスの最後に、APMとBNGは同じプールドメインと割り当てられたプールプレフィックスを持ちます。

検出された情報が既存の情報と一致しない場合、APMは(BNGと一致するように)プールドメインのパーティション情報でデータベースを更新します。APMは、更新中にコンフリクトを検出すると、ログに警告としてコンフリクトのフラグを立てます。

アドレスマネージャー

アドレス マネージャーは、VLSM アルゴリズムを使用して、アドレス プール パーティション内のルート プレフィックスを、各ルート プレフィックスに設定した max-prefix-len 値まで、より小さなサブプレフィックスに分割します。割り当て中、アドレス マネージャーは、適切なサイズのプレフィックスの要求をパーティションとルート プレフィックスと照合します。APMは、割り当てイベントを満たすために、ルートプレフィックスから空きサブプレフィックスを割り当てます。

アドレス マネージャーは、パーティション内の空きアドレスの割合が free-prefix-utilization しきい値を下回ると、警告メッセージをログに記録します。このしきい値を超えると、パーティションに非常に多くのアドレスが割り当てられているため、アドレスが不足する危険性があることを示します。

APMを設定する場合、ルートプレフィックスをパーティションに割り当てます。アドレス マネージャーは、任意のドメインに対して 1 つのパーティションからのみプレフィックスを割り当てます。各パーティションは、割り当てコンテキストを表します。アドレス マネージャーは、ドメインに設定したバイアスを使用して、ドメインに割り当てるプレフィックスを分割するパーティションを選択します。

パーティションにルートプレフィックスを追加するときは、そのパーティションに指定された最小プレフィックス長と最大プレフィックス長の制限内に収まることを確認してください。

  • min-prefix-len値は、有効な最短のルート プレフィックスです。

  • max-prefix-len値は、有効な最長のルート プレフィックスです。

したがって、 min-prefix-len <= ルート プレフィックス長 <= max-prefix-len です。

たとえば、 min-prefix-len が 20、 max-prefix-len が 24 の場合、プレフィックス長が /20、/21、/22、/23、または /24 のルート プレフィックスを追加できます。

プレフィックス長が短いほど、サブネットで使用できる個々のホストアドレスが多くなります。プレフィックス長が長くなるほど、サブネット内で使用可能な個々のホストアドレスは少なくなります。例えば:

  • プレフィックス長を /20 にすると、4,094 個の使用可能なホスト アドレスが提供されます。

  • プレフィックス長が /24 の場合、254 個の使用可能なホスト アドレスが提供されます。

手記:

指定された制限外にあるルートプレフィックスを設定した場合、APMはそれをパーティションに追加しません。

接頭辞サブディビジョン(Prefix Subdivision)

プレフィックスサブディビジョンの目標は、APMが複数のドメイン間でルートプレフィックスを共有し、ドメインをより小さな増分で拡張できるようにすることを可能にします。アドレス マネージャーは、設定時に VLSM アルゴリズムを使用して、パーティション内のルート プレフィックスを分割します。各区画はサブネットワーク (サブネット) です。

アドレス マネージャーがルート プレフィックスを細分化する深さを制御するには、最大許容プレフィックス長を指定します。 max-prefix-length の値は、サブネットに許可される最長プレフィックスです。したがって、この設定によって、割り当てられたプレフィックスが提供しなければならないホストアドレスの最小数が決まります。

プレフィックスの割り当て

アドレス マネージャーは、特定のプレフィックスを 1 つのドメインにのみ割り当てることができます。プレフィックスの割り当ては、ドメインのバイアス情報と要求されたプレフィックス サイズによって異なります。

アドレス マネージャーは、プレフィックスを割り当てるときに、要求されたプレフィックス サイズ (preferred-prefix-len) を一致させるためにベストエフォートを試みます。パーティションには、要求された長さに一致するプレフィックスが残っていない可能性があります。たとえば、アドレス マネージャーがプールに上位プレフィックスを割り当てると、下位プレフィックスもすべてプールに割り当てられます。

VLSMの

VLSM は、ルート プレフィックスからサブネットの階層を作成します。プレフィックス長にビットを追加することで、ルートプレフィックスを分割します。プレフィックス長にビットが追加されるたびに、次のプロパティを持つ別の下位レベルのサブネットが作成されます。

  • 各レベルには、次に高いレベルの 2 倍のサブネットがあります。

  • 各レベルでは、サブネットあたりのホスト アドレス数は、次に高いレベルの半分しかありません。

各ルートプレフィックスとそれに関連するサブネット階層は、プレフィックスツリーを構成します。したがって、パーティションはプレフィックス ツリーの集合で構成されます。アドレス マネージャーは、これらのプレフィックス ツリーの 1 つに収まるプレフィックスのみを割り当てることができます。

プレフィックスは、次のいずれかの状態になります。

  • [使用可能(Available)]:プレフィックスはドメインへの割り当てに使用できます。

  • [割り当て済み(Allocated)]:プレフィックスは既にドメインとエンティティに割り当てられています。

  • 予約済み—プレフィックスは reserved-prefix ステートメントで管理上予約されています。APMは、要求元のドメインと一致しないドメインにプレフィックスを割り当てることはできません。

VLSM の例

図 4 は、パーティション test-1 のルート プレフィックス 192.0.2.0/24 の階層を示しています。プレフィックス長にビットが追加されるごとにサブネットの数が 2 倍になり、/24 の 1 つのサブネットから /27 の 8 つのサブネットになることがわかります。サブネットあたりの使用可能なアドレス数は、プレフィックス長ビットが追加されるごとに、/24 の 254 アドレスから /27 の 30 アドレスへと半分になります。

手記:

図の各プレフィックスブロックは、 使用可能な アドレスを示しています。

使用可能なアドレス = アドレスの総数 – 2

除外された 2 つのアドレスは、最下位のアドレス (ネットワーク アドレス) と上位のアドレス (マルチキャストアドレス) に対応します。

図 4:VLSM サブネット階層の例 VLSM Subnet Hierarchy Example

このルートプレフィックスツリーで、以下のシナリオを考えてみましょう:

  1. アドレス マネージャーは、優先プレフィックス長が 25 の割り当て要求を受信します。

  2. アドレス マネージャーは、アドレスを含む /25 プレフィックスを探します。192.0.2.0/25 は一致し、使用可能な場合は が選択されます。

192.0.2.0/25が利用できない場合はどうなりますか。つまり、192.0.2.0/24 も使用できません。アドレス マネージャーは、別の /25 プレフィックスを探します。

アドレス マネージャーは、192.0.2.128/25 が使用可能な場合、それを選択します。そのプレフィックスが使用できない場合、アドレス マネージャーは別のルート プレフィックスから /25 プレフィックスを割り当てようとします。

プロビジョニングマネージャー

プロビジョニング マネージャーは、次のプロビジョニング操作を管理するワーカー プロセスで構成されます。

  • ディスカバリー:APMとBNGの間でプールドメインと関連するプール情報を同期します。ディスカバリープロセスの最後に、APMとBNGはプールドメインと割り当てられたプールプレフィックスのリストに同意します。

    APMの動作—APMは、APMリストがBNGのリストと一致するように、プールドメインをBNGのリストと調整します。リコンシリエーション中に削除されたドメインのプールプレフィックスは、関連付けられたプールプレフィックスが元のパーティションに戻されます。

    プロビジョニング マネージャーは、接続障害後に再確立された接続を含め、APM がマネージド BNG との接続を確立するたびに検出を実行します。接続がダウンしている間、管理者は BNG の設定を変更できます。APMは、その後の検出中に変更を検出すると、それに応じて調整します。

  • プロビジョニング:管理 BNG のプレフィックスをプロビジョニングおよびプロビジョニング解除します。アドレス マネージャーがプレフィックスの割り当てを管理している間、プロビジョニング マネージャーは BNG と通信してアドレス プールをプロビジョニングします。

接続が復元されると、プロビジョニング・マネージャーはエンティティー・マネージャーに BNG に到達可能であることを通知します。エンティティーマネージャーは、プロビジョニングマネージャーに同期プロセスを開始するように要求します。

プレフィックス再利用の仕組み

BNGのアドレス再利用は、デバイスのアドレスプールから十分に活用されていないプロビジョニングされたプレフィックスを回復し、APMの集中型プールにプレフィックスを戻します。その後、APMは、必要に応じて、アドレスの枯渇に近づいている他のプールにこれらのプレフィックスを再割り当てできます。つまり、プレフィックスの分散は、アドレス空間の利用率と効率性を最大化するために継続的に調整されます。

再利用とは、BNG にフリー アドレスが余っている場合に、BNG のプール ドメインからプール プレフィックスを再利用するプロセスです。再利用しきい値は、プールドメインプロファイル構成で設定します。次に、APMのエンティティ構成でプールドメインプロファイルを参照します。

BNG は、各プール ドメインのフリー アドレス カウントを監視します。フリーアドレス数が再利用のしきい値に達すると、BNGにはアドレスが余っていると見なされます。BNGは、再利用する推奨プールを識別する情報を含む再利用アラームをAPMに送信します。再利用アラームにより、自動再利用プロセスが駆動されます。または、手動でレクラメーション処理を開始することもできます。

再利用は、以下で説明するように、プールをドレインし、プールからプレフィックスを回復することで構成されます。

  • APMがドレインを開始すると、デバイスにメッセージを送信して、プールのアクティブなドレインを開始します。これは、このプールから新しいサブスクライバーが割り当てられないことを意味します。接続ベースのアクセス モデルの加入者 (PPP など) の場合、アクティブなドレインは即時ログアウトと再接続をトリガーします。リースベースの加入者の場合、アクティブなドレインにより、リース更新が拒否されます。どちらのモデルでも、加入者は再接続しますが、ドメイン内の別のプールからアドレスが割り当てられます。

  • プール内にアドレスを使用する加入者がいない場合、プールは完全にドレインされます。そのプール内のすべてのアドレスは空いています。BNG は、プール ドレイン アラーム メッセージを APM に送信します。

APMは、以下のいずれかの方法でアドレス再利用を実行できます。

  • 自動—APMが再利用またはプールドレインアラームを受信したときに発生する完全に自動プロセスとして再利用を設定できます。プロセスをすぐに開始するか、特定の時間帯にのみ実行するか、一定時間待機してからアラームを処理するように指定できます。

  • [手動(Manual)]: show コマンドを使用して、BNG 上の個々のプールのアラームを表示します。次に、 request apm コマンドを発行して、プールからアドレスをドレインし、ドレインされたプールのプロビジョニングを解除し、そのアドレスをリカバリーします。

プレフィックスの自動再利用

APMを有効にして、再利用のタスクを自動的に処理できます。entity-match ステートメントで設定されたように、エンティティに割り当てられたpool-domain-profileで自動再利用を構成できます。

自動再利用を有効にすると、次のアクションが実行されます。

  • APMは、エンティティから送信されたドメイン再利用アラームに応答します。再利用アラームには、再利用するプール名の候補が含まれています。

  • APMは、プールにアクティブドレインを配置するようにエンティティに指示することで、再利用アラームに応答します。プールが完全にドレインされた場合(プールからの未処理のアドレス割り当てがない場合)、エンティティはドメイン プールのドレイン アラームを発生させます。

  • APMは、プールを削除するようにエンティティに指示することで、プールが枯渇したアラームに応答します。APMは、プールプレフィックスを割り当てられたパーティションに戻します。

  • プレフィックスがパーティションに返されると、ドメイン割り当てアラームを発生させる他のエンティティが使用できるようになります。

自動再利用により、エンティティで保持される未使用のアドレスの数を制限できます。自動再利用プロセスには、アクティブ ドレインに影響を与える可能性のあるサービスが含まれるため、構成されたメンテナンス ウィンドウ中にのみ自動再利用を開始するように APM を構成できます。

エンティティに割り当てられたプレフィックスの解放

ネットワーク エンティティに障害が発生し、APM に再接続して、割り当てられたプール プレフィックスをソース パーティションに再利用できない場合は、request apm release entity system-id コマンドを使用できます。このコマンドは、ネットワーク エンティティに関連付けられているすべてのプール プレフィックスとプール ドメインの割り当てを解除します。エンティティの APMi 状態が reachable の場合は、request apm release entity system-id コマンドを使用できません。

到達不能なエンティティからプレフィックスを解放するには、次の手順を使用します。

  1. show apm entity system id コマンドを使用して、エンティティの到達可能性ステータスと、そのプールドメインが保持するプールプレフィックスを表示します。出力は、エンティティが到達可能であり、3つのプールプレフィックスが割り当てられていることを示しています。
  2. エンティティが到達可能な場合、 request apm release entity system id コマンドは失敗します。

  3. show apm entityを入力して、エンティティが到達不能かどうかを確認します。

  4. ステップ 3 のエンティティは到達できないため、 request apm release entity system-id コマンドを入力して再利用を開始できます。APMはプールをプロビジョニング解除し、再割り当てのためにアドレスをソースパーティションに戻します。ステップ 1 で報告されたすべてのプール プレフィックスが解放されます。

アドレスの手動再利用

手動再利用により、きめ細かな制御が可能です。手動再利用では、マネージド BNG のプール ドメインとアドレス プールを綿密に監視する必要があります。

  1. show apm alarms コマンドを使用して、BNG から受信した保留中のアラームをすべて表示します。出力には、アラームステータスがreclaimプールの名前が表示されます。

    reclaimアラームは、プールドメインにアドレスが余っていることを意味します。Infoフィールドには、BNG が再利用を推奨するプールの名前が含まれます。再利用アラームは、プールにアクティブなドレイン セットがあることを意味するものではありません。プールにドレインが設置されていない場合でも、プールはアドレスを割り当てることができます。

  2. request apm drain コマンドを発行して、プールのドレインを開始します。
    手記:

    request apm activate コマンドを発行することにより、開始したドレーンを除去できます。

  3. show apm alarms コマンドを使用して、プールがドレインされたことを確認します。アラーム ステータスには、pool-drained ステータスが表示されます。
  4. request apm reclaim コマンドを発行して、レクラメーション処理を開始します。APMはプールをプロビジョニング解除し、再割り当てのためにアドレスをソースパーティションに戻します。

手動再利用を選択する場合は、再利用するプールの選択に注意してください。ここでは、再利用するプールを選択する際の考慮事項をいくつか紹介します。

  • プールをドレインする場合は、プールドメイン内の他のプールにあるそれらのアドレスを使用するサブスクライバーに対応する必要があります。(ドメイン内の)他のプールには、これらの加入者を吸収するのに十分な空きアドレスが必要です。したがって、プールドメイン内の空きアドレスの数は、ドレインするプール内の使用済みアドレスの数より大きくする必要があります。

    (プール・ドメイン・フリー・アドレス) –(ドレイン・プールのフリー・アドレス)>(ドレイン・プールの使用済みアドレス)

  • プールをドレインするときは、プール ドメインを空きアドレス不足の差し迫った危険にさらさないでください。ドメイン内のフリーアドレス数が配分しきい値を下回ると、配分アラームがトリガーされ、APMはプールにより多くのアドレスをプロビジョニングします。言い換えれば、次の不等式が当てはまらない限り、プールのドレインを開始しないようにしてください。

    (プール ドメインの空きアドレス)–(プールの合計アドレスの排出)>(割り当てしきい値)

タイムスタンプ

show apm entityコマンドを使用して、APMの再利用操作を監視します。ルーターまたは特定のプール ドメインの統計情報を表示すると、コマンド出力に、最終ディスカバリ、最終割り当て、および最終レクラメーション イベントのタイムスタンプが表示されます。タイムスタンプは ISO-8601 形式で、24 時間表示です。

YYYY-MM-DDThh:mm:ssZ

  • T は、日付と時刻の間の区切り文字です。

  • Z は、時刻が UTC タイム ゾーンであることを示します。ルーターの時刻が別のタイム ゾーンを使用する場合、形式はタイム ゾーンを識別するために UTC からのオフセットを示します。

  • UTC より西のタイム ゾーンには、–hh:mm で指定される負のオフセットがあります。

  • UTC より東のタイム ゾーンには、+hh:mm で指定された正のオフセットがあります。

たとえば、次のタイムスタンプは、標準時間を前提として、すべて同じ時刻を示しています。

  • 2020–03–20T15:10:25Z (ロンドン)

  • 2020–03–20T10:10:25-05:00 (ニューヨーク)

  • 2020–03–20T16:10:25+01:00 (パリ)

  • 2020–03–20T23:10:25+08:00 (北京)

APMとKubernetes

APMはKubernetesクラスタ環境で動作します。APMはコンテナ化されたアプリケーションであり、Kubernetesはコンテナのオーケストレータです。コンテナを論理ユニット(ポッド)にグループ化することで、管理を簡素化します。APMコマンドとCLIにより、Kubernetesとのやり取りが簡素化されます。

Kubernetesでは、APMマイクロサービスを自動的に再起動できます。Kubernetes はマイクロサービスをレプリカ セットとしてデプロイするため、ポッドに障害が発生した場合に、マイクロサービスを含むポッドが再起動されるようにすることができます。初期デプロイ時および再起動時に、サービス ポッドは構成の読み込みが完了したことを確認します。また、サービスポッドは、データベースとメッセージブローカーに接続できることも確認します。確認に成功すると、APMサービスが開始されます。

Kubernetesは、複数のノードマシンで構成されるクラスター全体にアプリケーションコンテナを分散して管理するため、APM機能に冗長性を提供します。各ノードは、クラスタ内で 1 つ以上の役割を担うことができます。

  • コントロールプレーン(etcd)ノード:コントロールプレーンノードは、利用可能なノード間でアプリケーションワークロード(ポッド)をスケジューリングする役割を担います。コントロールプレーンノードは、ワーカーロール、ワークロードに関連するアーカイブ状態、ノード可用性の監視、ワークロード状態をサポートします。コントロールプレーンノードは、クラスタ上のアプリケーションの継続的な動作を保証します。

  • ワーカー・ノード - ワーカー・ノードは、アプリケーション・ワークロードのスケジューリング・ターゲットです。

仮想マシンを使用してクラスタ ノードを構築する場合は、仮想マシンが異なる物理ノード上にある必要があります。異なる物理ノードを使用することで、クラスタノードの可用性が最大限に確保されます。ワーカー・ノードに障害が発生すると、Kubernetesコントロール・プレーンが障害を検出します。障害が発生したノードで実行されていたワークロードを、クラスター内の他のワーカー ノードに再スケジュールしようとします。

h

手記:

APMで使用されるデータベース・サービスでは、アプリケーションの高可用性を提供するために、少なくとも3つの物理ワーカー・ノードが必要です。

レプリケーションにより、データベースの冗長性が確保されます。プライマリ・データベース・インスタンスは、1つのレプリカ・データベース・インスタンスに複製されます。各インスタンスは個別のポッドです。奇数のデータベース・センチネル・インスタンスが、プライマリ・データベース・インスタンスとレプリカ・データベース・インスタンスを監視します。センチネルがプライマリ インスタンスの障害を検出した場合、センチネルの過半数が同意する必要があります。次に、センチネルの過半数がレプリカ インスタンスを選択して、プライマリ ロールに昇格させる必要があります。以前のプライマリ・インスタンスがリカバリされると、そのプライマリ・インスタンスはレプリカ・インスタンスの役割を引き継ぎます。

APMでプロビジョニングされたKubernetesオブジェクト

APMは、起動時またはロールアウト時に次のKubernetesオブジェクトを作成します。APMは、ライフサイクル全体を通じてこれらのオブジェクトを使用します。オブジェクトは apm stopで削除されます。

  • 名前空間—APMを実行しているノードマシンの仮想クラスタ。すべてのAPMオブジェクトはjnpr-apmで分離されています。

  • 外部サービス—オブジェクトはセットアップ時に作成され、クラスターのロードバランサー(イングレスコントローラー)によって割り当てられた外部IPアドレスを取得します。クラスタ外の外部サービスは、これらの外部IPアドレスを使用してAPMとの通信を開始します。クラスタがネットワーク・ロード・バランサをサポートしていない場合、クラスタはプライマリ・ノードを外部IPアドレスとして使用します。

  • ConfigMap - データベース サーバー用の構成ファイル(redis.conf)と MGMT 用の初期構成ファイル(juniper.conf)を格納します。

  • PersistentVolumeClaims - 動的なデータストレージ要件を持つコンテナの場合。このオブジェクトには、管理とデータベースのデプロイが含まれます。

  • シークレット—APMi を保護するために必要なキーと証明書を格納します。

APM設定の自動アーカイブ

APMは、最初に起動してロールアウトするときに、初期構成ファイルを使用します。構成ファイルには、工場出荷時のデフォルトの構成ファイルでも、セットアップ時にユーザから提供された構成ファイルでもかまいません。この初期構成ファイルは、ジャンプ ホストのクラスター リポジトリに格納されます。設定の変更がコミットされた後、APM save-config ユーティリティスクリプトコマンドを実行すると、起動時およびロールアウト時に使用される初期構成ファイルを更新できます。

自動アーカイブ機能を使用すると、コミットされた設定のコピーを外部ファイルサーバーに自動的にアーカイブするようにAPMを設定できます。設定が変更されてコミットされるたびに、APMはコミットされた構成ファイルのコピーを外部ファイルサーバに転送します。

構成ファイルの自動アーカイブは、 setup コマンドで設定します。これは、APMを最初に設定するときに使用するのと同じ setup コマンドです。

セットアップ時に自動アーカイブを初期設定しなかった場合、設定変更を外部構成ファイルに自動的に保存する場合は、次の手順を実行します。

  1. setup コマンドを実行します(詳細については、『アドレスプール Manager インストール ガイド』を参照してください)。セットアップ プロセス中に、次のように構成します。

    • [Config Archival copy rollback configs]: True を入力して、ロールバック コンフィギュレーション ファイルをアーカイブします。

    • [Config Archival retain source filename]:管理マイクロサービスのファイルシステムに保存されているファイル名(例:juniper.conf.gz)を使用して構成ファイルをコピーするには、Trueを入力します。False を入力すると、アーカイブされた構成ファイル名の前に接頭辞 apm_<date-stamp>_<time-stamp>_ が付きます。

    • アーカイブシークレットの構成 - SSH秘密キーデータを含むAPM名前空間のKubernetesシークレットの名前を入力します。

      シークレットを指定しない場合は、SSH キー ファイルの入力を求められます。

      • Config Archival ssh-key:SSH 秘密キー ファイルの名前を入力します。

    • [Config Archival scp URL]:構成ファイルがアーカイブされるサーバの SCP(セキュア コピー プロトコル)URL を入力します。URL は scp://user-login@server-fqdn:server-port/absolute-file-path の形式にする必要があります。

      手記:

      サーバー・ポート番号 (server-port) はオプションです。

  2. APM が既に実行されている場合は、 rollout コマンドを実行して mgmt マイクロサービスを更新します。