ライセンスプロキシ – SSHトンネル

これはユーザーがRescaleの管理ページでSSHトンネルモードを使用してライセンスプロキシを設定するためのステップバイステップのガイドです。

SSHトンネルはRescale上で実行されるジョブからお客様のオンプレミスのライセンスサーバーへアクセスするための安全な方法です。Rescaleは、クラウド上にお客様専用のプロキシサーバーを用意し、プロキシサーバーはソフトウェアからのライセンスポーリング要求をお客様のオンプレミスのローカルなライセンスサーバーに転送します。この方法は、安全な暗号化を提供します。- 全てのライセンス要求は、暗号化されたSSHトンネルを経由します。Rescaleのプロキシサーバーへの接続は、月額使用料がかかります。

ユーザーの会社における役割:

  • ユーザーは、IT/ネットワーク管理者であること。
  • ユーザーは、ファイアーウォールルールを含むゲートウェイデバイスの設定変更ができること。
  • ユーザーは、オンプレミスのライセンスサーバーの管理者権限があること。

Rescaleに対するユーザーの役割:

  • ユーザーは、Rescale上にアカウントを持っていること。
  • ユーザーのRescale上のアカウントは、オーガナイゼーションの管理者であること。オーガナイゼーションの管理者になるためには、support-japan@rescale.com までご連絡ください。

ライセンスサーバーのコンピューターと権限: SSHトンネルを実行するマシン(通常は、ライセンスサーバー)の必要条件:

  • Port 22での外方向のSSH接続が許可されていること。または、デフォルト以外のSSHポートを使用する場合、そのポートでの外方向のSSHアクセスが許可されている必要があります。
  • SSH鍵のペア(秘密鍵と公開鍵)を生成し、ライセンスサーバーのマシンまたはSSHでライセンスプロキシへ接続する必要があるコンピューターに保存していること。SSH鍵のペアを生成するには、こちらの「SSH鍵の生成」の手順に従ってください。
  • Windows の場合: Plink、PuTTY、PuTTYgen、Pageantを含むオープンソースのSSHバンドルがダウンロードされていること。バンドルはこちらからダウンロードできます。

ライセンスの必要条件:

  • ライセンスファイルは、ノードロックではなく、フローティングライセンスであること。
  • ライセンスファイルのベンダーポートを固定すること。FlexLMやRLM (例: ANSYS、STAR-CCM+、Converge、Comsol等)のライセンスポートの固定方法については、こちらをご覧ください。
  • 社内ネットワークのパブリックIPアドレス。これは、多くの場合、ゲートウェイ/ルーター/ネットワークデバイスのパブリックIPアドレスが該当します。
    • Mac/Linux の場合、ターミナルから curl ifconfig.me とすることでパブリックIPアドレスを取得することができます。
    • Windowsの場合、ターミナルから nslookup myip.opendns.com resolver1.opendns.com を実行し、Non-authoritative answer の項目より取得します。
  • オンプレミスのライセンスサーバーのホスト名。ホスト名は、ライセンスサーバ上のターミナルから hostname を実行すると取得できます。
  • ライセンスを所有するソフトウェアと、そのソフトウェアライセンスに関連付けられたライセンスポート番号とベンダーポート番号。
    • ライセンスポート番号は、ライセンスファイル内の SERVER (FLEXlm)/HOST (RLM) の行の末尾にある番号で確認することができます。以下に、いくつかのソフトウェアの標準的なライセンスポート番号を示します。
SoftwareLicense port
ANSYS1055 or 2325
STAR-CCM+1999
ABAQUS27000
COMSOL1718
CONVERGE2765
LS-DYNA31010 (and no vendor port)
  • ベンダーポート番号は、ライセンスファイル内の VENDOR(FLEXlm)または ISV(RLM)の行の末尾にある番号で確認することができます。もし、該当部分に番号が表示されていない場合は、ベンダーポート番号を固定してください。リンク先の記事では、ライセンスログファイルを確認することで、ベンダーポート番号が固定されていることを確認する方法が記載されています。

