试图桥接网卡。 这个错误是什么意思?

我想为我的OpenVPN服务器在br0tap0之间build立桥接,但是我在这篇文章的底部看到了这个错误。

背景

服务器有一个物理eth0 IP xxx.xxx.68.58

网桥应该有xxx.xxx.85.5tap0网卡,其中OpenVPN客户端获取IP的范围是xxx.xxx.85.50xxx.xxx.85.100

为了使桥梁我做:

 #!/bin/bash br="br0" tap="tap0" eth="eth0:0" eth_ip="xxx.xxx.85.5" eth_netmask="255.255.255.0" eth_broadcast="255.255.71.255" openvpn --mktun --dev $tap brctl addbr $br brctl addif $br $eth brctl addif $br $tap ifconfig $tap 0.0.0.0 promisc up echo "debug" ifconfig $eth 0.0.0.0 promisc up echo "debug" ifconfig $br $eth_ip netmask $eth_netmask broadcast $eth_broadcast 

但是得到这个错误;

 Tue Sep 13 10:40:46 2011 TUN/TAP device tap0 opened Tue Sep 13 10:40:46 2011 Persist state set to: ON debug SIOCSIFFLAGS: Cannot assign requested address SIOCSIFFLAGS: Cannot assign requested address SIOCSIFFLAGS: Cannot assign requested address debug 

我究竟做错了什么?

更新

在脚本的顶部添加set -vx ,我得到:

 br="br0" + br=br0 tap="tap0" + tap=tap0 eth="eth0:0" + eth=eth0:0 eth_ip="xxx.xxx.85.5" + eth_ip=xxx.xxx.85.5 eth_netmask="255.255.255.0" + eth_netmask=255.255.255.0 eth_broadcast="255.255.71.255" + eth_broadcast=255.255.71.255 openvpn --mktun --dev $tap + openvpn --mktun --dev tap0 Tue Sep 13 11:42:33 2011 TUN/TAP device tap0 opened Tue Sep 13 11:42:33 2011 Persist state set to: ON brctl addbr $br + brctl addbr br0 brctl addif $br $eth + brctl addif br0 eth0:0 brctl addif $br $tap + brctl addif br0 tap0 ifconfig $tap 0.0.0.0 promisc up + ifconfig tap0 0.0.0.0 promisc up ifconfig $eth 0.0.0.0 promisc up + ifconfig eth0:0 0.0.0.0 promisc up SIOCSIFFLAGS: Cannot assign requested address SIOCSIFFLAGS: Cannot assign requested address SIOCSIFFLAGS: Cannot assign requested address ifconfig $br $eth_ip netmask $eth_netmask broadcast $eth_broadcast + ifconfig br0 xxx.xxx.85.5 netmask 255.255.255.0 broadcast 255.255.71.255 

看到各个命令的输出,而不仅仅是batch file是非常有用的。 或者你可以把set -vx放在batch file的顶部附近,这样可以提供更多有用的输出。

但乍一看这个问题可能是你试图将一个以太网子接口(eth0:0)奴役到一个网桥,而不是物理端口。 如果你更换会发生什么

 eth="eth0:0" 

 eth="eth0" 

在脚本的顶部?

如果你不想这样做,因为你使用eth0来达到不同的目的,你能否更详细地解释你想要实现的目标?