---
title: Juniper
description: OpenLM Version 26 で SSH を使用して Juniper デバイスのリモートアクセス VPN ライセンスと VPN ユーザーを読み取るように OpenLM Broker を設定し、EasyAdmin で承認します。
product: OpenLM Version 26 (legacy)
---

> **OpenLM Version 26（レガシー）。** このページは OpenLM Platform ではなくレガシー製品について説明しています。

以下の手順で、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）](https://www.openlm.com/documentation/ja/legacy/slmc/index) アカウント。
- 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 のダウンロードページ](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html)からダウンロードします。
- Broker のマシンが Linux の場合は、`ssh` と `sshpass`。`sshpass` は、お使いのディストリビューションのパッケージマネージャーでインストールします（例: `sudo apt-get install sshpass`）。
- `view` 権限を持つ、Broker 用の Juniper デバイスのアカウント。[Juniper デバイスを準備する](#juniper-デバイスを準備する)の手順で作成します。
- Juniper デバイスのホスト名または IP アドレス。

## 監視機能

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

| LM Type in the Broker | Commands | Logs | Quantity | Expiration date | Denied | Borrowing | Allocations | Report resolution |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| Juniper | Yes | No | Yes | No | No | No | No | 55 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 の連携方法

*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` を実行します。

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

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

    ```text
    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 の設定](#openlm-broker-の設定)でお使いのデバイスの値に置き換えます。
- **出力:** 出力には、`show system license` のライセンスの表、インストールされているライセンスキー、接続ごとの 1 行が、次の例のように含まれます。

    ```text
    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`）を作成します。

    ```text
    set system login user openlm-broker class read-only
    ```

2. アカウントのパスワードを設定します。

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

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

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

    ```text
    commit
    ```

ログインクラスとその権限については、Junos OS のドキュメントの [Login Classes Overview](https://www.juniper.net/documentation/us/en/software/junos/user-access/topics/topic-map/junos-os-login-class-overview.html) を参照してください。

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

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

### Windows の場合

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

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

    ```batch
    "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` とフィンガープリントを指定して、コマンドをもう一度実行します。

    ```batch
    "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 の連携方法](#openlm-と-juniper-の連携方法)の例のように、出力に `License usage` の表と、接続している各ユーザーの行が表示されることを確認します。

### Linux の場合

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

    ```bash
    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 の設定

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

1. Broker のマシンでブラウザーを開き、[Broker の Web UI](https://www.openlm.com/documentation/ja/legacy/openlm-broker/openlm-broker-webui)（[http://localhost:5090/](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` と表示します。その場合は、使用されていない任意の番号を入力します。

    *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** はオフのままにします。

    *Broker が入力した Data Inquiry コマンド*

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

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

    ```text
    "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 はシェルを使わずにコマンドを実行するため、引用符があるとコマンドが失敗します。

    ```text
    sshpass -p <password> ssh openlm-broker@juniper01.example.com show system license;show security ike active-peer
    ```

    :::danger[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`）に保存します。

    *接続している 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 はパスフレーズを入力できないため、パスフレーズなしのキーペアを作成し、デバイスのアカウントに公開キーを追加します。

    ```text
    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](https://the.earth.li/~sgtatham/putty/latest/htmldoc/Chapter3.html) と、Junos OS のドキュメントの [User Accounts](https://www.juniper.net/documentation/us/en/software/junos/user-access/topics/topic-map/junos-os-user-accounts.html) を参照してください。

## 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-のマシンから接続を確認する)の手順でコマンドを手動で実行します。その結果と 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 のライセンスマネージャーを追加します。
