AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 894828
Accepted
Mat
Mat
Asked: 2018-01-31 09:05:58 +0800 CST2018-01-31 09:05:58 +0800 CST 2018-01-31 09:05:58 +0800 CST

Modo de ligação Linux 802.3ad não ativado

  • 772

em um servidor executando o Debian Stretch , configurei um bond0 com o modo 802.3ad da seguinte forma:

auto bond0
iface bond0 inet manual
        slaves eth0 eth2
        bond_miimon 100
        bond_mode 802.3ad

A interface bond0 está funcionando, mas está funcionando com o modo de balanceamento de carga (round robin) :

root@servir01:~# 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): 0
Down Delay (ms): 0

Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 2
Permanent HW addr: e4:1f:13:65:f0:c4
Slave queue ID: 0

Slave Interface: eth2
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 2
Permanent HW addr: e4:1f:13:36:a3:ac
Slave queue ID: 0

No switch, o LAG é criado corretamente com o LACP habilitado e tem ambas as portas em funcionamento:

[Status de LAG[1]

Status da Unidade3/porta1

Status da Unidade4/porta1

A mesma máquina tem outra interface bond (bond1 nas interfaces eth1 e eth3) configurada da mesma forma, conectada nos mesmos switches, e o LACP está funcionando bem:

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2 (0)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

802.3ad info
LACP rate: slow
Min links: 0
Aggregator selection policy (ad_select): stable
System priority: 65535
System MAC address: e4:1f:13:65:f0:c6
Active Aggregator Info:
    Aggregator ID: 1
    Number of ports: 2
    Actor Key: 9
    Partner Key: 1010

Por que a interface bond0 não deseja habilitar o LACP? Onde estou errado?

debian
  • 4 4 respostas
  • 9455 Views

4 respostas

  • Voted
  1. Radar
    2018-07-11T12:04:49+08:002018-07-11T12:04:49+08:00

    Pergunta antiga, mas já que surge bem cedo nas pesquisas, e eu tive uma configuração parecida, com o mesmo problema. Aqui está como eu fiz isso funcionar (usando ifenslave no trecho Debian) ...

    /etc/network/interfaces...

        # The loopback network interface
        auto lo
        iface lo inet loopback
    
        # bond0 is the bonded NIC and can be used like any other normal NIC.
        # bond0 is configured using static addressing.
        auto bond0
        iface bond0 inet static
        address <your static address>
        gateway <your gateway>
        # bond0 uses standard IEEE 802.3ad LACP bonding protocol
        bond-mode 4
        bond-miimon 100
        bond-lacp-rate 0 (This is on a small NAS, so no rush)
        bond-slaves none
    
        # eth0 is manually configured, and enslaved to the "bond0" pseudo NIC
        allow_hotplug eth0
        auto eth0
        iface eth0 inet manual
        bond-master bond0
    
        # eth1 ditto, thus creating a 2-link bond.
        allow_hotplug eth1
        auto eth1
        iface eth1 inet manual
        bond-master bond0
    

    Qual foi a causa?

    Bem, os NICs apareciam, o driver de bonding os pegava, então os NICs desciam para serem reconfigurados para serem escravos, e o driver de bonding entrava em pânico porque não tinha escravos e corria como uma galinha sem cabeça (round robin ).

    Agora, o driver de bonding aparece, vê que não tem escravos, então ele se senta e espera... Os NICs vêem que eles têm um mestre, então eles vão e reportam, pegam seus endereços de bond0 e vão trabalhar todos eles vão.

    • 5
  2. quaie
    2020-02-06T04:49:28+08:002020-02-06T04:49:28+08:00

    testado no debian 10 (depois de ler este tópico e a documentação de ligação do debian)

    config está abaixo (nenhum outro arquivo editado - módulos ou algo parecido)

    auto enp4s0f2
    allow-hotplug enp4s0f2
    iface enp4s0f2 inet manual
            bond-master bond1
            bond-mode 4
    
    auto enp4s0f3
    allow-hotplug enp4s0f3
    iface enp4s0f3 inet manual
            bond-master bond1
            bond-mode 4
    
    auto bond1
    iface bond1 inet static
            address 1.2.3.4
            netmask 255.255.255.0
            bond-mode 4
            bond-slaves none
            bond-miimon 100
            bond-lacp-rate 1
            bond-updelay 800
            bond-downdelay 400
            bond_xmit_hash_policy layer2+3    # optional, sets the bonding algorithm
    

    o que há de novo:

    • interfaces são trazidas ANTES do vínculo
    • o modo de ligação também é especificado no nível da interface
    • o vínculo não tem escravos definidos
    • 2
  3. Arunas Bartisius
    2021-08-21T08:06:36+08:002021-08-21T08:06:36+08:00

    Passei alguns dias após a atualização do Debian 10 buster (atualização completa) para o Debian 11 Bullseye, então quero compartilhar a solução do problema de ligação.

    Após a atualização do Debian Linux, a configuração de tronco existente não está mais funcionando. Há mudanças importantes, conhecidas como bugs:

    • https://www.debian.org/releases/bullseye/amd64/release-notes/ch-information.html
    • https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=990428
    • https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=968368

    E anteriormente no Debian 10 a configuração do bond0 era assim:

    cat /etc/network/interfaces.d/bond0
    
    auto enp9s0f0
    iface enp9s0f0 inet manual
            bond-master bond0
            bond-mode 4
    
    auto enp9s0f1
    iface enp9s0f1 inet manual
            bond-master bond0
            bond-mode 4
    
    auto bond0
    iface bond0 inet static
            address 192.168.23.1
            network 192.168.23.0
            netmask 255.255.255.128
    
            bond-slaves none
            bond-miimon 100
            bond-lacp-rate 1         # 'fast' detection, every 1s, instead of 'slow', every 30s
    #        bond-updelay 100        # optional, mostly for debugging
    #        bond-downdelay 100      # optional, mostly for debugging
            bond-xmit-hash-policy layer2+3    # optional, sets the bonding algorithm
    

    o que resultou em nenhum bond0 configurado ou até mesmo erros como estes:

    RTNETLINK answers: Cannot assign requested address
    run-parts: /etc/network/if-pre-up.d/ifenslave exited with return code 1
    networking.service: Main process exited, code=exited, status=1/FAILURE
    

    ou

    journalctl -n -u networking
    

    mostrando linha de erro

    No iface stanza found for master
    

    onde 'estrofe' é a chamada configuração do módulo, termo usado pelos desenvolvedores.

    A causa raiz disso é que o ifenslavepacote foi muito refatorado, a ideia principal era remover a "estrofe" dos itens filhos, que são interfaces físicas (nic), e manter tudo em um só lugar, por exemplo, a própria interface de ligação .

    Também ainda na ifenslaveversão 1.22 bug deixou, referindo-se ao comando inexistente ifstateno Debian 11. A correção fácil e rápida é:

    sed -i 's/ifstate -l/ip link show dev/g' /etc/network/if-pre-up.d/ifenslave
    

    Mesmo depois de corrigir isso, o vínculo não funciona, isso significa que há erros de problemas pelos quais o vínculo não está funcionando no Bullseye.

    Examinando o código, descobri que a mudança de chave não era apenas remover bond-modedo filho e colocá-lo de volta na configuração da interface de vínculo , como era nos primeiros dias do pacote, mas também reverter para o formato inicial do bond-slaves.

    Assim, o arquivo de configuração de ligação do Debian 11 Bullseye funciona assim:

    cat /etc/network/interfaces.d/bond0
    
    auto enp9s0f0
    iface enp9s0f0 inet manual
            bond-master bond0
    
    auto enp9s0f1
    iface enp9s0f1 inet manual
            bond-master bond0
    
    auto bond0
    iface bond0 inet static
            address 192.168.23.1
            network 192.168.23.0
            netmask 255.255.255.128
    
            bond-mode 4
            bond-slaves enp9s0f0 enp9s0f1
            bond-miimon 100
            bond-lacp-rate 1         # 'fast' detection, every 1s, instead of 'slow', every 30s
    #        bond-updelay 100        # optional, mostly for debugging
    #        bond-downdelay 100      # optional, mostly for debugging
            bond-xmit-hash-policy layer2+3    # optional, sets the bonding algorithm
    

    Atualização 2022:

    Recentemente, em um dos servidores de metal, tive um problema que, após a atualização do kernel e a remoção do kernel antigo, o sistema ficou sem rede. Para encurtar a história - pode haver casos em que o módulo do kernel de ligação não esteja carregado, não esteja presente ou qualquer falha de carregamento devido à mistura de versões ou ao initrd bagunçado. Verifique isso com:

    lsmod | grep bond
    bonding               167936  0
    

    Se não estiver lá, este é um culpado do problema. Tente carregar o módulo manualmente modprobe bondinge verifique se ele carrega. Investigue se a versão do kernel carregado corresponde ao que deveria ser uname -re verifique se o diretório de módulos está presente para essa versão.

    Referência: https://www.kernel.org/doc/Documentation/networking/bonding.txt

    • 2
  4. Best Answer
    Mat
    2018-10-27T01:51:57+08:002018-10-27T01:51:57+08:00

    Eu resolvi esse problema adicionando o seguinte à configuração do vínculo em /etc/network/interfaces:

    bond_xmit_hash_policy layer2+3
    

    Depois de adicionar essa configuração e reiniciar a rede, tudo está funcionando bem.

    • 0

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve