在KVM VM中配置公共IP地址


12

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

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

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

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

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


尝试将第二个适配器添加到虚拟机,并将它们连接到内部服务器网络。
shcherbak

什么内部服务器网络?无论如何,如果可能的话,我想设置问题。
注销

假设这将有所帮助:[ KVM-创建具有2个网桥接口的虚拟机](askubuntu.com/questions/581771/…),[具有两个NIC的KVM网络桥](serverfault.com/questions/130134/…
shcherbak15年

再一次,如果可能的话,我希望每个虚拟机只有一个接口。
注销

昨天我回答了有关debian kvm主机和来宾的类似问题。 unix.stackexchange.com/questions/245073/…-除了接口设置的次要细节外,在centos上应该类似。
cas 2015年

Answers:


5

最后,我找到了实现问题目标的正确方法。这意味着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地址可能会有用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.