VMware通过NAT模式配置集群

进行分布式系统开发的过程中经常会需要构建分布式测试环境,本文主要介绍通过VMware构建一个分布式集群的虚拟环境并完成网络配置的全过程。


目录

1. 背景知识

VMWare提供了三种工作模式,它们是bridged(桥接模式)、NAT(网络地址转换模式)和host-only(主机模式)。

###1.bridged(桥接模式)

在这种模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器。在此种模式下,虚拟机内部的网卡(例如linux下的eth0)直接连到了物理网卡所在的网络上,可以想象为虚拟机和host机处于对等的地位,在网络关系上是平等的,没有谁在谁后面的问题。该种方式配置简单,但无法对虚拟机的网络进行控制,另外需要占用额外的IP地址,因此并不推荐选取该种方式进行实验。

###2.host-only(主机模式)

在某些特殊的网络调试环境中,要求将真实环境和虚拟环境隔离开,这时你就可采用host-only模式。在host-only模式中,所有的虚拟系统是可以相互通信的,但虚拟系统和真实的网络是被隔离开的。

在host-only模式下,虚拟系统的TCP/IP配置信息(如IP地址、网关地址、DNS服务器等),都是由VMnet1(host-only)虚拟网络的DHCP服务器来动态分配的。该种方式下虚拟机与主机通信使用虚拟网卡VMNet1,缺点是虚拟机不能访问公网。

###3.NAT(网络地址转换模式)

使用NAT模式,就是让虚拟系统借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网。也就是说,使用NAT模式可以实现在虚拟系统里访问互联网。NAT模式下的虚拟系统的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP服务器提供的,无法进行手工修改,因此虚拟系统也就无法和本局域网中的其他真实主机进行通讯。采用NAT模式最大的优势是虚拟系统接入互联网非常简单,你不需要进行任何其他的配置,只需要宿主机器能访问互联网即可。

提示:以上所提到的NAT模式下的VMnet8虚拟网络,host-only模式下的VMnet1虚拟网络,以及bridged模式下的VMnet0虚拟网络,都是由VMWare虚拟机自动配置而生成的,不需要用户自行设置。VMnet8和VMnet1提供DHCP服务,VMnet0虚拟网络则不提供。


2. 实验目标

构建基于NAT模式的虚拟机集群(包含3台虚拟机),并进行测试验证。

虚拟机主机 操作系统 IP地址
node1 CentOS6.6 192.168.124.201
node2 CentOS6.6 192.168.124.202
node3 CentOS6.6 192.168.124.203

3. 拷贝虚拟机
  
将一台已安装CentOS6.6的VMware虚拟机复制两次,并导入VMware。
虚拟机通过复制得到,会出现UUID冲突的问题,可通过以下方式解决:

1.删除mac地址行

/etc/sysconfig/network-scripts/ifcfg-eth0

2.删除网卡和mac地址绑定文件

rm -rf /etc/udev/rules.d/70-persistent-net.rules

3.重启系统

shutdown -r

4. 修改主机名

vi /etc/hosts

分别修改三台虚拟机主机名为node1,node2,node3,保存重启生效


5. 修改网卡信息文件

  1. 查看本机VMnet8的ip相关信息,确定三台虚拟机的ip及网关,网关配置为VMnet8的ip(切记)

  2. 通过上述方式修改MAC地址信息,并配置IPADDR及NETMASK,以及GATEWAY,选择启OOTPROTO为none(默认static),选择启动网络时即启动网卡ONBOOT=yes,重启网络服务network。重启后可在虚拟机网络编辑器中确认网关及可用网段,如有问题,可直接修改。


6. 测试验证

| Tables | Are | Cool | | ————- |:————-:| —–:| | col 3 is | right-aligned | $1600 | | col 2 is | centered | $12 | | zebra stripes | are neat | $1 |


7. 常用命令

ifdown 网卡设备名 #禁用该网卡设备

ifup 网卡设备名 #启用该网卡设备

netstat 选项
-t:列出TCP协议端口
-u:列出UDP协议端口
-n:不使用域名与服务名,而使用IP地址与端口号
-l:列出在监听状态的网络服务
-a:列出所用的网络连接

traceroute [选项] IP或域名 #路由跟踪命令
-n:使用IP,不使用域名,速度更快

tcpdump -i eth0 -nnX port 21
-i:指定网卡接口
-nn:将数据包中的域名与服务转为IP和端口
-X:以16进制和ASCII码显示数据包neir
port:指定监听端口

8. 出现问题

1.虚拟机找不到eth0网卡,出现原因:复制导致虚拟机会将源机的MAC地址作为eth0,后配置的MAC地址vmware会生成一个新网卡eth1,解决方式:打开文件/etc/udev/rules.d/70-persistent-net.rules,删除eth0相关信息,将eth1的NAME改为eth0,重启网络服务

2.虚拟机无法与主机通信,出现原因:vmware默认将网关配置为192.168.XX.2,局域网中没有该服务器
解决方式:修改vmware的网关配置,将其配置为本机的VMnet8网卡对应的IP

3.虚拟机的ip地址与配置的ip不一致,图像化桌面中出现auth eth0网卡。出现原因: 网卡信息文件ifcfg-eth0中有多余的HWADDR地址,与MAC地址不同。
解决方式:删除HWADDR行,重启网络服务


9. 补充知识

HWADDR以AA:BB:CC:DD:EE:FF形式表示以太网设备的硬件地址.在有多个网卡设备的机器上,这个字段是非常有用的,它保证设备接口被分配了正确的设备名 ,而不考虑每个网卡模块被配置的加载顺序.这个字段不能和MACADDR一起使用.

MACADDR以AA:BB:CC:DD:EE:FF形式表示以太网设备的硬件地址.在有多个网卡设备的机器上.这个字段用于给一个接口分配一个MAC地址,覆盖物理分配的MAC地址 . 这个字段不能和HWADDR一起使用.

前者是用来根据HWADDR绑定ethX名称的,后者才是真正用来修改MAC地址的