mirror of
https://github.com/LCTT/TranslateProject.git
synced 2024-12-26 21:30:55 +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
|
||
|
|
||
|
![ip link](http://blog.linoxide.com/wp-content/uploads/2015/01/ip-link.png)
|
||
|
|
||
|
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"}}'
|
||
|
|
||
|
![nmcli con create](http://blog.linoxide.com/wp-content/uploads/2015/01/nmcli-con-create.png)
|
||
|
|
||
|
run **# nmcli con show** command to verify the team configuration.
|
||
|
|
||
|
# nmcli con show
|
||
|
|
||
|
![Show Teamed Interace](http://blog.linoxide.com/wp-content/uploads/2015/01/show-team-interface.png)
|
||
|
|
||
|
### 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
|
||
|
|
||
|
![adding slave devices to team](http://blog.linoxide.com/wp-content/uploads/2015/01/adding-to-team.png)
|
||
|
|
||
|
Verify the connection configuration using **#nmcli con show** again. now we could see the slave configuration.
|
||
|
|
||
|
#nmcli con show
|
||
|
|
||
|
![show slave config](http://blog.linoxide.com/wp-content/uploads/2015/01/show-slave-config.png)
|
||
|
|
||
|
### 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
|
||
|
|
||
|
![ip assignment](http://blog.linoxide.com/wp-content/uploads/2015/01/ip-assignment.png)
|
||
|
|
||
|
### 4. Verifying the Bonding ###
|
||
|
|
||
|
Verify the IP address information in **#ip add show team0** command.
|
||
|
|
||
|
#ip add show team0
|
||
|
|
||
|
![verfiy ip address](http://blog.linoxide.com/wp-content/uploads/2015/01/verfiy-ip-adress.png)
|
||
|
|
||
|
Now lets check the **activebackup** configuration functionality using the **teamdctl** command.
|
||
|
|
||
|
# teamdctl team0 state
|
||
|
|
||
|
![teamdctl active backup check](http://blog.linoxide.com/wp-content/uploads/2015/01/teamdctl-activebackup-check.png)
|
||
|
|
||
|
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
|
||
|
|
||
|
![disconnect activeport](http://blog.linoxide.com/wp-content/uploads/2015/01/disconnect-activeport.png)
|
||
|
|
||
|
disconnected the active port and now check the state again using **#teamdctl team0 state**.
|
||
|
|
||
|
# teamdctl team0 state
|
||
|
|
||
|
![teamdctl check activeport disconnect](http://blog.linoxide.com/wp-content/uploads/2015/01/teamdctl-check-activeport-disconnect.png)
|
||
|
|
||
|
Yes its working cool !! we will connect the disconnected connection back to team0 using the following command.
|
||
|
|
||
|
#nmcli dev con eno33554960
|
||
|
|
||
|
![nmcli dev connect disconected](http://blog.linoxide.com/wp-content/uploads/2015/01/nmcli-dev-connect-disconected.png)
|
||
|
|
||
|
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
|
||
|
|
||
|
![teamnl check ports](http://blog.linoxide.com/wp-content/uploads/2015/01/teamnl-check-ports.png)
|
||
|
|
||
|
Display currently active port of **team0**.
|
||
|
|
||
|
# teamnl team0 getoption activeport
|
||
|
|
||
|
![display active port team0](http://blog.linoxide.com/wp-content/uploads/2015/01/display-active-port-team0.png)
|
||
|
|
||
|
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/
|