sábado, 10 de dezembro de 2016

Configurando 2 placas de redes em "bond" no Linux Fedora 25

O que é o "bonding" de placas de rede no Linux?
R: É quando se juntam 2 ou mais placas de redes de uma mesma CPU para trabalharem como se fossem uma só. O objetivo é ter redundância no link (caso uma delas venha a falhar) e obter performance - para um bond de 2 placas de 1 gbit/s a velocidade obtida seria de 2 gbit/s.

Como fazer: (cenário)
- usuário: root
- endereço IP: 192.168.0.15
- DNS/GATEWAY: 192.168.0.1
- Nome das placas: eno1 e eno2

1) Crie um arquivo /etc/sysconfig/network-scripts/ifcfg-bond0
com o seguinte conteúdo:

DEVICE=bond0
NAME=bond0
TYPE=bond
ONBOOT=yes
BONDING_MASTER=yes
IPADDR=192.168.0.15
PREFIX=24
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=192.168.0.1
BONDING_OPTS="miimon=100 mode=0"
NM_CONTROLLED=no


Não entrarei em detalhes neste post sobre o argumento 'mode=0' da linha BOND_OPTS acima. O máximo que posso dizer é que tal modo é o que define que é um bond de redundância.

2) Crie um arquivo /etc/sysconfig/network-scripts/ifcfg-eno1
com o seguinte conteúdo (não se esqueça de informar o seu mac address):

HWADDR=A4:5D:36:29:5C:98
TYPE=Ethernet
DEVICE=eno1
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
IPV6INIT=no
NAME="bond0-slave0"
NM_CONTROLLED=no


3) Crie um arquivo /etc/sysconfig/network-scripts/ifcfg-eno2
com o seguinte conteúdo (não se esqueça de informar o seu mac address)::

HWADDR=A4:5D:36:29:5C:99
TYPE=Ethernet
DEVICE=eno2
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
IPV6INIT=no
NAME="bond0-slave1"
NM_CONTROLLED=no

 

4) Desative as placas de rede:

ifdown eno1
ifdown eno2

5) Verifique se o arquivo /etc/resolv.conf está apontando para o seu servidor de dns:
nameserver 192.168.0.1

6) Suba as placas de rede e o bond

ifup eno1
ifup eno2
ifup bond0

7) Verifique tudo com ifconfig: (segue a minha tela)

bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST>  mtu 1500
        inet 192.168.0.15  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::a65d:36ff:fe29:5c98  prefixlen 64  scopeid 0x20<link>
        ether a4:5d:36:29:5c:98  txqueuelen 1000  (Ethernet)
        RX packets 16197  bytes 9361506 (8.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8768  bytes 1271358 (1.2 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eno1: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST>  mtu 1500
        ether a4:5d:36:29:5c:98  txqueuelen 1000  (Ethernet)
        RX packets 8154  bytes 4734895 (4.5 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4384  bytes 629989 (615.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 17 

eno2: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST>  mtu 1500
        ether a4:5d:36:29:5c:98  txqueuelen 1000  (Ethernet)
        RX packets 8043  bytes 4626611 (4.4 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4384  bytes 641369 (626.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 18 


Para testa a redundância, retire um dos cabos de rede e verifique se a conexão permaneceu ativa. Caso positivo, recoloque o cabo retirado e retire o outro. Caso positivo, seu "bond" está devidamente configurado!

Críticas, pitacos, sugestões e dúvidas, fiquem à vontade nos comentários!