抱歉问了这个最终变得微不足道的问题,但我已经为此奋斗了一天多的时间,但到目前为止还无法自己解决这个问题。
情况
Proxmox 主机运行一组 openvz 节点。
每个节点都有一个来自 /28 子网的公共 IP,以及一个用于节点<>节点和节点<>主机网络的内部 IP。到目前为止,一切都运行正常。
现在我必须添加一个基于 KVM 的 Windows 实例,该实例应该可以从内部网络访问。我正在寻找有关如何配置网络设置(主机和 KVM)的建议
目前/etc/network/interfaces
包含:
# loopback
auto lo
iface lo inet loopback
# eth0
auto eth0
iface eth0 inet static
address xxx.xxx.77.119
broadcast xxx.xxx.77.127
netmask 255.255.255.255
gateway xxx.xxx.77.97
pointopoint xxx.xxx.77.97
# default route subnet access
up route add -net xxx.xxx.77.96 netmask 255.255.255.224 gw xxx.xxx.77.97 eth0
内部 IP 已通过 Proxmox/vzctl 分配,位于10.0.0.0/24
子网中:
- nde01 > 10.0.0.1
- nde02 > 10.0.0.2
- ETC
在我的情况下,有问题的 KVM 实例是 node12,因此它应该具有 IP 10.0.0.12。并且它应该能够与其他节点和主机通信。据我所知,解决方案是vmbr0
在主机上添加网桥,但具体应该如何配置呢?KVM 节点的相应设置是什么。
我确实尝试了几十种组合,但都没有成功......
KVM 节点本身的网络接口似乎安装正确,确实使用了 virtio 驱动程序,而且看起来不错。(接口本身,而不是 TCP/IP 配置)
任何帮助都将非常感激!
附加答案是如何让 KVM 实例通过 NAT 访问互联网。但是有了内部网络,我已经非常高兴了!
答案1
在 proxmox 上,可以使用虚拟接口在 VM 或容器或任何其他设备之间创建 VLAN。由于没有物理链接,它不会离开服务器。
只需在 /etc/network/interface 中输入类似
auto vmbr2
iface vmbr2 inet manual
bridge_ports dummy0
bridge_stp off
bridge_fd 0
pre-up modprobe dummy numdummies=4
并使用 vmbr2 满足所有仅需要内部网络的节点的内部需求。顺便说一下,它将在重启后持续存在......
答案2
我认为这个任务的最佳解决方案是 OpenvSwitch。你可以按照我的手册安装它:http://www.stableit.ru/2013/11/openvswitch-19-centos-6.html
您需要创建 OpenvSwitch 桥:
ovs-vsctl add-br private_switch
使用本手册将 KVM VM 连接到它http://libvirt.org/formatnetwork.html(CTRL+F 虚拟开关)。
之后,你应该使用以下命令将 veth(不是 venet)接口添加到 OpenVZ VE:vzctlset 1111 --netif_add ct1111 --save
接下来您需要手动配置它:
vzctl exec 1111 "ifconfig ct1111 192.168.1.1/24 up"
接下来您应该使用以下命令将 OpenVZ veth 接口添加到 OpenVswitch:
ovs-vsctl add-port private_switch veth1111.1111
这会起作用。但是每次 VZ ct 重新启动时,您都需要重新配置交换机和 IP 地址。为了解决这个问题,您将使用我的脚本进行 OpenvSwitch 和 OpenVZ 集成:https://bugzilla.openvz.org/show_bug.cgi?id=2896(如果您对我的脚本写一些带有反馈的评论就好了!)。