Substitua ip tuntap por / etc / network / interfaces (ou como criar uma interface tun em / etc / network / interfaces)

1

Estou usando um script sh (colado abaixo) para criar uma interface de tun IPv6 usando iproute com o modo tun.

#!/bin/sh
# Create a new TUN interface for WPAN interaction.
ip -6 tuntap add mode tun tun0
# Assign it a global IPv6 address.
ip -6 addr add FF41::2 dev tun0
# Add route to default address of Serial TUN embedded interface.
ip -6 route add FF41::1 dev tun0
# Add route to Unique Local /64 Prefix via tun0.
ip -6 route add FF41:0000:0000:3EAD::/64 dev tun0
# The interface is ready.
ip link set tun0 up

# Enable IPv6 routing on host.
sysctl -w net.ipv6.conf.all.forwarding=1

Eu gostaria de substituir este script (que é chamado durante a inicialização) por uma abordagem mais clara com /etc/network/interfaces , no entanto, estou um pouco preso ao criar exatamente esse arquivo.

O comando para a adição da rota, eu sei que vou substituí-los com a sub-rotina de pré-up apropriada em /etc/network/interfaces . No entanto, não tenho certeza de como informar o ifup de que a interface a ser criada é a do tun.

Neste momento, meu /etc/network/interfaces é assim:

# 802.15.4 Network
auto tun0
iface tun0 inet6 static
    address FF41::2
    netmask 64
    pre-up ip -6 tuntap add mode tun tun0
    pre-up ip -6 route add FF41::1 dev tun0
    pre-up ip -6 route add FF41:0000:0000:3EAD::/64 dev tun0
    post-up sysctl -w net.ipv6.conf.all.forwarding=1

Neste dispositivo, eu tenho um script python que usa pytun para vincular o tun0 a uma conexão serial com um dispositivo externo (que usa um rádio 802.15.4).

EDIT: Parece que encontrei uma solução de trabalho usando o arquivo interfaces acima. No entanto, ainda estou aberto a informações sobre uma solução mais elegante (se houver uma!). Obrigado!

    
por gromain 19.07.2017 / 10:17

0 respostas