mirror of
https://github.com/LCTT/TranslateProject.git
synced 2025-03-06 01:20:12 +08:00
136 lines
5.8 KiB
Markdown
136 lines
5.8 KiB
Markdown
|
Interface (NICs) Bonding in Linux using nmcli
|
||
|
================================================================================
|
||
|
Today, we'll learn how to perform Interface (NICs) bonding in our CentOS 7.x using nmcli (Network Manager Command Line Interface).
|
||
|
|
||
|
NICs (Interfaces) bonding is a method for linking **NICs** together logically to allow fail-over or higher throughput. One of the ways to increase the network availability of a server is by using multiple network interfaces. The Linux bonding driver provides a method for aggregating multiple network interfaces into a single logical bonded interface. It is a new implementation that does not affect the older bonding driver in linux kernel; it offers an alternate implementation.
|
||
|
|
||
|
**NIC bonding is done to provide two main benefits for us:**
|
||
|
|
||
|
1. **High bandwidth**
|
||
|
1. **Redundancy/resilience**
|
||
|
|
||
|
Now lets configure NICs bonding in CentOS 7. We'll need to decide which interfaces that we would like to configure a Team interface.
|
||
|
|
||
|
run **ip link** command to check the available interface in the system.
|
||
|
|
||
|
$ ip link
|
||
|
|
||
|

|
||
|
|
||
|
Here we are using **eno16777736** and **eno33554960** NICs to create a team interface in **activebackup** mode.
|
||
|
|
||
|
Use **nmcli** command to create a connection for the network team interface,with the following syntax.
|
||
|
|
||
|
# nmcli con add type team con-name CNAME ifname INAME [config JSON]
|
||
|
|
||
|
Where **CNAME** will be the name used to refer the connection ,**INAME** will be the interface name and **JSON** (JavaScript Object Notation) specifies the runner to be used.**JSON** has the following syntax:
|
||
|
|
||
|
'{"runner":{"name":"METHOD"}}'
|
||
|
|
||
|
where **METHOD** is one of the following: **broadcast, activebackup, roundrobin, loadbalance** or **lacp**.
|
||
|
|
||
|
### 1. Creating Team Interface ###
|
||
|
|
||
|
Now let us create the team interface. here is the command we used to create the team interface.
|
||
|
|
||
|
# nmcli con add type team con-name team0 ifname team0 config '{"runner":{"name":"activebackup"}}'
|
||
|
|
||
|

|
||
|
|
||
|
run **# nmcli con show** command to verify the team configuration.
|
||
|
|
||
|
# nmcli con show
|
||
|
|
||
|

|
||
|
|
||
|
### 2. Adding Slave Devices ###
|
||
|
|
||
|
Now lets add the slave devices to the master team0. here is the syntax for adding the slave devices.
|
||
|
|
||
|
# nmcli con add type team-slave con-name CNAME ifname INAME master TEAM
|
||
|
|
||
|
Here we are adding **eno16777736** and **eno33554960** as slave devices for **team0** interface.
|
||
|
|
||
|
# nmcli con add type team-slave con-name team0-port1 ifname eno16777736 master team0
|
||
|
|
||
|
# nmcli con add type team-slave con-name team0-port2 ifname eno33554960 master team0
|
||
|
|
||
|

|
||
|
|
||
|
Verify the connection configuration using **#nmcli con show** again. now we could see the slave configuration.
|
||
|
|
||
|
#nmcli con show
|
||
|
|
||
|

|
||
|
|
||
|
### 3. Assigning IP Address ###
|
||
|
|
||
|
All the above command will create the required configuration files under **/etc/sysconfig/network-scripts/**.
|
||
|
|
||
|
Lets assign an IP address to this team0 interface and enable the connection now. Here is the command to perform the IP assignment.
|
||
|
|
||
|
# nmcli con mod team0 ipv4.addresses "192.168.1.24/24 192.168.1.1"
|
||
|
# nmcli con mod team0 ipv4.method manual
|
||
|
# nmcli con up team0
|
||
|
|
||
|

|
||
|
|
||
|
### 4. Verifying the Bonding ###
|
||
|
|
||
|
Verify the IP address information in **#ip add show team0** command.
|
||
|
|
||
|
#ip add show team0
|
||
|
|
||
|

|
||
|
|
||
|
Now lets check the **activebackup** configuration functionality using the **teamdctl** command.
|
||
|
|
||
|
# teamdctl team0 state
|
||
|
|
||
|

|
||
|
|
||
|
Now lets disconnect the active port and check the state again. to confirm whether the active backup configuration is working as expected.
|
||
|
|
||
|
# nmcli dev dis eno33554960
|
||
|
|
||
|

|
||
|
|
||
|
disconnected the active port and now check the state again using **#teamdctl team0 state**.
|
||
|
|
||
|
# teamdctl team0 state
|
||
|
|
||
|

|
||
|
|
||
|
Yes its working cool !! we will connect the disconnected connection back to team0 using the following command.
|
||
|
|
||
|
#nmcli dev con eno33554960
|
||
|
|
||
|

|
||
|
|
||
|
We have one more command called **teamnl** let us show some options with **teamnl** command.
|
||
|
|
||
|
to check the ports in team0 run the following command.
|
||
|
|
||
|
# teamnl team0 ports
|
||
|
|
||
|

|
||
|
|
||
|
Display currently active port of **team0**.
|
||
|
|
||
|
# teamnl team0 getoption activeport
|
||
|
|
||
|

|
||
|
|
||
|
Hurray, we have successfully configured NICs bonding :-) Please share feedback if any.
|
||
|
|
||
|
--------------------------------------------------------------------------------
|
||
|
|
||
|
via: http://linoxide.com/linux-command/interface-nics-bonding-linux/
|
||
|
|
||
|
作者:[Arun Pyasi][a]
|
||
|
译者:[译者ID](https://github.com/译者ID)
|
||
|
校对:[校对者ID](https://github.com/校对者ID)
|
||
|
|
||
|
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||
|
|
||
|
[a]:http://linoxide.com/author/arunp/
|