节点名称 | IP地址 | 子网掩码 | 备注 |
---|---|---|---|
client | 10.0.0.101 | 255.255.0.0 | client的外网网卡 |
172.16.2.101 | 255.255.255.0 | client的内网网卡 | |
Server2 | 172.16.2.11 | 255.255.255.0 | 172.16.2.0/24网段的某台服务器 |
Server3 | 172.16.3.11 | 255.255.255.0 | 172.16.3.0/24网段的某台服务器 |
Server4 | 172.16.4.11 | 255.255.255.0 | 172.16.4.0/24网段的某台服务器 |
内网路由器 | 172.16.2.254 | 255.255.255.0 | 172.16.2.0/24的网关 |
172.16.3.254 | 255.255.255.0 | 172.16.3.0/24的网关 | |
172.16.4.254 | 255.255.255.0 | 172.16.4.0/24的网关 |
虚机网卡类型
网络名称 | VMware网卡类型 | 网络范围 |
---|---|---|
运营商网络 | 桥接 | 10.0.0.0/16 |
VMnet2 | 仅主机 | 172.16.2.0/24 |
VMnet3 | 仅主机 | 172.16.3.0/24 |
VMnet4 | 仅主机 | 172.16.4.0/24 |
内网路由器如何实现呢?
VMnet2、VMnet3、VMnet4均为仅主机模式,那么常规情况下,只有其网络内的各计算机之间才可以通信,要怎样才能实现三个网络间的通信呢?
答案是使用华为eNSP模拟器中的Cloud。使用Cloud设备可以将eNSP中的路由器和VMware虚拟机的网卡连接起来。
配置内网环境
配置eNSP的路由器
接口 | IP地址 | 子网掩码 |
---|---|---|
G0/0/0 | 172.16.2.254 | 255.255.255.0 |
G0/0/1 | 172.16.3.254 | 255.255.255.0 |
G0/0/2 | 172.16.4.254 | 255.255.255.0 |
<huawei>system-view [huawei]int g0/0/0 [Huawei-GigabitEthernet0/0/0]ip address 172.16.2.254 255.255.255.0 [Huawei-GigabitEthernet0/0/0]quit [huawei]int g0/0/1 [Huawei-GigabitEthernet0/0/1]ip address 172.16.3.254 255.255.255.0 [Huawei-GigabitEthernet0/0/1]quit [huawei]int g0/0/2 [Huawei-GigabitEthernet0/0/2]ip address 172.16.4.254 255.255.255.0 [Huawei-GigabitEthernet0/0/2]quit [huawei]
修改虚机的IP地址
client
网卡名称 | IP地址 | 子网掩码 | 默认网关 | 备注 |
---|---|---|---|---|
ens33 | 10.0.0.101 | 255.255.0.0 | 10.0.0.1 | 外网网卡 |
ens37 | 172.16.2.101 | 255.255.255.0 | 内网网卡 |
server2
网卡名称 | IP地址 | 子网掩码 | 默认网关 | 备注 |
---|---|---|---|---|
ens33 | 172.16.2.11 | 255.255.255.0 | 172.16.2.254 |
server3
网卡名称 | IP地址 | 子网掩码 | 默认网关 | 备注 |
---|---|---|---|---|
ens33 | 172.16.3.11 | 255.255.255.0 | 172.16.3.254 |
server4
网卡名称 | IP地址 | 子网掩码 | 默认网关 | 备注 |
---|---|---|---|---|
ens33 | 172.16.4.11 | 255.255.255.0 | 172.16.4.254 |
在server上搭建HTTP服务
以server2
为例:
使用Python创建一个简单的HTTP服务
cd ~ echo "server2" > index.html python -m SimpleHTTPServer 8080
对照试验
在client
上访问外网
ping www.baidu.com -c 4
在client
上访问server2
ping 172.16.2.11 -c 4
在client
上访问server3
ping 172.16.3.11 -c 4
在client
上访问server4
ping 172.16.4.11 -c 4
在对照试验中可以看到,在client
将默认网关配置在外网网卡的情况下,双网卡的client
可以正常访问外网和内网的172.16.2.0/24
部分,而172.16.3.0/24
和172.16.4.0/24
是不能访问到的。
为什么client
能访问172.16.2.0/24
网络,而不能访问172.16.0.0/16
的其余网络呢?
因为client
位于172.16.2.0/24
网络内,在网络内进行通信,数据包不用发送至其他网络,当然默认网关也就不起作用了。
而当client
与172.16.0.0/16
的其余网络通信时,client
的路由表没有记载发往目的地址的路径,所以client
只能傻傻的把数据包发送给默认网关,从此数据包和真正的目的地址就“南辕北辙”了。当然ping的结果就是网络不可达。
路由配置
在client
上查看路由表
route
在client
上添加路由
route add -net 172.16.0.0/16 gw 172.16.2.254
永久配置,则在/etc/rc.local
里添加路由信息
route add -net 172.16.0.0/16 gw 172.16.2.254
查看路由表
route
实验结果
检测连通性
ping www.baidu.com -c 4
ping 172.16.2.11 -c 4
ping 172.16.3.11 -c 4
ping 172.16.4.11 -c 4
访问内外网资源
curl http://www.baidu.com/
curl http://172.16.2.11:8080/index.html
curl http://172.16.3.11:8080/index.html
curl http://172.16.4.11:8080/index.html
解决的办法很简单,就是1条命令而已。
但是蕴藏在这条命令背后的原理、概念、理论,则需要我们进行深究!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。