基本的に、私はカスタムTCPスタックを作成しようとしています。LinuxカーネルTCPスタックがそれを使用するため、eth0を使用できません。 tun/tapインターフェースを作成し、それを私のカスタムTCPスタックに使用します。
/ etc/network/interfaces:
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
ifconfig
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を使用してもゲートウェイに到達できません。
私がここでどんな間違いをしているのか教えていただければ幸いです。
私は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
(IPアドレスでマスターbr0を構成し、スレーブがそれを共有します)