31.7. Agregação de links e failover
Anterior | Capítulo 31. Rede Avançada | Próxima

## 31.7. Agregação de links e failover

Escrito por André Thompson .

O FreeBSD fornece a interface lagg(4) que pode ser usada para agregar várias interfaces de rede em uma interface virtual para fornecer failover e agregação de links. O failover permite que o tráfego continue a fluir, desde que pelo menos uma interface de rede agregada tenha um link estabelecido. A agregação de links funciona melhor em switches compatíveis com LACP, pois esse protocolo distribui o tráfego bidirecionalmente ao responder à falha de links individuais.

Os protocolos de agregação suportados pela interface lagg determinam quais portas são usadas para o tráfego de saída e se uma porta específica aceita tráfego de entrada. Os seguintes protocolos são suportados pelo lagg(4):

failover

  Este modo envia e recebe tráfego somente através da porta principal. Se a porta principal ficar indisponível, a próxima porta ativa será usada. A primeira interface adicionada à interface virtual é a porta principal e todas as interfaces adicionadas posteriormente são usadas como dispositivos de failover. Se ocorrer um failover em uma porta não mestre, a porta original se tornará a principal quando estiver disponível novamente.

fec / loadbalance

  Cisco® Fast EtherChannel® (FEC) é encontrado em versões anteriores de switches Cisco ®. Ele fornece uma configuração estática e não negocia a agregação com o par ou troca quadros para monitorar o link. Se o switch suportar LACP, isso deve ser usado em seu lugar.

lacp

  O protocolo de controle de agregação de links IEEE® 802.3ad (LACP) negocia um conjunto de links agregáveis ​​com o peer em um ou mais grupos agregados de links (LAGs). Cada LAG é composto de portas da mesma velocidade, configuradas para operação full-duplex e o tráfego é balanceado entre as portas no LAG com a maior velocidade total. Normalmente, há apenas um LAG que contém todas as portas. No caso de alterações na conectividade física, o LACP convergirá rapidamente para uma nova configuração.

  O LACP equilibra o tráfego de saída nas portas ativas com base nas informações de hash do cabeçalho do protocolo e aceita tráfego de entrada de qualquer porta ativa. O hash inclui o endereço Ethernet de origem e destino e, se disponível, a tag VLAN e o endereço de origem e destino IPv4 ou IPv6.

roundrobin

  Esse modo distribui o tráfego de saída usando um agendador round-robin por meio de todas as portas ativas e aceita tráfego de entrada de qualquer porta ativa. Como esse modo viola a ordenação de quadros Ethernet, ele deve ser usado com cautela.

### 31.7.1. Exemplos de configuração

Esta seção demonstra como configurar um switch Cisco® e um sistema FreeBSD para balanceamento de carga LACP. Em seguida, ele mostra como configurar duas interfaces Ethernet no modo de failover, além de como configurar o modo de failover entre uma Ethernet e uma interface sem fio.

Exemplo 31.1. Agregação LACP com um switch Cisco®

Este exemplo conecta duas interfaces Ethernet fxp(4) em uma máquina FreeBSD às duas primeiras portas Ethernet em um switch Cisco® como um link de carga única balanceada e tolerante a falhas. Mais interfaces podem ser adicionadas para aumentar o rendimento e a tolerância a falhas. Substitua os nomes das portas Cisco®, dos dispositivos Ethernet, do número do grupo de canais e do endereço IP mostrado no exemplo para corresponder à configuração local.

A ordenação de quadros é obrigatória em links Ethernet e qualquer tráfego entre duas estações sempre flui pelo mesmo link físico, limitando a velocidade máxima àquela de uma interface. O algoritmo de transmissão tenta usar o máximo de informações possível para distinguir diferentes fluxos de tráfego e equilibrar os fluxos entre as interfaces disponíveis.

No switch Cisco®, adicione as interfaces `FastEthernet0/1` e `FastEthernet0/2` ao grupo de canais `1`:

    interface FastEthernet0/1
     channel-group 1 mode active
     channel-protocol lacp
    !
    interface FastEthernet0/2
     channel-group 1 mode active
     channel-protocol lacp

No sistema FreeBSD, crie a interface lagg(4) usando as interfaces físicas `fxp0` e `fxp1` e suba as interfaces com o endereço IP de `10.0.0.3/24`:

    # ifconfig fxp0 up
    # ifconfig fxp1 up
    # ifconfig lagg0 create
    # ifconfig lagg0 up laggproto lacp laggport fxp0 laggport fxp1 10.0.0.3/24

Em seguida, verifique o status da interface virtual:

    # ifconfig lagg0
    lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
            options=8<VLAN_MTU>
            ether 00:05:5d:71:8d:b8
            inet 10.0.0.3 netmask 0xffffff00 broadcast 10.0.0.255
            media: Ethernet autoselect
            status: active
            laggproto lacp
            laggport: fxp1 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
            laggport: fxp0 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>

Portas marcadas como `ACTIVE` fazem parte do LAG que foi negociado com o switch remoto. O tráfego será transmitido e recebido através dessas portas ativas. Adicione `-v` ao comando acima para ver os identificadores LAG.

