观察和配置MAC地址表

news2024/11/26 13:56:25

目录

原理概述

实验目的

实验内容

实验拓扑

​编辑1.基本配置

2.观察正常状态时的MAC地址表

 4.配置静态MAC地址表项


原理概述

       MAC 地址表是交换机的一个核心组成部分,交换机主要是根据 MAC 地址表来进行帧的转发的。交换机对帧的转发操作行为一共有3种:泛洪( Flooding )、转发( Forwarding )和丢弃( Discarding )。关于这3种转发操作行为的具体含义在此不再赘述。
       在不涉及 VLAN 的情况下,交换机的转发原理可以概括地描述为:(1)如果进入交换机的是一个单播帧,则交换机会去 MAC 地址表中查找这个帧的目的 MAC 地址,如果查不到这个 MAC 地址,则交换机将对该帧执行泛洪操作;如果查到了这个 MAC 地址,则比较这个 MAC 地址在 MAC 地址表中对应的端口是不是这个帧进入交换机的那个端口,如果不是,则交换机将对该帧执行转发操作,如果是,则交换机将对该帧执行丢弃操作。(2)如果进入交换机的是一个广播帧,则交换机不会去查 MAC 地址表,而是直接对该帧执行泛洪操作。(3)如果进入交换机的是一个组播帧,则交换机的处理行为比较复杂,超出了这里的学习范围,所以在此不作描述。
       交换机具有转发帧的能力,同时还具有MAC地址学习能力。当一个帧进入交换机后,交换机会检查这个帧的源 MAC 地址,并将该 MAC 地址与这个帧进入交换机的那个端口进行映射,然后将这个映射关系作为一个动态地址表项存放进 MAC 地址表。
        MAC 地址表是一张动态的表,每个表项在创建或刷新时,都会设定并维护一个默认是300s的生存期(也称为老化周期)。一个 MAC 地址表项如果超过了生存期,则该表项会立即被自动清除。
       MAC 地址表中的表项分为动态表项静态表项,前者是交换机通过动态学习过程创建的,后者是通过手工配置创建的。静态表项不存在生存期的概念,并且其优先级高于动态表项:对于一个特定的 MAC 地址,如果手工配置了关于它的静态表项,则 MAC 地址表中将不会再出现关于它的动态表项。
       如果两台主机之间通过交换机相连,那么其中一台主机在向另一台主机发送数据帧的时候,会首先在自己的 ARP 缓存表中查找目标主机的 MAC 地址。如果 ARP 缓存表中不存在目标主机的 MAC 地址,则源主机会以广播帧的形式发送 ARP 请求报文来获取目标主机的 MAC 地址,目标主机接收到该 ARP 请求报文后,会以单播帧的形式回应一个 ARP 回复报文,告知自己的 MAC 地址。源主机在获取了目标主机的 MAC 地址后,一方面可利用该 MAC 地址向目标主机发起通信,另一方面会将目标主机的 IP 地址和 MAC 地址建立一个映射关系,并将此映射关系作为一个条目存放在自己的 ARP 缓存表中。 ARP 缓存表也是一张动态的表,关于其动态机制这里就不再赘述了。

实验目的

理解MAC地址表的基本作用和动态特性

掌握静态MAC地址表项的创建方法

实验内容

实验拓扑如图所示。本实验网络的结构非常简单,只包含一台交换机 SWI 和三台终端电脑 PC-1、 PC-2和 PC-3。网络管理员需要为终端电脑配置固定的 IP 地址,然后观察交换机的 MAC 地址表在终端电脑的通信过程中所发生的各种变化。另外,管理员还需要在SW1上练习使用手动方式创建静态的 MAC地址表项。

实验拓扑


1.基本配置

根据上图进行相应的IP 地址配置,同时设置 PC-1的 MAC 地址为00-01-00-01-00-01, PC-2的MAC 地址为00-02-00-02-00-02, PC-3的 MAC 地址为00-03-00-03-00-03。然后,在 PC-1上使用 ping 命令检测 PC-1和 PC-2之间的连通性,如下图所示。
 PC-1和 PC-3之间以及 PC-2和 P -3之间的连通性测试过程在此省略。 

2.观察正常状态时的MAC地址表

由于在上述步骤中使用了 ping 命令测试3台 PC 之间的连通性,所以交换机应该已经通过动态学习过程而在 MAC 地址表中创建了关于 PC-1、 PC-2、 PC-3的 MAC 地址的表项。为了便于观察 MAC 地址表项的创建过程,可以先用命令把SW1通过动态学习而创建的地址表项清空。

