虚拟机的三种网络模式桥接模式、NAT、host only模式。
虚拟机的三种网络模型结构
虚拟机的三种网络模型结构
最近使用虚拟机,关于网络方面产生了以下的问题:
- PC端开热点的实现原理,目前发现PC端卡热点时win10会产生一个虚拟网卡,该网卡的IP是局域网的网关192.168.137.1/24,同时热点肯定是需要运行NAT协议的;
- 交换机,网卡、路由器这些设备运行的协议,这一点需要去参考知乎博客https://zhuanlan.zhihu.com/p/152330660去实践;
- 如果同时连接实验室内网,并且PC机连接了hi WiFi,同时使用笔记本开热点,另一台笔记本接入我的热点,那么笔记本形成了三个局域网,这些局域网构成的网络结构是什么样子;
- 机器是如何获取IP的?开启了需要身份认证的WiFi,如果连接了但是没认证是不能上网的,但是获得了IP吗?没有认证是如何获得IP的?
- DHCP服务具体运行原理,静态IP为什么有效?
- 实验室的局域网是通过hub式的交换机连接起来的,hub式交换机只能运行数据链路层的协议,那么为什么还需要每个人手动设置静态IP才能访问服务器?
- 目前实验室的服务器需要一个单独的锐捷客户端才能上网,能否通过我手边的路由器将局域网和校园网内网连接起来?
上述这些问题是思考虚拟机网络问题时候想到的,然而能力有限无法一次性解决,等待后续看完《计算机网络自顶向下》再来回答。本篇全部用来解决虚拟机中面临的计算机网络问题。
本文内容全部来自掘金https://juejin.cn/post/6844903677912694791 版本归原作者所有。结合一些自己的思考和实验。
实验环境:
- vmware workstation player 16;
- 虚拟机系统ubuntu20。
vmware提供了三种网络连接模式,桥接模式、NAT模式、host-only模式。
为了简化问题的考虑,现在不考虑DHCP问题,直接考虑使用静态IP的方式。
1.桥接模式
桥接模式是最简单的模式,其中VMNet0充当了虚拟机局域网的hub交换机,将所有的虚拟机都连接在VMNet0虚拟交换机上,所有虚拟机的IP和宿主机在一个局域网段。这个时候的VMNet0仅仅只是一个交换机,保存有一个mac地址和端口对应的转发表,并不跑IP层协议,因此这个时候VMNet0的IP是无效的,可以随便设置;
2.NAT模式
NAT模式是最复杂的模式,其中VMNet8同时充当了宿主机的虚拟网卡和虚拟机局域网的hub交换机,同时虚拟机内部存在虚拟NAT设备和宿主机的网卡进行通信,实现虚拟机访上网的功能。此外虚拟机局域网内还有虚拟的DHCP服务运行,给每个虚拟机分配动态IP。NAT模式下虚拟机的IP和宿主机物理网卡IP不在一个网段,因此虚拟机上网只能通过虚拟NAT设备实现,虚拟机也不能被宿主机外面的计算机访问。但是宿主机能访问虚拟机,这是通过VMNet8充当的虚拟网卡实现的,这个虚拟网卡的IP和虚拟机局域网在一个网段内;
3.host-only模式
host-only模式是在NAT模式中砍掉虚拟NAT设备,这样虚拟机也不能上网了,只能通过虚拟网卡VMNet8与宿主机通信,但虚拟机内部的虚拟DHCP服务存在,IP是动态获取的。
从上可以看出,VMnet0在桥接模式下起作用,并且其IP似乎没有任何作用,VMNet8在NAT模式和host-only模式起作用,其IP似乎应该是动态获取的方式,但是实际中发现手动设置VMNet8的IP地址也能正常工作。
上述问题还有待逐次验证。同时关于如何设置linux的IP获取方式:静态orDHCP将在后续博客中进行展开。