我最近在设置一台服务器,我应该将服务器可用的公共 IP 之一分配给 KVM 客户机。该服务器具有以下设置:
eno1 - 主机的主要互联网连接,分配有公共 IP lo - 环回 virbr0 - 桥接到 KVM 创建的虚拟网卡
使用 Open Nebula 我将 virbr0 分配给客户机的虚拟网络,并为客户机设置特定配置:
客户机-/etc/network/interfaces
auto ens3
iface ens3 inet static
address y.y.y.y
netmask 255.255.255.255
pointopoint <provided by host provider>
gateway <provided by host provider>
完成客户机配置后,我在主机上运行以下命令:
brctl addif virbr0 eno1
运行此程序后,我可以通过新分配的 IP 访问客户机。但是,我无法再通过 SSH 或 Open Nebula 访问主机。
为什么会发生这种情况? 有没有办法设置 virbr0 配置,/etc/network/interfaces
以便即使主机崩溃也能保持持久性?
答案1
需要把网桥设备“virbr0”上的ip地址填入:
ip addr add y.y.y.y/32 dev virbr0
查看@stefaan-ghysels 的答案,了解启动时配置的详细信息。
答案2
您需要在主机上建立网桥。假设它现在有地址 xxxx。
auto eno1
iface eno1 inet manual
auto br1
iface br1 inet static
address x.x.x.x
netmask <hostnetmask>
gateway <hostgateway>
bridge_ports eno1
bridge_stp off
bridge_maxwait 0
bridge_fd 0
这些是在启动时配置网络的设置。
如果你只有一个网卡,请使用这些设置重启主机以激活网桥。或者使用以下方法重启网络screen 或 tmux。
如果你有双网卡设置,则无需重新启动,只需通过网卡 2(eno2)上的地址通过 SSH 进入你的机器,然后
ifdown eno1
ip link add name br1 type bridge
ip link set dev br1 up
ip link set dev eno1 master br1
ip addr flush eno1
ifup eno1
最后使用 br1 网络接口启动您的客户机。
sudo kvm -net nic -net bridge,br=br1 ...