Depois de googlar por muitos meses, acho que encontrei a resposta. Isso pode ser feito com a ferramenta vde que é usada para criar interfaces para sistemas operacionais convidados no KVM. Aqui estão os passos:
Instale o software:
sudo apt-get install vde2
Crie um comutador virtual:
sudo vde_switch -s /tmp/switch1 -daemon
Crie um dispositivo de toque:
sudo vde_switch -tap tap0 -daemon
Crie outro dispositivo de toque (o novo arquivo de soquete precisa ser especificado):
sudo vde_switch -tap tap1 -sock /var/run/vde.ctl/ctl1 -daemon
Qualquer número de dispositivos tap
pode ser criado desde que cada um receba um novo arquivo de soquete.
Conecte seu dispositivo písico ao vde switch:
sudo vde_pcapplug -d eth0
Atribua endereços IP a ambos os dispositivos de toque (meu eth0
está em 192.168.1.10/24
):
sudo ifconfig tap0 192.168.1.80 netmask 255.255.255.0
sudo ifconfig tap1 192.168.1.90 netmask 255.255.255.0
Eu coloquei todas as interfaces na mesma rede para que eu possa pingar umas nas outras e testar se a configuração funciona bem.
Agora pingue os192.168.1.80
e 192.168.1.90
do ip de um host diferente que esteja na mesma rede (provavelmente com a máquina do Windows).
Do Ubuntu, outros hosts na rede podem receber ping dos novos dispositivos tap
, como:
ping -I tap0 192.168.1.1
Agora, ifconfig
pode ser usado para reatribuir endereços IP que pertencem a redes separadas para tocar em dispositivos.
É isso. Interfaces virtuais separadas que agem como interfaces separadas.
Eu não encontrei nenhum howto / tutorial que explique este procedimento. Pode ser que alguém possa testá-lo em várias situações para ver se é uma solução viável a ser implementada em um ambiente de produção.