简单拓扑-入门

来源:互联网 发布:mac删除下载的软件 编辑:程序博客网 时间:2024/05/23 01:22
  1. 实验环境:
    Win10 个人版
    GNS3.0
    Wireshark2.2.4

  2. 实验拓扑:
    拓扑结构

  3. 实验步骤:

    1. 建立拓扑,启动设备:
      发现了两个ICMPv6报文(为什么会有这个报文,具体在最后的问题里由说明)。
    2. 在PC1上配置IP,掩码,gateway
      发现了三个ARP报文.可以看到是没有IP地址的,
      arp报文
      这验证了ARP是直接基于Ethernet,而不是想ICMP那样基于IP。
    3. 在route1上的e1/0端口配置IP地址,启动之后,在链路1捕捉了CDP报文(Cisco Discovery Protocol)和loop报文。
    4. 此时在PC1上ping router1的端口1
      在链路1上,首先捕捉到两个ARP报文,第一个是由PC1发出,广播“谁知道10.1.1.100的地址(MAC)地址”,然后router1的端口回发一个ARP报文,包含了所需要的MAC地址。
    5. 设置route1的e1/1端口,实验是否pc1可以直接ping e1/1的端口。
      可以直接ping通,首先PC1会发送两个ARP报文,但注意,这两个报文不是查询10.2.2.100的mac地址,而是询问10.1.1.100的mac地址

这是因为在默认找不到路由的前提下,将数据报按照默认网关发出。此时倘若在PC1 舱室ping PC2(未配置),会出现timeout的情况

这里会有一个有趣的事情,就是ARP缓存的时间,倘若在ping 10.2.2.100之后,PC1的ARP缓存还存在,那么在ping 10.2.2.1时,不会出现ARP的报文。
6. 配置pc2,然后在pc1 ping pc2
ICMP的第一个报文不可达?我个人的理解是,第一次的icmp报文,因为不存在arp缓存,所以,这一查询时间会比较长,超过icmp的存活时间,所以第一个报文会出现丢失的现象。有其他人认为,不是因为延迟的问题,而是第一个报文必定会丢失,因为icmp找不到mac地址,会通过arp来寻找mac地址,但是我不认为在icmp的协议中有这个规定。相反,Cisco中规定的icmp存活时间,所以我更倾向于是因为超出了存活时间的限制,才导致了icmp的丢包。

  1. 问题

Q:启动GNS后,两台主机就各自向连接的端口发送了两个ICMPv6的报文?为什么?作用是什么?(未部署任何的路由协议)

A:查看Wiresshark,可以看到是两个ICMPv6的数据报,并且类型是133



起作用就是Router Solicitation ,路由请求。

ICMPv6 的作用

IPv4 中 ICMP 仅作为一个辅助作用支持 IPv4.即在 IPv4 中,即使没有 ICMP,仍然可以实现 IP 通信。然而,在 IPv6 中,ICMP 的作用被扩大,如果没有 ICMPv6,IPv6 就无法进行正常通信。

在 IPv6 中, 从 IP 地址定位 MAC 地址的协议从 ARP 转为 ICMP 的邻居探索消息。这种邻居探索消息融合了 IPv4 的 ARP、ICMP 重定向以及 ICMP 路由器选择消息等功能于一体,甚至还提供自动设置 IP 地址的功能。

ICMPv6 中将 ICMP 大致分为两类:一类是错误消息,另一类是信息消息。类型 0 ~ 127 属于错误消息,128~255 属于信息消息。

邻居探索

ICMPv6 中从类型 133 至类型 137 的消息叫做邻居探索消息。这种邻居探索消息对于 IPv6 通信起着举足轻重的作用。邻居请求消息用于查询 IPv6 的地址与 MAC 地址的对应关系,并由邻居宣告消息得知 MAC 地址。邻居请求消息利用 IPv6 的多播地址实现传输。

0 0
原创粉丝点击