Eu não posso ver, por minha vida, por que essa pergunta deveria ser rejeitada. É claro, correto, tem uma resposta bem definida. Eu inventei isso.
Você está usando utilitários obsoletos como o tunctl, você deve usar ip . A estrofe correta para / etc / network / interfaces é:
iface tap1 inet manual
pre-up ip tuntap add tap1 mode tap user root
pre-up ip addr add 192.168.1.121/24 dev tap1
up ip link set dev tap1 up
post-up ip route del 192.168.1.0/24 dev tap1
post-up ip route add 192.168.1.121/32 dev tap1
post-down ip link del dev tap1
Seu erro foi usar static em vez de manual . O motivo é que, como você está tentando fornecer à interface virtual um endereço na mesma sub-rede que a interface principal (wlan0 / eth0), quando ele tenta adicionar automaticamente uma rota local,
ip route add 192.168.1.0/24 dev tap1
descobre que tal rota já existe e reclama. Se você usar manual em vez de estático, você poderá excluir esta rota, que é obviamente inútil.
Além disso, você deve adicionar uma rota
ip route add 192.168.1.121/32 dev tap1
para informar ao seu kernel que existe uma exceção na rota
ip route add 192.168.1.0/24 dev eth0/wlan0
Isso é tudo.