我目前租用了一台Ubuntu server
。我想在这台机器上使用运行虚拟机KVM
。对于一些网络访问,我安装了Kimchi
,这是一个非常简单的基于 html5 的 KVM 管理工具。
无论如何,我在设置虚拟机网络时遇到了问题。目前我有一个主 IP 和多个附加 IP。主 IP 是为主机保留的,因此我可以通过 SSH 等方式访问它。请注意,主机服务器使用此公共 IP 直接连接到互联网,中间没有任何中间件。
显然现在我想让第一个虚拟机使用其中一个附加 IP。
/etc/network/interfaces
到目前为止情况如下:
auto lo
iface lo inet loopback
# device: eth0
auto eth0
iface eth0 inet static
address 1**.***.***.**6
broadcast 1**.***.***.**1
netmask 2**.***.***.**2
gateway 1**.***.***.**9
# default route to access subnet
up route add -net 1**.***.***.**8 netmask 2**.***.***.**2 gw 1**.***.***.**9 eth0
Kimchi 网络管理为我提供了以下选项。我可以创建一个可连接到虚拟机的新网络:
我需要如何设置才能让虚拟机自动使用额外的 IP?
答案1
以下是桥接的更详细演练:
在 kvm 服务器上按照以下步骤操作:
sudo 停止网络管理器
回显“手册”| sudo tee /etc/init/network-manager.override
这将禁用您的网络管理器并阻止其重新启动。
接下来我们进行接口配置,首先关闭接口:
否
编辑“/etc/network/interfaces”并找到物理接口,可能是 eth0
需要替换eth0接口信息,使其看起来像下面这样:
auto br0
iface br0 inet static
address XXX.XXX.X.X
netmask XXX.XXX.XXX.x
network XXX.XXX.X.X
broadcast XXX.XXX.XXX.X
gateway XXX.XXX.X.X
bridge_ports eth0
bridge_stp on
bridge_maxwait 0
然后您应该能够使用以下命令恢复您的适配器:
ifup br0
您还需要将以下内容添加到“/etc/sysctl.conf”设置中
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
并使用加载设置
sysctl -p /etc/sysctl.conf
另外添加行
/sbin/sysctl -p /etc/sysctl.conf
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
到您的‘/etc/rc.local’文件中,就在“exit 0”行之前,以确保这些效果在启动时开始。
运行 brctl show
并查找显示接口 eth0 的 br0 行。这现在是一个可桥接的设备。
现在,您需要配置您的客户虚拟机以指向此桥。在您的客户机定义 XML 文件上
virsch edit <name of guest VM>
您需要编辑界面部分以使其类似于:
<interface type='bridge'>
<source bridge='br0'/>
<mac address='<YOUR MAC ADDRESS>'/>
<model type='virtio'/> # try this if you experience problems with VLANs
</interface>
您的设备现在应该已桥接。您仍需要在机器上正确配置 IP 地址
在浏览了所有其他页面以获取相关信息后,我还发现了这个不错的小教程,可能有助于理解所有内容: