メインコンテンツまでスキップ

Juniper

以下の手順で、Juniper デバイスのリモートアクセス VPN ライセンスを OpenLM で監視します。OpenLM Broker は SSH でデバイスに接続し、デバイス上で 2 つの Junos OS コマンドを実行して、デバイスにインストールされているライセンスと、デバイスに接続している VPN ユーザーを OpenLM SLM にレポートします。ユーザーの VPN 接続 1 つにつき、フィーチャー remote-access-ipsec-vpn-client のライセンスが 1 つ使用中として数えられます。Broker で別のフィーチャーを指定した場合は、そのフィーチャーとして数えられます。

要件​

開始する前に、次を用意してください。

  • 組織内のマシンにインストールされた OpenLM SLM、または Software License Management Cloud(SLMC) アカウント。
  • SSH で Juniper デバイスに接続できる Windows または Linux のマシンにインストールされ、OpenLM SLM にレポートしている OpenLM Broker v22.2.7.1557 以降。Broker は SSH クライアントをデバイス上ではなく、そのマシン上で実行します。Broker は v21.11.18.730 で Juniper を追加し、この手順で使用する Advanced タブの設定は v22.2.7.1557 で追加しました。
  • Broker のマシンが Windows の場合は、PuTTY のコマンドライン SSH クライアントである plink.exe。単体で、または PuTTY のインストーラーとともに、PuTTY のダウンロードページからダウンロードします。
  • Broker のマシンが Linux の場合は、ssh と sshpass。sshpass は、お使いのディストリビューションのパッケージマネージャーでインストールします(例: sudo apt-get install sshpass)。
  • view 権限を持つ、Broker 用の Juniper デバイスのアカウント。Juniper デバイスを準備するの手順で作成します。
  • Juniper デバイスのホスト名または IP アドレス。

監視機能​

OpenLM Broker を通じた Juniper の現在の監視機能は次のとおりです。

LM Type in the BrokerCommandsLogsQuantityExpiration dateDeniedBorrowingAllocationsReport resolution
JuniperYesNoYesNoNoNoNo55 seconds

フィーチャーごと、および接続している VPN ユーザーごとに、Broker は次の情報をレポートします。

  • Feature name: show system license の License usage の表にある各フィーチャー(例: remote-access-ipsec-vpn-client、dynamic-vpn)。
  • Total: フィーチャーの Licenses installed の数。VPN のフィーチャーの接続数がライセンス数より多い場合、Broker はその合計数を使用中の数まで引き上げます。
  • In use: VPN のフィーチャーでは、show security ike active-peer の出力のうち、ユーザー名がある接続の数。Broker は Licenses used の列を読み取らないため、ほかのフィーチャーはすべて使用中 0 としてレポートします。
  • Username: 接続の AAA username。
  • Workstation: 接続の Remote Address(ユーザーの接続元の IP アドレス)。出力にはコンピューター名が含まれません。
  • Start time: なし。出力には接続時刻が含まれません。
  • License type: Broker はすべてのフィーチャーを Floating としてレポートします。
  • Vendor: Juniper。ただし、Vendors タブでベンダーを追加した場合は、そのタブの最初のベンダーをレポートします。

有効期限、拒否された接続、借用ライセンス、ライセンス割り当ては利用できません。Broker が読み飛ばすフィーチャーについては、既知の制限を参照してください。

OpenLM と Juniper の連携方法​

図: Windows または Linux のマシン上の OpenLM Broker が plink または ssh を実行し、ポート 22 の SSH で Juniper デバイスに接続して、デバイス上で show system license と show security ike active-peer を実行します。Broker はライセンスデータを OpenLM SLM に送信します。OpenLM SLM は EasyAdmin Web アプリケーションで管理します。 OpenLM が Juniper のライセンス使用状況を収集する仕組み

