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

news2024/11/16 10:41:01

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.coloradmin.cn/o/1251884.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python编程技巧 – Lambda函数

Python编程技巧 – Lambda函数 Python Programming Skills – Lambda Functions By JacksonML 2023-11-25 在前文介绍过Python函数&#xff0c;一个函数用def关键字声明&#xff0c;不带或带有参数&#xff0c;并以冒号结束&#xff1b;函数块根据结果由解释器确定返回值动态…

【Linux】:信号的产生

信号 一.前台进程和后台进程1.前台进程2。后台进程3.总结 二.自定义信号动作接口三.信号的产生1.键盘组合键2.kill信号进程pid3.系统调用1.kill函数2.raise函数3.abort函数 四.异常五.软件条件六.通过终端按键产生信号 一.前台进程和后台进程 1.前台进程 一个简单的代码演示 …

【Spring集成MyBatis】MyBatis注解开发

文章目录 1. MyBatis的常用注解2. 基于注解的MyBatis增删改查增删改查完整代码加载映射关系测试代码 3. MyBatis的注解实现复杂映射开发一对一操作的实现一对一操作实现的第二种方式一对多操作的实现多对多操作实现 1. MyBatis的常用注解 2. 基于注解的MyBatis增删改查 使用注…

Leetcode—83.删除排序链表中的重复元素【简单】

2023每日刷题&#xff08;四十&#xff09; Leetcode—83.删除排序链表中的重复元素 实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode* deleteDuplicates(struct ListNode* head) {i…

张弛语言课,战争电影配音声音细致声音来复原战场

为战争片进行声音配音是一项挑战性的工作&#xff0c;它要求精确再现战场的紧张感和复杂情绪。配音人员和声音设计团队必须创造出真实的战争声景&#xff0c;从战斗的轰鸣声到士兵的呐喊&#xff0c;这些声音元素都需细致打造&#xff0c;以传递战争的惨烈、英勇和人性的复杂。…

工作中死循环害死人

背景&#xff1a;研发的一段代码&#xff0c;循环一直没有跳出&#xff0c;导致其他依赖逻辑有问题&#xff0c;生产事故导致9万左右数据不正常。 这里while&#xff08;true&#xff09;真的不要轻易用 &#xff0c;后来研发改动限制mysql的id切分步长&#xff0c;控制不会有数…

2017年2月16日 Go生态洞察:Go 1.8版本的革新

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

移动机器人路径规划(七)--- 基于MDP的路径规划MDP-Based Planning

目录 1 什么是MDP-Based Planning 2 worst-case analysis for nondeterministic model 3 Expected Cost Planning 4 Real Time Dynamic Programming&#xff08;RTDP&#xff09; 1 什么是MDP-Based Planning 之前我们从起点到终点存在很多可执行路径&#xff0c;我们可以…

可验证随机函数(VRF)

文章目录 一、背景以及场景共识发展第一代 POW “以力取胜”第二代 POS/DPOS “民主投票”第三代 VRF “运气抽签” 二、可验证随机函数&#xff08;VRF&#xff09;快速开始1. VRF是什么?2. MD5 hash函数和VRF&#xff08;Verifiable Random Function&#xff09;区别3. VRF-…

日历视图,轻松解决时间管理难题丨三叠云

日历组件 路径 仪表盘设计 >> 组件 功能简介 仪表盘新增「日历」组件。日历组件是以日历图的形式去呈现数据的一种方式&#xff0c;支持【列表模式】和【面板模式】。 【列表模式】&#xff1a; 通过日历方式筛选数据&#xff0c;数据将会以列表的方式呈现。 【面…

视频图片提取秘籍:从指定时长中提取想要的视频封面

在如今的内容丰富的互联网世界中&#xff0c;视频已经成为大家获取信息、娱乐和交流的重要方式之一。而视频的封面或图片&#xff0c;作为视频内容的“名片”&#xff0c;往往决定了观众是否愿意点击和进一步了解视频内容。视频图片提取&#xff0c;通常也被称为视频封面提取&a…

Python实现一箭穿心

文章目录 &#x1f384;效果&#x1f3f3;️‍&#x1f308;Turtle模块&#x1f339;代码&#x1f33a;代码讲解 &#x1f384;效果 &#x1f3f3;️‍&#x1f308;Turtle模块 Turtle是一个绘图工具&#xff0c;是Python标准库中的一个模块。它提供了一种简单而直观的方式来创…

【教学类-06-10】20231125(55格版)X-Y之间“乘法*题”(以1-9乘法口诀表为例)(0-9乘法口诀表 最大81)

图片展示 &#xff08;随机打乱排序&#xff09; 正序 背景需求&#xff1a; 2023年11月24日&#xff0c;准备了一些题目&#xff0c;分别给大4班孩子介绍“5以内加法、5以内减法、5以内加减混合”““10以内加法、10以内减法、10以内加减混合”“”20以内加减混合“七款学具…

Datax安装部署及读取MYSQL写入HDFS

一.DataX简介 1.DataX概述 DataX 是阿里巴巴开源的一个异构数据源离线同步工具&#xff0c;致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。 源码地址&#xff1a;https://github.com/alibaba/Data…

openpnp - 丝杠安装调整的总结

文章目录 openpnp - 丝杠安装调整的总结概述笔记发现的问题 - X轴有回差发现的问题 - 丝杠两边的轴承座中心有高差(不同轴)备注END openpnp - 丝杠安装调整的总结 概述 设备定制回来后, 丝杠没敢动(开始是小白, 也没发现丝杠的相关问题. 因为看到同学自己安装丝杠那么痛苦, 最…

【刷题宝典NO.5】

有效的括号 https://leetcode.cn/problems/valid-parentheses/ 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。左括号必…

数仓中数据清洗的方法

在数据采集的过程中&#xff0c;需要从不同渠道获取数据并汇集在数仓中&#xff0c;采集的原始数据首先需要进行解析&#xff0c;然后对不准确、不完整、不合理、格式、字符等不规范数据进行过滤清洗&#xff0c;清洗过的数据才能更加符合需求&#xff0c;从而使后续的数据分析…

5、LED流水灯

LED流水灯 思路&#xff1a;每次LED灯熄灭后&#xff0c;下一个LED灯亮 #include <REGX52.H> #include <INTRINS.H>void Delay500ms() //12.000MHz {unsigned char i, j, k;_nop_();i 4;j 205;k 187;do{do{while (--k);} while (--j);} while (--i); }void m…

3.读取字符串【2023.11.25】

1.问题描述 请使用 input 函数读取一串字符串&#xff0c;然后将其输出。 2.解决思路 输入一行字符串。 将读入的变量输出。 3.代码实现 strinput("请输入一个字符串") print(str)4.运行结果