Temos uma configuração de dois computadores. S é o servidor com acesso à Internet e C é o cliente que está conectado ao servidor através da rede 192.168.0.0/24. Isso funciona muito bem, mas um terceiro computador, C2, deve ser conectado ao C.
O problema é que C e C2 devem se conectar via 192.168.0.0/24 e C2 não deve ver S. Assim, queremos adicionar uma rede virtual entre S e C que usa 192.168.1.0/24.
Ou seja, temos:
S <-- 192.168.0.0/24 -- C <---- X ---- C2
E nós queremos:
S <-- 192.168.1.0/24 -- C <-- 192.168.0.0/24 -- C2
Adicionamos o seguinte a / etc / network / interfaces em S (conectado anteriormente a C por meio de eth0) e executamos "ifup eth0.1":
auto eth0.1
iface eth0.1 inet static
address 192.168.1.254
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
E em C, depois de "ifdown eth0", remova o antigo if e digite:
auto eth0
iface eth0 inet static
address 192.168.1.2
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.254
Então, "ifup eth0".
E isso não funciona! Ping apenas diz:
$ ping 192.168.1.2
PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.
From 192.168.1.254 icmp_seq=1 Destination Host Unreachable
From 192.168.1.254 icmp_seq=2 Destination Host Unreachable
Quando mudamos de volta, tudo funciona e podemos até fazer ping eth0.1 do cliente. Como você muda a rede do lado do cliente?