Juniper BNG CUPSで動的アドレスプールを使用する
Juniper BNG CUPS内のBNGユーザープレーンの高可用性は、加入者グループに基づいています。各加入者グループは、自身の加入者プレフィックス セットを追跡し、プール プレフィックス ルートを含むすべてのセッション状態をバックアップ BNG ユーザー プレーンに正常にスイッチオーバーします。そのため、加入者グループには、独自のプールプレフィックスのセットが割り当てられます。加入者グループごとにプールのセットを事前にプロビジョニングするのではなく、動的プレフィックスソースを使用します。
BNG CUPS コントローラで使用されるダイナミック プレフィックス ソースには、次のものがあります。
- アドレスプールマネージャー(APM):APMは、サブプレフィックスをプールプレフィックスとして使用するために割り当てることができる一連のプレフィックスパーティションを維持するクラウドネイティブアプリケーションです。APMは、gRPCベースのプロトコルであるAPMiを介してBNG CUPSコントローラのCPiと通信します。現在、APM は IPv4 プレフィックスのみを提供しています。
- ローカルリザーブ:ローカルリザーブは、サブプレフィックスをプールプレフィックスとして使用するために割り当てることができるプレフィックスパーティションのBNG CUPSコントローラ設定のセットです。ローカル予約は、IPv4 と IPv6 の両方のプレフィックスに対応します。ローカル予約は、APMi が切断されたときに APM のバックアップ プレフィックス ソースとしても機能します。現在、IPv6 プレフィックスにローカル予約を使用して、IPv6 の非一時アドレス、委任されたプレフィックス、ルーター アドバタイズメント プレフィックスを割り当てる必要があります。
BNG CUPS コントローラによる BNG ユーザ プレーンの設定の一部として、 dynamic-address-pools スタンザは、プール プレフィックスが配分され、再利用される送信元パーティション名を定義します。
パーティションには、次の 4 つのタイプがあります。
-
partition—IPv4 パーティション名
-
v6-dp-partition—IPv6 委任プレフィックス パーティション名
-
v6-na-partition—IPv6 非一時アドレス パーティション名
-
v6-ra-partition—IPv6 ルート アドバタイズメント パーティション名
ローカルリザーブ
ローカル予約は、BNG CUPS コントローラによって設定されたパーティションのセットです。パーティションは IPv4 または IPv6 のいずれかです。ローカル予約パーティションは、 access address-pool-manager スタンザで設定されます。次の例を参照してください。
access {
address-pool-manager {
inet 198.19.224.134;
port 20557;
auto-recovery drain-delay 120;
apportion-delay 60;
local-reserve {
partition middlesex {
family {
inet {
prefix 192.168.192.0/20;
}
}
}
partition v6-na-partition {
family {
inet6 {
prefix 173:162:1::/96;
}
}
}
partition v6-dp-partition {
family {
inet6 {
prefix 3000::/8;
}
}
}
}
}
IPv4パーティション(この例ではmiddlesex )は、APM設定内の同じ名前のパーティションのバックアップパーティションです。この場合、 local-reserve パーティションにはプライベート アドレスのプレフィックスが 1 つあります。APM への接続が失われた場合、IPv4 パーティションとして middlesex を指定した BNG ユーザー プレーンに関連付けられた加入者グループは、APMi 接続が設定された配分遅延時間だけダウンした後、ローカル予約からプライベート プレフィックスを割り当てます。APMに割り当てられたパブリックプールプレフィックスが使い果たされると、サブスクライバーグループ内の着信サブスクライバーには、ローカルリザーブから送信されたプライベートプールプレフィックスからアドレスが割り当てられます。
サブスクライバーは、プライベートアドレスでアクセスが制限される場合がありますが、ネットワークにログインすることはできます。APMi接続が復元されたら、APMをソースとするプールからのパブリックアドレスでプライベートアドレスを割り当てられたサブスクライバーを再アドレス指定することが望ましいです。設定された自動回復ドレイン遅延期間の後、BNG CUPS コントローラは、ローカルリザーブから割り当てられたプールのアクティブなドレインを有効にします。加入者が再接続すると、追加のパブリックプールプレフィックスがAPMから割り当てられ、加入者にパブリックアドレスが割り当てられ、フルサービスを取得します。
また、ローカル予約の一部として設定された 2 つの IPv6 パーティションもあります。これらのパーティションは、非一時アドレス用の IPv6 プール プレフィックスと、IPv6 加入者用のプレフィックス委任アドレスをそれぞれ割り当てます。APMはIPv6パーティションをサポートしていないため、ローカル予約は、IPv6加入者にサービスを提供する加入者グループの動的アドレスプールを送信する唯一のオプションです。
アドレスプールマネージャー
APMは独立したクラウドネイティブアプリケーションであり、BNG CUPSコントローラと同じKubernetesクラスタに導入することも、まったく別のクラスタに導入することもできます。APMは、多くのBNG CUPSコントローラコントロールプレーンインスタンスまたは統合BNGのIPv4パーティションをソースできます。
次のAPM設定例を参照してください。
apm {
inet-pool {
partition middlesex {
prefix 192.32.0.0/16 {
max-prefix-length 24;
}
}
}
entity-match cpi-massachusetts {
pool-domain-profile domainTemplate;
}
pool-domain-profile domainTemplate {
monitoring {
apportion-threshold 200;
reclaim-threshold 457;
}
auto-reclamation {
active always;
}
}
}
APM 構成では、パーティション middlesex にはパブリック IPv4 プレフィックスがあり、そこからプール プレフィックスが配分および再利用されます。
entity-matchスタンザは、APMが接続を受け入れるCPisを識別します。この場合、systemID が cpi-massachusetts の CPi のみが接続を許可されます。CPI は、pool-domain-profile domainTemplate で定義されているように、作成されたプール・ドメインの配分および再利用設定を使用します。
次の例は、APM を動的プレフィックス ソースとして使用するために必要な、対応する BNG コントローラ構成要素を示しています。
groups {
bbe-cpi-0 {
access {
address-pool-manager {
inet 198.19.224.134;
port 20557;
}
address-assignment {
domain-profile v4FramedPoolName {
family {
inet {
preferred-prefix-length 24;
excluded-address-last-octet 255;
}
}
}
}
}
}
}
address-pool-managerスタンザでは、inet ステートメントには APM が使用する外部IPアドレスが含まれています。これは、apm ipユーティリティスクリプトコマンドを使用して取得できます(APMユーザーガイドを参照)。APM がリッスンするデフォルトのポートは 20557 です。コントロール・プレーン・インスタンスがAPMに対して自身を識別するために使用するシステム識別子は、control-plane-instance名です(例:cpi-massachusetts)。APMの設定には、対応するエンティティ一致エントリが必要です。
address-assignment スタンザでは、domain-profiles は、加入者認証フェーズ中に提供されるFramedPool名と一致し、プレフィックス ソース(APM またはローカル予約)からプール プレフィックスを要求する優先プレフィックス長と、割り当てられた動的プールに使用するアドレス除外を含める必要があります。
ドメインの作成、割り当て、再利用
bbe-cpi-0 グループの BNG CUPS コントローラの access address-assignment スタンザで設定された domain-profile ステートメントは、加入者ログインの認証フェーズ中に返される address-pool または FramedPool 属性と一致します。ドメインプロファイルは、パーティションから割り当てるプレフィックスのサイズ、アドレスの除外、および各プールプレフィックスの破棄ルートをインストールするかどうかを定義します。
次の domain-profile の設定例を参照してください。
domain-profile v4pool {
family {
inet {
preferred-prefix-length 24;
excluded-address last-octet 255;
install-discard-routes {
tag 77;
backup-tag 88;
}
}
}
}
domain-profile dpPool {
family {
inet6 {
partition-type delegated-prefix;
preferred-prefix-length 48;
allocation-length 56;
install-discard-routes {
tag 77;
backup-tag 88;
}
}
}
}
加入者がネットワークにログインすると、認証フェーズが成功したことから FramedPool 属性が返されます。 FramedPool が設定の domain-profile と一致する場合、CPi は、関連する加入者グループに対してドメインが作成されているかどうかを確認します。ドメインが存在しない場合、CPi はパーティションソース (APM またはローカルリザーブ) と連携して、 FramedPool 名、加入者グループ名、および関連するルーティング インスタンスの値を接続してドメイン名を作成します。