Eu segui alguns guias para obter uma configuração de ponte no meu host Debian VM
O mais útil que encontrei foi este:
https://linuxconfig.org/how-to-use-bridged-networking-with-libvirt-and-kvm
Eu li uma série de outros guias disponíveis on-line, no entanto, todos eles parecem ignorar os detalhes da configuração de IP e não fornecem detalhes sobre por que determinados endereços/redes e gateways foram escolhidos.
Por exemplo, no exemplo vinculado acima, uma ponte é criada com o endereço 192.168.0.90
, na rede 192.168.0.X/24
. No entanto, nenhuma explicação sobre por que este foi o caso foi dada.
Eu tentei seguir isso, criando eu mesmo uma ponte na rede 192.168.1.X/24
. Isso desativou minha conexão de rede com o host da VM, que está nessa rede.
Meu principal problema se estende do fato de que não tenho uma imagem clara do que uma ponte realmente é ou representa. Eu sei que é usado para unir duas redes diferentes como se fossem a mesma rede.
Quando tentei configurar meu sistema novamente, optei por dar à bridge um ip estático de 192.168.10.1/24
.
Isso pareceu funcionar e consegui criar uma nova rede virtual que usa a ponte. Veja a captura de tela abaixo...
Em seguida, inicializei uma VM com esta configuração de rede:
E ele consegue se conectar, e obtém o IP 192.168.1.190
do meu servidor DHCP.
Aqui é onde minha confusão começa e as perguntas chegam.
Por que a criação de uma ponte com um endereço IP na mesma rede que a
192.168.1.X
rede interrompeu a conectividade da rede?Por que funciona quando a ponte tem um endereço IP "aleatório", como
192.168.10.1
? Não tenho192.168.10.X
rede aqui, inventei esse número.Se uma bridge conecta duas redes como se fossem a mesma rede, por que ela tem apenas um endereço IP associado? (Como uma ponte realmente funciona? Não consegui encontrar facilmente informações úteis sobre isso online.)
A propósito, aqui está uma captura de tela do host de virtualização ip a output
: Como você pode ver, existem vários NICs no meu host VM. Uma delas é a conexão de rede regular, a outra está associada à ponte.
Lista de outros links
A primeira coisa a entender é que a interface "br0" do Linux representa dois objetos ao mesmo tempo:
Por exemplo, quando você configura uma bridge br0 com duas portas eth0 e eth1, na verdade ela tem três: a terceira é o próprio br0. (Você pode imaginar que a "ponte" real existe em algum lugar atrás de br0.)
Da mesma forma, se você possui um switch Ethernet gerenciado de 8 portas, ele realmente possui 9 portas: uma delas se conecta internamente à CPU de gerenciamento, o que permite que esse switch seja configurado pela rede. (Isso geralmente é chamado de "porta da CPU".)
Você está pensando em roteadores IP.
Uma ponte é muito diferente de um roteador; ele não precisa de nenhum endereço IP para funcionar: ele funciona na "camada 2" ou na "camada MAC", o que significa que ele encaminha pacotes puramente com base em seu cabeçalho Ethernet (por exemplo, MAC de destino) e nem olha para o nível superior camadas como IP.
O endereço IP que você atribui ao br0 na verdade pertence ao sistema operacional host – é como o próprio sistema Linux pode participar da rede em ponte, exatamente da mesma maneira que se configurasse um endereço IP em eth0 que está conectado a um switch Ethernet.
(Enquanto o Linux ainda permite que você atribua endereços IP diretamente às portas bridge, eles normalmente não funcionarão como esperado. ponte.)
Então, a resposta mais provável para
é que o novo endereço está em conflito com sua conexão Ethernet LAN real – ou seja, você acabou sendo conectado a duas redes com endereços idênticos.
Ou a) o SO começou a tentar alcançar seu gateway físico (192.168.1.1 ou .254) através da ponte, mas a ponte não estava (ainda?) conectada a essa rede física, ou b) o oposto: a interface enp6s0 estava fez um membro da ponte e, portanto, não conseguiu mais enviar seus próprios pacotes, mas ainda tinha o endereço IP atribuído e o sistema operacional continuou tentando enviar pacotes através dele.