Skip to content

Network configuration manager is utility for easily configuring networking on a linux system

License

Notifications You must be signed in to change notification settings

vmware/network-config-manager

Repository files navigation

network-config-manager

build

What is nmctl

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.

Features

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.

Building from source.

~ meson build
➜  ~ ninja -C build
➜  ~ sudo ninja -C build install

Or by simply doing

❯ make
❯ sudo make install

Building in photon OS.

❯ 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

Use cases

~ nmctl --help

Howto get started with nmctl

Contributing

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.

About

Network configuration manager is utility for easily configuring networking on a linux system

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages