我想为我的OpenVPN服务器在br0和tap0之间build立桥接,但是我在这篇文章的底部看到了这个错误。
背景
服务器有一个物理eth0 IP xxx.xxx.68.58 。
网桥应该有xxx.xxx.85.5和tap0网卡,其中OpenVPN客户端获取IP的范围是xxx.xxx.85.50 – xxx.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来达到不同的目的,你能否更详细地解释你想要实现的目标?