Duas placas de desenvolvimento precisam de partilhar um único segmento Ethernet enquanto as suas bancadas estão em edifícios diferentes. O túnel já existe e já transporta Ethernet, por isso o trabalho restante parece três comandos e não é. O que o host faz com um quadro que passou pela ponte, onde pertence o endereço do próprio PC e que fronteira a ponte não cria são três factos separados, e errar o segundo é a razão habitual para um laboratório funcionar de forma intermitente e o seu acesso de gestão degradar-se em silêncio. Nenhum desses três factos é visível num diagrama de topologia.

O percurso abaixo pressupõe uma ligação TAP autenticada entre dois PCs Linux, uma porta com fios dedicada por bancada e uma interface de gestão que não faz parte da experiência. A ordem importa: primeiro os quadros, depois os endereços, por fim a fronteira.

O que a ponte realmente move

Uma ponte é um comutador implementado em software. Aprende que endereço MAC aparece atrás de que porta membro e encaminha quadros entre membros sem consultar uma tabela de encaminhamento IP. Nada nessa descrição inclui uma sub-rede, um gateway ou uma rota predefinida, e é por isso que ativar o reencaminhamento IP não produz esta ligação e que um ping pode ter sucesso enquanto outro tráfego continua a falhar. Uma placa pode alcançar a sua companheira sem qualquer rota predefinida configurada, o que surpreende quem espera que a camada dois se comporte como a camada três.

Cada PC acrescenta uma porta com fios à ponte e o dispositivo TAP à mesma ponte, por isso um quadro de uma placa entra na porta local, é encaminhado para o dispositivo TAP, atravessa o túnel, chega ao dispositivo TAP da companheira e é encaminhado para a placa dela. O túnel é uma porta membro como qualquer outra, e a ponte não sabe nem se importa que haja uma VPN por trás. É essa simetria que torna o exemplo fácil de raciocinar: cada lado tem uma porta virada para o laboratório e uma porta de túnel, e nenhum lado é especial.

Board A -- bench0 -- br-test -- tap-bench
                                 |  OpenVPN TAP
Board B -- bench0 -- br-test -- tap-bench

Os nomes idênticos nos dois PCs são nomes locais, não objetos partilhados. Há um único caminho Ethernet entre as bancadas, sem um segundo cabo e sem um segundo túnel que feche um ciclo; uma ponte que vê o mesmo MAC chegar em duas portas encaminhará alegremente às voltas.

Enderece a ponte, não as suas portas membro

A identidade do PC no segmento do laboratório pertence ao dispositivo ponte. As portas membro ficam sem número, porque uma porta é um membro de encaminhamento e um endereço nela criaria um segundo proprietário concorrente do mesmo segmento. Esta é a correção que a maioria das receitas feitas à mão erra: endereçam o dispositivo TAP e a ponte, e depois perguntam-se qual dos dois a companheira realmente alcança.

ip link add br-test type bridge
ip link set bench0 master br-test
ip link set tap-bench master br-test
ip address add 172.30.90.2/24 dev br-test
ip link set bench0 up
ip link set tap-bench up
ip link set br-test up

A companheira usa a mesma forma com outro endereço de host, e as placas tomam endereços no mesmo intervalo usando o endereço da ponte do PC como próximo salto se precisarem de um. Use intervalos de documentação até o plano estar acordado, e reserve o intervalo para não colidir com nada que o escritório já encaminhe. Antes de executar qualquer parte, confirme que as portas membro não transportam nenhum endereço residual, nenhum cliente DHCP e nenhuma pertença a outra ponte, e concilie o endereçamento do dispositivo TAP através do que possui a configuração do túnel para não restaurar um endereço mais tarde.

Porque uma porta dedicada por bancada

Uma porta com fios dedicada é o que impede a experiência de se tornar uma alteração para todo o escritório. A interface de gestão transporta SSH, a rota predefinida e a ligação VPN exterior, e nada disso pertence a uma ponte cujo propósito é mover quadros de laboratório.

Ligar um adaptador de gestão coloca a LAN do escritório a uma decisão de encaminhamento da placa de desenvolvimento, e uma placa que se comporta mal na camada dois é exatamente o tipo de dispositivo que não quer nesse segmento. Um adaptador Wi-Fi é pior: fazer ponte de uma interface sem fios em modo infraestrutura não se comporta como fazer ponte de Ethernet, e a falha é confusa em vez de limpa.

Mantenha o intervalo do laboratório fora de qualquer âmbito DHCP de produção. Se as placas precisarem mais tarde de endereçamento dinâmico, um único distribuidor autorizado com um único pool é a única disposição que se mantém previsível; os routers normais de dois locais que respondem no mesmo segmento produzem endereços que ninguém consegue explicar.

A fronteira que a ponte não cria

Fazer ponte não é encaminhar, e também não é isolamento. Os quadros que atravessam a ponte ainda podem chegar aos ganchos de filtragem do host, dependendo do caminho bridge-netfilter instalado, por isso a política efetiva tem de ser inspecionada e não assumida. Desativar a firewall porque um quadro se perdeu troca um erro específico por um erro geral.

O reencaminhamento IP entre a ponte e cada interface de gestão ou de uplink deve permanecer desligado ou ser explicitamente negado, e isso é um controlo separado da pertença à ponte. Uma placa que escolhe o endereço de laboratório do PC como gateway testa exatamente isto: se o trânsito de gestão tiver sucesso, a fronteira que pretendia nunca existiu.

Mais duas famílias merecem uma decisão explícita. O plano de endereçamento não torna a ponte apenas IPv4, por isso IPv6 e outros EtherTypes precisam do seu próprio plano ou filtro. E um ping bem-sucedido não diz nada sobre se as difusões de descoberta da placa, os grupos multicast ou os quadros jumbo atravessarão o caminho, porque são classes de tráfego diferentes com valores predefinidos diferentes.

Por fim, transporte e confidencialidade são duas compras diferentes. O TAP transporta Ethernet; o serviço OpenVPN fornece a proteção em volta. Uma sobreposição VXLAN também transporta Ethernet e não fornece confidencialidade por si só, por isso substituir uma pela outra altera as propriedades de segurança mesmo quando o diagrama de topologia parece idêntico.

Persistência e os testes que a provam

Um comando escrito uma vez depois da ligação não é uma configuração. Torne persistentes a ponte, a pertença das portas e o único endereço de host através do gestor de rede existente do PC, e ligue a conexão ao aparecimento do dispositivo TAP para que uma reconexão não deixe uma ponte com um membro desaparecido.

bridge link show
ip -d link show br-test
bridge fdb show br br-test | head

Depois teste o que as placas realmente precisam nos dois sentidos, reconecte o túnel e reinicie um PC segundo o plano de recuperação aprovado. Confirme três coisas depois: o acesso de gestão continua a funcionar de forma independente, não aparece nenhum endereço de laboratório duplicado e nenhuma interface de produção inesperada se juntou à ponte. Essa combinação é a prova de que a experiência ficou dentro da sua bancada.

Artigos relacionados