
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 teams
para isso, mas isso não é realmente necessário. Para sistemas Ubuntu/Debian você pode simplesmente editar /etc/network/interfaces
e 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 tcpdump
em qualquer parte que você precise depurar. Neste exemplo bond0
está o tráfego bruto com tags VLAN em duas conexões, enp1s0f0
e enp1s0f1
sã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.