Ligando dispositivos de rede com vários IPs

4

Eu tenho um pequeno servidor com um único NIC que estou tentando fazer com que uma ponte funcione para que eu possa executar o KVM. Nesta placa de rede eu tenho um par IPs estaticamente atribuído a ele:

eth0 = 192.168.1.1
eth0:1 = 192.168.1.2
eth0:2 = 192.168.1.3
eth0:3 -> Assign the bridge to this

Estou tentando configurar uma ponte usando as seguintes instruções:

sudo brctl addbr br0
sudo brctl addif br0 eth0:3
sudo ifconfig br0 192.168.1.120 netmask 255.255.255.0 up
sudo route add -net 192.168.1.0 netmask 255.255.255.0 br0
sudo route add default gw 192.168.1.1 br0
sudo tunctl -b -u root -t tap0 > /dev/null
sudo ifconfig tap0 up
sudo brctl addif br0 tap0

No entanto, quando eu faço o segundo comando:

sudo brctl addif br0 eth0:3

Ele coloca o dispositivo ENTIRE eth0 em modo promíscuo. Isso bate o servidor offline e inacessível por qualquer coisa diferente de localmente.

Existe uma maneira de unir o eth0: 3 ao br0 e não colocar todo o dispositivo em modo promíscuo?

    
por Andy 07.04.2010 / 14:19

2 respostas

7

A resposta curta é, até onde eu sei, NÃO.

A resposta longa: uma ponte é um dispositivo de camada 2. Pense nisso como um switch virtual. Para fazer a ponte entre uma placa de rede e um dispositivo interno, você precisa coletar todos os dados que entram na placa de rede e colocá-los na ponte (filtragem de camada negativa 2, como vlans .1q). Deixe-me desenhar uma imagem para explicar:

É assim que você quer que funcione (um cenário de roteamento):

<vif> ---- <br0> --- <eth0:3> ---- <peth0> --- <internet>

Mas, na realidade, a bridge virtual sempre faz a ponte na camada 2:

<br0> --- <peth0>-------<internet>
  |          |
<vif0>    <eth0>
          <eth0:2>

Aqui peth0 é o seu dispositivo físico, enquanto eth0 é o dispositivo lógico (com endereço e tal).

Para obter o cenário desejado, você precisará usar o roteamento em vez de pontes. A razão pela qual peth0 é colocado no modo promíscuo é porque poderia, de outra forma, filtrar os dados para os dispositivos na bridge. Não sabe o que os dispositivos na ponte podem ouvir.

    
por 07.04.2010 / 14:30
1

Não, eu tenho certeza que não vai funcionar assim. Você precisará colocar todo o dispositivo eth0 na ponte e adicionar subinterfaces à interface da ponte, como br0:1 etc.

Existe algum motivo para você evitar que os IPs adicionais sejam vinculados à interface br0 ?

    
por 07.04.2010 / 14:22