このセクションでは、Rescaleの管理画面でライセンスプロキシを設定する手順を説明します。オーガナイゼーション管理画面のライセンスプロキシの設定は、こちらよりアクセスすることができます。

  • アカウントからRescaleの管理画面へ移動し、ライセンスプロキシの設定を行います。
  • Integrations >> License Proxies に移動します。
  • Add New を選択します。
  • 以下のスクリーンショットのような画面が表示されます。
  • ライセンスプロキシに一意な名前をつけます。
  • 「License Proxy Mode」をSSH Tunnel に選択します。
  • SSH Settings のセクションにライセンスサーバーのSSH公開鍵を貼り付けます。この方法がわからない場合は、こちらのページの「SSH鍵の生成」のセクションをご覧ください。
  • また、デフォルトのSSHポート番号(22)ではなくSSHポート番号を変更して使用する場合は、SSH Key フィールドの右下にある Specify an additional SSH のオプションを使用して、SSHポート番号を追加することができます。例えば、SSHポート番号を443として使用している場合、以下のように Specify an additional SSH port を選択して443を追加します。
  • Allowed IP (or CIDR range) のフィールドに、ライセンスプロキシへのSSHアクセスを許可するIPアドレスを追加します。これは、多くの場合、会社のオンプレミスネットワークのパブリックIPアドレスになります。パブリックIPアドレスを知る方法は上記をご覧ください。ライセンスプロキシへのアクセスをローケーションで制限する場合は、CIDR ルールが必要になります。物理的なロケーションに関わらず、社内の全ユーザーはこのSSHトンネルの接続が疎通している限り、Rescaleを使ってジョブを実行することができます。複数のライセンスサーバーが同じネットワーク内にある場合、アクセスルールにその物理的なロケーションのパブリックIPアドレスを追加する必要があります。
  • 「Allowed IP」のフィールドに複数のIPアドレスを追加したい場合は、Allow another IP/CIDRボタンをクリックしてください。
  • ここから、「License Hosts」セクションにライセンスポート情報を追加します。
  • オンプレミスのライセンスサーバーマシンの名前解決可能なホスト名を入力します。ライセンスサーバーのホスト名の見つけ方は上記の「前提条件」のセクションをご覧ください。
    • ホスト名は、FQDN(完全修飾ドメイン名)ではなく、ピリオド (.) を含まないでください。
  • Software(s) のドロップダウンから、ライセンスプロキシとして設定するソフトウェアを選択します。ソフトウェアの項目で、設定したいソフトウェアを全て選択してください。例えば、COMSOL Multiphysics をバッチで使用し、さらにデスクトップで COMSOL Multiphysics GUI を使用する場合、ソフトウェアの入力で、 COMSOL Multiphysics と COMSOL Multiphysics GUI の両方を選択する必要があります。その後、各ソフトウェアに対して、以下を行います。
    • ライセンスポート番号を設定します。このポートは、ジョブがライセンスをチェックアウトする際に参照されます。これは、ライセンスサーバーマシン上のオンプレミスアプリケーションによって使用されているライセンスポートです。
    • ベンダーポート番号を入力します。これは、ソフトウェアアプリケーションで使用するベンダーデーモンポートです
    • FlexLMまたはRLMライセンスサービスのライセンスポート番号およびベンダーポート番号の見つけ方は上記の「必要な情報」のセクションをご覧ください。
    • LS-DYNAのように、LSTCやDynamoreのライセンスサービスを使用するアプリケーションは、ベンダーポート番号は必要ないので、空欄にしてください。

詳細設定

また、ライセンスホストセクションの右下にある「トグルアイコン」を使って、以下のように詳細設定を行うことができます。

  • この設定は、複数のソフトウェアアプリケーションをオンプレミスの異なるマシンでホストしているが、同じポート番号を使用している場合に用います。このような場合、アプリケーション毎に異なるオンプレミスマシンにマッピングされる「プロキシ」ポートを選択し、ソフトウエアのリストから対応するアプリケーションを選択します。

追加ポート番号の指定

  • このオプションは、アプリケーションが一つのライセンスポート番号を使用しているが、複数のベンダーポート番号(例: PowerFLOWなど)または複数のライセンスポート番号(例: ANSYSなど)を使用している場合に用いられます。以下のように、+ Specify an additional license port オプションを選択し、複数のベンダーポート番号またはライセンスポート番号を追加することができます。「+追加ライセンスポートの指定」オプションを選択し、ソフトウェアの複数のベンダーポートまたはライセンスポートを追加することができます。

