虚拟机就像电脑里的电脑,但其实它只是一个软件。它之所以看起来像电脑那是因为它里面也有CPU、内存、硬盘、网络,但实际上它一无所有,它用的都是物理机上的,这有点空手套白狼的意思。
那虚拟机是如何和物理机或者其他虚拟机通信的?
通信肯定得要有网卡吧?但是电脑上一般只有一个网卡,已经在使用了。所以虚拟机就无中生有了一个虚拟的网卡,看起来和真的一模一样。这是通过Linux的
通信肯定得要有IP地址吧?IP地址可以通过DHCP
自动分配或者自己手动设置。但DHCP
在路由器上,照顾不到虚拟机,自己随便手动设置肯定也不行。那该怎么办?
常用的解决办法是桥接和NAT。
桥接
这里使用VMware
装个CentOS
为例体验一下桥接。
这是刚装好的时候,此时并没有被分配到IP地址。
我们需要修改一下网络配置文件。
vi /etc/sysconfig/network-scripts/ifcfg-ens33
我们使用service network restart
重启了一下网络,发现虚拟机被分配了一个192.168.0.164
的IP地址,说明这个IP地址是可用地 。ping一下发现已经可以上网了。
不过作为服务器,IP地址肯定是要固定不变的,所以我们还需要将虚拟机IP地址写死,把子网掩码、网关、DNS等一些信息写上去。
桥接其实就是在每台机器上都创建网桥br0,虚拟机的网卡都连到br0上,物理网卡也连到br0上,所有的br0都通过物理网卡出来连接到物理交换机上。
桥接是在同一个网段,一个网段内IP地址是有限的,适合小规模的数据中心。另外一种方式称为NAT,适合大规模的数据中心。
NAT
在这种方式下,虚拟机里面的IP地址和物理机的IP地址就没有任何关系了。虚拟机想要访问物理机的时候,需要将地址NAT成为物理机的地址。除此之外,它还会在你的电脑里面内置一个DHCP服务器,为电脑里面的虚拟机动态分配IP地址。因为虚拟机的网络自成体系,需要进行IP管理。而桥接是由路由器的DHCP分配的。
这是NAT方式给我分配的IP地址。
参考资料:《趣谈网络协议》