[sw1]undo mac-address dynamic 

然后,在SW1上查看MAC地址表。

[sw1]display mac-address 

可以看到,MAC地址表中现在没有任何内容。

接下来,查看SW1上MAC地址表项的老化周期。

[sw1]display mac-address aging-time 

  Aging time: 300 seconds

可以看到,默认情况下, MAC 地址表项的老化周期为300s。
为了便于接下来的实验观察,避免 MAC 表项因超过了生存期而被清除掉,可以使用命令将老化周期设置为0,这样便关闭了 MAC 地址表的老化功能,地址表项不会再因超过生存期而被清除。 

[sw1]mac-address aging-time 0 

交换机只在接收到数据帧时,才会使用所收到的数据帧的源 MAC 地址来创建相应的地址表项。如图所示,在 PC-1上使用 ping 命令访问 PC-2,这样一来,SW1便会分别接收到以 PC-1的 MAC 地址为源地址和以 PC-2的 MAC 地址为源地址的数据帧。
然后,在SW1上查看 MAC 地址表。 

                                                       图:在PC-1上pingPC-2

       可以看到,SW1分别为 MAC 地址0001-0001-0001和 MAC 地址0002-0002-0002创建了地址表项,每个表项包含了 MAC 地址、 VLAN 、端口编号、类型等信息。
       由于此时SW1尚未收到以 PC-3的 MAC 地址为源地址的数据帧,所以 MAC 地址表中还没有关于 PC-3的 MAC 地址表项。接下来,在 PC-1上使用 ping 命令访问 PC-3,以触发 PC-3发送数据帧,如图下图所示。

                                                       图:在PC-1上ping PC-3

然后,在 SWI 上查看 MAC 地址表。

可以看到, MAC 地址表中现在已经增加了关于 PC-3的 MAC 地址表项。

3.观察 MAC 地址冲突时的 MAC 地址表

接下来,修改 PC-3的 MAC 地址为00-02-00-02-00-02,如图所示,以此来模拟 PC-3与 PC-2产生 MAC 地址冲突的情况。

 然后,在PC-1上使用ping命令访问PC-3,如图所示。

                                                      图:在PC-1上ping PC-3 

从上图中可以看到, PC-3没有任何回应,此时 PC-1与 PC-3无法进行正常的通信。

在 PC-1上查看 ARP 缓存表,如图所示。 

                                                     图:查看PC-1上的ARP缓存表 

      可以看到,此时 PC-1的 ARP 缓存表中,10.0.1.3( PC-3)对应的 MAC 地址依旧为00-03-00-03-00-03。因此, PC-1发往 PC-3的报文其实是封装在目的 MAC 地址为00-03-00-03-00-03的帧中,当 PC-3接收到该帧时,发现该帧的目的 MAC 地址 00-03-00-03-00-03与自己的 MAC 地址:00-02-00-02-00-02不匹配,于是会直接将该帧丢弃。

      在 PC-1上使用命令 arp -d 清空 ARP 缓存表,并使用命令 arp - a 来确认 ARP 缓存表已被清空,如下图所示。

                                                  图:清空 PC-1上的 ARP 缓存表 

从上图可以看到,现在 PC-1的 ARP 缓存表已被清空。在 PC-1上使用 ping 命令访问 PC-3,如下图所示。

                                                     图:在 PC-1上 ping PC-3

可以看到,现在 PC-1可以 ping 通 PC-3了。在SW1上查看 MAC 地址表。 

       观察发现,此时在SW1的 MAC 地址表中,关于 MAC 地址0002-0002-0002的表项的端口编号已经由原来的 GE 0/0/2变为了 GE 0/0/3,这是因为以 PC-3为源的数据帧经过 SW 1时,0002-0002-0002这一表项所对应的端口编号被刷新为连接 PC-3的 GE 0/0/3。
       在 PC-1上使用 ping 命令访问 PC-2,触发 PC-2发送数据帧,如下图所示。

                                                 图:在 PC-1上 ping PC-2 

