加入者管理のためのアドレス割り当てプール
アドレス割り当てプールの概要
アドレス割り当てプールを使用すると、プールを使用するクライアント アプリケーションから独立して、集中管理された IPv4 および IPv6 アドレス プールを作成できます。authd プロセスは、アドレスがローカル プールから来るか、RADIUS サーバーからのものかにかかわらず、プールとアドレスの割り当てを管理します。
たとえば、DHCP などの複数のクライアント アプリケーションが、同じアドレス割り当てプールを使用して、特定のクライアントにアドレスを提供できます。クライアントアプリケーションは、認証されたクライアントまたは認証されていないクライアントのアドレスを取得できます。RADIUSサーバーやネットワーク照合などに基づいて加入者に対して選択されたプールを、その加入者の一致プールと呼びます。
- アドレス割り当てタイプ
- アドレス割り当てプール内の名前付きアドレス範囲
- リンクされたアドレスプールからのアドレス割り当て
- アドレスプールホールドダウン状態
- 近隣探索ルーターアドバタイズメント用のアドレス割り当てプール
- 指定したアドレスまたはアドレス範囲を除外する
- ライセンス要件
- アドレス割り当てプールの利点
アドレス割り当てタイプ
アドレス割り当てプールは、動的アドレス割り当てと静的アドレス割り当ての両方をサポートします。動的アドレス割り当てでは、クライアントにはアドレス割り当てプールからアドレスが自動的に割り当てられます。IPv4 プールでのみサポートされている静的アドレス割り当てでは、特定のクライアントによって常に使用されるアドレスを予約します。静的割り当て用に予約されたアドレスは、動的アドレス プールから削除され、他のクライアントに割り当てることはできません。
アドレス割り当てプール内の名前付きアドレス範囲
アドレス割り当てプール内に名前付きアドレス範囲を設定できます。名前付き範囲は、アドレス範囲全体のサブセットです。クライアント アプリケーションは、名前付き範囲を使用して、クライアント固有の条件に基づいてアドレスの割り当てを管理できます。たとえば、IPv4 アドレス割り当てプールの場合、特定の DHCP オプション 82 値に基づく名前付き範囲を作成できます。その後、DHCP クライアント要求が指定されたオプション 82 の値と一致すると、指定された範囲のアドレスがクライアントに割り当てられます。
リンクされたアドレスプールからのアドレス割り当て
アドレス割り当てプールをリンクして、アドレス割り当て用のバックアップ プールを提供できます。プライマリまたは一致するアドレスプールに使用可能なアドレスがない場合、デバイスは自動的にリンクされた(セカンダリ)アドレスプールに移動し、割り当て可能なアドレスを検索します。
通常、リンク プールのチェーンの最初のプールがプライマリ プールと見なされますが、一致するプールが必ずしもチェーン内の最初のプールであるとは限りません。
Junos OS リリース 18.1R1 以降、利用可能なアドレスの検索メカニズムは、リンクされたプールのチェーンを経由して行われます。この動作により、DHCP はアドレスを連続して検索できます。
検索メカニズムがどのように機能するかについて、例を挙げてみましょう。A、B、Cの3つのプールのチェーンを考えてみましょう。プールAはプライマリプール、プールBは、RADIUSサーバーから返された情報に基づく特定の加入者の一致するプールです。これらの加入者が使用可能なアドレスを検索するには、次のシーケンスを使用します。
既定では、一致するプール (プール B) が最初に検索されます。
アドレスが見つからない場合、検索はチェーン内の最初のプール (プール A) に移動します。
検索は、使用可能な住所が見つかって割り当てられるまで、または空き住所がないと検索で判断されるまで、チェーン (プール C) をたどって続行されます。
各プールでは、すべてのアドレス範囲でアドレスが完全に検索されます。
linked-pool-aggregation
ステートメントを設定して、一致するプール内の各範囲のアドレスのブロック内で検索を開始し、次にリンクされたプールを連続して検索できます。その後、検索はチェーン内の最初のプールに戻り、チェーン内の最後のプールを通じて、各プール内のすべての範囲のすべてのアドレスが検索されます。
アドレスプールホールドダウン状態
アドレス割り当てプールをホールドダウン状態で設定できます。アドレス プールがホールドダウン状態になると、プールは加入者に IP アドレスを割り当てることができなくなります。この設定では、以前に割り当てられたアドレスがプールに返されるため、アクティブなプールが非アクティブな状態に正常に変換されます。プールが非アクティブのときは、アクティブなサブスクライバーに影響を与えることなく、プールのメンテナンスを安全に実行できます。
近隣探索ルーターアドバタイズメント用のアドレス割り当てプール
近隣探索ルーター アドバタイズメント(NDRA)にアドレス割り当てプールを明示的に割り当てることができます。
指定したアドレスまたはアドレス範囲を除外する
Junos OS リリース 18.1R1 以降では、指定したアドレスまたは連続するアドレスの範囲を除外して、アドレス プールから割り当てられないようにすることができます。
たとえば、特定のアドレスや範囲を静的加入者だけに使用するように予約することができます。アドレスまたは範囲を除外するように設定し、範囲内のアドレスまたはアドレスがすでに割り当てられている場合、そのサブスクライバーはログアウトされ、アドレスの割り当ては解除され、アドレスは除外対象としてマークされます。
ライセンス要件
この機能にはライセンスが必要です。加入者アクセスライセンスの詳細については、「 加入者アクセスライセンスの概要」を参照してください。ライセンス管理に関する一般的な情報については、 ジュニパーライセンスガイド を参照してください。詳細については、製品 データシート を参照するか、ジュニパーアカウントチームまたはジュニパーパートナーにお問い合わせください。
アドレス割り当てプールの利点
アドレス割り当てプール機能は、加入者管理と DHCP 管理の両方をサポートします。
クライアントアプリケーションとは無関係に、アドレスの集中プールを作成できます。
アドレスのブロック、つまり名前付き範囲を指定することで、特定のアドレスプールを使用して、異なるクライアントアプリケーションや、異なる基準セットに一致する加入者に異なるアドレスを提供することができます。
プールを相互にリンクして、プールの空きアドレスが特定の方法で、連続的または連続的に検索されるようにすることができます。
プールからこれ以上アドレスが割り当てられないように指定することで、アドレスプールをアクティブから非アクティブにグレースフルに移行できます。
リンクされたアドレスプールからのアドレス割り当て
アドレス割り当てプールをチェーンにリンクして、アドレス割り当て用のバックアップ プールを提供できます。RADIUSサーバーやネットワークの一致、あるいはその他のルールに基づいて加入者に対して選択されたプールを、その加入者の一致プールまたは一致プールと呼びます。一致するプールは、チェーン内の最初の (プライマリ) プールではない可能性があります。一致するアドレスプールまたはプライマリアドレスプールから割り当て可能なアドレスがない場合、ルーターまたはスイッチは自動的に別のアドレスプールに移動し、割り当て可能なアドレスを検索します。検索で使用可能なアドレスがどこにも見つからなかった場合、検索は停止し、サブスクライバにアドレスは割り当てられません。
検索動作によって、一連のリンク プールに沿って検索がどのように進行するかだけでなく、各プール内のどのアドレス範囲が検索されるかも決まります。検索の開始場所、構成、および以前に割り当てられたアドレスが解放されたかどうかに応じて、検索はチェーン内の次のリンクされたアドレス プールで続行されるか、チェーン内の最初のプールに戻る場合があります。
使用可能なアドレスの検索は、加入者に一致するプールから開始されます。多くの場合、一致するプールはチェーンの最初のプールでもあります。一部のサブスクライバーでは、一致するプールはチェーンのさらに下にあります。たとえば、認証時に一致するいくつかの基準に基づいて、チェーンのプールの1つ目ではなく2つ目を指定するようにRADIUSサーバーを設定できます。別の例として、加入者グループごとに異なるアドレス範囲を指定できます。特定のプールが加入者と一致するかどうかは、異なるアドレス範囲に対してどのプールが構成されているかによって異なります。
次の用語は、検索動作の詳細を説明するために使用されます。
lowAddress - アドレス プール内の特定の範囲内で最も低いアドレス。
highAddress — アドレス プール内の特定範囲内の最上位アドレス。
nextAddress - アドレス プール内の特定の範囲に割り当てられた最後のアドレスの次のアドレス。これは、次に割り当てられる予定のアドレスです。このアドレスと、最後に使用された範囲は、検索の開始点として保存されます。
たとえば、プール A に、192.0.2.1、192.0.2.2、192.0.2.3、192.0.2.4 のアドレスを含む 1 つの範囲があるとします。この場合、192.0.2.1 は lowAddress で、190.0.2.4 は highAddress です。192.0.2.2 がこのプールから割り当てられた最後のアドレスであった場合、nextAddress は 192.0.2.3 になります。
Junos OS リリース 18.1R1 以降では、次の 2 つの方法のいずれかでリンク プールを検索するように設定できます。
連続アドレス割り当て—これはデフォルトの動作です。プールの各範囲にあるすべてのアドレスが検索されます。検索は一致したプールから開始され、チェーン内の最初のプールに移動し、必要に応じて、リンクされた各プールをチェーン内の最後のプールまで連続して続行します。各プールでは、すべての範囲のすべてのアドレスで空きアドレスが検索されます。この方法では、アドレスを連続して割り当てることができます。別のプールが検索される前に、各プールがいっぱいになっている必要があります。
非連続(集約)アドレス割り当て—
linked-pool-aggregation
ステートメントが設定されている場合の動作。最初は、一致したプールの各範囲で特定のアドレス (nextAddress から highAddress まで) のみが検索されます。同じ検索がリンク プールで実行され、必要に応じて、リンクされた各プールをチェーン内の最後のプールまで連続して続行します。その後、チェーン内の最初のプール (一致したプールとは限らない) から検索が再開されます。今回は、チェーンの末尾までのすべてのプールで、すべての範囲のすべてのアドレスが検索されます。
これは基本的な機能ですが、両方の検索の詳細はかなり複雑です。 図 1 は、デフォルトの検索動作を示しています。

