我有一台服务器。它配置了一个公共 IP,并且我通过网桥分配了 /29 子网。
KVM 已安装并按预期运行。我可以创建并启动虚拟机,但定义网络访问时,事情开始出错。
如果我手动输入访客的 IP(来自 /29)。我输入主机 IP 作为网关,然后收到网关不可达的消息。
以下是/etc/network/interfaces
auto lo
iface lo inet loopback
iface lo inet6 loopback
auto br0
iface br0 inet static
address 144.76.15.98
netmask 255.255.255.224
gateway 144.76.15.97
pointopoint 144.76.15.97
bridge_ports eth0
bridge_stp off
bridge_maxwait 0
bridge_fd 0
up route add -host 136.243.185.120 dev br0
up route add -host 136.243.185.121 dev br0
up route add -host 136.243.185.122 dev br0
up route add -host 136.243.185.123 dev br0
up route add -host 136.243.185.124 dev br0
up route add -host 136.243.185.125 dev br0
up route add -host 136.243.185.126 dev br0
up route add -host 136.243.185.127 dev br0
我究竟做错了什么?
答案1
这取决于您的接口背后是什么eth0
,但是将您的外部网络与虚拟网络桥接起来看起来是错误的,因为它们使用不同的 IP 地址。
我认为,如果您将主机设置为 eth0 和 br0 之间的路由器,事情会变得更好。
如果您使用 136.243.185.120/29 作为子网而不是逐个 IP 进行路由,事情可能会更简单。
你可能会得到如下结果:
auto eth0
iface eth0 inet static
address 144.76.15.98
netmask 255.255.255.224
gateway 144.76.15.97
auto br0
iface br0 inet static
address 136.243.185.121
netmask 255.255.255.248
bridge_ports eth0
bridge_stp off
bridge_maxwait 0
bridge_fd 0
您还必须启用数据包转发功能sysctl net.ipv4.ip_forward=1
。
如果您无法承受 136.243.185.120/29 网络中“丢失” 3 个地址,则可以像以前一样,br0
使用地址144.76.15.98
、网络掩码进行配置,然后手动将 8 个地址路由到该接口。255.255.255.255