然后,查看SW1上的 MAC 地址表。 

      观察发现,此时在SW1的 MAC 地址表中,关于 MAC 地址0002-0002-0002的表项的端口编号又由原来的 GE 0/0/3变为了 GE 0/0/2,这是因为以 PC-2为源的数据帧经过 SWI 时,0002-0002-0002这一表项所对应的端口编号被刷新为连接 PC-2的 GE 0/0/2。
       PC-2与 PC-3的 MAC 地址目前是相同的,处于冲突的状态。当不断地有以 PC-2为源的帧和以 PC-3为源的帧通过 SW1时,SW1就需要频繁地刷新0002-0002-0002这个表项所对应的端口编号,从而产生常说的 MAC 地址表翻转现象,耗费大量的系统资源,并且可能会导致通信异常或通信数据丢失的现象。
       在 PC-2和 PC-3上分别使用 ping 命令访问 PC-1,以此来模拟产生 MAC 地址冲突的设备同时有通信流量需要经过SW1的情形,如下图所示。

                                                     图:在PC-2上ping PC-1 

                                                       图:在PC-3上ping PC-1 

查看SW1,发现系统日志输出了如下的警告信息. 

上面的显示信息表明,系统已经出现了 MAC 地址表翻转现象,要求用户进行相应的检查。 

 4.配置静态MAC地址表项

MAC 地址表项可以通过手工配置来创建,所创建的表项称为静态表项。例如,针编号为对 PC -3,可以手工配置一个 MAC 地址为0003-0003-0003、对应 VLAN 为1,对应端口编号为GE 0/0/3的 MAC 地址表项。

[sw1]mac-address static 3-3-3 G0/0/3 vlan 1

 配置完成后,在SW1上查看MAC地址表。

       可以看到,此时 MAC 地址表中多出了一个关于 MAC 地址为0003-0003-0003的表项,类型为 static ,而原有的 MAC 地址为0003-0003-0003、类型为 dynamic 的表项不再存在,这是因为静态表项的优先级要高于动态表项。
       在SW1上为 PC-1和 PC-2也创建静态 MAC 地址表项。 

[sw1]mac-address static 1-1-1 g0/0/1 vlan 1
[sw1]mac-address static 2-2-2 g0/0/2 vlan 1

在 PC-1上使用 ping 命令访问 PC-2和 PC-3,如下图所示。 

可以看到,此时PC-1能够与PC-2正常通信,但与PC-3无法通信。

在SW1上观察MAC地址表。

可以看到,此时MAC地址表中的3个表项类型均为static,并且没有因为PC-1访问了PC-3而使得0002-0002-0002表项的接口由g0/0/2变更为g0/0/3。

接下来,将PC-3的MAC地址修改为正确的00-03-00-03-00-03,然后再PC-1上使用ping命令访问PC-3,如图所示。

                                                    图:在PC-1上ping PC-3 

从上图可以看到,此时PC-1可以与PC-3进行正常的通信了。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1565353.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux 命令 top 详解

1 top命令介绍 Linux系统中,Top命令主要用于实时运行系统的监控,包括Linux内核管理的进程或者线程的资源占用情况。这个命令对所有正在运行的进程和系统负荷提供不断更新的概览信息,包括系统负载、CPU利用分布情况、内存使用、每个进程的内容…

Golang Context是什么

一、这篇文章我们简要讨论Golang的Context有什么用 1、首先说一下Context的基本作用,然后在讨论他的实现 (1)数据传递,子Context只能看到自己的和父Context的数据,子Context是不能看到孙Context添加的数据。 (2)父子协程的协同,比…

c++的学习之路:9、STL简介与string(1)

一、STL 1、什么是STL STL(standard template libaray-标准模板库):是C标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。 也就是说STL就是一个模板,这个模板就是整合了很多库让我们方…

磁盘如何分配数据数据

📝个人主页:五敷有你 🔥系列专栏:算法分析与设计 ⛺️稳中求进,晒太阳 磁盘如何分配数据 数据切割: 按照固定长度进行切割---》编码翻译(常用) 计算机要求按照8bit(字节)进…

【蓝桥杯练习】tarjan算法求解LCA

还是一道比较明显的求LCA(最近公共祖先)模型的题目,我们可以使用多种方法来解决该问题,这里我们使用更好写的离线的tarjan算法来解决该问题。 除去tarjan算法必用的基础数组,我们还有一个数组d[],d[i]记录的是每个点的出度,也就是它的延迟时间…

学习Python第十五天:第一个程序python程序

第一个程序:ZIP文件口令破解机 编写ZIP文件口令破解机要从学习zipfile库的使用方法着手,打开pythn解释器,我们用help(zipfile)命令进一步了解这个库,并重点看一下zipfile类中的extractall()方法,这个类和这个方法对我…

在仿真环境中运行lio-sam

