Como tornar as interfaces de toque persistentes após a reinicialização?

18

Algumas tarefas exigem que as interfaces de toque sejam configuradas + atribuam propriedade . Então, estou fazendo isso manualmente:

sudo tuntap -u <username>
sudo ifconfig tap0 up
sudo ip a a 192.168.1.1/24 dev tap0

ou usando

ip tuntap add dev tap0 mode tap user <username>

Como posso fazer a configuração de interfaces de toque peristente após as reinicializações sem adicionar esses comandos a um script de shell e adicionar à inicialização

O que eu tenho em mente é fazer isso por meio de / etc / network / interfaces , como segue:

iface tap1 inet static
address 192.168.1.121
netmask 255.255.255.0
pre-up /usr/sbin/tunctl -u ajn -t tap1

Mas, por algum motivo, não funciona.

Alguma idéia?

    
por AJN 19.12.2014 / 04:28

1 resposta

16

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.

    
por 19.12.2014 / 12:25