在KVM VM中配置公共IP地址

注销

我有一台运行CentOS 6.5的物理服务器,其中一个接口连接到Internet(具有一个公共IP地址)。在该服务器内部,我有两个通过libvirt用KVM创建的VM,每个都有一个接口。我想为每个VM分配一个公用IP地址,然后继续使用与物理服务器的连接。

这张图片以黑色显示了我想要的东西,以蓝色显示了我想要的东西:网络拓扑结构

我尝试了各种方法,例如添加Linux桥接器brctl并附加服务器物理接口和两个VM虚拟接口,但是它不起作用,并且我失去了与物理服务器的连接。

我愿意使用Linux桥接器或libvirt网络。

如何在虚拟机和物理服务器中获取公共IP地址?

注销

最后,我找到了实现问题目标的正确方法。这意味着Linux桥接,因为我无法使用libvirt网络解决问题。

脚步:

  1. 识别KVM VM接口。接口名称可能以vnet*

在这个例子中vnet0vnet1

  1. 使用以下命令创建一个Linux网桥:

    brctl addbr virbr1

  2. 将物理接口和KVM VM接口连接到新的网桥:

警告:如果通过网络(SSH,Telnet等)连接到物理服务器,则将失去连接。使用终端或其他方法(例如具有连接功能的其他接口)。

brctl addif virbr1 vnet0
brctl addif virbr1 vnet1
brctl addif virbr1 eth0
  1. 配置未分配IP地址的物理服务器接口:

在CentOS 6.5中,/etc/sysconfig/network-scripts/ifcfg-eth0使用以下内容编辑文件

DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
NAME=eth0
TYPE=Ethernet
IPV6INIT=no
USERCTL=no
  1. 将物理服务器桥配置为具有IP地址:

在CentOS 6.5中,/etc/sysconfig/network-scripts/ifcfg-virbr1使用以下内容编辑文件

DEVICE=virbr1
BOOTPROTO=none
ONBOOT=yes
IPADDR=<physical_server_public_ip_address>
NETMASK=<physical_server_public_ip_netmask>
GATEWAY=<physical_server_gateway_ip_address>
NAME=virbr1
TYPE=Ethernet
IPV6INIT=no
USERCTL=no
NM_CONTROLLED=no
DNS1=<physical_server_primary_dns_server_ip_address>
DNS2=<physical_server_secondary_dns_server_ip_address>
  1. 重新启动物理服务器网络:

service network restart

注意:您应该恢复物理服务器网络连接(通过接口和网桥)

  1. 配置KVM VM的网络接口:

这取决于VM的操作系统。无论如何,它至少应包括IP地址,网络掩码和默认网关。显然,DNS服务器将完成配置。

所有这些配置都是静态的,可以用DHCP分配代替。在这种情况下,网桥和KVM VM接口的MAC地址可能会很有用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章