实验:模拟实现主机跨路由通信

Posted 珂儿吖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验:模拟实现主机跨路由通信相关的知识,希望对你有一定的参考价值。

实验目的:

通过虚拟机模拟路由器,实现两台主机之间跨路由通信。

实验器材:

5个虚拟机,其中2个作为主机使用,3个模拟路由器使用。

本实验中所用虚拟机均为centos6

实验步骤:

1、画出构图,部署所需要的网络环境。

 

如图所示,R1R2R3为模拟的路由器,AB为两个主机。配置IP也在图中有所说明。

2、根据构图,配置5个虚拟机的设置。

图中可以看出,我们一共需要四个网段,我们可以在虚拟机中添加新的网段,具体步骤如图:

至此,我们的网段添加完毕。

接着我们对虚拟机的网段进行设置:

我们把虚拟机进行重命名以确保我们能够清楚的分辨每台虚拟机的作用:

接着,我们以主机A的网段设置为例,来演示一下如何更改:

同理,对剩下四个虚拟机做相同操作,作为主机的两台虚拟机只需要设置一个网段,而作为路由器的三台虚拟机则需要设置两个网段,具体设置如下:

    centos6.9-A eth1:VMnet11

    node1 eth0:VMnet11

          eth1:VMnet12

    node2 eth0:VMnet12

          eth1:VMnet13

   node3 eth0:VMnet13

          eth1:VMnet14

    centos6.9-B eth0:VMnet14

全部设置完毕后,开启所有虚拟机。

3、给用于通信的两个主机添加相对应的IP和网关。

首先是centos6.9-Aeth1。我们直接修改配置文件 /etc/sysconfig/network-scripts/ifcfg-eth1。添加我们规划的IP,子网掩码和网关。

设置完毕后,我们来重启一下网络服务

图中提示错误,是因为找不到eth0这个网卡,而在本实验中,我本来就没有设置该网卡,所以可以忽视掉。

接下来我们用“route -n”看一下这个设置有没有生效

很显然,我们的设置已经生效。

至此,我们已经完成第一个通信主机的设置,接下来,我们来配置第二个通信主机:

同样的,我们直接修改配置文件 /etc/sysconfig/network-scripts/ifcfg-eth1。添加我们规划的IP,子网掩码和网关。

重启服务,并查看是否成功:

至此,我们的两台通信主机已经设置完毕。

4、进行三个路由的IP和路由表的配置。

Node1

至此,网络IP已经配置完成。接下来,我们要来配置路由表,为了保证我们的两台主机可以连通,我们需要添加如下信息:

网络ID

子网掩码

接口

网关

10.1.0.0

255.255.0.0

eth0

 

10.2.0.0

255.255.0.0

eth1

 

10.3.0.0

255.255.0.0

eth1

10.2.0.201

10.4.0.0

255.255.0.0

eth1

10.2.0.201

我们使用“route -n”命令查看现有的路由表

图中发现,表中数据已经有两个存在。所以我们只需要添加另外两个进路由表就可以啦~所以我们来加吧!

至此,我们第一个路由器的配置就全部完成,接着,我们用相同的方法给剩下两个路由器做配置。方法相同~所以下面就只列出剩下两个路由器的路由表啦:

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通,那么,这是不是意味着我们的实验完成了呢?接下来我们来试一试node2ping主机A

咦?为什么ping不通?这就很尴尬了,我们来找找原因。

奥,原来是因为我们是把node1当做路由器,但是事实是他还是一个主机,它接收到来自node2的包发现不是自己的就扔掉了,而不会转给主机A,所以,接下来我们就要把node1node2node3三个路由器设置成可以转发的。具体操作如下:

echo 1 > /proc/sys/net/ipv4/ip_forward

我们在node1中输入上面的命令,然后再用node2ping 主机A

当当当当~已经可以ping通了~

接下来我们要在剩下的两个充当路由器的虚拟机中也输入上述命令:

好了,接下来就是见证奇迹的时刻!我们用主机Bping主机A

啊咧,为啥还是ping不通呢?

让我们来查一下防火墙

奥,原来是因为防火墙没有关闭,好吧,我们把5台虚拟机的防火墙都临时关闭。命令是:“iptables -F”

全部关闭以后,我们再来试着ping一下~

当当当当,已经可以啦~

现在我们也可以用mtr来动态跟踪路由状态~

看,三个路由器的端口IP都有喏,当然,也少不了我们主机B的啦。

完成了!撒花✿✿(°▽°)

以上,我们的实验圆满成功!

当然啦,既然我们做实验,就要做得完美一点嘛~我们可以把实验的过程进行优化呀~

我们可以看到,在路由器R3(node3)的路由表记录中,有两条记录是基本一致的:

那么,我们可以把这两条记录合并成一条吗?如同下表中所示:

网络ID

以上是关于实验:模拟实现主机跨路由通信的主要内容,如果未能解决你的问题,请参考以下文章

实战作业4,实验环境下Linux主机之间实现跨网段通信

linux模拟路由器实验

eNSP模拟实验-单臂路由实现VLAN间通信

跨交换机VLAN之间的通信(基于Cisco模拟器)

eNSP模拟实验-三层交换机实现VLAN间路由

路由-静态路由实现非三层转发跨网段通信

(c)2006-2024 SYSTEM All Rights Reserved IT常识