又弄brctl与tap,备忘于此:
 startvnet:

 brctl addbr br0
 openvpn --mktun --dev tap0
 ifconfig tap0 up
 brctl addif br0 eth0 tap0
 ifconfig br0 up
 dhclient br0

 stopvnet:
 ifconfig tap0 down
 ifconfig br0 down
 brctl delbr br0
 openvpn --rmtun --dev tap0

如上配置均有效,一个较为奇怪问题是关于MAC地址的。

br0缺省取用eth0 mac地址,可以工作,不过eth0就不能工作在三层了,否则收发回混乱。如果修改br0为另外mac,则eth0需要修改为promisc模式,似乎配置生效时间需要1分钟左右,估计是桥代码定时器问题。

tap0缺省取随机MAC地址,不休该不知道行不行,至少C打头的似乎是组播地址(没看标准,从网卡模拟器代码看到最高位判定为1即组播或广播),肯定是不行的,修改后ifconfig up之。

总的来说,基本可用。