文章目录 前言LIO-SAM环境编译运行键盘控制编译lio-sam遇到的问题前言 Gazebo 仿真提供了一个高效且成本低廉的平台,使研究人员和开发者能够在安全且可控的虚拟环境中设计、测试和优化机器人系统。它允许快速原型制作和迭代,精确控制测试条件,并能模拟复杂或危险的场景,从…

2013年认证杯SPSSPRO杯数学建模B题(第二阶段)流行音乐发展简史全过程文档及程序

2013年认证杯SPSSPRO杯数学建模 B题 流行音乐发展简史 原题再现: 随着互联网的发展,流行音乐的主要传播媒介从传统的电台和唱片逐渐过渡到网络下载和网络电台等。网络电台需要根据收听者的已知喜好,自动推荐并播放其它音乐。由于每个人喜好…

【解决】Unity Profile | FindMainCamera

开发平台:Unity 2020.3.7f1c1 关键词:FindMainCamera   问题背景 ModelViewer 是开发者基于 UnityEngine 编写的相机控制组件。ModelView.Update 中调度52次并触发3次GC.Collect。显然并不期望并尽可能避免 Update 造成的GC 问题。事实上 FindMainCame…

C语言第三十九弹---预处理(上)

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】 预处理 1、预定义符号 2、#define定义常量 3、#define定义宏 4、带有副作用的宏参数 5、宏替换的规则 6、宏和函数的对比 总结 在C语言中,预处…

经久耐用耐强腐蚀PFA材质气体洗涤瓶全氟烷氧基树脂尾气吸收瓶

PFA洗气瓶是一种常用于净化和干燥各种气体的实验室器皿,以去除其中的水分、油脂、颗粒物等杂质,从而使需要用到的气体满足实验要求。 PFA气体吸收瓶 PFA洗气瓶的工作原理: 主要是通过液体吸收、溶解或发生化学反应来去除气体中的杂质。在洗气…

LeetCode题练习与总结:螺旋矩阵

一、题目描述 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5]示例 2: 输入:ma…

物联网行业趋势——青创智通

工业物联网解决方案-工业IOT-青创智通 随着科技的不断进步和应用场景的日益扩大,物联网行业呈现出迅猛发展的势头。作为当今世界最具前瞻性和战略意义的领域之一,物联网行业的趋势和未来发展值得深入探讨。 ​一、物联网行业正逐渐实现全面普及。随着物…

matlab使用教程(32)—求解偏微分方程(3)

1求解 PDE 方程组 此示例说明由两个偏微分方程构成的方程组的解的构成,以及如何对解进行计算和绘图。 以如下 PDE 方程组为例 要在 MATLAB 中求解该方程,您需要对方程、初始条件和边界条件编写代码,然后在调用求解器pdepe 之前选择合适的解…

“帮助“Java成长的世界级大师不简单!

文章目录 初探编程:“天啊,真酷,程序真的能学习。”哺育Java成长,成为Java幕后英雄出书《Effective Java》斩获Jolt图书大奖 是谁?作品一出版就获得著名的Jolt图书大奖,每一版本豆瓣评分均超9.0&#xff01…

某眼实时票房接口获取

某眼实时票房接口获取 前言解决方案1.找到veri.js2.找到signKey所在位置3.分析它所处的这个函数的内容4.index参数的获取5.signKey参数的获取运行结果关键代码另一种思路票房接口:https://piaofang.maoyan.com/dashboard-ajax https://piaofang.maoyan.com/dashboard 实时票房…

LabVIEW专栏三、探针和断点

探针和断点是LabVIEW调试的常用手段,该节以上一节的"测试耗时"为例 探针可以打在有线条的任何地方,打上后,经过这条线的所有最后一次的数值都会显示在探针窗口。断点可以打在程序框图的所有G代码对象,包括结构&#xf…

意大利公司注册

意大利是发达工业国家,是欧洲第四大、世界第八大经济体。机械设备、汽车制造、生物医药、航天航空等居于世界领先地位,中小企业发达,被誉为“中小企业王国”,旅游资源和历史文化遗产丰富。2021年,意大利GDP为1.78万亿欧…

Intellij IDEA / Android studio 可持续开发笔记

Intellij 的Java/安卓工具链有着一种不可持续性,这种不可持续性体现在多个方面。 首先是不可持续运行。IDEA 使用时间越长,内存占用越大,从不主动释放。运行时间越长,日志越多,从不主动清理。 然后是不完整的开源&am…