→ Applies to: Hyperion 9.x and above
All commands in this article are intended to be executed via Hyperion CLI.
nmctl is a command-line utility designed to simplify network configuration on Hyperion. It offers a more intuitive alternative to tools like nmcli (NetworkManager CLI) and virsh (libvirt manager), with a focus on:
- Bonded interfaces
- Network bridges (vSwitch)
- VLANs (virtual LANs)
- Libvirt-integrated virtual networks
Step 1. Connect to Hyperion appliance via SSH as admin
ssh admin@<your_ip_address_or_hostname>
Step 2. Become Super User
sudo su
Step 3. Install the package
rpm -ivh https://storage.googleapis.com/syneto_public_files/downloads/Syneto-Tools/Networking/syneto-nmctl-0.2-1.el9.x86_64.rpm
Help & autocomplete
List available command
syneto-nmctl help
Enable auto-complete functionality with TAB
syneto-nmctl completion
Manage bonds
List physical interfaces to include in the bond
syneto-nmctl list physical
Create a bond (replace <interface1>, <interface2> and <bond_mode> with the correct information)
syneto-nmctl bond create --members <interface1>, <interface2> --type <bond_mode>
Bond modes
- balance-rr: round-robin policy;
- active-backup: only one active interface at a time (failover);
- balance-xor: transmit based on hash policy;
- broadcast: all traffic is sent on all interfaces;
- 802.3ad: IEEE 802.3ad dynamic link aggregation (requires switch support for LACP);
- balance-tlb: adaptive transmit load balancing;
- balance-alb: adaptive load balancing (TX + RX).
EXAMPLEsyneto-nmctl bond create --members ens161, ens256 --type 802.3ad
EXAMPLE OUTPUTCreating bond 'bond0' with members 'ens161,ens256' Adding 'ens161' as slave to 'bond0' Adding 'ens256' as slave to 'bond0'
Delete bond (replace <bond_name> with the correct information)
syneto-nmctl bond delete <bond_name>
List all bonds
syneto-nmctl bond list
EXAMPLE
syneto-nmctl bond list === Bond Interfaces === bond0 bond0 bond activated └─ ens161 (ens161) └─ ens256 (ens256)
Manage vSwitches
Create a new vSwitch with a uplink interface (replace <company_name> and <interface> with the correct information)
syneto-nmctl vswitch create --name "<company_name>" --uplink <interface>
EXAMPLE
syneto-nmctl vswitch create --name "Company Network" --uplink ens256
EXAMPLE OUTPUT
[+] Creating bridge 'vswitch1' with label 'Company Network' and uplink 'ens256' Connection 'Company Network' (73ef8751-d27d-4813-8a54-eaafe55817b4) successfully added. Error: unknown connection 'Company Network Uplink'. <--IGNORE Error: cannot delete unknown connection(s): 'Company Network Uplink'. <--IGNORE [+] Configuring 'ens256' as direct bridge uplink Connection 'Company Network Uplink' (a5b743ab-48e9-4fdd-88bd-cd1764850421) successfully added. Connection successfully activated (controller waiting for ports) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/20) Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/22)
Create a new vSwitch with a bond interface (replace <company_name> and <bond_name> with the correct information)
syneto-nmctl vswitch create --name "<company_name>" --uplink <bond_name>
EXAMPLE
syneto-nmctl vswitch create --name "Company Network" --uplink bond0
EXAMPLE OUTPUT
[+] Creating bridge 'vswitch1' with label 'Company Network' and uplink 'bond0' Connection 'Company Network' (73ef8751-d27d-4813-8a54-eaafe55817b4) successfully added. Error: unknown connection 'Company Network Uplink'. <--IGNORE Error: cannot delete unknown connection(s): 'Company Network Uplink'. <--IGNORE [+] Configuring 'bond0' as direct bridge uplink Connection 'Company Network Uplink' (a5b743ab-48e9-4fdd-88bd-cd1764850421) successfully added. Connection successfully activated (controller waiting for ports) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/20) Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/22)
Delete a vSwitch and detach its uplink (replace <vswitch_name> with the correct information)
syneto-nmctl vswitch delete <vswitch_name>
EXAMPLE
syneto-nmctl vswitch delete vswitch0
List all vSwitches
syneto-nmctl vswitch list
EXAMPLE
syneto-nmctl vswitch list === Virtual Switches === --- General purpose Virtual Switches --- Management Network vswitch0 bridge activated └─ em2 (Management Uplink) cni0 cni0 bridge activated virbr0 virbr0 bridge activated --- VLAN-Dedicated Virtual Switches ---
Change the uplink(s) of an existing vSwitch (replace <vswitch_name>, <uplink1> and <uplink2> with the correct information)
syneto-nmctl vswitch change --name <vswitch_name> --uplink <uplink1>,<uplink2>
EXAMPLE
syneto-nmctl vswitch change --name vswitch0 --uplink em1,em2
EXAMPLE OUTPUTConnection 'Management Uplink' (2e2fd3c2-a4a0-4483-9334-092aab45d358) successfully deleted. [+] Creating bond0 with: em1,em2 Connection 'Management Uplink' (56361be4-934c-47c5-aef9-7f0fdf799fe7) successfully added. Warning: There is another connection with the name 'em1'. Reference the connection by its uuid '365162e0-f99f-4268-b0ca-e34042d9e05f' Connection 'em1' (365162e0-f99f-4268-b0ca-e34042d9e05f) successfully added. Warning: There is another connection with the name 'em2'. Reference the connection by its uuid '5e2a3b71-b16b-43e6-9dbc-8d73515fdd9e' Connection 'em2' (5e2a3b71-b16b-43e6-9dbc-8d73515fdd9e) successfully added. Error: unknown connection 'vswitch0'. Connection successfully activated (controller waiting for ports) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/22) Connection successfully activated (controller waiting for ports) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/25) [+] Reattaching vnet0 to vswitch0 [+] Reattaching vnet1 to vswitch0
Manage VLANs
Create a new VLAN network (replace <vlan_name>, <vlan_id> and <vswitch_name> with the correct information)
syneto-nmctl network create --name "<vlan_name>" --vlan-id <vlan_id> --vswitch <vswitch_name>
EXAMPLE
syneto-nmctl network create --name "VLAN 3003" --vlan-id 3003 --vswitch vswitch1
Delete a VLAN (replace <vlan_name> with the vlan name)
syneto-nmctl network delete <vlan_name>
List all VLANs
syneto-nmctl network list
Assign a VLAN to a Virtual Machine ("How to assign a VLAN to a virtual machine in Syneto Hyperion")
Reconnect VM interfaces & show network information
Show all physical network interfaces
syneto-nmctl list physical
Show the status of all interfaces
syneto-nmctl list interfaces
Show all network connections
syneto-nmctl list connections
Reattach VM interfaces to expected vSwitches
syneto-nmctl sync-vm-interfaces
Reattaches all VM interfaces (vnetX) to the correct virtual switches.
Use this after modifying or recreating vSwitches or VLANs.