ip tuntap을 /etc/network/interfaces로 교체합니다(또는 /etc/network/interfaces에서 tun 인터페이스를 만드는 방법).

ip tuntap을 /etc/network/interfaces로 교체합니다(또는 /etc/network/interfaces에서 tun 인터페이스를 만드는 방법).

나는 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. 그러나 생성할 인터페이스가 tun 인터페이스인지 어떻게 알 수 있는지 잘 모르겠습니다.

이제 내 /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작동하는 솔루션을 찾은 것 같습니다. 그러나 나는 더 우아한 솔루션에 대한 의견에 여전히 열려 있습니다. 감사해요!

관련 정보