Para ver o status da porta no switch Cisco®:

    switch# show lacp neighbor
    Flags:  S - Device is requesting Slow LACPDUs
            F - Device is requesting Fast LACPDUs
            A - Device is in Active mode       P - Device is in Passive mode

    Channel group 1 neighbors

    Partner's information:

                      LACP port                        Oper    Port     Port
    Port      Flags   Priority  Dev ID         Age     Key     Number   State
    Fa0/1     SA      32768     0005.5d71.8db8  29s    0x146   0x3      0x3D
    Fa0/2     SA      32768     0005.5d71.8db8  29s    0x146   0x4      0x3D

Para mais detalhes, digite `show lacp neighbor detail`

Para manter esta configuração através de reinicializações, adicione as seguintes entradas ao `/etc/rc.conf` no sistema FreeBSD:

    ifconfig_fxp0="up"
    ifconfig_fxp1="up"
    cloned_interfaces="lagg0"
    ifconfig_lagg0="laggproto lacp laggport fxp0 laggport fxp1 10.0.0.3/24"

Exemplo 31.2. Modo de Failover

O modo de failover pode ser usado para alternar para uma interface secundária se o link for perdido na interface principal. Para configurar o failover, certifique-se de que as interfaces físicas subjacentes estejam ativadas e crie a interface lagg(4). Neste exemplo, `fxp0` é a interface principal, `fxp1` é a interface secundária e a interface virtual recebeu um endereço IP de `10.0.0.15/24`:

    # ifconfig fxp0 up
    # ifconfig fxp1 up
    # ifconfig lagg0 create
    # ifconfig lagg0 up laggproto failover laggport fxp0 laggport fxp1 10.0.0.15/24

A interface virtual deve ser algo como isto:

    # ifconfig lagg0
    lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
            options=8<VLAN_MTU>
            ether 00:05:5d:71:8d:b8
            inet 10.0.0.15 netmask 0xffffff00 broadcast 10.0.0.255
            media: Ethernet autoselect
            status: active
            laggproto failover
            laggport: fxp1 flags=0<>
            laggport: fxp0 flags=5<MASTER,ACTIVE>

O tráfego será transmitido e recebido em `fxp0`. Se o link for perdido em `fxp0`, `fxp1` se tornará o link ativo. Se o link for restaurado na interface principal, ele se tornará novamente o link ativo.

Para manter essa configuração através de reinicializações, adicione as seguintes entradas ao `/etc/rc.conf`:

    ifconfig_fxp0="up"
    ifconfig_fxp1="up"
    cloned_interfaces="lagg0"
    ifconfig_lagg0="laggproto failover laggport fxp0 laggport fxp1 10.0.0.15/24"

Exemplo 31.3. Modo de failover entre interfaces Ethernet e sem fio

Para usuários de laptop, geralmente é desejável configurar o dispositivo sem fio como secundário, que é usado somente quando a conexão Ethernet não está disponível. Com lagg(4), é possível configurar um failover que preferia a conexão Ethernet por motivos de desempenho e de segurança, mantendo a capacidade de transferência dados através da conexão sem fio.

Isso é obtido substituindo o endereço MAC da interface física sem fio com o da interface Ethernet.

Neste exemplo, a interface Ethernet, `bge0`, é a interface principal e a interface sem fio, `wlan0`, é o failover. O dispositivo `wlan0` foi criado a partir da interface wireless `iwn0`, que será configurada com o endereço MAC da interface Ethernet. Primeiro, determine o endereço MAC da interface Ethernet:

    # ifconfig bge0
    bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
    	options=19b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4>
    	ether 00:21:70:da:ae:37
    	inet6 fe80::221:70ff:feda:ae37%bge0 prefixlen 64 scopeid 0x2
    	nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
    	media: Ethernet autoselect (1000baseT <full-duplex>)
    	status: active

Substitua `bge0` para corresponder ao nome da interface Ethernet do sistema. A linha `ether` conterá o endereço MAC da interface especificada. Agora, altere o endereço MAC da interface sem fio subjacente:

    # ifconfig iwn0 ether 00:21:70:da:ae:37

Suba a interface sem fio, mas não defina um endereço IP:

    # ifconfig wlan0 create wlandev iwn0 ssid my_router up

Certifique-se de que a interface `bge0` esteja ativa, então crie a interface lagg(4) com a `bge0` como master com failover para a`wlan0`:

    # ifconfig bge0 up
    # ifconfig lagg0 create
    # ifconfig lagg0 up laggproto failover laggport bge0 laggport wlan0

A interface virtual deve ser algo como isto:

    # ifconfig lagg0
    lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
            options=8<VLAN_MTU>
            ether 00:21:70:da:ae:37
            media: Ethernet autoselect
            status: active
            laggproto failover
            laggport: wlan0 flags=0<>
            laggport: bge0 flags=5<MASTER,ACTIVE>

Em seguida, inicie o cliente DHCP para obter um endereço IP:

    # dhclient lagg0

Para manter essa configuração através de reinicializações, adicione as seguintes entradas ao `/etc/rc.conf`:

    ifconfig_bge0="up"
    wlans_iwn0="wlan0"
    ifconfig_wlan0="WPA"
    create_args_wlan0="wlanaddr 00:21:70:da:ae:37"
    cloned_interfaces="lagg0"
    ifconfig_lagg0="up laggproto failover laggport bge0 laggport wlan0 DHCP"

Anterior | Acima | Próxima
31.6. Bridging | Principal | 31.8. Operação Diskless com PXE

All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/

Questions that are not answered by the documentation may be sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.