En este artículo explicaremos como configurar Active-Backup para interfaces de red en RHEL7.
La finalidad de utilizar Active-Backup es proporcionar redundancia en caso de fallo de alguna interfaz de red (NIC)
, se mantiene solo una interfaz activa mientras las otras simplemente esperan una falla para ser activadas automáticamente y en cuestión de milisegundos como respaldo, este proceso también es llamado mecanismo de Fail Over
.
Es importante mencionar que para esta configuración podemos utilizar bonding
o teaming
, ambas opciones realizan la misma función, no obstante, teaming
es compatible con todas las características más nuevas y comunes de controladores, por esta razón y en mi preferencia utilizaré teaming
para nuestro laboratorio de ejemplo.
Interfaces de Red (NIC´s)
Necesitaremos 2 interfaces de red (NIC´s)
, en nuestro caso serán las interfaces enp0s8
y enp0s9
:
{% highlight bash %}
[root@server1 ~]# nmcli device status
DEVICE TYPE STATE CONNECTION
virbr0 bridge connected virbr0
enp0s8 ethernet disconnected –
enp0s9 ethernet disconnected –
lo loopback unmanaged –
virbr0-nic tun unmanaged –
{% endhighlight %}
Creación de la Interfaz Virtual
Procedemos a crear la interfaz virtual maestra con el nombre que deseamos, en nuestro caso será “team1”
.
{% highlight bash %}
[root@server1 ~]# nmcli connection add type team con-name team1 ifname team1 config ‘{“runner”: {“name”: “activebackup”}}’
Connection ‘team1’ (7ef52bd0-f1b9-4d78-899f-ff41cb4ff520) successfully added.
{% endhighlight %}
Dirección IP, Gateway y DNS
Configuramos la dirección IP, Gateway y DNS para la interfaz virtual team1
.
{% highlight bash %}
[root@server1 ~]# nmcli connection modify team1 ipv4.addresses 192.168.2.200/24 ipv4.gateway 192.168.2.1 ipv4.dns 8.8.8.8
[root@server1 ~]# nmcli connection modify team1 ipv4.method manual
[root@server1 ~]# nmcli connection modify team1 connection.autoconnect yes
{% endhighlight %}
Ligar las Interfaces Esclavas a la Interfaz Maestra
Procedemos a ligar las interfaces esclavas enp0s8
y enp0s9
, a la interfaz maestra con los nombres que deseamos, en nuestro caso team1-port1
y team1-port2
, como se muestra a continuación:
{% highlight bash %}
root@server1 ~]# nmcli connection add type team-slave con-name team1-port1 ifname enp0s8 master team1
Connection ‘team1-port1’ (af9c2414-945f-489b-b21c-f64852418c05) successfully added.
[root@server1 ~]# nmcli connection add type team-slave con-name team1-port2 ifname enp0s9 master team1
Connection ‘team1-port2’ (bd31a3cd-55b6-4bf5-ba76-ce7218a806ce) successfully added.
{% endhighlight %}
Habilitar la Interfaz Virtual team1
Habilitamos la interfaz virtual team1
, esta misma reconocerá y levantará los esclavos ligados a ella:
{% highlight bash %}
[root@server1 ~]# nmcli connection up team1
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/12)
{% endhighlight %}
Verificar la Configuración
Finalmente verificamos la configuración con el comando teamdctl
:
{% highlight bash %}
[root@server1 ~]# teamdctl team1 state view
setup:
runner: activebackup
ports:
enp0s8
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
enp0s9
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
runner:
active port: enp0s8
{% endhighlight %}
Con esta configuración podemos observar que la interfaz activa es enp0s8
, la interfaz enp0s9
esta activa, pero en espera para entrar en funcionamiento en caso de fallo.
Verificar el Resultado
Ahora procedemos a probar nuestra configuración desactivando la interfaz activa enp0s8
y automáticamente la interfaz enp0s9
cumplirá la función de respaldo quedando activa, este proceso se lleva a cabo en cuestión de milisegundos.
{% highlight bash %}
[root@server1 ~]# nmcli connection down team1-port1
Connection ‘team1-port1’ successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/13)
[root@server1 ~]# teamdctl team1 state view
setup:
runner: activebackup
ports:
enp0s9
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
runner:
active port: enp0s9
{% endhighlight %}
Esperamos que este artículo les sea de utilidad.