The network-config-manager nmctl
allows to configure and introspect the state of the network links as seen by systemd-networkd. nmctl can be used to query and configure devices's for Address, Routes, Gateways, DNS, NTP, domain, hostname. nmctl also allows to create virtual NetDev (VLan, VXLan, Bridge, Bond) etc. It also allows to configure link's various configuration such as WakeOnLanPassword, Port, BitsPerSecond, Duplex and Advertise etc. nmctl uses sd-bus, sd-device APIs to interact with systemd, systemd-networkd, systemd-resolved, systemd-hostnamed, and systemd-timesyncd via dbus. nmctl uses networkd verbs to explain output. nmctl can generate configurations for required network links from YAML description. It also understands kernel command line specified in dracut's network configuration format and can generate systemd-networkd's configuration while the system boots and will persist between reboots.
Configure
- Static IPv4 and IPv6 Address, Routes, Gateway.
- DHCPv4/DHCPv6 Client (DHCP4 Client Identifier, UseMTU/UseDNS/UseDomains/UseNTP/UseRoutes).
- LLDP, Link Local Addressing, IPv4LLRoute, LLMNR.
- Per Link and global DNS, Domains
- NTP
- Routing Policy Rule
- Multiple default gateway with routing policy rules.
- Link's MAC, MTU, ARP, Multicast, AllMulticast, Promiscuous, Unmanaged, Group, RequiredForOnline, RequiredFamilyForOnline, and ActivationPolicy.
- Create netdevs, vlan, vxlan, bridge, bond, veth, macvlan/macvtap, ipvlap/ipvtap, veth, tunnels(ipip, sit, gre, sit, vti), wireguard.
- Hostname.
- DHCPv4 Server.
- DHCPv4 Server Static Lease.
- IPv6 Router Advertisements.
- Network and Link SRIOV
- Add delete and view nftables table, chains and rules.
- Edit network / link configuration via vim/vi.
Please see systemd.network for more information.
Device's
- Alias, Description, MTUBytes, WakeOnLan, WakeOnLanPassword, Port, BitsPerSecond, Duplex and Advertise.
- Offload parameters and other features.
- MACAddressPolicy or MACAddress.
- NamePolicy or Name.
- AlternativeNamesPolicy or AlternativeName.
- Pending packets receive buffer.
- Queue size.
- Flow control.
- GSO.
- Channels.
- Coalesce.
- Coalesced frames.
- Coalesce packet rate.
Please see systemd.link for more information.
Allow to generates systemd-networkd's configuration
- Flexible netplan like network configuration from YML file.
- Dracut kernel command line network config.
Introspect
- Links.
- DNS and Domains.
- Hostname.
- nftable
- Allows to export in JSON format.
➜ ~ meson build
➜ ~ ninja -C build
➜ ~ sudo ninja -C build install
Or by simply doing
❯ make
❯ sudo make install
❯ git clone [email protected]:vmware/network-config-manager.git
❯ cd network-config-manager
❯ wget https://raw.githubusercontent.com/vmware/photon/master/SPECS/network-config-manager/network-config-manager.spec
❯ sudo rpmspec -q --srpm --requires network-config-manager.spec | sudo xargs -d '\n' tdnf -y install
❯ make
❯ sudo make install
➜ ~ nmctl --help
- For a comprehensive list of YAML examples, see YAML example configurations
- Introspect system or network via
nmctl
nmctl display
- Configure static address and route GW
- Configure dynamic address and routes (DHCPv4/DHCPv6/RA)
- How to Configure Networking on Photon OS
- Generate systemd-networkd's configuration from yaml
- VCSA Photon OS Network Configurations via network-config-manager
- Configure ipv6 address via network-config-manager
- Configure ipv4 address via network-config-manager
- Configure DNSMode via network-config-manager
The network-config-manager project team welcomes contributions from the community. If you wish to contribute code and you have not signed our contributor license agreement (CLA), our bot will update the issue when you open a Pull Request. For any questions about the CLA process, please refer to our FAQ.