我目前无法在专用服务器上设置桥接网络,以允许 KVM 客户端使用来自额外子网的 IP。据我所知,地址、广播和网关必须始终在网络掩码范围内。
我原来的网络设置(/etc/network/interfaces)如下所示:
auto eth0
iface eth0 inet static
address 1.2.3.163
broadcast 1.2.3.191
netmask 255.255.255.224
gateway 1.2.3.161
因此,为了允许使用该设备作为桥梁,我对文件进行了如下更改:
auto eth0
iface eth0 inet manual
auto br0
iface br0 inet static
address 1.2.3.163
broadcast 1.2.3.191
netmask 255.255.255.224
gateway 1.2.3.161
bridge-ports eth0
结果:网络仍然可用。不过这是我从提供商处获得的信息:
subnet: 9.8.7.200/29
addresses: 9.8.7.(200-207)
netmask: 255.255.255.248
gateway: 1.2.3.163
broadcast: 9.8.7.207
因此网关实际上是我的主要 IP。但是它在当前网络中不存在。我已将第二个网桥添加到我的接口文件中:
auto br1
iface br1 inet static
address 9.8.7.200
broadcast 9.8.7.207
netmask 255.255.255.248
gateway 1.2.3.163
bridge-ports eth0
结果是:我可以 ping 9.8.7.200,但是当尝试通过 br1 ping 时,无法解析任何主机。“route -n”的输出是:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 1.2.3.161 0.0.0.0 UG 0 0 0 br0
9.8.7.200 0.0.0.0 255.255.255.248 U 0 0 0 br1
1.2.3.160 0.0.0.0 255.255.255.224 U 0 0 0 br0
我非常感激能够得到任何关于这个问题的帮助。
答案1
网关错误。它必须与您的 IP 位于同一子网内。否则它将无法工作。
IP: 9.8.7.200
Netmask: 255.255.255.248 (/29)
Network: 9.8.7.200
Broadcast: 9.8.7.207
First IP: 9.8.7.201
Last IP: 9.8.7.206
我按照以下方式配置了我的网桥:
allow-hotplug eth0
iface eth0 inet static
address 1.2.3.4
netmask 255.255.255.0
network 1.2.3.0
broadcast 1.2.3.255
gateway 1.2.3.1
#(as is work with openvpn interfaces)
auto tap0
iface tap0 inet manual
pre-up openvpn --mktun --dev tap0
post-down openvpn --rmtun --dev tap0
auto tap1
iface tap1 inet manual
pre-up openvpn --mktun --dev tap1
post-down openvpn --rmtun --dev tap1
auto br0
iface br0 inet static
bridge_ports tap0 tap1
address 10.20.30.40
netmask 255.255.255.0
up route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.20.30.101
up route add -net 172.16.25.0 netmask 255.255.255.0 gw 10.20.30.100
down route del -net 192.168.1.0 netmask 255.255.255.0 gw 10.20.30.101
down route del -net 172.16.25.0 netmask 255.255.255.0 gw 10.20.30.100
所有 OpenVPN 客户端网络都是路由的,如果它们使用服务器 OpenVPN IP 作为网关,则可以连接到互联网。(重定向网关选项)