NetworkManager: Difference between revisions

From Dave-Wiki
No edit summary
Line 63: Line 63:
===Example===
===Example===


In this example, I was able to successfully bond two links to a Juniper EX3300 using LACP (802.3ad):
In this example, I was able to successfully bond two links to a Juniper EX3300 (and later an EX3400) using LACP (802.3ad):


{{Info|Be sure to delete any existing connection profiles that are applied to any interfaces you plan to use as slaves.}}
{{Info|Be sure to delete any existing connection profiles that are applied to any interfaces you plan to use as slaves.}}

Revision as of 23:10, 20 January 2025

Summary

nmcli deals with devices and connections.

(Interface = Device, in context of this page)

Configure New Network Connection

ip addr
nmcli con show
nmcli dev status
nmcli con del [name]
nmcli con add con-name [name] ifname [device] type ethernet ipv4.addresses [ip/sm] ipv4.gateway [ip]
nmcli con mod [name] ipv4.dns "[ip1],[ip2]"
nmcli con mod [name] ipv4.addr x.x.x.x/x
nmcli con mod [name] ipv4.gateway x.x.x.x
nmcli con up [name]

Other Useful Commands

Show all connections

nmcli con show

Show all devices

nmcli dev show
nmcli dev status

Add a new connection to an interface

nmcli con add con-name [name] ifname [device] type ethernet ipv4.addresses [ip/sm] ipv4.gateway [ip]

Show details about a connection

nmcli con show [name] | more

Modify the IP address, etc. for an existing connection

nmcli con mod [name] ipv4.addresses [ip/sm]
nmcli con mod [name] ipv4.dns [ip1],[ip2]
nmcli con mod [name] ipv4.dns-search "[domain suffix]"

Create an 802.1Q interface for use on a trunk port (ESXi, etc.)

nmcli con add type vlan con-name [name].[vlan#] ifname [device].[vlan#] dev [device] id [vlan#] ipv4.addresses [ip/sm] ipv4.gateway [ip]

Bonding

A network bond is a method to combine or aggregate physical and virtual network interfaces to provide a logical interface with higher throughput or redundancy. In a bond, the kernel handles all operations exclusively. You can create bonds on different types of devices, such as Ethernet devices or VLANs.

Example

In this example, I was able to successfully bond two links to a Juniper EX3300 (and later an EX3400) using LACP (802.3ad):

Note Info:  Be sure to delete any existing connection profiles that are applied to any interfaces you plan to use as slaves.

nmcli connection add type bond con-name bond0 ifname bond0 bond.options "mode=802.3ad,lacp_rate=fast"

nmcli connection modify bond0 connection.autoconnect-slaves 1

nmcli connection add type ethernet slave-type bond con-name bond0-port0 ifname enp129s0f0 master bond0

nmcli connection add type ethernet slave-type bond con-name bond0-port1 ifname enp129s0f1 master bond0

nmcli connection modify bond0 ipv4.addresses '10.144.30.20/24' ipv4.gateway '10.144.30.1' ipv4.dns '10.144.30.4,10.150.30.2' ipv4.dns-search 'lambnet.us' ipv4.method manual

Verification

cat /proc/net/bonding/bond0

Also, unplug one member cable of the bond at a time while performing a ping, to confirm link stays up.

Sources

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/configuring_and_managing_networking/configuring-network-bonding_configuring-and-managing-networking

https://www.kernel.org/doc/Documentation/networking/bonding.txt