Linuxでtun / tapインターフェースを正しく設定する方法は?

Linuxでtun / tapインターフェースを正しく設定する方法は?

デフォルトでは、カスタムTCPスタックを作成しようとしています。ご存知のように、LinuxカーネルTCPスタックはeth0を使用しているため、eth0は使用できません。そのため、tun / tapインターフェースを作成し、それをカスタムTCPスタックに使用する必要があります。

/etc/ネットワーク/インターフェース:

auto lo
iface lo inet loopback

allow-hotplug eth0
auto eth0
iface eth0 inet static
    address 192.168.1.152
    netmask 255.255.255.0
    broadcast 192.168.1.255
    gateway 192.168.1.1
    dns-server 192.168.1.1

allow-hotplug tap0
auto tap0
iface tap0 inet manual
    pre-up ip tuntap add tap0 mode tap user root
    pre-up ip addr add 192.168.1.153/24 dev tap0
    up ip link set dev tap0 up
    post-up ip route del 192.168.1.0/24 dev tap0
    post-up ip route add 192.168.1.152/32 dev tap0
    post-down ip link del dev tap0

設定されている場合

inet addr:192.168.1.152 bcast:192.168.1.255 netmask 255.255.255.0

lo:
    inet addr:127.0.0.1 mask 255.0.0.0

tap0:
    inet addr: 192.168.1.153 bcast:0.0.0.0 mask 255.255.255.0

次の設定では、eth0を使用してwan / lanにアクセスできますが、tap0を使用してゲートウェイにアクセスすることもできません。

私がここで何か間違いを犯しているのか教えてくれたら、本当に感謝します。

ベストアンサー1

私は2つだけを接続します。この場合、tap0 に IP アドレスは必要ありません。

brctl addif br0 tap0
ip link set tap0 master br0

またはまだ bridge-utils をインストールしていない場合:

ip tuntap add tap0 mode tap
ip link set dev tap0 up
ip link add br0 type bridge
ip link set tap0 master br0
ip link set eth0 master br0

(ホストbr0のIPアドレスを設定すると、スレーブはそれを共有します)

おすすめ記事