01 Introdução ao Macvlan
O artigo anterior falou sobre vários tipos de dispositivos de rede virtual Linux: tap/tun, veth-pair, bridge, que são essencialmente soluções de virtualização de rede fornecidas por sistemas Linux, e o macvlan também é uma delas, para ser preciso, esta é uma solução de virtualização de placa de rede. Porque a tecnologia MacVlan podeUma NIC física é virtualmente transformada em múltiplas NICs virtuais, que é equivalente à placa de rede física que executa a técnica de múltiplos clones de sombra, de um a muitos.
02 Como funciona a MacVLAN
MacVLAN é um recurso novo suportado pelo kernel Linux, versões suportadas incluem v3.9-3.19 e 4.0+, e 4.0+ é recomendada para a versão mais estável. Geralmente existe na forma de módulos do kernel, e podemos julgar se o sistema atual o suporta das seguintes formas:
Se o primeiro comando der um erro, ou o segundo comando não retornar, significa que o sistema atual não suporta MacVLAN e o kernel precisa ser atualizado.
A tecnologia MacVLAN parece um pouco com VLAN, mas o mecanismo de implementação deles é completamente diferente. A subinterface macVLAN é completamente independente da interface principal original e pode ser configurada separadamente com endereço MAC e endereço IP, enquanto a subinterface VLAN e a interface principal compartilham o mesmo endereço MAC. VLANs são usadas para dividir domínios de broadcast, enquanto macvlans compartilham o mesmo domínio de broadcast.
Por meio de diferentes subinterfaces, a MacVLAN também pode alcançar isolamento de tráfego. O MacVLAN determinará para qual NIC virtual o pacote deve ser entregue com base no endereço MAC do destino do pacote, e então a NIC virtual passará o pacote para a pilha de protocolos da camada superior para processamento.
03 Quatro modos
Dependendo do modo de comunicação entre as subinterfaces MacVLAN, existem quatro modos de rede para MACVLAN:
- Modo privado
- Modo VEPA (Agregador de Portas Ethernet Virtual)
- Modo bridge
- Modo passthru
Por padrão, o modo VEPA é utilizado.
3.1 Privado
Nesse modo, as subinterfaces sob a mesma interface primária estão isoladas umas das outras e não podem se comunicar. Mesmo que seja desviado de um interruptor físico externo, será descartado sem piedade.
3.2 Vepa
Nesse modo, o tráfego entre subinterfaces precisa ser direcionado para um switch externo que suporte 802.1Qbg/VPEA (físico ou virtual), encaminhado pelo switch externo e depois de volta.
Nota: A função 802.1Qbg/VPEA simplesmente significa que o switch deve suportar a função hairpin, ou seja, o pacote de dados pode ser recebido de uma interface e depois devolvido.
3.3 Ponte
Nesse modo, a funcionalidade da ponte Linux é simulada, mas o melhor da ponte é que o endereço MAC de cada interface é conhecido e não precisa ser aprendido. Portanto, nesse modo, as sub-interfaces podem se comunicar diretamente.
3.4 Passthru
Esse modo permite que apenas uma única subinterface se conecte à interface principal, e deve ser configurado para modo promíscuo, geralmente usado para fazer pontes entre subinterfaces e criar subinterfaces VLAN.
3.5 Mactap
Outra tecnologia semelhante ao MacVLAN é o MacTap. Diferente do macvlan, o mactap recebe o pacote e o entrega para a pilha de protocolos, mas para um arquivo tapX, por meio do qual completa a comunicação direta com o usuário.
04 Prática
No Linux, o comando para criar uma macvlan é o seguinte:
Em geral, usar apenas macVLAN é inútil, e geralmente é uma combinação de VMs e containers para construir uma rede. Vamos usar o namespace para ver como o Linux usa macvlan.
A topologia experimental é a seguinte:
No meu sistema, usando a interface enp0s8 como exemplo, criei duas subinterfaces macvlan (usando o modo bridge), configurei o IP e o juntei em dois namespaces para testar a conectividade.
Nota: O endereço IP do enp0s8 é 192.168.56.110/24, e o endereço IP da subinterface configurada também deve ser do mesmo segmento CIDR.
Após duas subinterfaces, faça ping nele:
Você pode ver que pode ser pingado, mas se você mudar o modo acima para outro, não vai funcionar, então vou deixar para todos experimentarem (o padrão é o modo vepa).
Além disso, no Docker, o MacVLAN é um modelo de rede cross-host mais importante, que será discutido no próximo artigo.
05 Resumo
MACVLAN é uma tecnologia de virtualização de placas de rede que pode virtualizar uma placa de rede em múltiplas placas de rede.
Os quatro modos de comunicação do MacVLAN, sendo o modo mais comum o Bridge.
Pense bem:
Semelhanças e diferenças entre a Ponte Macvlan e a Ponte Existe uma tecnologia semelhante em que múltiplas placas de rede virtuais compartilham o mesmo endereço MAC, mas possuem endereços IP independentes.
Endereço original:O login do hiperlink está visível.
|