(netlab-connect)=
netlab connect command uses information stored in the netlab snapshot file and reported with the netlab inspect --node command to connect to a lab device or tool using SSH or docker exec.
$ netlab connect -h
usage: netlab connect [-h] [-v] [-q] [--dry-run] [-s SHOW [SHOW ...]] [-i INSTANCE] host
Connect to a network device or an external tool
positional arguments:
host Device or tool to connect to
options:
-h, --help show this help message and exit
-v, --verbose Verbose logging (add multiple flags for increased verbosity)
-q, --quiet Report only major errors
--dry-run Print the commands that would be executed, but do not execute
them
-s SHOW [SHOW ...], --show SHOW [SHOW ...]
Show command to execute on the device
-i INSTANCE, --instance INSTANCE
Specify lab instance to connect to
The rest of the arguments are passed to SSH or docker exec command
* The [**--show** option](netlab-connect-show) must be used _after_ the host parameter, as the **--show** option consumes all arguments specified after it.
* **netlab connect** connects to a single node. Use a bash script described in the [**netlab report** examples](netlab-report-examples) if you want to use a single command to connect to multiple nodes in a multi-window environment.
netlab connect uses the lab snapshot file (default: netlab.snapshot.yml) to read device- and node information. You can overwrite the default snapshot file with the --snapshot command line parameter.
netlab connect command uses the following device data. Most of that data is derived from the device group_vars, although you can override it on node- or custom group level; use the netlab inspect --node _name_ command to inspect it.
ansible_connection: Use docker exec if the connection is set todocker1. Use ssh if the connection is set tossh,paramiko2,network_cli3, ornetconf4. Fail for all other connection types.ansible_host: IP address or alternate FQDN for the lab device (default: hostname specified on the command line)ansible_user: remote username for SSH session (default: not specified)ansible_ssh_passto specify password (default: use SSH keys)ansible_portto specify alternate SSH port (used primarily in VirtualBox environment)netlab_show_command: command to execute when using the--showoption. Primarily used to deal with FRR/Cumulus Linux runningvtyshto execute show commands.
Command line parameters specified after the device name are passed to the ssh or docker exec command, allowing you to execute a single command on a lab device.
If you want to process the results of the command executed on a lab device, use netlab connect -q to remove the "we are going to connect to device X" message.
Use [**netlab exec**](netlab-exec) if you want to execute the same command on multiple devices
(netlab-connect-show)=
You can run netlab connect with --show args option to execute a show command on a lab device. In most cases, this is equivalent to running netlab connect host show args (see above); the major exceptions are FRR and Cumulus Linux.
For example, this is how you could execute show ip route command on Cumulus Linux or FRR container without worrying about the FRR vtysh details5:
$ netlab connect r2 --show ip route
Connecting to container clab-X-r2, executing sudo vtysh -c "show ip route"
Use vtysh to connect to FRR daemon
Codes: K - kernel route, C - connected, S - static, R - RIP,
O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
F - PBR, f - OpenFabric,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
O>* 10.0.0.1/32 [110/20] via 10.1.0.1, swp1, weight 1, 00:23:17
O 10.0.0.2/32 [110/0] is directly connected, lo, weight 1, 00:23:24
C>* 10.0.0.2/32 is directly connected, lo, 00:23:36
O 10.1.0.0/30 [110/10] is directly connected, swp1, weight 1, 00:23:24
C>* 10.1.0.0/30 is directly connected, swp1, 00:23:35
netlab connect command disables SSH host key checking and uses /dev/null as known hosts file to simplify lab connectivity (some virtual devices change SSH key on every restart).
Do not use **netlab connect** in a production environment.
Footnotes
-
FRR and Linux devices running under containerlab ↩
-
Linux virtual machines, including Cumulus VX and Nokia SR Linux. ↩
-
Devices with traditional networking CLI, including Cisco IOSv, Cisco IOS-XE, Cisco Nexus OS, and Arista EOS. ↩
-
Junos ↩
-
The printout contains the command needed to execute show ip route on FRR. As you can see, it's not exactly trivial. ↩