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

KVM虚拟机的NAT网络模式原理及过程展示

NAT的方式及原理

NAT方式是KVM安装后的默认方式。
它支持主机与虚拟机的互访,同时也支持虚拟机访问互联网,但不支持外界访问虚拟机。
default是宿主机安装虚拟机支持模块的时候自动安装的。
其中 virbr0是由宿主机虚拟机支持模块安装时产生的虚拟网络接口,也是一个switch和bridge,

直接开始实验

上次我们创建KVM虚拟机的时候用的是桥接模式的网络
现在我们创建一个NAT网络模式的KVM虚拟机
先查看一下我们当前的网络桥接情况

[root@server159 ~]# brctl show
bridge name	bridge id		STP enabled	interfaces
br0		8000.00505622e283	no		ens33
virbr0		8000.525400a5d968	yes		virbr0-nic

准备一个虚拟磁盘给新建的KVM虚拟机

[root@server159 ~]# qemu-img create -f raw /data/kvm/server10.raw 10G
Formatting '/data/kvm/server10.raw', fmt=raw size=10737418240 

查看我们当前KVM虚拟机的网络,这里桥接网络不显示的,所以上次的br0没有显示

[root@server159 ~]# virsh net-list 
 Name                 State      Autostart     Persistent
----------------------------------------------------------
 default              active     yes           yes

在这里插入图片描述

然后开始创建新的KVM虚拟机,指定默认的NAT网络default
这里我指定的VNC连接端口是5910,等下通过这个端口来连接安装就好了

[root@server159 ~]# virt-install --name=server10  --virt-type=kvm --memory 1024,maxmemory=2048  --cdrom=/data/iso/CentOS-7-x86_64-Minimal-2009.iso  --disk path=/data/kvm/server10.raw    --vnc --vncport=5910 --vnclisten=0.0.0.0  --noautoconsole  --autostart

安装的时候查看我们自动获取的ip,是122网段的222
在这里插入图片描述

为什么是122网段的呢,这里我们可以看default默认网络的具体信息

[root@server159 ~]# virsh net-dumpxml --network default 
<network connections='1'>
  <name>default</name>
  <uuid>626b82a5-feef-4076-b0ec-b4720c3821f3</uuid>
  <forward mode='nat'>
    <nat>
      <port start='1024' end='65535'/>
    </nat>
  </forward>
  <bridge name='virbr0' stp='on' delay='0'/>
  <mac address='52:54:00:a5:d9:68'/>
  <ip address='192.168.122.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.122.2' end='192.168.122.254'/>
    </dhcp>
  </ip>
</network>

在这里插入图片描述

可以看到default默认网络的ip池范围就是在122.2到122.254范围的
然后启动我们新建的server10虚拟机并查看情况

[root@server159 ~]# virsh start server10 
Domain server10 started

[root@server159 ~]# virsh list
 Id    Name                           State
----------------------------------------------------
 16    server10                       running

然后通过VNC连接我们的虚拟机查看情况
在这里插入图片描述
然后查看桥接网络

[root@server159 ~]# brctl show
bridge name	bridge id		STP enabled	interfaces
br0		8000.00505622e283	no		ens33
virbr0		8000.525400a5d968	yes		virbr0-nic
						             	vnet1

在这里插入图片描述
可以看到我们的vnet1桥接到了virbr0上,而virbr0是宿主机上的
宿主机可以转发底下NAT的信息,所以我们的虚拟机可以连接外网
不过外界是无法访问到我们的,除非宿主机做了转发,访问宿主机时自动转发到底下的虚拟机
然后我们的NAT模式的虚拟机就建好了
下个nginx来试试
在这里插入图片描述
下载好以后,查看配置文件,根据经验来看都是/etc/nginx/nginx.conf
在这里插入图片描述
然后往配置文件里添加我们自己的内容,方便我们等下查看结果
在这里插入图片描述
镜像太小了,连netstat命令都没有
还有一件事,就是记得关闭防火墙,不然宿主机访问不到的
在这里插入图片描述
宿主机访问测试
在这里插入图片描述
然后这样就可以了
和我们在VMware上的原理是一样的,只要了解网络的基本原理,这些就很简单了
希望对大家有帮助


http://www.kler.cn/a/147554.html

相关文章:

  • HTML5实现俄罗斯方块小游戏
  • 前后端分离练习(云客项目)
  • Spring Boot 中 Druid 连接池与多数据源切换的方法
  • 什么是项目完整性管理?
  • hive 统计各项目下排名前5的问题种类
  • RabbitMQ轻松构建高效可靠的消息队列系统
  • 谈谈中间件设计的思路
  • vue 浏览器版本兼容问题解决方案
  • 解决SQLyog连接MySQL8时报错:错误号码2058
  • Vatee万腾的科技远行:vatee数字化力量的前瞻发现
  • LeetCode Hot100 114.二叉树展开为链表
  • 企业网络中的身份安全
  • Redis与Mysql的数据强一致性方案
  • C语言——猜凶手
  • 2023_Spark_实验二十二:Zookeeper的集群安装
  • 中英双语大模型ChatGLM论文阅读笔记
  • MySQL远程连接数据库
  • 涵盖多种功能,龙讯旷腾Module第一期:物质结构
  • Win10电脑用U盘重装系统的步骤
  • 传统数仓和clickhouse对比
  • hnust信息安全管理试题
  • Java基础-中级-高级面试题汇(一)
  • 图形编辑器开发:快捷键的管理
  • 五、Lua流程控制与函数
  • Elasticsearch:ES|QL 查询中的元数据字段及多值字段
  • PHP定义的变量 常量 静态变量等储存在内存什么位置?