私はiprouteとtunモードを使用してIPv6 tunインターフェイスを生成するためにshスクリプト(下に貼り付け)を使用しています。
#!/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
このスクリプト(起動中に呼び出される)をよりきれいなメソッドに置き換えたいのですが、/etc/network/interfaces
このファイルを正確に生成する方法は少し混乱しています。
パスを追加するコマンドは、そのパスを適切な事前作業セクションに置き換えることを知っています/etc/network/interfaces
。しかし、作成するインターフェイスがトンインターフェイスであるかどうかを知る方法はわかりません。
今私の/etc/network/interfaces
外観は次のとおりです。
# 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
このデバイスには、pytunを使用してシリアル接続(802.15.4ラジオを使用)を介してtun0を外部デバイスに接続するPythonスクリプトがあります。
編集する:上記のファイルを使って動作interfaces
する解決策を見つけたようです。しかし、私はまだエレガントな解決策についてのコメントでまだ開いています。ありがとうございます!