他のライセンスサービスの指定

  • 複数のライセンスサービスが1台のライセンスサーバーでホストされており、ライセンスプロキシを介して追加のライセンスサービスに接続したい場合は、以下に示すように、+ Specify another license service オプションを選択し、同様に必要なポート情報を追加します。

ライセンスプロキシを他のライセンスホストへ接続

  • ホスト名とIPアドレスが異なるライセンスサーバーで、オンプレミスのマシンへライセンスをホストしているアプリケーションを追加で接続したい場合、以下のように、+Connect this proxy to another on-premise license host オプションを選択することが できます。
  • すべての設定が完了したら、ライセンスプロキシ画面の下部にある Launch License Proxy ボタンをクリックします。
  • ソフトウェアのポート番号の情報は、ライセンスファイル(FlexLMまたはRLM)から取得できます。
  • 上記の変更を行った後に、Launch License Proxy ボタンをクリックします。
  • その後、以下のようなステータスの画面が表示されます。
  • ライセンスプロキシが起動すると、画面の上部に StatusInfo セクションが表示されます。
  • Status セクションは、以下を示します。
    • Proxy: ライセンスプロキシの起動が成功しているかどうかを示します。ステータスが UP と表示されている場合は、プロキシが正しく起動したことを示します。
    • Last Sync: 最後に行った設定変更が正常に適用されているかどうかを示します。ステータスがSUCCESSFUL と表示されている場合は、最後の同期が成功したことを示しています。
    • Connections: ライセンスプロキシのIPアドレスとポート番号でリッスンしているアクティブな接続がある場合は、ステータスがACTIVE と表示されます。
    • 注意: Status セクションのステータスが黄または赤で表示された場合、最後の同期が成功しなかったか、ライセンスプロキシにアクティブな接続がないことを示します。このような場合、support-japan@rescale.com までご連絡ください。
  • Info セクションは、ライセンスプロキシのパブリックIPアドレスが表示されます。

ライセンスプロキシの起動後、以下の手順でSSHトンネルを接続します。

  1. SSH鍵ペアがライセンスサーバーマシン上に存在することを確認します。こちらのページの「SSH鍵の生成」のセクションをご覧ください。

    Windowsでは以下の手順も行ってください
    • PuTTYのツール一式を単一のフォルダーにダウンロードしていることを確認します。例えば、フォルダーを C:> Documents > Rescale tunnel とすると、このフォルダーには以下のものが含まれます。
      • Plink – 実行ファイルの実行に
      • PuTTY – to be used as SSH terminal
      • PuTTYgen – to generate the (private/public) key pair
      • Pageant – to enable private key for connection
    • SSH秘密鍵とSSH公開鍵も同じフォルダーに保存します。

2. ライセンスプロキシの設定画面でSSH公開鍵を貼り付けます。先頭や末尾の文字が欠けていないこと、余分な空白が含まれていないことを確認してください。

  • Linux: ターミナルで cat ~/.ssh/id_rsa.pub を実行し、出力結果をSSH Keyのフィールドに貼り付けてください。
  • Windows: PuTTY Key Generatorから直接SSH公開鍵をコピーするか、SSH公開鍵を保存したファイルをテキストエディターで表示します。

3. バッチスクリプトをダウンロードします。Setup セクションの Download Batch Script ボタンをクリックするか、クリップボードのアイコンをクリックしてバッチスクリプトをクリップボードにコピーします。

4. Windowsの場合は、SSH秘密鍵をPagentにインポートします。

  • pageant.exe を開いて、キーマネージャーを起動します。pagent.exe は、Windosws タスクバーで起動する場合があります。
  • タスクバーから pageant.exe のアイコンを探し、右クリックして Add Key を選択します。
  • SSH秘密鍵を選択し、 Open をクリックします。
  • 上記の手順でSSHに関連する全てのファイルを単一のフォルダーにまとめたら、コマンドプロンプトを開き、そのフォルダーへ移動します。

5. 以下のように、シェルスクリプトに記載されているコマンドを、 ssh または start で -v -N & のオプションを追加して実行します。

  • Linux: ssh username@license-proxy-name.tunnel.rescale.com -R 1055:on-prem-license-server-1:1055 -R 2325:on-prem-license-server-2:2325 -R 49281:on-prem-license-server-3:49281 -R -v -N &
  • Windows: start "SSH Tunnel 1" plink.exe -ssh username@license-proxy-name.tunnel.rescale.com -R 1055:on-prem-license-server-1:1055 -R 2325:on-prem-license-server-2:2325 -R 49281:on-prem-license-server-3:49281 -v -N

