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 admin@<management IP address> (admin@14.1.1.3) Password: Last login: Thu Mar 20 21:06:48 2025 from 14.1.1.1 --- JUNOS cJunosEvolved-25.2R1.1-EVO Linux (none) 5.15.164-10.22.33.18-yocto-standard-juniper-16971-g1c568856e6a0 #1 SMP PREEMPT Thu Feb 6 08:43:02 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux admin@re0>
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 ディレクトリに配置されることを想定しています。以下を参照してください。
services:
cJunosEvo1:
#[snip]
privileged: true
volumes:
-'/root/cjunosevo/config/cevo1:/home/evo/configdisk'
自動構成
別のオプションは、このマニュアルで前述したように、CPTX_AUTO_CONFIG環境変数を1に設定して、cJunosEvolvedを自動構成することです。
自動構成オプションは、ディスク構成よりも最小限の構成ツールです。これは [ディスク構成] オプションと相互に排他的であり、優先されます。
自動設定は、Docker Compose YAMLファイルからの情報の抽出に基づいて、cJunosEvolvedのスタートアップ設定を行います。自動構成では、次の項目を設定できます。
-
- 管理者のログイン資格情報:
- ユーザー ID: 管理者
- パスワード:admin@123
- ssh を有効にするには、
set system services sshコマンドを実行します。 - デフォルトのロギングレベルは、次のように設定されています。
set system syslog file interactive-commands interactive-commands anyset system syslog file messages any noticeset system syslog file messages authorization info - 「eth0_managment」に指定された値に基づくcJunosEvolvedの管理IP
- Compose YAML ファイルで指定されている eth4 以降のインターフェイスのデータ インターフェイスの "ipv4_address" 値は、RE のスタートアップ コンフィギュレーションで設定されます。CLIで使用されるインターフェイス表記は、BXまたはBT、チャネル化または非チャネル化の表記のいずれを使用するかを示す環境変数に基づいて自動的に設定されます。詳細については、このマニュアルの WAN インターフェイスの表を参照してください。
- 管理者のログイン資格情報:
例えば、BXチャネル化されたcJunosEvolvedが自動設定される場合、Docker Compose YAMLファイルに以下が含まれるとします。
eth4:
ipv4_address: 100.1.1.2
# and this in the “networks” section:
networks:
eth4:
name: eth4
driver: bridge
ipam:
driver: default
config:
- subnet: 100.1.1.0/24
次に、 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 container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 171a361a6f86 cjunosevolved:25.2R1.1-EVO "/entrypoint.sh" 3 days ago Up 3 days cevo2 740524cf95b3 cjunosevolved:25.2R1.1-EVO "/entrypoint.sh" 3 days ago Up 3 days cevo1 # docker compose -f dual-bx-bt-chan-autocompose.yaml stop -t 180 [+] Stopping 2/2 ✔ Container cevo1 Stopped 36.9s ✔ Container cevo2 Stopped 36.9s # docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES # docker network ls NETWORK ID NAME DRIVER SCOPE 785df5e996d5 bridge bridge local 6222dbea40c6 eth0_mgmt bridge local fb5a95cd7236 eth1_reserved bridge local cec52e294667 eth2_reserved bridge local 4f6d181ab5ec eth3_reserved bridge local 3a8ccd8d44dc eth4 bridge local 4e701a843d95 eth5 bridge local 6e3035f60692 eth6 bridge local bf4f5b2583aa eth7 bridge local 0f8822dda3ab eth8 bridge local 507f0ad3feaf eth9 bridge local 4af981ed503e eth10 bridge local 7d280f0f348a eth11 bridge local 2304e4ab7184 host host local da25cbdc438c none null local
docker logsコマンドを使用して、両方のコンテナが正常に停止していることを確認します。
# docker logs cevo1 [snip] Tue Apr 1 00:00:24 UTC 2025: EVO VM shutdown successfully in [30secs] # docker logs cevo2 [snip] Tue Apr 1 00:00:24 UTC 2025: EVO VM shutdown successfully in [30secs]
始める
停止したコンテナーは、 docker compose start コマンドを使用して再開できます。
新規インストールの場合は、このドキュメントで前述したように、 docker compose up -d コマンドを使用します。
次の例は、 docker compose startを示しています。
# docker compose -f <docker-compose-file-name> [+] Running 2/2 ✔ Container cevo1 Started 6.2s ✔ Container cevo2 Started 6.2s # docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 171a361a6f86 cjunosevolved:25.2R1.1-EVO "/entrypoint.sh" 3 days ago Up 54 seconds cevo2 740524cf95b3 cjunosevolved:25.2R1.1-EVO "/entrypoint.sh" 3 days ago Up 54 seconds cevo1 You can monitor the console of EVOVM as it boots up via the following command. It should show cJunosEvolved reach login prompt and shows in this case it took 66 seconds to do so. #docker logs -f <container-name> Tue Apr 1 00:47:41 UTC 2025: EVO VM boot Done in [66secs] Tue Apr 1 00:47:41 UTC 2025: entrypoint.sh is done, enter wait loop.. re0 login:
再起動
docker compose -f <docker-compose-file-name> restart -t 90コマンドを使用して、実行中のコンテナーを再起動できます。
stopセクションで前述したように、ベンチマークした「-t」を指定します。 restart コマンドは stop 、次に start コマンドが順番に実行されるため、上記の「停止」セクションで説明したように、コンテナー ディスクを保護するためにコンテナーを正常に停止する期間を Docker Compose に指示する必要があります。
例えば:
# docker compose -f <docker-compose-file-name>dual-bx-bt-chan-autocompose.yaml restart -t 90 [+] Restarting 2/2 ✔ Container cevo1 Started 41.1s ✔ Container cevo2 Started In this case, the container was stopped gracefully in 30 secs as shown in the “docker logs” command. It was restarted as shown above. Tue Apr 1 00:58:18 UTC 2025: EVO VM shutdown successfully in [30secs]