Eu encontrei a solução para o meu problema. As pontes precisam aprender quais computadores estão conectados a quais LANs. Mais formalmente, eles precisam aprender se devem encaminhar para cada endereço. Para saber quais endereços estão em uso e quais portas (interfaces na ponte) estão mais próximas, as pontes observam os cabeçalhos dos quadros Ethernet recebidos. Examinando o endereço de origem MAC de cada quadro recebido e registrando a porta na qual ele foi recebido, a ponte pode saber quais endereços pertencem aos computadores conectados por meio de cada porta. Isso é chamado de "aprendizado". Na figura abaixo, considere três computadores X, Y, Z. Suponha que cada um envia quadros para os outros computadores. Os endereços de origem X, Y são observados na rede A, enquanto o endereço do computador Z será observado na rede B.
Os endereços aprendidos são armazenados em uma tabela de endereços de interface associada a cada porta (interface). Uma vez que esta tabela tenha sido configurada, a ponte examina o endereço de destino de todos os quadros recebidos, então verifica as tabelas de interface para ver se um quadro foi recebido do mesmo endereço (ou seja, um pacote com um endereço de origem correspondente ao endereço de destino atual) . Existem três possibilidades:
-
Se o endereço não for encontrado, nenhum quadro foi recebido da origem. A origem pode não existir ou pode não ter enviado quadros usando esse endereço. (O endereço também pode ter sido excluído pela ponte porque o software da ponte foi reiniciado recentemente, teve poucas entradas de endereço na tabela de interface ou excluiu o endereço porque era muito antigo). Como a bridge não sabe qual porta utilizar para encaminhar o quadro, ela será enviada para todas as portas de saída, exceto aquela em que foi recebida. (É claramente desnecessário enviá-lo de volta para o mesmo segmento de cabo do qual ele foi recebido, uma vez que qualquer outro computador / bridges neste cabo já deve ter recebido o pacote.) Isso é chamado de flooding.
-
Se o endereço for encontrado em uma tabela de interface e o endereço estiver associado à porta em que foi recebido, o quadro será descartado. (Ele já deve ter sido recebido pelo destino.)
- Se o endereço for encontrado em uma tabela de interface e o endereço não estiver associado à porta em que foi recebido, a ponte encaminhará o quadro para a porta associada ao endereço.
Pacotes com uma fonte de X e destino de Y são recebidos e descartados, já que o computador Y está diretamente conectado à LAN A, enquanto os pacotes de X com um destino de Z são encaminhados para a rede B pela ponte.
Para resolver isso: Defina o tempo de envelhecimento para Zero pelo comando abaixo $ brctl setageing br0 0