在virt-manager中桥接虚拟机

目录

  • 1. 需要桥接的应用场景
  • 2. 环境
  • 3. 配置步骤
    • 3.1 在宿主机中搭建网桥
    • 3.2 将网桥配置至虚拟机
    • 3.3 在虚拟机中配置网络
  • 4. 在终端中同时连接宿主机和虚拟机
  • 参考资源

1. 需要桥接的应用场景

假设一场景:在一运行Ubuntu桌面的机器中开启了四台KVM虚拟机,需要在相同局域网终端下,分别以SSH直连四台虚拟机和宿主机。
在virt-manager中桥接虚拟机_第1张图片
这种场景下,即需要对其中的虚拟机进行桥接。

2. 环境

  • 宿主机
    • 型号:Dell 5545D 1928
    • 系统:Ubuntu18.04LTS桌面版
    • 宿主机支持有线连接
  • 虚拟机
    • 系统:Ubuntu18.04LTS服务器版
  • (最好有)一台支持DHCP的路由器

3. 配置步骤

3.1 在宿主机中搭建网桥

需要注意的是,网桥可在安装virt-manager之前独立搭建。然而比较复杂,这里推荐使用virt-manager的图形界面搭建:

  1. 选择virt-manager中Edit菜单下的Connection Details
    在virt-manager中桥接虚拟机_第2张图片
  2. 进入Network Interfaces中,点击+
    在virt-manager中桥接虚拟机_第3张图片
  3. 在第一步配置中,选择Bridge类型
    在virt-manager中桥接虚拟机_第4张图片
  4. 在第二步配置中,选择onboot作为开启模式,选中Activate now,并在设备中选择有线网卡,本机的网卡是enp2s0
    在virt-manager中桥接虚拟机_第5张图片
    值得注意的是,切勿桥接至无线网卡。在Ubuntu关于KVM的官方资料中表示,一些无线网卡不支持桥接,强行桥接后,虚拟网桥会自动桥接至无线网卡以外的其他设备,导致电脑本身无法上网。
    在virt-manager中桥接虚拟机_第6张图片
  5. 配置完成后,可以观察到网桥的运行状态
    在virt-manager中桥接虚拟机_第7张图片
  6. 运行
    ifconfig
    
    查看网桥的状态
    在virt-manager中桥接虚拟机_第8张图片
  7. 在路由器中查看主机联网情况(这里宿主机是master主机名,其实后续改成了master-pc)
    在virt-manager中桥接虚拟机_第9张图片

3.2 将网桥配置至虚拟机

打开虚拟机的信息页面,将其中的虚拟网络设备的Network source配置为3.1中搭建好的网桥。将Device model配置为virtio
在virt-manager中桥接虚拟机_第10张图片
值得注意的是,这里尝试过Device model配置为rtl8139,结果是路由器无法正常为虚拟机分配内存,虚拟机中ping不通宿主机。Device model对网桥的配置也很重要,后续将查阅相关资料来进一步学习。

3.3 在虚拟机中配置网络

在宿主机中进入虚拟机,Ubuntu 18.04 将在/etc/netplan目录下生成配置文件,找到并修改其配置文件。

sudo vim /etc/netplan/50-cloud-init.yaml

在virt-manager中桥接虚拟机_第11张图片
注意,桥接至外部路由器后,网关和DNS均填写路由器的地址,与本机IP(192.168.1.107)无关。

配置完毕后应用配置文件:

sudo netplan apply

注意,Ubuntu 18.04 服务器版本中,没有network-manager组件,不能使用/etc/init.d/networking或者ifup,ifdown

应用配置文件后,可以看到路由器为虚拟机成功分配了IP地址。
在virt-manager中桥接虚拟机_第12张图片

4. 在终端中同时连接宿主机和虚拟机

在virt-manager中桥接虚拟机_第13张图片
满足应用场景的需求。

参考资源

https://help.ubuntu.com/community/KVM/Networking#bridgednetworking
https://help.ubuntu.com/lts/serverguide/network-configuration.html
https://blog.csdn.net/zhaihaifei/article/details/58156297

你可能感兴趣的:(hadoop)