Bloqueio da rede da VM de forma semelhante a partir da máquina host no KVM

3

Estou tentando realizar algumas alterações no endereço MAC de uma VM em execução e obter novo endereço IP. Atualmente, as VMs estão conectadas à rede externa por meio da interface de ponte do host. Eu gostaria de temporariamente (10-20 segundos) bloquear a conexão de rede da VM a partir da máquina host, exceto para os pacotes relacionados ao dhcp.

É possível?

    
por sethu 14.08.2011 / 06:38

3 respostas

1

Claro, você pode desconectar a VM da rede host ou apenas aplicar regras relevantes de iptables ou ebtables para impedir que os pacotes cheguem a lugar algum.

Sem mais detalhes de como sua rede está configurada, é impossível fornecer comandos mais detalhados, mas todas são tarefas administrativas básicas.

    
por 14.08.2011 / 06:44
1

Se você estiver usando uma rede em ponte para a VM, simplesmente remova a interface da VM do adaptador de ponte, execute as alterações e adicione-a novamente. Se o host é linux os, você precisa do pacote bridge-utils instalado (provavelmente já está). Execute isto:

brctl show

para ver quais dispositivos de ponte estão ativos e em execução, identifique o nome da ponte e o adaptador de rede da VM e, em seguida, remova-o da ponte:

brctl delif brdev0 vmdev0 

Faça o que você precisa fazer na VM e, quando terminar, adicione-a de volta à ponte:

brctl addif brdev0 vmdev0

PS: os comandos acima devem ser executados como root.

    
por 14.08.2011 / 07:07
0

Suponho que seu objetivo é encontrar uma maneira de aplicar filtros por uma instância de VM específica do lado do host? A aplicação dos filtros na interface de saída do host não é diferente de qualquer configuração normal do iptables , mas as VMs poderão se comunicar entre si sem filtragem.

Você já tentou aplicar as regras normais iptables e ebtables nas interfaces vnetNNN correspondentes no host? Eu não tentei por mim mesmo, mas acho que há uma boa chance de que funcione.

Se você estiver usando o libvirt para gerenciar suas instâncias do QEMU / KVM, poderá fazer virsh dumpxml VMNAME e procurar uma linha como <target dev='vnet0'/> para ver a interface vnet relevante.

    
por 14.08.2011 / 08:23