tap interfaces always disabled in linux bridge
I have a physical interface eth0, and I want to create two virtual interfaces and bridge them with eth0. For this purpose I do:
#Create the virtual interfaces
tunctl -t tap0
tunctl -t tap1
ifconfig tap0 up
ifconfig tap1 up
#Create the bridge
brctl addbr br0
brctl stp br0 off
brctl addif br0 eth0
brctl addif br0 tap0
brctl addif br0 tap1
#Turning up the bridge
ifconfig br0 up
However my problem if that the tap interfaces always appear disabled in the bridge, and no traffic flows to them.
$brctl show br0
bridge name bridge id STP enabled interfaces
br0 8000.080027cabeba no eth2
tap0
tap1
$brctl showstp br0
br0
bridge id 8000.080027cabeba
designated root 8000.080027cabeba
root port 0 path cost 0
max age 20.00 bridge max age 20.00
hello time 2.00 bridge hello time 2.00
forward delay 15.00 bridge forward delay 15.00
ageing time 300.01
hello timer 0.00 tcn timer 0.00
topology change timer 0.00 gc timer 298.42
flags
eth2 (1)
port id 8001 state forwarding
designated root 8000.080027cabeba path cost 4
designated bridge 8000.080027cabeba message age timer 0.00
designated port 8001 forward delay timer 12.97
designated cost 0 hold timer 1.24
flags
tap0 (2)
port id 8002 state disabled
designated root 8000.080027cabeba path cost 100
designated bridge 8000.080027cabeba message age timer 0.00
designated port 8002 forward delay timer 0.00
designated cost 0 hold timer 0.00
flags
tap1 (3)
port id 8003 state disabled
designated root 8000.080027cabeba path cost 100
designated bridge 8000.080027cabeba message age timer 0.00
designated port 8003 forward delay timer 0.00
designated cost 0 hold timer 0.00
flags
Is there any way to set the tap interfaces in forwarding state? I do not understand why they are not because STP is disabled.
Cheers
Daniel
Solution 1:
Carrier (IFF_RUNNING) is only set on a tap when a user has the device handle open.
For a persistent tap created with tunctl, you need an application which attaches to the tap, eg:
- http://backreference.org/2010/03/26/tuntap-interface-tutorial/