有的时候我们需要部署一些web项目或者部署集群,我们可以申请一些远程的服务器,当然还有比较方便和低成本的方法,就是使用虚拟机,一般的虚拟机都是安装Linux操作系统的,至于安装win系统的,嗯,没见过。那我们先来看一下局域网的网络配置及工作原理吧。
上面的示意图中,存在三台服务器与一台主机,这些服务器是存在于机房真是存在的,这些服务器通过连接一个路由器或者交换机来实现通信,当然前提条件是这些服务器的ip地址要与他们的网关地址在同一个网段,什么意思呢,是比如上面的路由器的ip地址192.168.33.1,然后其他的三台服务器的ip地址是192.168.33.2等,他们是属于同一个分段的。那个这里就会有一个网段地址的名词,网段地址是如何定于或者计算的呢?是通过IP与子网掩码的二进制表示形式做与运算,得出一个IP地址就作为这个网段的地址。 就如同上面个三个服务器的ip地址分别与子网掩码做与运算之后,都是得到同一个IP地址:192.168.33.0。
然后我们的主机电脑通过连接一个路由器或者交换机就可以访问我们的服务器了。当然访问服务器的话,我们每次都属于服务器的IP地址是不是显得很麻烦呢,所以这里就有引出一个域名的概念,举个很简单的例子,www.baidu.com 就是百度的域名,而我们访问的百度实质上是访问百度远程服务器的IP地址,而不是域名。所谓域名只不过是方便我们进行输入或记忆。就行人一样,人是有名字的,当然每个人都有一个唯一的id,就是我们的身份证号,那你说我们记住一个人,是记住他的名字简单呢还是记住他的身份证号呢,很显然是名字吗,这样理解域名是不是就很通俗一些了。
那我们是如何配置服务器的域名呢? 在我们局域网中,我们可以通过配置服务器的hosts文件,配置信息是服务器名称和ip地址。当然,这里肯定是每台服务器都要配置了,不然在一台服务器配置,其他的服务器是不会识别的,只有所有的服务器都配置了,大家达成一个共识,服务器之间才能达成通信。有一个问题,在互联网中域名是怎么样配置的呢?总不能在所有的服务器上都进行配置吧,这显然是不行的吧,好,那我们就看一下DNS:
在互联网中,各个互联网公司比如百度等,我们访问的域名都是通过在DNS服务商进行注册,就和我们配置hosts文件是一个道理的,当我们请求一个域名,比如www.baidu.com时,我们首先会到本地的hosts文件中进行查找,www.baidu.com对应的IP地址时什么,如果能查到的话,我们就去请求这个IP地址,如果没有找到的话,说明我们的hosts文件中没有相关的配置,这个时候我们的请求会打到DNS服务器,他会解析我们请求的域名,然后返回该域名注册的IP地址,我们拿到这个IP地址,才可以访问这个地址所在的服务器。
以上是我们真实的局域网中的服务器集群网络原理,那么相比较上面的,我们今天在看一下虚拟机的网络配置类型与原理吧。
我们在自己的电脑上面安装多台虚拟机,可以虚拟一个服务集群,这些集群之间的网络配置方式有三种:NAT/桥接/仅主机 。
先说一下NAT方式,也是比较推荐的一种方式。我们在笔记本上面安装vmWare,安装完成之后,他会在电脑上注册两台网卡驱动,同时vmWare还有一个更加强大的功能,是他能虚拟出一个路由器,提供给vmWare里面安装的虚拟机进行连接以实现服务集群之间的通信。当然,我们自己的笔记本电脑会存在一个真实的物理网卡,他可以连接到外真实网络。所以只要我们的主机与虚拟机能够进行互相通信,那么我们安装的虚拟机是可以访问外网的,这也是推荐NAT配置方式的一个原因。
这一种是桥接方式,大家应该也很熟悉,他的区别是在于虚拟机和我们自己的电脑共用一个物理的交换机或路由器,所以虚拟机与我们的电脑是在同一个网段的,和这个局域网中的其他主机也是在一个网段的,此时,虚拟机就相当我们的主机,我们可以通过虚拟机ping通我们同事的主机。这种方式有一个比较明显的缺点,一旦我们的电脑IP发生移动,虚拟机的ip如果是静态IP的话,虚拟机和主机的IP不在同一个网段,这显然是不行的,需要我们手动进行更改。
然后还有一种方式 : HOST-ONLY方式,也就是仅主机连接的方式,这种方式仅仅是与主机进行连接通信,虚拟机不能访问外网,也不能访问局域网中的其他主机。这种方式也是不推荐使用的。