|
环境: vmware10.0、
宿主机Admin: centos6.5(192.168.8.100)、(相当于男一)
平板Host:win10(通过wifie8372h927连上网络,192.168.8.101)、(相当于男二)
虚拟主机Client:xp(bridge模式192.168.8.102;nat模式172.16.147.130),其作用相当于群众演员,大家可以忽略,只是为了让网络看起来复杂一些。
虚拟服务器主机Server: centos6.5(提供http服务)、(相当于男三)
路由器Route:e8372h-927(ip192.168.8.1)、(相当于群众演员)
A、B都是通过路由器L发射热点而连上网络的。在宿主机A下,模拟出xp虚拟主机和虚拟服务器主机S。
都知道宿主机A安装vmware以后具有了vmnet0(host-only模式)、vmnet1(bridge模式,网段:192.168.8.00)、vmnet8(net模式,网段:172.16.147.00)三个网卡。
首先,开启A路由转发功能,然后根据要采取的网络布局(下面有说)配置iptables和route。开启路由转发功能命令:vi /etc/sysctl.conf ,将net.ipv4.ip_forward的值修改为1,然后sysctl -p,使得路由马上生效。
其次,设置S工作网段。(即设置网络布局,记住,不管怎样,都是通过路由器L访问外网的,其路由器地址是192.168.8.1)
第一情况,C(bridge模式192.168.8.102)和S(bridge模式192.168.8.102)全部工作在bridge模式。此时由于是桥接,C、S的ip就和宿主机一样了,也就是和路由器R一个网段了。
第二种情况,C工作在bridge模式(192.168.8.1),S工作在nat模式(172.16.147.137)
第三种情况,C(172.16.147.130),S(172.16.147.134)全部工作在nat模式。
最后,虚拟主机提供http服务,端口80。
问题如下:
思考在上面三种情况下,win10平板如何访问虚拟服务器主机?
提示:
(1)win10平板通过路由器e8372h-927连接外网的。(所以需要修改默认网关)
(2)在第一种模式下win10平板要访问虚拟服务器,路由怎么走?通过tracert 192.168.8可以发现数据走网关192.168.8.1而不直接走虚拟服务器主机。
(3)第二种模式下,宿主机启用路由转发功能、以及iptables设置、route都很重要。这里有两种方案,第一,把宿主机当作是平板win10的网关(防火墙)(即宿主机和平板当作是一个局域网),把虚拟服务器主机当作真实的外网来访问(实际上为第二个局域网),此过程中,由于宿主机担任网关或者防火墙或者路由,所以可以转发平板win10的请求,但是虚拟服务器主机收到请求后,却发现访问的来访的主机ip是私有地址,所以此时就会造成无法访问了,此时就需要进行snat。此时平板win10(192.168.8.101,gw必须设置为192.168.8.100)访问的虚拟服务器ip地址为172.16.147.134,。方法如下:宿主机iptables -t nat -A POSTROUTING -s 192.168.8.101(平板win10) -j SNAT --to 172.16.147.1(当作外网来看)。第二,把宿主机当作是虚拟服务器主机的防火墙,此时位于防火墙后的局域网的虚拟服务器主机C要提供服务,必须宿主机开启dnat服务,即通过访问宿主机,被转发访问到虚拟服务器,此时平板win10访问虚拟服务器主机的ip地址为192.168.8.100。宿主机命令如下iptables -t nat -A PREROUTING -d 192.168.8.100 -p tcp --dport 80 -j DNAT --to 172.16.147.134。
(4)第三种情况其实跟第二种情况一样。
(5)共同需要考虑的问题就是宿主机A、虚拟服务器主机C的iptables链的默认措施,是accept还是drop或者其他等等,还有虚拟服务器主机的默认网关也会有错的时候,具体原因不详,可以通过route -n看到的,此时route del default gw 172.16.147.2即可,然后route add default gw 172.16.147.1即可。看看S的selinux问题,或者acl或者文件权限都会有影响的。
|
|
|