当前位置: 首页 > news >正文

通过命令行配置调整KVM的虚拟网络

a38ca96e4d2b7a02b908572f7c7532c8.gif

正文共:1234 字 20 图,预估阅读时间:2 分钟

在上篇文章中最小化安装的CentOS7部署KVM虚拟机,我们介绍了如何在最小化安装的CentOS 7系统中部署KVM组件和相关软件包。因为没有GUI图形界面,我们还特地介绍了如何通过命令行创建存储池和虚拟机。

接着前面的操作,我们今天首先将虚拟机开机。

virsh start vsr

a9f578db8dc567c4a86f9417ef3e6dad.png

这里需要注意一下,当虚拟机在没有开机的情况下,前面的ID编号是空的,只有在启动之后才会分配ID。所以建议对虚拟机的操作尽量保持以虚拟机名称为操作对象,命令里面也是这么介绍的。

e6591aa1db0ed55fe6095d9e50d4c820.png

然后我们还是使用VNC客户端连接到虚拟机的图形界面,IP地址使用KVM主机的IP地址192.168.1.93,端口使用创建虚拟机时配置的5901。

7a523b77aa919d71ae9e897b2a47c180.png

然后我们按照正常的设备配置进行操作。首先,我们可以看到VSR自动获取到了192.168.122.25这个地址,和virbr0属于同一网段。按照我们之前通过“虚拟系统管理器VMM”配置的经验不会吧!KVM竟然不支持磁盘的精简置备!?,这个虚拟网卡默认连接到默认的虚拟网络的,启用了DHCP,并且开启了NAT转发。

e15e5c47c88bb389953802d2ce1ce888.png

然后,我在内核中还注意到了一个现象,那就是又多了一个vnet0的网卡,这个网卡在安装完KVM的时候还是不存在的。

3d937ce9828e17904f9495751dd37eb8.png

接下来,我们看看KVM中网络的相关配置。

d6c139699dd81e92362cf1019565284b.png

可以看到,有两个文件为非空状态。其中default.conf的文件内容如下:

6c52cc4545af8e5934095c850d13cc5e.png

对于该配置文件,顶部有着重提示:这是一个自动生成的文件,对它的更改可能会被覆盖并丢失。应使用命令virsh net-edit default对此配置进行更改或使用libvirt API的其他应用程序。

在下面的配置中,我们可以看到主要是DHCP相关的配置,里面还指向了dnsmasq目录下的相关文件,不过这两个文件都是空的。

我们再看一下virbr0.status中的内容。

5a5bea3879afb86a399c8c0148958155.png

可以看到,主要是记录了DHCP分配的地址信息。

然后我们登录虚拟机看一下。

56f5dd1f543ebe9d320677ac253b0d62.png

我们可以看到,VSR通过DHCP获取到了192.168.122.25这个IP地址。再看一下路由表信息。

f84642ff7c6149dc6723d6454d201224.png

可以看到下发了一条默认路由,下一跳指向网关192.168.122.1。同时还分配了一个默认的DNS服务器。

eeef8c743fcc6dd5bce8fdccea52d39b.png

这就说明,KVM主机默认还配置了DNS代理,怪不得要用dnsmasq呢。dnsmasq是一个轻量级的DNS服务器和DHCP服务器,可以同时为KVM虚拟机提供DNS服务和DHCP服务。

然后我们看一下虚拟机访问公网是否正常。

d8e61bc0da18ea5415449e2eb6c7fbec.png

没有问题。

正常来讲,CentOS主机的IPv4转发默认是关闭的,并且没有使能NAT功能,我们看看现在的相关配置。

9698907070bc01e906baa967b725a2e6.png

可以看到,IPv4转发已经被开启了,NAT转发中也使能了192.168.122.0/24整个网段的源地址,跟dnsmasq中的配置是一致的。

然后我们看一下virsh中网络相关的配置命令。

e96d63850440a2d58126e857577041cc.png

首先查看一下默认网络default的信息。

20302815f6acb229687ac9e71fad1a09.png

接下来,我想将默认的NAT模式修改为桥接模式,首先关闭并删除默认网络“default”。

virsh net-destroy default
virsh net-undefine default

9d6dc8c8c6afe46a7c4ccb9050a889cf.png

然后新建一个XML文件/var/lib/libvirt/network/bridge.xml,配置将虚拟网卡virbr0桥接到网卡ens224上。

