• 模拟主机跨路由通信实验


    实验器材:

    五台虚拟机,其中两台作为通信双方主机,三台主机作为路由器使用

    通信主机使用的是centOS6.9。

    另外三台也是centOS6.9,但是是最小化安装的。

    本实验使用命令请参考 网络配置之基本网络配置

    我们以下图为例,来实现我们这次实验:

    在试验中,我们需要四个网段,所以,我们需要在虚拟机上添加四个网段,以便我们可以完成实验:VMnet11,VMnet12,VMnet13,VMnet14

    由于我们只是独立的环境进行模拟,所以我们使用的全部都是仅主机模式,这一点一定要清楚,然后,我们要做的是给这五台主机先配置网段:

    每一个都需要进行设置,作为路由器的几个虚拟机需要配置两个网段,而作为通信主机的两个虚拟机,只需要设置一个网段,我使用的是eth1,作为通信主机的接口。

    我的配置:

        CT6.9_1 eth1:Vmnet11

        node1 eth0:Vmnet11

                eth1:Vmnet12

        node2 eth0:Vmnet12

                eth1:Vmnet13

        node3 eth0:Vmnet13

                eth1:Vmnet14

        CT6.9_2 eth0:Vmnet14

    接下来,我们要做的就是要给通信双方主机和路由添加相对应的IP和网关。

    首先是CT6.9_1 eth1,我们在/etc/sysconfig/network-scripts/配置IP地址和网关,然后看它是否生效。

    生效了:

    我们刚刚配置完一个通信主机,接下来,我们将对第二个通信向主机进行配置。

    CT6.9_2 eth0,我们在/etc/sysconfig/network-scripts/配置IP地址和网关,然后看它是否生效。

    至此,我们的两台通信主机已经配置完成,接下来,我们将会对三个路由器进行配置。包括ip的配置和路由表的配置。

    node1:

    网络IP配置完成,由于它充当的是路由器,所以光配置网络IP是不够的,接下来我们需要给他配置路由手动添加路由信息:

    网络ID

    子网掩码

    接口

    网关

    10.5.0.0

    255.255.0.0

    eth0

     

    10.6.0.0

    255.255.0.0

    eth1

     

    10.7.0.0

    255.255.0.0

    eth1

    10.6.0.200

    10.8.0.0

    255.255.0.0

    eth1

    10.6.0.200

    由上图我们可以知道,当我们在配置完IP之后,相邻的两个网段的路由信息就会直接存入路由表中,也就是实际上我们添加两条路由信息就够了。

    添加如下:

    配置方法和如上所示,node2和node3的网络和路由配置过程不再显示,基本和上面相同,我只把其他的两个路由表给写出来,仅供参考。

    node2:

    网络ID

    子网掩码

    接口

    网关

    10.5.0.0

    255.255.0.0

    eth0

    10.6.0.100

    10.6.0.0

    255.255.0.0

    eth0

     

    10.7.0.0

    255.255.0.0

    eth1

     

    10.8.0.0

    255.255.0.0

    eth1

    10.7.0.200

    node3:

    网络ID

    子网掩码

    接口

    网关

    10.5.0.0

    255.255.0.0

    eth0

    10.7.0.100

    10.6.0.0

    255.255.0.0

    eth0

    10.7.0.100

    10.7.0.0

    255.255.0.0

    eth0

     

    10.8.0.0

    255.255.0.0

    eth1

     

    我们在完成配置之后,首先要进行的是对相邻的两台 机器之间进行ping操作,看是否连通:

    有上面的几张图片我们可以发现,两两之间都可以相互 ping通,这是不是意味着,我们的主机A和主机B就可以进行通信了呢?我们可以试一下:

    实际上,我们发现,根本不行,这是为什么呢,这是由于中间三台机器是linux虚拟机充当的路由器,并不是真正的路由器,这些主机在收到包以后,如果发现不是给自己的包,就会直接丢弃,而不是去做转发,如果要让它有转发功能,我们需要做一个操作:(中间作为路由的机器都要操作)

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

    这个时候我们再看:

    发现依旧是有问题的,我查看一下防护墙设置,发现防火墙开着的,然后,我就把防火前给关掉,命令:

    centos6

      chkconfig iptables off

      servcie iptables stop

    centos7

      systemctl disable firewalld

      systemctl stop firewalld

    然后,我们使用主机A去ping主机B:

    此时,我们基本已将完成了本次实验。

    我们可以在CT6.9_1使用命令 mtr 10.8.0.1 动态跟踪路由

    我们接下来能不能对我们这次实验进行一下简单的优化呢,当然是可以的,我们可以看到,在路由R3(node3)上的路由信息,我们发现我们添加的两条路由信息,除了目的网络ID外都是一样的,这样的话,我们能不能将两条信息合成一条呢,答案是可以的。由于R3是一个处于边缘的路由,我们完全可以当它是一个默认路由,可以把我们添加的那两条记录改成如下:

    网络ID

    子网掩码

    接口

    网关

    0.0.0.0

    255.255.0.0

    eth0

    10.7.0.100

    我们进行操作,先删除路由表中的原来添加的信息:

    然后把上面的一条路由信息添加进去:(添加默认路由)

      route add –net 0.0.0.0/0 gw 10.7.0.100或route add defualt gw 10.7.0.100

    我们可以按照这个方法,把R1(node1)的也给改掉。

    接下来,我们在看一个东西,如果此时我们在R1上面只给加上通往10.8.0.0的路由信息,不给加通往10.7.0.0网段的路由信息,我们的消息可以到达10.8.0.0网段吗? 我们可以试一下。

    我们先删除刚添加的默认路由的信息:

    接下来,我们ping一下10.8.0.100:

    我们发现,居然是ping通的,这是为什么呢,因为R1一边连主机A一边连着外界,我们的数据包没有到达10.7.0.0网段的,所以,当路由器R1收到包以后,只管向外转发就行了,让后再由R2转发给R3到达目的网段,所以,我们可以不配置到达10.7.0.0网段的路由信息,但是当我们的数据包是要到达10.7.0.0网段时,就不行了。

    这就是我们本次实验的全部内容。

  • 相关阅读:
    Ubuntu环境下IPython的搭建和使用
    智能移动导游解决方案简介
    企业文化、团队文化与知识共享
    CoinPunk项目介绍
    Insight API开源项目介绍
    比特币Bitcoin源代码安装编译
    Javascript单元测试Unit Testing之QUnit
    Node.js的UnitTest单元测试
    Node.js调试
    Alfresco 4 项目介绍
  • 原文地址:https://www.cnblogs.com/duzhaoqi/p/7491708.html
Copyright © 2020-2023  润新知