Je ne vois pas, pour ma vie, pourquoi cette question devrait être rejetée. Il est clair, correct, il a une réponse bien définie. Je l'ai voté pour.
Vous utilisez des utilitaires obsolètes comme tunctl, vous devez utiliser ip Au lieu. La strophe correcte pour /etc/network/interfaces est :
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
Votre erreur était d'utiliser static au lieu de manuel . La raison est que, puisque vous essayez de donner à l'interface virtuelle une adresse dans le même sous-réseau que votre interface principale (wlan0/eth0), lorsqu'elle essaie automatiquement d'ajouter une route locale,
ip route add 192.168.1.0/24 dev tap1
il constate qu'un tel itinéraire existe déjà, et il se plaint. Si vous utilisez manuel au lieu de statique, vous êtes autorisé à supprimer cette route, ce qui est bien sûr inutile.
Aussi, vous devriez ajouter un itinéraire
ip route add 192.168.1.121/32 dev tap1
pour informer votre noyau qu'il y a une exception à la route
ip route add 192.168.1.0/24 dev eth0/wlan0
C'est tout.