虚拟机的网络模式

1、NAT模式

一般家庭网络都会用到NAT。办理了宽带,分配了一个ip地址,但家里很多设备都需要上网,怎么办?

路由器会自动进行地址和端口的转换,出去时转成外网ip(全家共用一个)+端口,进来时又重新转成内网ip+端口的模式。

同时要注意,内网ip(A类:10.0.0.0-10.255.255.255,B类:172.16.0.0-172.31.255.255,C类:192.168.0.0-192.168.255.255)是不能公网路由的,因为是每个局域网中的内部地址,不同局域网中可以有相同的内网地址。

内网ip端口可以通过NAT访问外网,但外网一般不能直接访问内网的ip端口。因为路由器一般只配置了SNAT,即源NAT,会对出去的源ip端口进行转换,但外网进来的访问内网ip端口的请求,由于没有对应的映射表,请求会被丢弃。当然这个可以通过手动配置DNAT(目的地址NAT)来解决。

说回来虚拟机的NAT,这就相当于宿主机上的每个虚拟机都在一个独立的局域网里面,并且都有自己的DHCP和网关,各个虚拟机的ip地址可能相同(因为在不同的子网里面),所以

(1)虚拟机相互之间是不通的(不考虑端口转发等操作)

(2)虚拟机当然能访问宿主机,并且可以通过宿主机再访问外网,就好比你家里局域网中的设备也能访问外网一样。

虚拟机发起一个请求,假设虚拟机通过Xip+x端口请求外网的Aip+a端口,这个请求首先到虚拟机和宿主机之间的路由器H(这是一个虚拟路由器?),目标地址不变,源地址通常会直接转换为宿主机在上一层网络(家庭局域网)中的IP地址。 对于宿主机操作系统来说,这个数据包现在看起来就像是宿主机上的一个普通应用程序发出的。在宿主机看来是虚拟路由器H作为一个应用发起了一个请求,于是通过NAT转到公网(假设宿主机所在网络是一个家庭局域网,也是通过NAT访问外网),公网返回响应后再转回虚拟路由器,虚拟路由器再通过映射表转到虚拟机。整个过程其实是有两次NAT映射。

(3)宿主机不能访问虚拟机,外网ip也不能访问虚拟机,对应外网ip不能直接访问NAT的内部ip

2、NAT网络模式

和NAT模式的区别只在于一个宿主机上的多个虚拟机,不再是每个虚拟机处于一个单独的子网中了,而是所有虚拟机处在一个子网中,共用一个DHCP和网关,因此虚拟机相互之间是通的。其他和NAT模式完全相同。

3、桥接模式

NAT模式下,虚拟机的网络相当于还是比宿主机所在网络低一级(虚拟机所处子网的DHCP是宿主机上的一个虚拟网络适配器),而在桥接模式下,虚拟机软件会创建一个虚拟网桥,将虚拟机的网卡"桥接"到宿主机的物理网卡上,虚虚拟机就像一台独立的物理机一样,直接连接到了宿主机所在的家庭局域网。它会从家庭路由器那里获取一个IP地址。

所以,

虚拟机之间,通

虚拟机到宿主机,通

虚拟机到外网,通

宿主机到虚拟机,通

外网到虚拟机,不通

4、内部网络

各个虚拟机之间搭建了一个内部网络,不和宿主机相通。

也就是

虚拟机之间,通

虚拟机到宿主机,不通

虚拟机到外网,不通

宿主机到虚拟机,不通

外网到虚拟机,不通

5、仅主机

和内部网络非常像,区别在于宿主机也和虚拟机在同一个隔离网络里,但不是联外网的那个局域网中。

虚拟机可以通过虚拟网卡访问宿主机,宿主机也可以访问虚拟机。可以把这张虚拟网卡想象成一张真实的网卡插到宿主机上了,宿主机就有两张网卡,两卡各自分别连到一个网络,宿主机存在于两个网络中。但虚拟网卡所在网络没有设置网关,因此不能连接外网。

虚拟机之间,通

虚拟机到宿主机,通

虚拟机到外网,不通

宿主机到虚拟机,通(可以ping虚拟网卡,但不能ping宿主机在家庭网络中的ip)

外网到虚拟机,不通

相关推荐
txzz88883 小时前
CentOS-Stream-10 系统安装之Firewalld防火墙配置
linux·运维·网络·计算机网络·centos·firewall-cmd·linux防火墙
IT逆夜3 小时前
linux防火墙核心命令
网络·智能路由器
噜啦噜啦嘞好4 小时前
Linux——网络概念
linux·网络
OurBMC社区4 小时前
玩转OurBMC第二十三期:OurBMC之PCIe接口应用(下)
linux·运维·网络
初圣魔门首席弟子4 小时前
核心 Bug:客户端与服务器端口不匹配(导致请求无法送达)
linux·网络
是垚不是土4 小时前
基于Blackbox Exporter的网络服务黑盒监控体系实践
网络·数据库·安全·http·微服务·prometheus
福尔摩斯张4 小时前
TCP协议深度解析:从报文格式到连接管理(超详细)
linux·c语言·网络·c++·笔记·网络协议·tcp/ip
那我掉的头发算什么4 小时前
【javaEE】保姆级 HTTP 全解析:请求响应 + 状态码 + Fiddler 实操
网络·http·java-ee·fiddler
代码不行的搬运工5 小时前
交换机和网卡的 PFC 机制工作原理与实例解析
运维·服务器·网络·算力网络
Sleepy MargulisItG5 小时前
【Linux网络编程】UDP Socket
linux·网络·udp