Broker は Windows または Linux のマシン上で実行され、ライセンスデータを OpenLM SLM に送信します。Broker の Data Inquiry コマンドは SSH で Juniper デバイスに接続し、2 つの Junos OS コマンドを実行します。デバイス上のライセンスを一覧表示する show system license と、デバイスの IPsec VPN に接続しているユーザーを一覧表示する show security ike active-peer です。

  • コマンド: ライセンスマネージャーのコマンドは Data Inquiry の 1 つだけで、既定で 55 秒ごとに実行されます。Broker は、そのマシンのオペレーティングシステム用のコマンドを使用します。Windows では、コマンドは plink を実行します。

    plink -hostkey {$hostkey} -ssh -pw {$password} -batch {$user}@<Host> "show system license;show security ike active-peer"

    Linux では、コマンドは sshpass を介して ssh を実行します。

    sshpass -p {$password} ssh -o StrictHostKeyChecking=no {$user}@<Host> show system license;show security ike active-peer

    ライセンスマネージャーを追加すると、Broker は <Host> の部分に License Managers ページの Host を入れます。{$user}、{$password}、{$hostkey} は入力されません。これらとホストは、OpenLM Broker の設定でお使いのデバイスの値に置き換えます。

  • 出力: 出力には、show system license のライセンスの表、インストールされているライセンスキー、接続ごとの 1 行が、次の例のように含まれます。

    License usage:
    Licenses Licenses Licenses Expiry
    Feature name used installed needed
    dynamic-vpn 0 2 0 permanent
    remote-access-ipsec-vpn-client 0 10 0 permanent

    Licenses installed:
    License identifier: JUNOS000000001
    License version: 4
    Valid for device: AB0000AA0000
    Features:
    remote-access-ipsec-vpn-client-10 - remote-access-ipsec-vpn-client 10 users
    permanent

    Remote Address Port Peer IKE-ID AAA username Assigned IP
    198.51.100.7 500 198.51.100.7 not available 0.0.0.0
    203.0.113.10 51034 vpn.example.com jdoe 172.16.0.11
    203.0.113.25 49812 vpn.example.com asmith 172.16.0.12

    この出力から、Broker は remote-access-ipsec-vpn-client を合計 10、使用中 2(jdoe と asmith が使用)としてレポートし、dynamic-vpn を合計 2、使用中なしとしてレポートします。ユーザー名のない(not available)サイト間 VPN のピアである 198.51.100.7 からの接続は読み飛ばします。

  • セッション: 各 Data Inquiry は、一覧表示されたすべての接続をレポートします。OpenLM SLM は、連続するレポートからセッションを組み立てます。Broker は接続をユーザー名とリモートアドレスでまとめます。1 人のユーザーの同じアドレスからの 2 つの接続は、2 つのライセンスを保持する 1 つのセッションとして数えられ、1 人のユーザーの 2 つのアドレスからの接続は 2 つのセッションとして数えられます。

  • サーバーのステータス: Broker は出力を読み取れた場合、出力にフィーチャーが 1 つもなくても、ライセンスサーバーを稼働中としてレポートします。

  • ログファイル: なし。Broker は Juniper のログファイルを読み取りません。

Juniper デバイスを準備する​

Broker は専用のアカウントでデバイスにサインインします。どちらのコマンドに必要なのも view 権限だけで、この権限は定義済みの read-only ログインクラスに含まれるため、アカウントはこのクラスで作成します。

  1. Juniper デバイスで設定モードに入り、read-only クラスのアカウント(例: openlm-broker)を作成します。

    set system login user openlm-broker class read-only
  2. アカウントのパスワードを設定します。

    set system login user openlm-broker authentication plain-text-password

    Junos OS がパスワードの入力を 2 回求めます。

  3. 設定をコミットします。

    commit

ログインクラスとその権限については、Junos OS のドキュメントの Login Classes Overview を参照してください。

Broker のマシンから接続を確認する​

Broker が読み取れるのは SSH クライアントが出力する内容だけなので、最初に Broker のマシン上で手動でコマンドを実行します。Windows では、この確認で、Windows のコマンドに必要なデバイスのホストキーも取得できます。

Windows の場合​

  1. Broker のマシンでコマンドプロンプトを開きます。

  2. アカウントのパスワードとデバイスのアドレスを指定し、-hostkey なしで plink を実行します。

    "C:\Program Files\PuTTY\plink.exe" -ssh -pw <password> -batch openlm-broker@juniper01.example.com "show system license;show security ike active-peer"

    お使いの plink.exe のパスを使用します。plink はまだデバイスのホストキーを知らないため、キーのフィンガープリントを表示して接続を中止します。

  3. key fingerprint is: の次の行から、SHA256: で始まる部分のフィンガープリントをコピーします。

  4. -hostkey とフィンガープリントを指定して、コマンドをもう一度実行します。

    "C:\Program Files\PuTTY\plink.exe" -hostkey SHA256:<fingerprint> -ssh -pw <password> -batch openlm-broker@juniper01.example.com "show system license;show security ike active-peer"
  5. OpenLM と Juniper の連携方法の例のように、出力に License usage の表と、接続している各ユーザーの行が表示されることを確認します。

