Considere ter um barebone com 1 NIC e este endereço
Agora, temos 1 IP adicional com um MAC separado (IP do gateway)
E mais 2 IPs (IPs virtuais) com o mesmo MAC que o NIC principal
Nós configuramos nosso barebone para ter uma ponte br0 com .1 / :: 01 (ponte eth0) (não é realmente interessante, usamos isso para criar interfaces virtuais).
Agora criamos uma interface virtual em br0 (usando proxmox) com o convidado KVM usando essa interface como uma NIC - essa interface virtual possui o MAC :: 02 e, mais tarde, obterá o IP .02 (esse convidado KVM é na verdade um FreeBSD / OPNsense)
Pergunta:
Quando eu configuro os IPs .3 / .4 como IPs virtuais no OPNsense, eu esperava que eles NÃO funcionassem, já que todos os pacotes que entram em eth0 / br0 / vtnet0 (nome da NIC dentro do opnsense) têm o MAC :: 01 como destino (que o tem), e não :: 02 (que é o MAC real do nosso NIC virtualizado vtnet0).
Ainda assim, isso funciona e eu não entendo o porquê. Por que isso realmente funciona? Por que o pacote, na camada 2, é considerado por vtnet0 (a NIC virtualizada no opnsense) mesmo que os endereços MAC não estejam combinando?
Estou ciente de que há promiscuous mode
e é por isso que uma interface não apenas descarta todos os pacotes para "não meu MAC" imediatamente, mas eu esperava que para IPs virtuais funcionasse, o MAC precisava ser correspondência.
Tags networking linux freebsd bridge proxmox