概述
摘要
在大型公司采用虚拟机进行服务的部署以节约资源,最近docker与k8s中虚拟化网络就是典型的虚拟网络解决方案。常见的虚拟网络模型有:Host模型、Bridge模型、NAT模型、Overlay Network模型。博文将对虚拟网络模型进行介绍,帮助大家更好的理解虚拟网络模型原理同时在工作中学会利用虚拟网络构建相关服务。
计算机网络知识脑图 | 计算机网络——计算机网络知识脑图_庄小焱的博客-CSDN博客_计算机网络面试题总结 |
计算机网络大厂面试问题集合 | 计算机网络——大厂面试问题集合_庄小焱的博客-CSDN博客 |
计算机网络基础知识 | 计算机网络——网络基础知识_庄小焱的博客-CSDN博客_数据转发服务器 |
IP相关基础原理 | 计算机网络——IP协议基础原理_庄小焱的博客-CSDN博客_ip网络技术 |
HTTP协议原理 | 计算机网络——HTTP协议原理_庄小焱的博客-CSDN博客_http协议原理 |
HTTP的优化方式 | 计算机网络——HTTP的优化方式_庄小焱的博客-CSDN博客 |
HTTPS协议原理 | 计算机网络——HTTPS协议原理_庄小焱的博客-CSDN博客_https协议原理 |
HTTPS的优化方式 | 计算机网络——HTTPS的优化方式_庄小焱的博客-CSDN博客 |
TCP可靠性传输原理 | 计算机网络——TCP可靠性传输原理_庄小焱的博客-CSDN博客_tcp的可靠性是如何实现的 |
TCP/IP三次握手四次挥手原理 | 计算机网络——HTTP的三次握手与四次挥手原理_庄小焱的博客-CSDN博客_三次握手和四次挥手原理 |
TCP的优化方式 | 计算机网络——TCP的优化方式_庄小焱的博客-CSDN博客_tcp协议优化技术 |
DNS协议(域名解析)原理 | 计算机网络——DNS协议(域名解析)原理_庄小焱的博客-CSDN博客_计算机网络dns |
ARP协议(地址解析)原理 | 计算机网络——ARP协议(地址解析)原理_庄小焱的博客-CSDN博客_地址解析协议的工作原理 |
ARQ协议(自动重传请求)原理 | 计算机网络——ARQ协议(自动重传请求)原理_庄小焱的博客-CSDN博客_连续arq协议的原理 |
DHCP协议原理 | 计算机网络——DHCP(动态获取IP)原理_庄小焱的博客-CSDN博客_计算机网络dhcp |
NAT协议原理 | 计算机网络——NAT协议(网络地址转换)原理_庄小焱的博客-CSDN博客 |
ICMP/IGMP协议原理 | 计算机网络——ICMP/IGMP协议原理_庄小焱的博客-CSDN博客_计算机网络igmp |
HTTP网络访问全流程 | 计算机网络——HTTP网络访问全流程_庄小焱的博客-CSDN博客_网络访问流程 |
虚拟网路模型原理 | 计算机网络——虚拟网路模型原理_庄小焱的博客-CSDN博客 |
其他网络知识 | 计算机网络——select/poll/epoll底层原理_庄小焱的博客-CSDN博客 计算机网络——cookie/session/token原理_庄小焱的博客-CSDN博客 计算机网络——网络通信加密原理_庄小焱的博客-CSDN博客_网络通信加密 计算机网络——GRPC通信原理_庄小焱的博客-CSDN博客_grpc原理 计算机网络——tcpdump/Wireshark抓包实战_庄小焱的博客-CSDN博客_网络抓包 计算机网络——TCP抓包连接实战_庄小焱的博客-CSDN博客_tcp全连接和半连接 |
一、Host-only 网络模式
虚拟机的TCP/IP配置信息(如IP地址、网关地址、DNS服务器等),都是由VMnet1(host-only)虚拟网络的DHCP服务器来动态分配的。这种模式下,所有局域网内所有虚拟机互通,但虚拟机无法访问外网,与外网完全隔离。此种模式同样可以配置集群,但是集群无法访问外网,比较适合公司内网。
1.1 Host-only Adapter(主机模式)
虚拟机与主机的关系 | 默认不能相互访问,双方不属于同一IP段,host-only网卡默认IP段为192.168.56.X 子网掩码为255.255.255.0,后面的虚拟机被分配到的也都是这个网段。通过网卡共享、网卡桥接等,可以实现虚拟机于主机相互访问。 |
虚拟机与网络主机的关系 | 默认不能相互访问,原因同上,通过设置,可以实现相互访问。 |
虚拟机与虚拟机的关系 | 默认可以相互访问,都是同处于一个网段。 |
1.2 Vmware设置仅host模式
二、Bridge网络模型
基于以上的拓扑测试,桥接方式虚拟出来的系统就像是在局域网中单独存在的独立“物理机”一样,它可以访问同一局域网内任何一台机器,也可以单独通过局域网网关或者路由访问外网。不过需要在每台机器上都要去单独配置IP,网关、网段、DNS等。由于这个虚拟系统是局域网中的一个独立的主机系统,那么就可以手工配置它的TCP/IP配置信息,以实现通过局域网的网关或路由器访问互联网。利用相同的网关网段配置,Bridged可用来配置集群。将网络设置为桥接模式的时候:此时宿主机的物理网卡成为交换机。内核模拟出一个虚拟网卡给宿主机用。
2.1 Bridged Adapter(网桥模式)
虚拟机与主机的关系 | 可以相互访问,因为虚拟机在真实网络段中有独立IP,主机与虚拟机处于同一网络段中,彼此可以通过各自IP相互访问。 |
虚拟机于网络中其他主机的关系 | 可以相互访问,同样因为虚拟机在真实网络段中有独立IP,虚拟机与所有网络其他主机处于同一网络段中,彼此可以通过各自IP相互访问。 |
虚拟机与虚拟机的关系 | 可以相互访问,同样因为虚拟机在真实网络段中有独立IP,虚拟机与所有网络其他主机处于同一网络段中,彼此可以通过各自IP相互访问。 |
在使用桥接模式的时候有问题:应为在一个局域网中如果主机特别多时候会出现网络风暴,出现网络阻塞的情况。这样不利用虚拟机进行网络通信。
2.2 设置桥接模式
首先,安装完系统之后,在开启系统之前,点击“编辑虚拟机设置”来设置网卡模式。
在进入系统之前,我们先确认一下主机的ip地址、网关、DNS等信息。window键+r 进入DOS命令窗口,输入:cmd 在输入:ipconfig
然后,进入系统编辑网卡配置文件,命令为vi /etc/sysconfig/network-scripts/ifcfg-eth0。编辑完成,保存退出,然后重启虚拟机网卡,使用ping命令ping外网ip,测试能否联网。 能ping通外网ip,证明桥接模式设置成功。
三、NAT网络模型
- 使用NAT模式,就是让虚拟系统借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网。
- NAT模式下的虚拟系统的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP服务器提供的。
- 虚拟系统也就无法和本局域网中的其他真实主机进行通讯
- Guest访问网络的所有数据都是由主机提供的,Guest并不真实存在于网络中,主机与网络中的任何机器都不能查看和访问到Guest的存在。
- Guest可以访问主机能访问到的所有网络,但是对于主机以及主机网络上的其他机器,Guest又是不可见的,甚至主机也访问不到Guest
3.1 虚拟机与主机的关系
依靠物理主机的VMnet8网卡上网。虚拟机可以互Ping通,前提是物理主机的VMnet8网卡的网关要与虚拟机一样!如果不在同一个网关,会出现虚拟机能Ping通物理主机,但物理主机无法Ping通虚拟机的情况。注意此种情况也是实际应用场景之一。
3.2 NAT网络模型测试
物理主机(WINDOWS)IP信息:
虚拟机(Linux) IP信息 :
测试结果:物理主机 Ping 虚拟机
虚拟机1Ping物理主机
虚拟机1Ping外网
虚拟机1Ping虚拟机2
现修改物理主机网段为10,使其与虚拟机不同。
物理主机Ping虚拟机1
虚拟机1Ping物理主机
- NAT方式使虚拟机接入外网方便,不需要进行其他配置,只需要物理主机可以上网即可
- 如果想安装个虚拟机,又不想配置网络,就推荐用NAT方式上网
- NAT模式下的虚拟系统的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP服务器提供的,无法进行手工修改,因此虚拟系统也就无法和本局域网中的其他真实主机进行通讯。(不能用NAT配置集群的原因)
3.3 设置NAT模式
Internal(内网模式):内网模式,顾名思义就是内部网络模式:虚拟机与外网完全断开,只实现虚拟机于虚拟机之间的内部网络模式。虚拟机与主机的关系 不能相互访问,彼此不属于同一个网络,无法相互访问。 虚拟机与网络中其他主机的关系 不能相互访问,理由同上。 虚拟机与虚拟机的关系 可以相互访问,前提是在设置网络时,两台虚拟机设置同一网络名称。如上配置图中,名称为intnet。
四、Overlay Network模型
对 Kubernetes 网络模式稍有了解的朋友都应该听说过 Overylay网络,Overlay 网络其实并不是一门新技术,Overlay 网络其实是将已有的物理网络(Underlay网络)作为基础,在其上建立叠加的虚拟网络,实现网络资源的虚拟化。近年来云计算,虚拟化,容器化技术的演进促进了网络虚拟化技术的应用。由于Overlay网络是建立在已有物理网络上的虚拟网络,具有独立的控制和转发平面,所以我们介绍 Overlay 网络的同时也一并说一哈 Underlay 网络。Underlay 网络是专门用来承载用户 IP 流量的基础架构层,它与 Overlay 网络之间的关系有点类似物理机和虚拟机。Underlay 网络和物理机都是真正存在的实体,它们分别对应着真实存在的网络设备和计算设备,而 Overlay 网络和虚拟机都是依托在下层实体使用软件虚拟出来的层级。如下图:
4.1 overlay network常见应用场景
虽然 Kubernetes 目前已经是容器编排领域的事实标准了,但是依然有很多传统行业仍然在使用物理机,虚拟机部署服务。而日常的更新维护中,集群中的大规模虚拟机迁移是比较常见的事情。当虚拟机所在的宿主机因为维护或者其他原因宕机时,当前实例就需要迁移到其他的宿主机上,为了保证业务不中断,我们需要保证迁移过程中的 IP 地址不变,因为 Overlay 是在网络层实现二层网络,所以多个物理机之间只要网络层可达就能组建虚拟的局域网,同样的通过迁移虚拟机来提高容错性。因此 Overlay 网络为虚拟机的迁移提供了非常好的基础。
而 Overylay 在 Kubernetes 中容器跨主机网络通信中一样扮演者很重要的作用,其中比较主流的方案是基于 Flannel 的 VXLAN 后端实现,而 VXLAN 是 Overylay 网络的一种技术实现
4.2 Kubernetes的Flannel网络模型
首先我们来简单了解一下 VXLAN(Virtual eXtensible LAN)技术的原理,由于VXLAN 可以完全在内核态实现封装和解封装数据包的工作,他是在现有的三层网络之上,覆盖一层虚拟的、由内核 VXLAN 模块负责维护的二层网络,使得连接在这个 VXLAN 二层网络上的虚拟机或者容器都可以像在同一个局域网(LAN)里那样自由通信。当然现实情况是,可能虚拟机或者容器可能分布在不同机器上,或者不同区域的物理机房里。而为了打通两边的二层网络, VXLAN 会在宿主机上设置一个特殊的网络设备作为「隧道」的两端。这个设备就叫做 VTEP。而 VTEP 设备的作用就是进行封装和解封装二层数据帧(Ethernet frame);而且这个工作的执行流程,全部是在内核里完成的(因为 VXLAN 本身就是 Linux 内核中的一个模块)。我们来看一下这幅图,它可以清晰表达出在 Kubernetes 中基于 Flannel 的 VXLAN 网络跨主机容器通信的过程:
上图中,Node1 的容器 1 访问 Node2 的容器 2 整个过程可以简单描述为以下几个步骤:
- Node1 上的容器 1 从其 eth0 网卡将 IP 数据包通过 cni0,被路由到 flannel0。(其实就是 VETP )
- 而 flannel0 从收到的数据包中获取目的 MAC 地址;
- 然后在本地的转发表中查找该 MAC 地址所在服务器的 IP 地址;
- 然后将虚拟网络标识符(VxLAN Network Identifier 即 VNI)以及原始的 IP 数据包作为 Payload ,构建新的 UDP 数据包;
- 将新的 UDP 数据包通过 Node1 的 eth0 网卡发送到 Node2;
- Node2 的 eth0 网卡将数据包发送给 Node2 的 flannel0;
- flannel0 收到数据包后,去掉 UDP 数据包中的协议头;
- 查看数据包中 VNI;
- 将 IP 数据包转发给 Node2 上的容器2;
五、虚拟网络模型总结
VMware中NAT模式与桥接模式的区别
- NAT模式:使用Vmnet8网卡,宿主机和虚拟机可以互相通信,但局域网环境中其他主机/终端设备不能访问虚拟机,因为IP不在同一个网段。需要注意的是在该模式下虚拟机的子网掩码、网关、DNS要与网卡保持一致。适用场景:IP地址紧张的情况以及用来学习研究使用
- 桥接模式(bridged):该模式使用Vmnet0网卡,虚拟机和宿主机在同一网段,局域网中所有设备皆可以通信,可以看做是一台独立的主机。主要宿主机联网,那么虚拟机也会联网。但是静态IP地址容易导致端口冲突。要注意的是虚拟机配置的子网掩码、网关和DNS需要与主机网卡一致。使用场景:虚拟主机作为开发环境或者测试环境,需要被局域网中电脑访问。
参考博文
云原生时代 Overlay 网络的应用 - 知乎
虚拟机的几种网络连接方式_从菜鸟到菜菜鸟-CSDN博客
最后
以上就是幸福大地为你收集整理的计算机网络——虚拟网路模型原理摘要一、Host-only 网络模式二、Bridge网络模型三、NAT网络模型四、overlay network模型五、虚拟网络模型总结参考博文的全部内容,希望文章能够帮你解决计算机网络——虚拟网路模型原理摘要一、Host-only 网络模式二、Bridge网络模型三、NAT网络模型四、overlay network模型五、虚拟网络模型总结参考博文所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复