Linux の場合​

  1. Broker のマシンで、既定で Broker サービスを実行するアカウントである root としてデバイスに接続します。

    sudo ssh openlm-broker@juniper01.example.com "show system license;show security ike active-peer"

    ターミナルでは引用符を付けたままにします。引用符がないと、シェルは show security ike active-peer を Broker のマシン上で実行します。

  2. ssh がデバイスのキーのフィンガープリントを表示して続行するかどうかを尋ねたら、yes と入力します。

    ssh はキーを root の既知のホストに保存し、以降の接続のたびに照合します。

  3. アカウントのパスワードを入力します。

  4. 出力に License usage の表と、接続している各ユーザーの行が表示されることを確認します。

OpenLM Broker の設定​

注意

この手順を開始する前に、OpenLM Broker を Broker のマシンにインストールし、OpenLM SLM にレポートしていることを確認してください。

  1. Broker のマシンでブラウザーを開き、Broker の Web UI(http://localhost:5090/)に移動します。

  2. License Managers ページで Host を確認します。

    OpenLM はこのホスト名でライセンスサーバーを一覧表示します。このフィールドには、Juniper だけでなく、ページ上のすべてのライセンスマネージャーのホストが保持されます。Broker はこの値を接続先のアドレスとして Juniper のコマンドにも書き込みます。この値は後の手順で置き換えます。

  3. License Managers → Add License Manager に移動します。

  4. LM Type から Juniper を選択します。

  5. Port に 22 と入力し、Add を選択します。

    Broker はこのポートを SSH クライアントに渡しません。OpenLM は、ホスト名とポートの組み合わせでライセンスサーバーを識別します。この Broker のほかのライセンスマネージャーがすでに 22 を使用している場合、Broker は Port already exists と表示します。その場合は、使用されていない任意の番号を入力します。

    LM Type が Juniper、ポートが 22 に設定された Add License Manager ダイアログ Juniper をライセンスマネージャーとして追加する

  6. Commands タブで、Periodic commands の下の Data Inquiry を選択します。

    Broker は、そのマシンのオペレーティングシステム用のコマンドを、@ の後に License Managers ページの Host を入れた状態で入力済みにしています。Broker はコマンドを 55 秒ごと(Watch interval (sec))に実行し、60 秒(Timeout (sec))を超える実行を停止します。Use the operating system start/stop commands はオフのままにします。

    Windows 上の Broker の Commands タブ。選択された Data Inquiry、55 秒の監視間隔、60 秒のタイムアウト、Broker が入力した plink コマンドが表示されています Broker が入力した Data Inquiry コマンド

  7. コマンドのプレースホルダーとホストを、お使いのデバイスの値に置き換えます。

    Windows では、{$hostkey} を Broker のマシンから接続を確認するで取得したフィンガープリントに、{$password} をアカウントのパスワードに、{$user} をアカウント名に、@ の後のホストをデバイスのアドレスに置き換えます。plink.exe のフォルダーがシステムの PATH にない場合は、plink を引用符で囲んだフルパスに置き換えます。

    "C:\Program Files\PuTTY\plink.exe" -hostkey SHA256:<fingerprint> -ssh -pw <password> -batch openlm-broker@juniper01.example.com "show system license;show security ike active-peer"

    Linux では、{$password}、{$user}、ホストを置き換えます。root がデバイスのホストキーを保存したら、-o StrictHostKeyChecking=no を削除します。これにより、ssh はキーが変わったデバイスへの接続を拒否します。2 つの Junos コマンドは引用符なしのままにします。Broker はシェルを使わずにコマンドを実行するため、引用符があるとコマンドが失敗します。

    sshpass -p <password> ssh openlm-broker@juniper01.example.com show system license;show security ike active-peer
    Broker はコマンドを OpenLM SLM に送信します

    Broker はパスワードを含むコマンドを設定内にプレーンテキストで保持し、データのレポートのたびに OpenLM SLM に送信します。パスワードをコマンドに含めないようにするには、パスワードをコマンドに含めないの手順に従います。

  8. Advanced タブで、Broker が接続を数える対象のフィーチャーを確認します。

    オプション consumable.license がこのフィーチャーを指定します。既定値は remote-access-ipsec-vpn-client です。お使いのリモートアクセス VPN ライセンスが License usage の表で別のフィーチャー名で表示される場合は、オプションの編集アイコンを選択し、Value にその名前を入力して、Continue を選択します。Broker はこのオプションを、Broker のフォルダーの juniper@<port>.properties(例: juniper@22.properties)に保存します。

    オプション consumable.license が remote-access-ipsec-vpn-client に設定された Advanced タブ 接続している VPN ユーザーを数える対象のフィーチャー

  9. Vendors タブと Log Files タブはそのままにして、Save を選択します。

    Vendors タブにベンダーがない場合、Broker はベンダーを Juniper としてレポートします。

パスワードをコマンドに含めない​

Broker が保存して送信するコマンドにパスワードを含めないようにするには、パスワードをファイルから読み取るか、SSH キーでサインインします。Broker は Windows では Local System として、Linux では既定で root として実行されるため、そのアカウントがファイルまたはキーを読み取れる必要があります。

  • パスワードファイル: Broker サービスのアカウントが読み取れるテキストファイルの 1 行目にパスワードを保存します。Windows では、-pw <password> を -pwfile <file>(例: -pwfile C:\ProgramData\OpenLM\juniper-pw.txt)に置き換えます。Linux では、-p <password> を -f <file>(例: -f /root/juniper-pw.txt)に置き換えます。

  • SSH キー: Broker はパスフレーズを入力できないため、パスフレーズなしのキーペアを作成し、デバイスのアカウントに公開キーを追加します。

    set system login user openlm-broker authentication ssh-ed25519 "<public key>"
    commit

    Windows では、PuTTY に付属する PuTTYgen でキーを作成し、秘密キーを .ppk ファイルとして保存して、-pw <password> を -i <file> に置き換えます。Linux では、root として ssh-keygen でキーを作成し、コマンドから sshpass -p <password> を削除します。その後、ssh は root の既定のキー(例: /root/.ssh/id_ed25519)でサインインします。

オプションについては、PuTTY のドキュメントの Using the command-line options と、Junos OS のドキュメントの User Accounts を参照してください。

OpenLM SLM の設定​

EasyAdmin による自動設定​

ここまでの手順が完了していれば、Broker は Data Inquiry コマンドを実行し、Juniper を OpenLM SLM にレポートします。EasyAdmin でライセンスサーバーを承認します:

  1. EasyAdmin(http://<Server IP>:5015)を開き、Start → Widgets → License Manager - Servers に移動します。

  2. ウィジェット上部の There are N servers pending approval のリンクを選択します。

    Administration - License Manager Servers ウィンドウが開き、保留中のエントリが一覧の先頭に表示されます。

  3. Host Name と Port が Broker のライセンスマネージャーと一致するエントリを探し、その行の末尾にある編集アイコンを選択します。

    Broker は OpenLM Generic プロトコルとともに LM の種類名をレポートするため、エントリの Type は Juniper です。

  4. 必要に応じて Display name で接続名を変更し、Host Name と Port を確認してから APPROVE を選択します。

EasyAdmin による手動設定​

自動設定が失敗した場合:

  1. Start → Administration → License Manager Servers に移動します。

  2. Add LM を選択します。

  3. Display name に接続名(例: Juniper VPN)を入力します。

  4. Type で Juniper を選択します。

    Use Broker がオンになります。

  5. Host Name、Port、Time Zone の下の行に、Broker のライセンスマネージャーのホスト名とポートを入力し、タイムゾーンを選択します。

  6. SAVE を選択します。

設定の確認​

  1. ブラウザーで EasyAdmin を開きます。

  2. Start → Widgets → License Manager - Servers に移動します。

  3. Juniper のライセンスサーバーの Status が Up to date であることを確認します。

  4. Start → Widgets → Feature Usage Status に移動し、remote-access-ipsec-vpn-client の Used が、show security ike active-peer の出力でユーザー名がある接続の数と一致することを確認します。

  5. Start → Reports → License Activity に移動し、Include Current Activity を選択して、Apply を選択します。

    接続している各ユーザーが、Workstation にリモートアドレスが表示された状態で一覧に表示されます。

トラブルシューティング​

Juniper が EasyAdmin に保留中として表示されない場合は、Broker が OpenLM SLM にレポートしていることを確認します。同じ Broker のほかのライセンスマネージャーが EasyAdmin で更新されていれば、レポートは届いています。

ライセンスサーバーが承認済みなのにフィーチャーや使用状況が表示されない場合は、Broker のマシンから接続を確認するの手順でコマンドを手動で実行します。その結果と Broker のログを次のケースと比較します。

  • Command could not be launched の後にコマンドと原因が続く(Broker v26.9.16.1403 以降)。Broker が plink または sshpass を起動できません。原因はメッセージの末尾に示されます。Windows では、コマンドに plink.exe のフルパスを指定します。それより前のバージョンの Broker では、代わりに終了値 -559038737 の Command execution failed が記録されます。
  • Command execution failed の後にコマンド、終了値、出力が続く。SSH クライアントがエラーで終了しました。メッセージの末尾には、SSH クライアントが出力した内容が含まれます。
  • Command result transformation failed。Broker が出力を読み取れません。たとえば、Expiry に permanent 以外の 1 語(invalid、expired など)があるフィーチャーが原因です。既知の制限を参照してください。
  • No feature to associate users too の後に設定された名前が続く。License usage の表にその名前のフィーチャーがないため、Broker はユーザーを数えません。Advanced タブの consumable.license を、お使いの VPN のフィーチャー名に設定します。

Broker のログは Broker のインストールフォルダーの logs フォルダーにあり、Juniper のライセンスマネージャーは port-<port>-Juniper.log(例: port-22-Juniper.log)に書き込みます。Broker はこれらのメッセージを既定のレベルである ERROR で記録します。失敗したコマンドは、パスワードを含むコマンド全体とともにログに記録されます。

既知の制限​

Juniper の監視には次の制限があります。

  • Broker は、有効期限、拒否された接続、借用ライセンス、ライセンス割り当てをレポートしません。Broker が読み取るのはコマンドの現在の出力だけなので、OpenLM での使用状況は、ライセンスマネージャーを設定した時点から始まります。
  • 使用状況が記録されるのは、consumable.license で指定したフィーチャーだけです。ほかのフィーチャーはすべて、Licenses used の値にかかわらず、合計数と使用中 0 としてレポートされます。
  • Expiry に日付(例: 2027-03-30 01:00:00 UTC)があるフィーチャーは OpenLM に表示されません。名前に空白を含むフィーチャーも同様です。
  • Expiry に permanent 以外の 1 語(invalid、expired など)があるフィーチャーがあると、Broker は出力を読み取れません。デバイスがそのフィーチャーを一覧表示している間、OpenLM はそのデバイスのライセンスデータを受信しません。
  • サイト間 VPN のピアなど、ユーザー名のない接続は数えられません。
  • ワークステーションは、コンピューター名ではなく接続元の IP アドレスです。
  • 出力には接続時刻が含まれず、Broker が接続をレポートするのは Data Inquiry で一覧表示されたときだけです。2 回の Data Inquiry(既定では 55 秒間隔)の間に開始して終了した接続はレポートされません。
  • VPN のフィーチャーの接続数がライセンス数より多い場合、Broker は合計数を使用中の数まで引き上げるため、OpenLM の合計数がデバイスのライセンス数より多くなることがあります。
  • 1 つの Juniper のライセンスマネージャーが読み取るのは 1 台のデバイスです。複数のデバイスを監視するには、デバイスごとに、固有のポート番号とコマンド内のデバイスのアドレスを指定した Juniper のライセンスマネージャーを追加します。

ドキュメントチームは、大規模言語モデルを使ってこのページを下書きすることがあります。公開前に、テクニカルライターがすべてのページをレビューし、製品と照らし合わせて検証します。最終的な判断は人間が行います。