この地点で、ライセンスサーバーとRescale上のライセンスプロキシとの間でSSHトンネルが確立しているはずです。

注意点

  • SSHトンネルは、Rescaleまたはオンプレミスでライセンスプロキシを介してライセンスのチェックアウトするジョブを実行するときには、常に稼働している必要があります。ジョブの実行中にSSHトンネルが何らかの理由で切断すると、ジョブはライセンスのチェックアウトに失敗します。
  • このため、Rescaleでは、SSHトンネルスクリプトをラップトップではなく、ライセンスサーバマシンまたは稼働率の高いコンピュータから実行することを推奨しています。

接続をテストし、設定を確認するには以下の手順を行います。

  1. ライセンスプロキシ設定画面の License Hosts セクションの Check License Availability をクリックすると、利用可能な全てのライセンスフィーチャーとライセンス数が表示されます。
  • 現在、Check License Availability は、ANSYS、STAR-CCM+、ABAQUS (Flex)、LS-DYNA などのFlexLMとDynamore (LSTC) のライセンスサービスを使用しているアプリケーションのみ対応しているので、ご注意ください。
  • RLM (Converge、MixITなど)や DSLS のライセンスサービスを使用しているアプリケーションの場合、Check License Availability は何も表示されません。
  • FlexLM または RLM のライセンスサービスにおいて、Check License Availability が The license server is down or not responding と表示された場合、次のいずれかに該当します。
    • SSHトンネル接続が正しく設定できておらず、SSHトンネルが UP していない。
    • オンプレミスのライセンスサーバーがアクティブでないか、オンプレミスのライセンスサーバーで現在提供されているライセンスプロセスがアクティブでない。IT/ネットワークの管理者に連絡してファイアウォールの設定を確認してください。または、ライセンスサーバーの管理者に連絡してライセンスサーバーの状態を確認してください。
    • オンプレミスのライセンスサーバマシンでライセンスが提供されていない。
  1. Rescaleのアカウントにログインして、テストジョブを投入する。
    • 画面左上の +New job ボタンをクリックして、新規ジョブを作成します。ソフトウェアのセクションでテストする Software を選択し、下記のように、 Use Existing License オプションを選択します。
    • 該当するフィールドに port@hostname を入力します。例えば、ライセンスプロキシにANSYSソフトウェアを設定し、ライセンスポート番号が1055である場合、1055@hostname と入力し、Check availability ボタンをクリックします。ライセンス設定で指定したライセンスサーバーのアドレスがRescaleプラットフォームから到達可能かどうかは、Check Availability ボタンをクリックすると、ライセンスプロンプトからすぐに確認することができます。また、利用可能なすべてのライセンスフィーチャーとライセンスシート数が表示されます。

SSHトンネルのステータスが黄色で、No active connection と表示されている場合は、SSHトンネルが疎通していないことを意味します。

考えられる原因は以下の通りです。

  • SSHトンネルの接続元であるオンプレミスのワークステーションが再起動された。
  • SSHトンネルスクリプトの実行中に、PageantにSSH秘密鍵が読み込まれない。
  • SSH秘密鍵が削除または移動された。
  • アクセスが許可されているIPアドレスやCIDRレンジが正しくない。
  • ライセンスサーバーが何らかの理由でダウンしている。
  • ライセンスサービス(lmgrd や rlm)のデーモンが停止・終了した。
  • ライセンスの有効期限が切れた。
  • 何らかの理由により、ベンダーポート番号が変更された。(例えば、ライセンスファイルでベンダーポート番号が固定されていない。)

Authentication Error/Public Key Denied

WindowsのコンピューターからSSHトンネル接続を確立できません。Authentication error or public key denied と表示されます。これはどういう意味でしょうか?

