Vinculando 2 interfaces dentro de um namespace de rede Linux

Vinculando 2 interfaces dentro de um namespace de rede Linux

Eu gostaria de poder vincular/agregar 2 interfaces dentro de um namespace de rede Linux.

A configuração com a qual estou trabalhando é a seguinte:

  • Na pilha de rede raiz do Linux, tenho duas interfaces Ethernet físicas:
    • eth0
    • eth1
  • E então eu tenho um namespace de rede que possui 2 interfaces:
    • ethX0 que está em ponte com a eth0 física
    • ethX1 que está interligado ao eth1 físico

Gostaria de vincular ethX0 e ethX1 dentro do namespace da rede, com 802.3ad ou backup ativo.

Mas a ligação no Linux funciona no nível da interface física e não consigo fazer isso funcionar, embora não veja por que (no nível do quadro) isso não poderia ser feito? Eu posso criar um net-nssobreum vínculo, mas não um vínculosobreuma rede-ns.

Não consigo vincular as interfaces físicas eth0 e eth1, porque quero poder abordá-las separadamente para uma infinidade de outros aplicativos, mas gostaria que apenas ethX0 e ethX1 fossem vinculados.

Alguma idéia de como fazer isso ?

Responder1

A resposta que encontrei foi usar equipes. Excelente API Linux recente, funciona em namespaces de rede e o comportamento pode ser controlado a partir do usuário. Coisas boas!

Responder2

Algumas pessoas parecem usar teamspara isso, mas isso não é realmente necessário. Para sistemas Ubuntu/Debian você pode simplesmente editar /etc/network/interfacese fazer algo assim para usar o suporte nativo do kernel:

# The loopback network interface
auto lo
iface lo inet loopback

# 2 x 10 Gbps LACP link:
auto bond0
iface bond0 inet manual
bond-mode 802.3ad
bond-miimon 100
bond-lacp-rate 1
bond-slaves enp1s0f0 enp1s0f1

# 10 Gbps port 1:
auto enp1s0f0
iface enp1s0f0 inet manual
bond-master bond0

# 10 Gbps port 2:
auto enp1s0f1
iface enp1s0f1 inet manual
bond-master bond0

# VLAN 395:
auto bond0.395
iface bond0.395 inet static
address 11.22.33.44
netmask 255.255.255.224
gateway 11.22.33.1
dns-nameservers 11.22.33.1 11.22.33.2
dns-search example.com
vlan-raw-device bond0

Isso permite tocar tcpdumpem qualquer parte que você precise depurar. Neste exemplo bond0está o tráfego bruto com tags VLAN em duas conexões, enp1s0f0e enp1s0f1são as portas brutas que transferem o tráfego LACP/802.3ad e bond0.395é a rede lógica sem tags VLAN. Obviamente, o número VLAN correto depende da sua configuração upstream, 395é apenas um exemplo.

Verhttps://wiki.debian.org/Bondingpara detalhes.

informação relacionada