Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

DockerでcJunosEvolvedを設定する

このトピックを読むと、KVMに導入されるcJunosEvolvedインスタンスの接続と設定を理解できます

cJunosEvolvedに接続する

管理者の認証情報を使用して、このセクションで示すように、UbuntuホストからcJunosEvolvedにSSH接続できます。

管理 IP アドレスは、Docker Compose YAML ファイルの特定のコンテナーの networks セクションにある "eth0_mgmt" で指定されたものです。

各cJunosEvolvedは、管理者の認証情報を使用してSSHアクセス用に設定されます。管理者パスワードは「admin@123」です。

手記:

ルートアクセスを希望する場合は、cJunosEvolvedのルート認証プレーンテキストパスワードを設定できます。この操作は、他のJunosEvolvedルーターの場合と同じ方法で行います。また、rootとしてログインしたい場合は、rootユーザーとしてSSHを有効にします。

set system root-authentication plain-text-password <enter the password twice>

set system services ssh root-login allow

ssh の代わりに、ホスト サーバーから次のコマンドを使用して CLI に入り、コンテナーを構成することもできます。このコマンドは “docker logs -f cevo1 コマンドを実行し、コンテナ(この例では cevo1)がログインプロンプトに到達したことを確認した後に実行することをお勧めします。

# docker exec -ti cevo1 cli

root@cevo1>

cJunosEvolvedを設定します

cJunosEvolvedを設定するには、いくつかの方法があります。

手動設定

cJunosEvolvedコンテナ内のEVO VMには、sshまたは「cJunosEvolvedへの接続」セクションで説明したDockerコマンドのいずれかを使用して接続し、コンテナの設定に進むことができます。

ディスク構成

Docker Compose YAML ファイルの「volumes」スタンザを使用して、階層型の Junos Evolved CLI 設定を指定します。以下の例では、

ホストサーバー上の特定のコンテナのディレクトリに、juniper.confと呼ばれる有効な階層構成ファイルが必要です(例:以下のディレクトリ)。 /root/cjunosevo/config/cevo1

cJunosEvolvedソフトウェアは、 juniper.conf ファイルがコンテナのLinux側の /home/evo/configdisk ディレクトリに配置されることを想定しています。以下を参照してください。

自動構成

別のオプションは、このマニュアルで前述したように、CPTX_AUTO_CONFIG環境変数を1に設定して、cJunosEvolvedを自動構成することです。

手記:

自動構成オプションは、ディスク構成よりも最小限の構成ツールです。これは [ディスク構成] オプションと相互に排他的であり、優先されます。

自動設定は、Docker Compose YAMLファイルからの情報の抽出に基づいて、cJunosEvolvedのスタートアップ設定を行います。自動構成では、次の項目を設定できます。

    1. 管理者のログイン資格情報:
      • ユーザー ID: 管理者
      • パスワード:admin@123
    2. ssh を有効にするには、 set system services ssh コマンドを実行します。
    3. デフォルトのロギングレベルは、次のように設定されています。

      set system syslog file interactive-commands interactive-commands any

      set system syslog file messages any notice

      set system syslog file messages authorization info

    4. 「eth0_managment」に指定された値に基づくcJunosEvolvedの管理IP
    5. Compose YAML ファイルで指定されている eth4 以降のインターフェイスのデータ インターフェイスの "ipv4_address" 値は、RE のスタートアップ コンフィギュレーションで設定されます。CLIで使用されるインターフェイス表記は、BXまたはBT、チャネル化または非チャネル化の表記のいずれを使用するかを示す環境変数に基づいて自動的に設定されます。詳細については、このマニュアルの WAN インターフェイスの表を参照してください。

例えば、BXチャネル化されたcJunosEvolvedが自動設定される場合、Docker Compose YAMLファイルに以下が含まれるとします。

次に、 set interfaces et-0/0/0:0 unit 0 family inet address 100.1.1.2/24 コマンドを実行します。この構成は、ルーティングエンジンのCLIで設定します。

さらに、BXまたはBTがチャネル化または非チャネル化かどうかに応じて、対応する一般的なインターフェイス関連の構成がすべてのデータインターフェイスのルーティングエンジンCLIで設定されます。以下の例は、チャネライズド BX の最初のデータ インターフェイス(eth4)用です。

set interfaces et-0/0/0 number-of-sub-ports 4

set interfaces et-0/0/0 speed 100g

手記:

「CPTX_AUTO_CONFIG:1」環境変数がDocker Compose YAMLファイルで設定され、同じファイル内のデータインターフェイスにIPv4アドレスが指定されていない場合、cJunosEvolvedはDockerが提供するものに基づいてIPアドレスを割り当てます。例えば、対応するデータインターフェイスにサブネットIPが指定されている場合、DockerはそのサブネットからIPアドレスを割り当て、これは対応するインターフェイスのcJunosEvolvedルーティングエンジンCLIで設定されます。IP アドレスを制御できるように、YAML ファイルの services セクションに各インターフェイスの IP アドレスを指定し、CPTX_AUTO_CONFIG を使用する場合は YAML ファイルの "networks" セクションにそのネットワークの一致するサブネット IP アドレスを指定することをお勧めします。

cJunosEvolvedを停止、起動、再起動する方法

止める

Docker Composeファイル内のcJunosEvolvedコンテナは、グレースフルな方法で同時に停止することができるので、そのディスクは次回の再起動のために保存されます。ホストサーバーから stop コマンドを実行します。

# docker compose -f <docker-compose-filename>.yaml stop -t <secs>

-t オプションは、コンテナーに SIGTERM を送信する前に、指定された秒数待機するように Docker Compose に要求します。指定するタイムアウトの値は、コンテナーに格納されているログと構成のサイズ、ホスト サーバーのディスク速度など、さまざまな要因によって異なります。テストでは、240 秒の-t値で十分であり、通常は60 秒未満です。この値を、以下のようにユースケースでベンチマークしてください。

  • ホストサーバーから、 docker logs -f <container-name> コマンドを使用してEVO VMログの監視を開始します。これにより、EVO VM から進行中のログが出力されます。
  • 以下のように、-t を大きくして stop コマンドを発行します。

    # docker compose -f <docker-compose-filename>.yaml stop -t 240

  • stopコマンドの通知を受け取っているコンテナー ログが表示され、それに応じて続行されます。シャットダウンが成功すると、ログの最後に次のようなメッセージが表示されます。

    Fri Mar 28 22:40:14 UTC 2025: EVO VM のシャットダウンが [30 秒] に成功しました

cJunosEvolvedが停止すると、「docker container ls」に表示されませんが、そのネットワークは将来の再起動のために保持され、以下の例のように表示されます。

docker logsコマンドを使用して、両方のコンテナが正常に停止していることを確認します。

始める

停止したコンテナーは、 docker compose start コマンドを使用して再開できます。

新規インストールの場合は、このドキュメントで前述したように、 docker compose up -d コマンドを使用します。

次の例は、 docker compose startを示しています。

再起動

docker compose -f <docker-compose-file-name> restart -t 90コマンドを使用して、実行中のコンテナーを再起動できます。

stopセクションで前述したように、ベンチマークした「-t」を指定します。 restart コマンドは stop 、次に start コマンドが順番に実行されるため、上記の「停止」セクションで説明したように、コンテナー ディスクを保護するためにコンテナーを正常に停止する期間を Docker Compose に指示する必要があります。

例えば: