Juniper cEvolved¶
cJunosEvolved is a container based image. It runs Junos OS Evolved in a virtual machine inside the container, with a software simulation of a PTX router's forwarding chipset.
Base Image¶
The image can be downloaded from the
vJunos Labs download page. The download is
a docker save archive, for example cJunosEvolved-26.2R1.7-EVO.tar.gz.
Import image¶
Load the archive into Docker, tag the image with the cJunosEvolved version, and register it with Sherpa by scanning the local container images:
docker load -i cJunosEvolved-26.2R1.7-EVO.tar.gz
docker tag cjunosevolved:26.2R1.7-EVO localrepo/juniper_cevolved:26.2R1.7
sherpa server image scan --container
Warning
cJunosEvolved images must be tagged with the repo localrepo/juniper_cevolved. The scan
only registers images with that repo as the juniper_cevolved node model, and labs start
cJunosEvolved from it. The first version registered becomes the default.
Platforms¶
cJunosEvolved emulates one of two PTX routers. Choose one per node with
platform:
| Platform | Router | Chipset | Data Interfaces |
|---|---|---|---|
bt |
PTX10001-36MR | Express 4 | et-0/0/0-11 |
bx |
PTX10002-36QDD | Express 5 | et-0/0/0-35 |
Without platform, a node is bt. A node has 12 data interfaces on either platform unless the
manifest sets data_interface_count; a bx node takes up to 36.
Default Node Parameters¶
| Property | Value |
|---|---|
| Kind | Container |
| Tested Version | 26.2R1.7 |
| CPU | 4 |
| RAM | 6292MB |
| ZTP Method | Volume |
| Management Interface | re0:mgmt-0 |
| Data Interfaces | et-0/0/0-11 |
| Interface Driver | veth |
cpu_count and memory size the Junos OS Evolved virtual machine inside the container. 4 vCPUs
and 6292MB are its minimums. The container needs about 2GB more memory than the virtual machine,
so allow 8GB of host memory per node.
Example Manifest¶
name = "juniper-cevolved"
[[nodes]]
name = "pe01"
model = "juniper_cevolved"
[[nodes]]
name = "pe02"
model = "juniper_cevolved"
platform = "bx"
[[links]]
src = "pe01::et-0/0/0"
dst = "pe02::et-0/0/0"
ZTP¶
Volume¶
Sherpa writes a juniper.conf startup config and mounts its directory at
/home/evo/configdisk in the container. The container hands the config to Junos on first boot.
Requirements¶
- The Sherpa server must have KVM: the container starts a virtual machine. The container runs privileged.
- On first boot the container installs Junos to a virtual disk, so the first start of a node takes longer than later ones.
Node Access¶
sherpa ssh <node-name>
Notes¶
- Junos shows every data interface up, linked or not: its simulated forwarding plane does not follow the link state of the container interfaces. Unlinked interfaces carry no traffic.
- A node shows all of its platform's data interfaces whatever
data_interface_countis: 12 onbt, 36 onbx. Only the firstdata_interface_countof them are wired to the lab. - Approximate time for the system to be ready:
4 minutes.sherpa upreports a container as ready when it has started, so SSH answers a few minutes aftersherpa upfinishes.