<network><name>bridge</name><forward mode="bridge"/><bridge name="ens224"/><virtualport type="openvswitch"/>
</network>

92835e41593bcf00f73053ae7b85b941.png

然后就可以使用以下命令创建一个新的名为“bridge”的桥接网络:

virsh net-define /var/lib/libvirt/network/bridge.xml
virsh net-autostart bridge
virsh net-start bridge

56bfb07997afb0730a8dcd9a5adeb82a.png

注意,桥接的网卡在使用时需要注意以下几点限制:

1、确保桥接的物理网卡处于开启状态,且未被其他进程或服务所占用;

2、桥接的物理网卡不应该配置IP地址,因为IP地址已经被分配给桥接设备;

3、网卡在桥接模式下工作时,其MAC地址会被虚拟机的MAC地址替代,因此不能使用MAC地址来作为唯一的识别标志;

4、当虚拟机从网络中接收到数据时,数据包首先被发送到桥接设备上,如果不属于桥接设备上的任何虚拟机,那么数据包将被丢弃,这可能会导致网络阻塞。

5454d9d6fb9fe3969d9dfac0988d3d90.png

所以,我们看到,应该是因为使用了NetworkManager的原因,自动为网卡ens224分配了IP地址,导致虚拟机无法获取IP地址。然后我们修改NetworkManager的配置文件/etc/NetworkManager/NetworkManager.conf,在[main]部分添加配置使其不再管理网卡ens224:

[main]
no-auto-default=ens224

然后重启网络服务就可以了。

5b729bb96fbdacd2c3e4726acf3bfbcb.png

9518a111c2ba5aab371269e64277887e.gif

长按二维码
关注我们吧

99840faebc11d2f4c6cf85e04378c32e.jpeg

e7549ea150c2b1fd5f3268d55a7823a4.png

最小化安装的CentOS7部署KVM虚拟机

网络之路1:初识网络

网络之路2:初识路由表

什么是OpenStack?

使用Python批量处理Excel的内容

如何使用Python提取Excel中固定单元格的内容

全面升级:网工Python的最佳实践

OpenWrt配置单臂路由模式

OpenWrt部署配置openVPN服务器

OpenWrt配置openVPN客户端

将OpenWrt部署在x86服务器上

通过Nginx做一个openVPN配置文件下载页面

http://www.lryc.cn/news/384310.html

相关文章:

  • Apache POI操作excel
  • Python错误集锦:faker模块生成xml文件时提示:`xml` requires the `xmltodict` Python library
  • Vue3-尚硅谷笔记
  • RockChip Android12 System之MultipleUsers
  • 第12天:前端集成与Django后端 - 用户认证与状态管理
  • 在ROS2中蓝牙崩溃的原因分析
  • 【PythonWeb开发】Flask中间件钩子函数实现封IP
  • 可以一键生成热点营销视频的工具,建议收藏
  • Unity Meta Quest 开发:关闭 MR 应用的安全边界
  • 4.sql注入攻击(OWASP实战训练)
  • 前端Web开发HTML5+CSS3+移动web视频教程 Day1
  • 中医实训室:在传统针灸教学中的应用与创新
  • React Hooks 小记(七)_useReducer
  • 甲子光年专访天润融通CEO吴强:客户经营如何穿越低速周期?
  • 还不到6个月,GPTs黄了
  • IOS Swift 从入门到精通:BlurEffect BlendMode stroke
  • 西木科技Westwood-Robotics人型机器人Bruce配置和真机配置
  • 【招聘贴】JAVA后端·唯品会·BASE新加坡
  • CVPR2024|vivo提出使用对抗微调获得泛化性更强的SAM,分割性能直接登顶 SOTA!
  • 程序员必备的ChatGPT技巧:从代码调试到项目管理
  • JAVA开发的一套医院绩效考核系统源码:KPI关键绩效指标的清晰归纳
  • 面向对象编程——python
  • 【LeetCode】每日一题:合并K个升序链表
  • 从零开始学docker(四)-安装mysql及主从配置(一)
  • 【目标检测】Yolov8 完整教程 | 检测 | 计算机视觉
  • 新能源汽车 LabCar 测试系统方案(-)
  • 机器学习辅助的乙醇浓度检测(毕设节选)
  • YOLO系列改进
  • cuda与cudnn下载(tensorflow-gpu)
  • git 多分支实现上传文件但避免冲突检测