log*_*off 13 kvm bridge libvirt
我有一台运行 CentOS 6.5 的物理服务器,有一个接口连接到 Internet(有一个公共 IP 地址)。在这台服务器中,我通过 libvirt 使用 KVM 创建了两个虚拟机,每个虚拟机都有一个接口。我想为每个 VM 分配一个公共 IP 地址并继续使用与物理服务器的连接。
我尝试了各种方法,比如添加一个带有brctl
服务器物理接口和两个 VM 虚拟接口的 Linux 桥接器,但它不起作用,我失去了与物理服务器的连接。
我愿意使用 Linux 网桥或 libvirt 网络。
如何在虚拟机和物理服务器中获取公共 IP 地址?
最后我找到了实现问题目标的正确方法。这意味着 Linux 桥接,因为我无法解决 libvirt 网络问题。
脚步:
vnet*
在这个例子中vnet0
和vnet1
使用以下命令创建 Linux 网桥:
brctl addbr virbr1
将物理接口和 KVM 虚拟机接口附加到新网桥:
警告:如果您通过网络(SSH、Telnet 等)连接到物理服务器,您将失去连接。使用终端或替代方法(如其他具有连接性的接口)。
brctl addif virbr1 vnet0
brctl addif virbr1 vnet1
brctl addif virbr1 eth0
Run Code Online (Sandbox Code Playgroud)
在 CentOS 6.5 中,/etc/sysconfig/network-scripts/ifcfg-eth0
使用以下内容编辑文件:
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
NAME=eth0
TYPE=Ethernet
IPV6INIT=no
USERCTL=no
Run Code Online (Sandbox Code Playgroud)
在 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>
Run Code Online (Sandbox Code Playgroud)
service network restart
注意:您应该恢复物理服务器网络连接(通过接口和网桥)
这取决于 VM 的操作系统。无论如何,它至少应该包括 IP 地址、网络掩码和默认网关。显然 DNS 服务器将完成配置。
所有这些配置都是静态的,可以由 DHCP 分配代替。在这种情况下,网桥和 KVM 虚拟机接口的 MAC 地址可能很有用。
归档时间: |
|
查看次数: |
21499 次 |
最近记录: |