たとえば、次のような条件があるとします。
リンクされたアドレス プール A、B、C、D。プール C が一致します。
各プールには、r1、r2、r3 の 3 つのアドレス範囲があります。最後に使用された範囲は、各プールの r2 でした。
フリー アドレスが見つからない場合は、C > A > B > C > D の形式で検索が続行され、停止します。
プール C が検索され、範囲 r2 の highAddress を介して nextAddress が検索されます。
プール C が検索され、範囲 r2 の nextAddress を介して lowAddress が検索されます。
プール C が検索され、範囲 r3 の highAddress を介して nextAddress が検索されます。
プール C が検索され、範囲 r3 の nextAddress を介して lowAddress が検索されます。
プール C が検索され、範囲 r1 の highAddress を介して nextAddress が検索されます。
プール C が検索され、範囲 r1 の nextAddress を介して lowAddress が検索されます。
プール C のすべての範囲とアドレスが検索されたため、検索はチェーン内の最初のプールである A に移動します。
プール A が検索され、範囲 r2 の highAddress を介して nextAddress が検索されます。
プール A が検索され、範囲 r2 の nextAddress を介して lowAddress が検索されます。
プール A が検索され、範囲 r3 の highAddress を介して nextAddress が検索されます。
プール A が検索され、範囲 r3 の nextAddress を介して lowAddress が検索されます。
プール A が検索され、範囲 r1 の highAddress を介して nextAddress が検索されます。
プール A が検索され、範囲 r1 の nextAddress を介して lowAddress が検索されます。
プール A のすべての範囲とアドレスが検索されたため、検索はチェーン内の次のリンク プールである B に移動します。
このプロセスは、すべてのプールのすべての範囲のすべてのアドレスが検索されるまで続きます。プールの検索順序は、C > A > B > C > D の順で、その後停止します。住所が見つかった場所とかどうかによっては、一致するプールが 2 回検索される場合があります。これは、一致するプールがチェーン内の最初のプールでない限り当てはまります。たとえば、プール A がこの条件セットで一致するプールである場合、完全検索は A > B > C > D になります。
図 2 は、 linked-pool-aggregation
ステートメントを含めた場合の検索動作を示しています。

