zoukankan      html  css  js  c++  java
  • 模拟主机跨路由通信实验

    实验器材:

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

    通信主机使用的是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网段时,就不行了。

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

  • 相关阅读:
    mysql报错:java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone.
    MD5登陆密码的生成
    15. 3Sum、16. 3Sum Closest和18. 4Sum
    11. Container With Most Water
    8. String to Integer (atoi)
    6. ZigZag Conversion
    5. Longest Palindromic Substring
    几种非线性激活函数介绍
    AI初探1
    AI初探
  • 原文地址:https://www.cnblogs.com/duzhaoqi/p/7491708.html
Copyright © 2011-2022 走看看