これにはいくつかの理由が考えられます。

  1. SSHバッチスクリプトを実行する際に、PageantにSSH秘密鍵が読み込まれていない。
  2. ライセンスプロキシの設定画面の SSH Keys に貼り付けたSSH公開鍵が不完全、またはSSH公開鍵の末尾の一部が欠けている(PuTTyGenではなくメモ帳から直接SSH公開鍵をコピーした場合がほとんどです。)
  3. Windowsの.ppkの形式のSSH秘密鍵での認証は対応していません。この場合、PuTTYgen を使用してSSH秘密鍵を .ppk 形式から .pem 形式に変換してください。ここでは、その方法を説明します。
    • PuTTYgen を起動します。
    • Actions から Load を選択し、.ppk ファイルへ移動します。例えば、SSH秘密鍵の名前が private_key.ppk であれば、その鍵を選択します。
    • .ppk ファイルを選択し、Open を選択します。
    • PuTTY Key Generatorの上部にあるメニューから、Conversions、Export OpenSSH Keyを選択します。

注意: パスフレーズを入力しなかった場合、PuTTYgenの警告が表示されます。Yes を選択して、ファイルに名前をつけて拡張子 .pem を追加し、Save を選択します。その後、Pagentに追加した新しい .pem 形式の秘密鍵でSSHトンネル接続を再実行します。

License Server UP Vendor Daemon Down

ライセンスプロキシの設定画面やジョブ設定の License settings セクションにある Check License Availability オプションを使用すると、License server UP, Vendor Daemon Down と表示されます。これはどういう意味でしょうか?

これにはいくつかの理由が考えられます。

  1. ライセンスの有効期限が切れています。オンプレミスのライセンスサーバーマシンのライセンスファイルを確認し、有効期限を確認してください。ライセンスの有効期限が切れている場合は、ISVから新しいライセンスを取得し、ライセンスサーバーの管理者にインストールを依頼します。
  2. SSHトンネル接続を確立する際にRescale上で設定したベンダーポート番号が別のポート番号に変更されています。これは、ライセンスファイルでベンダーポート番号が固定されておらず、オンプレミスのライセンスサーバーが何らかの理由で再起動されたためと考えられます。この問題を解決するには、ベンダーポート番号を固定してください。その後、お使いのオペレーティングシステムに応じたSSHトンネルスクリプト(バッチスクリプトまたはシェルスクリプト)を再度ダウンロードし、SSHトンネル接続を再度確立してください。

Connection Reset by Peer/Connection Refused/Connection Timed Out Error

Connection Reset By Peer / Connection Refused / Connection Timed Out error が発生した場合、ファイアウォールが原因で接続に失敗している可能性があります。そのような場合は、以下の手順で対処してください。

  • 社内ネットワークがSSHポート接続を許可していることを確認してください。
  • 社内ネットワークにファイアウォールのルールがある場合、ルールを確認してください。
  • SSHポート番号がブロックされていないことを確認してください。
  • また、ライセンスプロキシ設定画面の Allowed IP or CIDR range セクションで、CIDRレンジが正しく設定されていることを確認してください。SSHトンネルを接続する際に、0.0.0.0/0 のような大きい範囲を追加することで、CIDRレンジが問題であるかどうかを確認することができます。大きい範囲のCIDRルール(0.0.0.0/0)を追加した後にSSH接続が成功した場合、ライセンスプロキシ設定画面で最初に入力したCIDRレンジが正しくないことを意味します。CIDRレンジを正しいIPアドレスのレンジに置き換えてください。

The license server is down or not responding

ライセンスプロキシの設定画面やジョブ設定の License settings セクションにある Check License Availability オプションを使用すると、license server is down or not responding と表示されます。これはどういう意味でしょうか?

これにはいくつかの理由が考えられます。

  • SSHトンネル接続が正しく設定されていない。
  • オンプレミスのライセンスサーバーまたはライセンスサービスプロセスがアクティブではないか、実行中ではない。
  • オンプレミスのライセンスサーバー上でライセンスが提供されていない。
  • ライセンスを確認しようとしているソフトウェアが Check License Availability 機能をサポートしていない。これは、RLMやDSLSのライセンスサービスを使用しているソフトウェアが該当します。
  • ライセンスプロキシの設定画面でライセンスに関連する項目が設定されておらず、SSHトンネル接続が設定されているのみである。

このような場合、IT/ネットワーク管理者またはライセンスサーバー管理者に連絡して確認し、ライセンスサーバーが稼働した後にSSHトンネル接続を再実行してみてください。