Ferramentas de Usuário

Ferramentas de Site


pt:stretch:config:network:bonding

2.1.4 Agregação de interfaces de rede

A maior parte dos sistemas atuais dispõe de 2 (ou mais) ligações Ethernet. Estas podem ser utilizadas em separado ou em paralelo, numa técnica chamada bonding. Esta técnica é muito interessante, uma vez que possibilita o balanceamento de dados (os dados são transmitidos pelas 2 interfaces) e tolerância a falhas (caso uma ligação falhe, a transmissão é assegurada pela outra).

No nosso servidor, iremos agregar as duas interfaces físicas do sistema eno1 e eno2 para criar uma nova interface de rede bond0 de alta disponibilidade.

Ethernet bonding

Ethernet bonding, regulado pela norma IEEE 802.3ad com o título link aggregation é um termo da disciplina de redes de computadores que descreve o acoplamento de dois ou mais canais Ethernet em paralelo para produzir um único canal de maior velocidade e/ou aumentar a disponibilidade e redundância desse canal.

Instalação

<sxh bash; highlight: [1]> root@server~# apt install ifenslave </sxh>

Configuração

Para criar a interface bond0 deverá ser carregado e configurado o módulo bonding do kernel. Este módulo será carregado automaticamente após a configuração; por agora deverá ser carregado manualmente:

<sxh bash; highlight: [1]> root@server:~# modprobe bonding </sxh>

Verificar que está realmente carregado:

<sxh bash; highlight: [1]> root@server:~# lsmod | grep bonding bonding 147456 0 </sxh>

O passo seguinte é a parametrização da nova interface de rede e remoção (ou comentar) qualquer referência às interfaces físicas por ela usadas, o que é feito no ficheiro /etc/network/interfaces:

<sxh; highlight: [16-39]; title: /etc/network/interfaces> # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5).

# The loopback network interface # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5).

# The loopback network interface auto lo iface lo inet loopback

# The primary network interface # allow-hotplug eno1 # iface eno1 inet dhcp

# Static IP address #auto eno1 #iface eno1 inet static # address 192.168.1.100 # netmask 255.255.255.0 # network 192.168.1.0 # broadcast 192.168.1.255 # gateway 192.168.1.1

# Interface bonding # Static IP address auto bond0 iface bond0 inet static

      slaves eno1 eno2
      bond-mode balance-rr
      bond-miimon 100
      bond_downdelay 200
      bond_updelay 200
      address 192.168.1.100
      netmask 255.255.255.0
      network 192.168.1.0
      broadcast 192.168.1.255
      gateway 192.168.1.1

</sxh>

Desta forma é criada a interface bond0, compostas pela agregação das interfaces “escravas” eno1 e eno2. O parâmetro bond-mode balance-rr indica que a interface irá operar em modo balance-rr, em que os dados serão transmitidos alternadamente pelas diversas interfaces físicas que compõem a nova interface bond0.

Finalmente, reiniciar os serviços de rede:

<sxh bash; highlight: [1]> root@server:~# systemctl restart networking </sxh>

Verificação

O comando ifconfig permite verificar o estado das interfaces de rede:

<sxh bash; highlight: [1]> root@server:~# ifconfig bond0 Link encap:Ethernet HWaddr 08:00:27:69:7a:b5

        inet addr:192.168.56.100  Bcast:192.168.56.255  Mask:255.255.255.0
        UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
        RX packets:47 errors:0 dropped:0 overruns:0 frame:0
        TX packets:62 errors:0 dropped:0 overruns:0 carrier:0
        collisions:0 txqueuelen:0
        RX bytes:5803 (5.6 KiB)  TX bytes:8608 (8.4 KiB)

eno1 Link encap:Ethernet HWaddr 08:00:27:69:7a:b5

        UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
        RX packets:44 errors:0 dropped:0 overruns:0 frame:0
        TX packets:31 errors:0 dropped:0 overruns:0 carrier:0
        collisions:0 txqueuelen:1000
        RX bytes:5601 (5.4 KiB)  TX bytes:2842 (2.7 KiB)

eno2 Link encap:Ethernet HWaddr 08:00:27:69:7a:b5

        UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
        RX packets:3 errors:0 dropped:0 overruns:0 frame:0
        TX packets:31 errors:0 dropped:0 overruns:0 carrier:0
        collisions:0 txqueuelen:1000
        RX bytes:202 (202.0 B)  TX bytes:5766 (5.6 KiB)

lo Link encap:Local Loopback

        inet addr:127.0.0.1  Mask:255.0.0.0
        inet6 addr: ::1/128 Scope:Host
        UP LOOPBACK RUNNING  MTU:16436  Metric:1
        RX packets:193243 errors:0 dropped:0 overruns:0 frame:0
        TX packets:193243 errors:0 dropped:0 overruns:0 carrier:0
        collisions:0 txqueuelen:0
        RX bytes:31609190 (30.1 MiB)  TX bytes:31609190 (30.1 MiB)

</sxh>

A interface bond0 tem atribuído um endereço Internet e as 3 interfaces (bond0, eno1 e eno2) têm o mesmo endereço físico (“HWaddr 08:00:27:69:7a:b5”), para que sejam “vistas” pelo resto da rede como sendo apenas uma.

É possível obter ainda mais informações sobre o estado da interface bond0 e respetivos componentes:

<sxh bash; highlight: [1]> root@server:~# cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: load balancing (round-robin) MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 200 Down Delay (ms): 200

Slave Interface: eno1 MII Status: up Speed: Unknown Duplex: Unknown Link Failure Count: 0 Permanent HW addr: 08:00:27:69:7a:b5 Slave queue ID: 0

Slave Interface: eno2 MII Status: up Speed: Unknown Duplex: Unknown Link Failure Count: 0 Permanent HW addr: 08:00:27:22:af:bf Slave queue ID: 0 </sxh>

Referências

pt/stretch/config/network/bonding.txt · Última modificação em: 2020-08-02 20:10 (edição externa)

Excepto menção em contrário, o conteúdo neste wiki está sob a seguinte licença: CC Attribution-Noncommercial-Share Alike 4.0 International
CC Attribution-Noncommercial-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki