至此,我们第一个路由器的配置就全部完成,接着,我们用相同的方法给剩下两个路由器做配置。方法相同~所以下面就只列出剩下两个路由器的路由表啦:
Node2:
网络ID 子网掩码 接口 网关 10.1.0.0 255.255.0.0 eth0 10.2.0.200 10.2.0.0 255.255.0.0 Eth0 10.3.0.0 255.255.0.0 eth1 10.4.0.0 255.255.0.0 eth1 10.3.0.201
Node3:
网络ID 子网掩码 接口 网关 10.1.0.0 255.255.0.0 eth0 10.3.0.200 10.2.0.0 255.255.0.0 eth0 10.3.0.200 10.3.0.0 255.255.0.0 eth0 10.4.0.0 255.255.0.0 eth1
全部设置完毕后,我们可以先试一下在相邻的两个虚拟机之间ping,如下图:
在上面的几个图中我们可以看出,我们的相邻虚拟机已经可以两两ping通,那么,这是不是意味着我们的实验完成了呢?接下来我们来试一试node2来ping主机A:
咦?为什么ping不通?这就很尴尬了,我们来找找原因。
奥,原来是因为我们是把node1当做路由器,但是事实是他还是一个主机,它接收到来自node2的包发现不是自己的就扔掉了,而不会转给主机A,所以,接下来我们就要把node1,node2,node3三个路由器设置成可以转发的。具体操作如下:
echo 1 > /proc/sys/net/ipv4/ip_forward
我们在node1中输入上面的命令,然后再用node2去ping 主机A:
当当当当~已经可以ping通了~
接下来我们要在剩下的两个充当路由器的虚拟机中也输入上述命令:
好了,接下来就是见证奇迹的时刻!我们用主机B来ping主机A:
啊咧,为啥还是ping不通呢?
让我们来查一下防火墙
奥,原来是因为防火墙没有关闭,好吧,我们把5台虚拟机的防火墙都临时关闭。命令是:“iptables -F”
全部关闭以后,我们再来试着ping一下~
当当当当,已经可以啦~
现在我们也可以用mtr来动态跟踪路由状态~
看,三个路由器的端口IP都有喏,当然,也少不了我们主机B的啦。
完成了!撒花✿✿ヽ(°▽°)ノ✿
以上,我们的实验圆满成功!
当然啦,既然我们做实验,就要做得完美一点嘛~我们可以把实验的过程进行优化呀~
我们可以看到,在路由器R3(node3)的路由表记录中,有两条记录是基本一致的:
那么,我们可以把这两条记录合并成一条吗?如同下表中所示:
网络ID 子网掩码 接口 网关 0.0.0.0 255.255.0.0 eth0 10.3.0.200
接着我们就来试试看:
首先,我们把这两条记录从路由表中删除,然后,我们在添加新的记录:
然后,我们用主机A来ping一下主机B,看看效果如何: