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

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 listId    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-nicvnet1

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

相关文章:

  • Android frameworks 开发总结之九(Settings)
  • MySQL与Redis如何保证数据的一致性
  • rust tokio select!宏详解
  • python爬虫进阶篇(异步)
  • 第十七章 处理空字符串和 Null 值 - XMLIGNORENULL、XMLNIL 和 XMLUSEMPTYELEMENT 的详细信息
  • C#,《小白学程序》第二十一课:大数的减法(BigInteger Subtract)
  • 第十六章 解读深度学习中Batch Size、Iterations和Epochs(工具)
  • 博物馆线上导览系统的设计与实现-计算机毕业设计源码64574
  • 【管理运筹学】背诵手册(六)| 图与网络分析(基本概念、最小支撑树问题、最短路问题)
  • 播放器开发(三):FFmpeg与SDL环境配置
  • 基于C#实现双端队列
  • Centos开机启动Java程序
  • Drool 7 SpreadSheet Decision Template 笔记
  • Jenkins用126邮箱发邮件为什么发不出去
  • 数字图像处理Python实现-图像特效与卷积滤波
  • [ JavaScript ] 数据结构与算法 —— 链表
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • C++11: atomic 头文件
  • co模块的前端实现
  • emacs初体验
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • PermissionScope Swift4 兼容问题
  • windows-nginx-https-本地配置
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 不上全站https的网站你们就等着被恶心死吧
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 前端之React实战:创建跨平台的项目架构
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 使用 @font-face
  • 使用SAX解析XML
  • 算法之不定期更新(一)(2018-04-12)
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • #《AI中文版》V3 第 1 章 概述
  • #if 1...#endif
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (二)c52学习之旅-简单了解单片机
  • (附源码)ssm码农论坛 毕业设计 231126
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (六)vue-router+UI组件库
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • (转) Android中ViewStub组件使用
  • (转载)(官方)UE4--图像编程----着色器开发
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .NET 8.0 中有哪些新的变化?
  • .net Signalr 使用笔记
  • .net和jar包windows服务部署
  • .ui文件相关
  • @RequestBody的使用
  • @RequestMapping 的作用是什么?
  • [ 常用工具篇 ] POC-bomber 漏洞检测工具安装及使用详解
  • [20160807][系统设计的三次迭代]