Showing posts with label nmcli. Show all posts
Showing posts with label nmcli. Show all posts

Wednesday, 24 December 2014

Configuring Network Bridge using nmcli command in RHEL 7.0

A Network Bridge  is a link-layer device that forwards traffic between networks based on MAC addresses. It learns what hosts are connected to each network, builds a table of MAC addresses then makes packet forwarding decision based on that table. A software bridge can be used in a Linux environment to emulate a hardware bridge. The most common application for software bridge is in virtualization application for sharing a hardware NIC among one or more Virtual NICs.

Let now show you how to create a Network Bridge in RHEL 7.0 using nmcli command.
if you missed to see the my last 2 Articles on Network, here is the link for your reference :
  1. Configuring Network Teaming using nmcli in RHEL 7.0
  2. Configuring Network using nmcli command line tool in RHEL 7 
Run  #nmcli con show to check the current connection configuration. currently i don't have any bridge configured in this system.
 
Check the currently available interfaces for creating the Network Bridge . run #ip link command to see the available NIC interfaces in the system. Here I am using eno33554992 & eno50332216 to create bridge br0.
 

 Run the following command to create bridge.
# nmcli con add type bridge con-name br0 ifname br0


Now Bridge interface is created , lets add the Slave devices to this bridge interface using the following command.

# nmcli con add type bridge-slave con-name br0-port1 ifname eno33554992 master br0
# nmcli con add type bridge-slave con-name br0-port2 ifname eno50332216 master br0
 
Now bridge is ready let us check the configuration using the following command.
#brctl show
 
 Also we could check the connections information using #nmcli con show ,this would show us the bridge and slave interface connections information.


Lets assign IP address to this Bridge for external communication.
#nmcli con mod br0 ipv4.addresses "192.168.1.200/24 192.168.1.1"
# nmcli con mod br0 ipv4.method manual




 # nmcli con show br0  command would print more information and setting on br0 bridge.


Lets enable to connection and check the IP address information. use the following command to enable the bridge br0.
#nmcli con up br0


#ip add show br0 will show the IP address associated with br0 bridge.

There are many setting you could do with brctl command refer the mnapage for more information. Hope this is useful to you. Next post will be on caching name server using unbound.
Merry X'mas  friends!

Tuesday, 23 December 2014

Configuring Network Teaming using nmcli in RHEL 7.0

Network teaming is a method for linking NICs together logically to allow fail-over or higher throughput. Teaming is a new implementation that does not affect the older bonding driver in linux kernel; it offers an alternate implementation.

RHEL7 support the standard channel bonding for backward compatibility ( for more information on channel bonding click here ). Network teaming provides better performance and is more extensive because of the modular design.

RHEL 7.0 implement network teaming with a small kernel driver and a small user space daemon called "teamd". The kernel handles network packets efficiently and teamd handles logic and interface processing. Software, called runners, implement load balancing  and active backup logic, such as round robin. the following runners are available to teamd.

broadcast    : A simple runner which transmits each packet from all ports.
roundrobin : A simple runner which transmits each packets in a round-robin fashion from each of its ports.
activebackup: This is a failover runner which watches for link changes and select an active port for data transfer.
loadbalance: This runner monitor traffic and uses a hash function to try to reach a perfect balance when selecting ports for packet transmission.
lacp  : Implement the 802.3ad Link Aggregation Control Protocol. can use the same transmit port selection possibilities as the loadbalance runner.

Now let me show you how to configure teaming in RHEL 7.0.
Decide which interfaces that you would like to configure a Team interface.
run ip link  command to check the available interface in the system.

Here i am using eno33554992 and eno50332216 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.

Now let me create the team interface. here is the command i used to create the team interface.
 

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

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 i am adding eno33554992 and eno50332216 as slave devices for team0 interface.


Verify the connection configuration using  #nmcli con show again. now you could see the slave configuration.



All the above command will create the required configuration files under /etc/sysconfig/network-scripts/.
[root@foundation ~]# ll /etc/sysconfig/network-scripts/ifcfg-team0*
-rw-r--r--. 1 root root 333 Dec 24 03:30 /etc/sysconfig/network-scripts/ifcfg-team0
-rw-r--r--. 1 root root 312 Dec 24 03:37 /etc/sysconfig/network-scripts/ifcfg-team0-port1
-rw-r--r--. 1 root root 312 Dec 24 03:37 /etc/sysconfig/network-scripts/ifcfg-team0-port2
[root@foundation ~]#


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




Verify the IP address information in #ip add show team0 command.



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 eno50332216


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





Yes its working as expected. !!  you could connect the disconnected connection back to team0 using the following command.
#nmcli dev con eno50332216


we have one more command called teamnl let me show you 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

There are many options , i would recommend to use manpages to get more information on teamnl and teamdctl command.
Hope this article is useful to you .share your feedback if any .