たとえば、デフォルトの例と同じ条件が存在するとします。
リンクされたアドレス プール A、B、C、D。プール C が一致します。
各プールには、r1、r2、r3 の 3 つのアドレス範囲があります。最後に使用された範囲は、各プールの r2 でした。
フリー アドレスが見つからない場合は、C > D > A > B > C > D のように検索が続行され、停止します。
プール C が検索され、範囲 r2 の highAddress を介して nextAddress が検索されます。
プール C が検索され、範囲 r3 の highAddress を介して nextAddress が検索されます。
プール C が検索され、範囲 r1 の highAddress を介して nextAddress が検索されます。
プール C のすべての範囲が nextAddress から highAddress まで検索されたため、検索はチェーン内の次のリンク プール D に移動します。
プール D が検索され、範囲 r2 の highAddress を介して nextAddress が検索されます。
プール D が検索され、範囲 r3 の highAddress を介して nextAddress が検索されます。
プール D が検索され、範囲 r1 の highAddress を介して nextAddress が検索されます。
プール D のすべての範囲が nextAddress から highAddress まで検索されました。プール D はチェーンの最後のプールであるため、検索はチェーン内の最初のプール A に移動します。
プール A が検索され、範囲 r2 の highAddress を介して lowAddress が検索されます。
プール A が検索され、範囲 r3 の highAddress を介して lowAddress が検索されます。
プール A が検索され、範囲 r1 の highAddress を介して lowAddress が検索されます。
プール A のすべての範囲とアドレスが検索されたため、検索はチェーン内の次のリンク プールである B に移動します。
プール B が検索され、範囲 r2 の highAddress を介して lowAddress が検索されます。
プール B が検索され、範囲 r3 の highAddress を介して lowAddress が検索されます。
プール B が検索され、範囲 r1 の highAddress を介して lowAddress が検索されます。
プール B のすべての範囲とアドレスが検索されたため、検索はチェーン内の次のリンク プールである C に移動します。
このプロセスは、すべてのプールのすべての範囲のすべてのアドレスが検索されるまで続きます。プールの検索順序は、C > D > A > B > C > D で、停止します。アドレスが見つかった場所とかどうかによっては、一致するプールがチェーン内の最初のプールであっても、すべてのプールが 2 回検索される場合があります。たとえば、この条件セットでプール A が一致するプールである場合、完全検索は A > B > C > D > A > B > C > D になります。
アドレス割り当てプール構成の概要
アドレス割り当てプール機能は、異なるクライアントアプリケーションで共有できるアドレスプールを作成できるようにすることで、加入者管理機能をサポートします。アドレス割り当てプールは、IPv4 アドレスまたは IPv6 アドレスのいずれかをサポートできます。両方のタイプのアドレスに同じプールを使用することはできません。
アドレス割り当てプールは、[edit access]
階層レベルのaddress-pool
ステートメントで作成するサービス PIC ベースの L2TP LNS アドレス プールや、[edit services nat]
階層レベルの pool
ステートメントで作成する NAT プールとはまったく別のものです。
アドレス割り当てプールを設定するには、次の手順に従います。
参照
アドレス割り当てプール名とアドレスの設定
アドレス割り当てプールを設定するには、プールの名前を指定し、プールのアドレスを設定する必要があります。
IPv4 アドレス割り当てプールを設定するには、次の手順に従います。
IPv6 アドレス割り当てプールを設定するには、次の手順に従います。
プールの名前を設定し、IPv6ファミリーを指定します。
[edit access] user@host# edit address-assignment pool isp_2 family inet6
アドレスプールのIPv6ネットワークプレフィックスを設定します。プレフィックス指定は、IPv6 アドレス割り当てプールを設定する場合に必要です。
[edit access address-assignment pool isp_2 family inet6] user@host# set prefix 2001:db8:2008:2009::/32
動的アドレス割り当てのための名前付きアドレスアドレス範囲の設定
オプションで、アドレス割り当てプール内に複数のアドレスの名前付き範囲(サブセット)を設定できます。動的アドレス割り当て時に、クライアントに特定の名前付き範囲からアドレスを割り当てることができます。名前付き範囲を作成するには、範囲の名前を指定し、アドレス範囲を定義します。
IPv4 アドレス割り当てプール内に名前付き範囲を作成するには、次の手順に従います。
IPv6 アドレス割り当てプール内に名前付き範囲を作成するには、次のようにします。
アドレス割り当てプールと IPv6 ファミリーの名前を指定します。
[edit access] user@host# edit address-assignment pool isp_2 family inet6
範囲の名前を設定し、範囲を定義します。範囲は、範囲内のプレフィックスの下限と上限、または範囲内のプレフィックスの長さに基づいて定義できます。
[edit access address-assignment pool isp_2 family inet6] user@host# set range dsl-range low 2001:db8:2008:2010:2011:0100::/64 high 2001:db8:2008:2010:2011:ffff::/64 user@host# set range fiber-east prefix-length 48
アドレスプールからのアドレス割り当ての防止
指定したアドレスまたはアドレス範囲を除外して、アドレス プールから割り当てられないようにすることができます。たとえば、特定のアドレスや範囲を静的加入者だけに使用するように予約することができます。除外するアドレスまたはアドレス範囲を設定し、そのアドレスまたは範囲内のアドレスがすでに割り当てられている場合、そのアドレスを割り当てられた加入者はログアウトされ、アドレスの割り当ては解除され、アドレスは除外対象としてマークされます。
アドレスまたはアドレスプール内のアドレス範囲を割り当て対象から除外するには、次の手順に従います。
個々のアドレスを指定します。
[edit access address-assignment pool-name family (inet | inet6)] user@host# set excluded-address ip-address
連続するアドレスの範囲を指定し、名前を付けます。
[edit access address-assignment pool-name family (inet | inet6)] user@host# set excluded-range name low minimum-value high maximum-value
例えば、IPv4アドレスプールの以下の部分的な設定では、192.168.0.10から192.168.128.250まで、割り当てるアドレスの範囲r1を定義します。192.168.110.10 という 1 つのアドレスは除外されます。さらに、exclude1 と exclude2 の 2 つの範囲を定義して、プールから割り当てることができない 2 組の連続したアドレスを指定します。
pool v4-pool { family inet { network 192.168.0.0/16; range r1 { low 192.168.0.10; high 192.168.128.250; } excluded-address 192.168.110.10 excluded-range exclude1 { low 192.168.12.0 high 192.168.12.255 } excluded-range exclude2 { low 192.168.98.10 high 192.168.98.200 } } }
同様に、プール v6-pool の設定では、割り当てるアドレスの範囲と、割り当てから除外するアドレスの範囲を定義します。
pool v6-pool { family inet6 { prefix 2016::/64; range r2 { low 2016::1; high 2016::80:ffff; } excluded-range exclude3 { low 2016::7c:a high 2016::7c:ff } } }
除外されたアドレスに関する情報を表示するには、次のいずれかのコマンドを使用できます。
user@host> show network-access address-assignment pool pool-name IP address/prefix Hardware address Host/User Type 192.168.2.1 00:00:5e:00:53:01 user1 DHCP 192.168.2.2 00:00:5e:00:53:02 user2 DHCP 192.168.2.3 00:00:5e:00:53:03 user3 DHCP 192.168.2.4 NA EXCLUDED unknown
user@host> show network-access aaa statistics address-assignment pool pool-name Address-assignment statistics ... Addresses excluded: 1000 ...
アドレス割り当てプール使用量しきい値トラップの設定
使用率(使用率)しきい値トラップを設定することで、アドレスプールまたはアドレスプールのリンクセットで利用可能なアドレスが不足しているという高度な警告を受け取ることができます。使用状況と使用率は同じ意味で使用され、アドレスプール内のアドレスのうち、現在割り当てられている割合を意味します。アドレスプールには、特定の条件がある場合にローカルアドレスサーバーがSNMPトラップを通知できるようにする、以下のSNMPしきい値が関連付けられています。
高利用しきい値—アドレスプールから割り当てられたアドレスの割合がこの値を超えると、高利用率のSNMPトラップが生成されます。このしきい値を超えると、システムは警告メッセージを送信します。
abated-utilization threshold:アドレス プールから割り当てられたアドレスの割合がこの値を下回ると、abated-utilization トラップが生成されます。システムは警告メッセージの送信を停止します。通常、使用率のしきい値は、高使用率のしきい値よりも小さい値に設定します。高く設定することはできません。
しきい値にはデフォルト値はありません。これらのしきい値を設定しない場合、割り当てられたアドレスの割合が 100% に近づいても、システムは差し迫った枯渇の通知を送信しません。システムが out-of-address トラップを送信するのは、アドレス プール内のすべてのアドレスが割り当てられている場合のみです。
Junos OS リリース 19.2R1 以降では、高利用率しきい値と使用率しきい値の両方が設定されていない限り、アドレス外トラップは送信されません。アウトオブアドレス トラップが送信されると、アウトオブアドレス syslog メッセージも送信されます。
[edit access address-assignment]
階層レベルのすべてのアドレスプールに対して、または[edit routing-instance routing-instance-name]
階層レベルの指定されたルーティング インスタンス内のアドレスプールのみに対して、閾値を設定することができます。以下の設定では、[edit access]
設定のみを示しています。
しきい値トラップを設定するには:
IPv4 または IPv6 アドレス プールの高使用率しきい値を指定します。
[edit accessaddress-assignment] user@host# set high-utilization percentage user@host# set high-utilization-v6 percentage
IPv4 または IPv6 アドレス プールの使用率の軽減しきい値を指定します。
[edit accessaddress-assignment] user@host# set abated-utilization percentage user@host# set abated-utilization-v6 percentage
次の例では、IPv4 アドレス プールの上限しきい値を 95% の使用率に、削減しきい値を 90% の使用率に設定します。割り当てられたアドレスの数がアドレス プールの 95% を超えると、高使用率トラップが生成されます。すべてのアドレスがプールから割り当てられるようになると、アドレス外トラップが生成され、アドレス外syslogメッセージが送信されます。割り当てられたアドレスの数がアドレス プールの 90% を下回ると、abated-utilization トラップが生成されます。
[edit accessaddress-assignment] user@host# set high-utilization 95 user@host# set abated-utilization 90
アドレス割り当てプール リンクの設定
アドレス割り当てプール リンクにより、一致するまたはプライマリ アドレス割り当てプールが完全に割り当てられたときにルーターが使用するセカンダリ アドレス プールを指定できます。複数のリンク プールのチェーンを作成できます。たとえば、プール A をプール B にリンクし、プール B をプール C にリンクできます。任意の数のプールをチェーン内で直列にリンクできますが、同じプールとの間で複数のリンクを作成することはできません。たとえば、プール A からプール B とプール C の両方へのリンクを作成することはできません。同様に、プール C はプール A とプール B の両方からリンクできません。その他の考慮事項は、チェーン内のすべてのアドレスプールが同じファミリータイプ(IPv4またはIPv6)でなければならないことです。
加入者に一致するアドレスプールに利用可能なアドレスがない場合、ルーターは自動的にリンクプールに切り替え、そのプールからアドレスを割り当てます。ルーターがリンク プールを使用するのは、一致するアドレス割り当てプールが完全に割り当てられている場合のみです。
Junos OS リリース 18.1 以降、アドレス プールのチェーンからフリー アドレスを見つけて割り当てる方法の動作が変更されました。リンク プールは、次の 2 つの方法のいずれかで検索されるように構成できます。
連続アドレス割り当て—デフォルトの動作。プールの各範囲にあるすべてのアドレスが検索されます。検索は一致したプールから開始され、チェーン内の最初のプールに移動し、必要に応じて、リンクされた各プールをチェーン内の最後のプールまで連続して続行します。各プールでは、すべての範囲のすべてのアドレスで空きアドレスが検索されます。この方法では、アドレスを連続して割り当てることができます。別のプールが検索される前に、各プールがいっぱいになっている必要があります。
非連続(集約)アドレス割り当て—
linked-pool-aggregation
が設定されている場合の動作。最初は、一致したプールの各範囲で特定のアドレス (nextAddress から highAddress まで) のみが検索されます。必要に応じて、同じ検索がリンク プールで実行され、チェーン内の最後のプールまで、連続する各リンク プールで続行されます。その後、チェーン内の最初のプール (一致したプールとは限らない) から検索が再開されます。今回は、チェーンの末尾までのすべてのプールで、すべての範囲のすべてのアドレスが検索されます。
加入者を識別するためにIPアドレスのみを使用するようにRADIUSサーバーを設定する場合は、 linked-pool-aggregation
ステートメントを含めることが望ましい場合があります。通常、加入者は、加入者のセッションIDおよびその他の基準を使用してRADIUSサーバーによって識別されます。IPアドレスのみを使用する場合、 linked-pool-aggregation
ステートメントが設定されていない場合のデフォルトの動作で、次のような問題が発生する可能性があります。加入者は接続を切断でき、そのアドレスを次の加入者に割り当てることができます。2 番目の加入者に対する Acct-Start メッセージは、切断された加入者に対する Acct-Stop メッセージが送信される前に送信される場合があります。Acct-Stopを受信すると、IPアドレスによってのみ識別される新しい加入者を切断できます。
この状況を回避するには、 linked-pool-aggregation
ステートメントを含めるか、識別に(IPアドレスではなく)加入者セッションIDを使用するようにRADIUSサーバーを設定します。
開始する前に、アドレスプールを設定します。 アドレス割り当てプール設定の概要を参照してください。
アドレス割り当てプールを 2 次プールにリンクするには、次のようにします。
例えば、以下の設定では、Pool_B にPool_A、次に Pool_C にPool_Bリンクしています。
[edit access] user@host# set address-assignment pool Pool_A link Pool_B user@host# set address-assignment pool Pool_B link Pool_C
アドレス割り当てプールホールドダウンの設定
アドレス割り当てプールホールドダウン機能(パッシブ ドレインとも呼ばれる)を使用すると、アクティブなアドレス プールを非アクティブな状態に正常に移行できます。プールが非アクティブな状態の場合、現在の加入者に影響を与えることなく、プールのメンテナンス(アドレスの追加、変更、削除など)を安全に実行できます。
アドレス割り当てプールがホールドダウン状態の場合、そのプールから追加のアドレスは割り当てられません。ただし、ホールドダウン状態は、以前にプールから割り当てられたアドレスを使用している既存の加入者には影響しません。既存の加入者が切断されると、その IP アドレスはプール内で空きとしてマークされますが、プールのホールドダウン状態のため、アドレスは再割り当てされません。最終的に、すべての加入者が切断し、そのアドレスがプールに戻されると、プールは非アクティブになります。
アクティブなアドレス割り当てプールをホールドダウン状態にするには、次のようにします。
DHCP ローカル アドレスプールのラピッド ドレインの設定
プールをアクティブ/ドレインモードに設定することで、DHCPローカルサーバーに特定のローカルアドレスプールからのアドレス割り当てを強制的に停止させることができます。このモードでは、サーバーは、そのプールから割り当てられたアドレスを既に使用しているサブスクライバーを正常に終了し、別のプールに移行できます。DHCP 加入者が、アクティブ ドレイン モードに設定されたプールから IP アドレスのリースを(T1 更新時に)更新しようとすると、DHCP ローカル サーバーは加入者の更新要求に対して NAK で応答します。この応答により、加入者はリースの再ネゴシエーションを強制されます。次に、サーバーは、アクティブ ドレイン用に構成されていない代替アドレス プールから新しい IP アドレスを割り当てます。
アクティブ ドレイン モードは、アドレス プールから加入者を迅速にドレインする方法を提供します。したがって、加入者向けに設定されたリース時間が長いほど、アクティブ ドレイン モードがより有用になる可能性があります。プールにアクティブ ドレイン モードを設定していない場合、そのアドレスの割り当てを停止するには、パッシブ ドレイン モードを設定するか、プールを削除する必要があります。
パッシブ ドレイン モードでは、アドレス プールがホールドダウン状態になります。プールから割り当てられるアドレスはこれ以上ありませんが、プールから割り当てられたアドレスを現在使用している加入者は影響を受けません。既存のサブスクライバーはエージングアウトできます。加入者が切断する(またはオペレーターが切断する)と、アドレスは解放されますが、再割り当てすることはできません。最終的に、すべてのサブスクライバーがアドレスを解放し、プールはアクティブではなくなります。アクティブな加入者のリースは要求に応じて更新されるため、パッシブ ドレイン モードは、プール内のすべてのアドレスを回復するのにアクティブ ドレイン モードよりもはるかに長い時間がかかる場合があります。
プールを削除すると、リースの期限が切れて、加入者が再ネゴシエートして新しいリースを取得するまでの間、プールアドレスを使用している現在の各加入者のトラフィックが中断されます。サーバーは、削除されたプールからアドレスを持つすべての加入者を削除します。サブスクライバーはリースを延長しようとしますが、リースがサーバーで削除されたため失敗します。その後、加入者が新しいリースを再ネゴシエートしようとすると、別のプールまたは RADIUS からのアドレスが付与される場合があります。
アドレス プールが空になる前に、アクティブ ドレイン設定を削除できます。この場合、このプールのアドレスをまだ持っている加入者に対してリース延長が付与される場合があります。設定が削除されると、一部の加入者はサーバーによってログアウトされる処理中であるため、この回復はベスト エフォートです。これらの加入者はプールに回復できず、リースを再ネゴシエートする必要があります。これらのサブスクライバーには、このプール (再びアクティブになるため) または代替プールのいずれかのアドレスが割り当てられます。
DHCP クライアントは、アドレス プールが枯渇しているという通知を受信できなかった場合、このプールを使用する加入者にリースの延長を許可し続けることができます。この状態は、アドレスがプールによって回復されるべき T1 時間(T2 時間まで)を超えてクライアントにバインドされたままである場合に示されます。この状況では、アクティブ ドレイン構成を削除してから、プール用に再構成して、プールがタイムリーにドレインされるようにします。
認証dやjdhcpdが再起動された場合、あるいはグレースフルルーティングエンジンがスイッチオーバーされた場合、ログアウトを開始するためにNAKが送信されていない一部の加入者は、プールアドレスを引き続き使用する可能性があります。再起動または GRES が完了すると、authd は jdhcpd に、アクティブドレイン用に設定されたプールからのアドレスをまだ持っている加入者のリストを含む通知を送信します。その後、プールの排水を続行できます。
Junos OS リリース 18.4R1 以降では、アドレス プールが削除されたことやドレイン中であることを authd が DHCP プロセスに通知した場合の後続の動作は、アドレス割り当ての方法によって決まります。
アドレスがオンデマンドで割り当てられる場合、プール内にそのアドレスを持つファミリーは、プールが削除されるとすぐにログアウトされるか、DHCP の更新または再バインド メッセージを受信すると、ドレイン プロセスによって正常にログアウトされます。
アドレスが事前に割り当てられている場合、プールが削除されると両ファミリーのアドレスが直ちに削除され、DHCP 更新または再バインド メッセージを受信するとドレイン プロセスによって正常に削除されます。
DHCP ローカル サーバーがアドレス プールからのアドレス割り当てを停止するように設定するには、次の手順に従います。
show network-access aaa statistics
コマンドを使用して、プールにアクティブ ドレインが構成されていることを確認できます。
user@host> show network-access aaa statistics address-assignment pool pool1 Address assignment statistics Pool Name: pool1 Out of Memory: 0 Out of Addresses: 0 Address total: 33009 Addresses in use: 1 Address Usage (percent): 0 Pool drain configured: yes
アクティブ ドレイン機能は、プレフィックス アドレスの保持よりも優先されます。アドレスを保持することで、ACI(アクセス回線識別子)に基づいて、同じ委任されたプレフィックスが加入者に割り当てられるようにすることができます。プレフィックスが保存されている加入者がログアウトすると、ACIとプレフィックスがアドレス保持テーブルに保存されます。その加入者が再度ログインしようとすると、アドレスと ACI がテーブルで検索されます。
アクティブ ドレイン モードは、この動作に影響します。プレフィックスが現在アクティブ ドレイン モードに設定されたプールの一部である場合、プレフィックスはテーブルから削除され、加入者が再度ログインを試みたときに加入者に割り当てられません。
クライアントがログアウト処理中にアクティブ ドレインが取り消された場合、プレフィックスと ACI 文字列はテーブルに保存されます。この場合、サブスクライバが再度ログインしたときに、プレフィックスをそのACI文字列に割り当てることができます。ただし、クライアントがすでにログアウトし、テーブルからプレフィックス/ACI アソシエーションがクリアされた後にアクティブ ドレインがキャンセルされた場合、後続のログイン時にサブスクライバは再アクティブ化されたプールからプレフィックスを取得し、プレフィックスが異なる可能性があります。
参照
スタティック アドレス割り当ての設定
必要に応じて、特定のクライアントの特定のアドレスを予約することで、静的 IPv4 アドレス バインディングを作成できます。アドレスは、別のクライアントに割り当てられないように、アドレス割り当てプールから削除されます。アドレスを予約するときは、クライアント ホストを識別し、クライアントの MAC アドレスと割り当てられた IP アドレスの間にバインディングを作成します。IPv6 アドレス割り当てプールは、静的アドレス バインディングをサポートしません。
IPv4アドレスの静的バインディングを設定するには:
AAA の重複 IPv4 アドレス保護の設定
Junos OS リリース 14.1 以降では、AAA を使用して IPv4 アドレスを供給する場合、重複アドレス保護を有効にして、アドレスが複数回使用されるのを防ぐことができます。有効にすると、外部サーバーから受信した以下の属性がチェックされます。
Framed-IP-Address
Framed-Pool
その後、ルーターは次のいずれかのアクションを実行します。
アドレスがアドレスプール内のアドレスと一致する場合、利用可能な場合、そのアドレスはプールから取得されます。
アドレスがすでに使用中である場合、そのアドレスは利用不可として拒否され、そのアドレスを使用している既存の加入者はそのまま残ります。
重複アドレス保護を設定するには:
Junos OS リリース 18.4R1以降、 reassign-on-match
オプションを含めることで、アドレス保護が設定されている場合、オプションで現在使用中のアドレスの再割り当てを有効にすることができます。設定されている場合、ルーターは既存の加入者を切断し、新しい加入者は再ネゴシエートできます。この設定の結果、使用中のアドレスは常に新しい加入者に再割り当てされます。
このオーバーライド機能の使用例の 1 つは、モバイル加入者がゲートウェイ GPRS サポート ノード(GGSN)から誤ってドロップされた場合に発生しますが、GGSN は加入者の L2TP セッションを一定期間稼働させ続けます。顧客が別のノードを介して再接続しようとすると、元のセッションがまだ稼働しているため、セッションは接続できません。アドレスの再割り当てにより、新しいセッションが既存のセッションをプリエンプトし、加入者は再接続できます。
既存の加入者は、アドレスがRADIUS送信元アドレスプールからのものである場合にのみ切断されます。アドレスがローカルに設定されたアドレスプールからのものである場合、既存の加入者セッションはそのまま残ります。
ローカルに設定されたアドレス プールに含まれるアドレスを RADIUS が割り当てているときは、アドレス コリジョンが発生する可能性が高くなるため、 reassign-on-match
オプションを使用しないでください。RADIUS 送信元のアドレスとローカル アドレス プールを重複させないことを推奨します。
reassign-on-match
オプションは次のように機能します。
加入者は、指定されたIPアドレスとアクセスをネゴシエートします。
ルーターは、そのアドレスが使用中かどうか、およびそれがどこから来たのかを判断します。
加入者がそのアドレスですでにログインしている場合、そのアドレスはローカルに設定されたプールの一部ではなく、アドレス保護が有効になります。
ルーターは新しい加入者にNAKを送信し、要求を拒否します。
ルーターは、既存の加入者に切断要求を送信します。切断要求には、ログアウトの原因を報告するための終了 ID が含まれています。
新しい(拒否された)加入者は再ネゴシエートでき、IPアドレスが割り当てられます。
加入者がそのアドレスですでにログインしており、そのアドレスがローカルアドレスプールから割り当てられた場合:
ルーターは新しい加入者にNAKを送信し、要求を拒否します。
ルーターは既存の加入者に切断要求を送信しません。
既存の重複アドレス保護設定に reassign-on-match
を追加すると、既存の加入者に対してただちに有効になります。同様に、設定から reassign-on-match
を削除すると、その設定はただちに有効になるため、使用中のアドレスを使用した後続のアクセス要求によって既存の加入者が終了することはありません。
アドレスの再割り当てを有効にするには、次の手順に従います。
[edit access address-protection] user@host# set reassign-on-match
参照
例:アドレス割り当てプールの設定
必要条件
ネットワーク アクセス アドレス割り当てプールを作成します。使用率が 100% に達したときにプールを自動的に拡張するには、新しいプール範囲を元のプール サイズに一致させるには、プールごとに異なるネットマスクを使用します。
概要
構成
この例では、IPv4 DHCP クライアント(isp_1
)用のプールと、ルーターのアドバタイズに使用するプール(chi-fiber-ra
)の 2 つのプールを作成するアドレス割り当てプール設定を示しています。
CLIクイック構成
[edit access] address-assignment { network-discovery-router-advertisement chi-fiber-ra; pool isp_1 { family inet { network 192.168.0.0/16; range southeast { low 192.168.102.2 high 192.168.102.254; } range northeast { low 192.168.119.2 high 192.168.119.250; } host host.example.net { hardware-address 00:00:5E:00:53:90; ip-address 192.168.44.12; } dhcp-attributes { option-match { option-82 { circuit-id fiber range northeast; } option-82 { circuit-id cable_net range southeast; } } boot-file boot.client; boot-server 192.168.200.100; grace-period 3600; maximum-lease-time 18000; netbios-node-type p-node; router 192.168.44.44 192.168.44.45; } } } pool chi-fiber-ra { family inet6 { prefix 2001:db8:2008:2009:2010::/48; range fiber3 { low 2001:db8:2008:2009:2010::1/64; high 2001:db8:2008:2009:2010::5/64; } } } }
この例では、southeast
と northeast
の 2 つの名前付きアドレス範囲を含む isp-1
という名前の IPv4 アドレス割り当てプールを作成します。アドレス割り当てプールには、クライアントhost host.example.net
用の静的バインディングも含まれています。ISP_1プール構成には、プールがDHCPクライアントに使用されることを示すdhcp-attributes
ステートメントも含まれています。オプション 82 circuit-id
エントリが文字列 fiber
と一致する場合、DHCP はクライアントにnortheast
範囲のアドレスを割り当てます。オプション 82 circuit-id
が文字列 cable_net
と一致する場合、DHCP はsoutheast
範囲からアドレスを割り当てます。
この例で作成される 2 番目のアドレス割り当てプールは chi-fiber-ra
です。構文の冒頭にある neighbor-discovery-router-advertisement
ステートメントは、この名前付きアドレス割り当てプールがルーターのアドバタイズに使用されることを指定します。この例の最後にある構文では、 chi-fiber-ra
という名前のアドレス割り当てプールを設定します。
変更履歴
サポートされる機能は、使用しているプラットフォームとリリースによって決まります。特定の機能がお使いのプラットフォームでサポートされているかどうかを確認するには、 Feature Explorer を使用します。
reassign-on-match
オプションを含めることで、アドレス保護が設定されている場合、オプションで現在使用中のアドレスの再割り当てを有効にすることができます。