Differences
This shows you the differences between two versions of the page.
linux_wiki:use_network_teaming_or_bonding_to_configure_aggregated_network_links_between_two_red_hat_enterprise_linux_systems [2018/05/29 22:07] billdozor |
linux_wiki:use_network_teaming_or_bonding_to_configure_aggregated_network_links_between_two_red_hat_enterprise_linux_systems [2019/05/25 23:50] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Use Network Teaming Or Bonding To Configure Aggregated Network Links Between Two Red Hat Enterprise Linux Systems ====== | ||
- | |||
- | **General Information** | ||
- | |||
- | Network interface teaming is a new method of what RHEL 6 referred to as bonding. There are more available options in RHEL 7's network teaming. | ||
- | |||
- | ---- | ||
- | |||
- | ====== Lab Setup ====== | ||
- | |||
- | The following virtual machines will be used: | ||
- | * server1.example.com (192.168.1.150) -> Configure a team interface backed by to slave interfaces | ||
- | * server2.example.com (192.168.1.151) -> Configure a team interface backed by to slave interfaces | ||
- | |||
- | ---- | ||
- | |||
- | ====== Help ====== | ||
- | |||
- | Finding help in this section. | ||
- | * nmcli examples< | ||
- | * Team ' | ||
- | |||
- | ---- | ||
- | |||
- | ====== Team Creation ====== | ||
- | |||
- | Creating a virtual team interface that is backed by two physical network interfaces. | ||
- | |||
- | ===== Virtualbox Notes ===== | ||
- | |||
- | To each virtual machine, **add two network interfaces**. | ||
- | |||
- | Each VM should end up with 3 total interfaces: | ||
- | * Main Management NIC: 192.168.1.x (server1=150 and server2=151) | ||
- | * Additional NIC for team-slave: Can be bridged or private | ||
- | * Additional NIC for team-slave: Can be bridged or private | ||
- | |||
- | \\ | ||
- | Due to the limitations of the virtualbox hypervisor, the virtual NICs must be configured to be in promiscuous mode. | ||
- | |||
- | \\ | ||
- | When NICs are added to a team, the MAC address of the first slave gets duplicated to the team interface and any other slave interfaces added. This confuses the underlying virtualbox hypervisor. | ||
- | |||
- | \\ | ||
- | In Virtualbox (Example from Virtualbox 5.2): | ||
- | * Select the EL7 virtual machine | ||
- | * Click Settings | ||
- | * Click Network | ||
- | * Under each Adapter tab, change the Promiscuous Mode drop down to "Allow All" | ||
- | * Click OK after changing all adapters | ||
- | |||
- | In the EL7 OS | ||
- | * Once the VM is booted up, set the interfaces to promiscuous mode< | ||
- | ip link set enp0s9 promisc on</ | ||
- | |||
- | ---- | ||
- | |||
- | ===== Packages ===== | ||
- | |||
- | Install Teamd package (if not already installed) | ||
- | <code bash> | ||
- | yum install teamd | ||
- | </ | ||
- | |||
- | \\ | ||
- | Install Network Manager team plugin (if not already installed) | ||
- | <code bash> | ||
- | yum install NetworkManager-team | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | ===== Interface Teaming ===== | ||
- | |||
- | **On each VM**; Create a new team connection | ||
- | <code bash> | ||
- | nmcli con add type team ifname team0 config ' | ||
- | </ | ||
- | * Connection name is auto-created by combining type and ifname. (team-< | ||
- | * If you really want to, you can define the con-name during creation | ||
- | * Other team " | ||
- | * broadcast -> transmit packets via all ports | ||
- | * roundrobin -> transmit in round robin | ||
- | * activebackup -> 1 active port, 1 on standby in case of failure | ||
- | * loadbalance -> balance between ports | ||
- | * lacp -> 802.3ad LACP protocol | ||
- | * **Example JSON configs** are available at: | ||
- | * / | ||
- | * man teamd.conf -> " | ||
- | |||
- | \\ | ||
- | Assign a static address to the virtual team0 interface | ||
- | * server1 team< | ||
- | * server2 team< | ||
- | |||
- | \\ | ||
- | **On each VM**; Add two **unconfigured** interfaces (enp0s8 and enp0s9) to the virtual team0 interface | ||
- | <code bash> | ||
- | nmcli con add type team-slave ifname enp0s8 master team0 | ||
- | nmcli con add type team-slave ifname enp0s9 master team0 | ||
- | </ | ||
- | * Connection name is auto-created by combining type and ifname. (team-slave-< | ||
- | * If you really want to, you can define the con-name during creation | ||
- | * If the interfaces have any previous configuration, | ||
- | * Remove configurations: | ||
- | |||
- | \\ | ||
- | **On each VM**; Configure ports and team as up | ||
- | <code bash> | ||
- | nmcli con up team-slave-enp0s8 | ||
- | nmcli con up team-slave-enp0s9 | ||
- | nmcli con up team-team0 | ||
- | </ | ||
- | |||
- | \\ | ||
- | View team status (by team device name) | ||
- | <code bash> | ||
- | teamdctl team0 state | ||
- | </ | ||
- | |||
- | \\ | ||
- | **Team Config Command Examples**< | ||
- | |||
- | ---- | ||
- | |||
- | ===== Interface Bonding ===== | ||
- | |||
- | If you run into issues with teaming not working correctly, you can always set up a bonded connection in order to achieve the objective on the exam. | ||
- | |||
- | This is straight from 'man nmcli-examples':< | ||
- | nmcli con add type ethernet ifname eth1 master mybond0 | ||
- | nmcli con add type ethernet ifname eth2 master mybond0</ | ||
- | |||
- | ---- | ||