观察和配置MAC地址表

目录

原理概述

实验目的

实验内容

实验拓扑

​编辑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.rhkb.cn/news/296695.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

车道线检测_Canny算子边缘检测_1

Canny算子边缘检测(原理) Canny算子边缘检测是一种经典的图像处理算法,由John F. Canny于1986年提出,用于精确、可靠地检测数字图像中的边缘特征。该算法设计时考虑了三个关键目标:低错误率(即尽可能多地检…

【漏洞复现】WordPress Plugin LearnDash LMS 敏感信息暴漏

漏洞描述 WordPress和WordPress plugin都是WordPress基金会的产品。WordPress是一套使用PHP语言开发的博客平台。该平台支持在PHP和MySQL的服务器上架设个人博客网站。WordPress plugin是一个应用插件。 WordPress Plugin LearnDash LMS 4.10.2及之前版本存在安全漏洞&#x…

从汇编看函数调用

文章目录 函数调用流程栈相关寄存器及的作用简介寄存器功能指令功能 栈函数的括号{}正括号反括号 参数传递传值,变量不可改传指针,变量可改C 传引用 函数调用实例 函数调用流程 目标:函数调用前后栈保持不变 保存main函数的寄存器上下文移…

使用MySQL和PHP创建一个公告板

目录 一、创建表 二、制作首页(创建主题以及显示列表) 三、制作各个主题的页面(输入回帖和显示列表) 四、制作消息的查询界面 五、制作读取数据库信息的原始文件 六、制作数据重置页面 七、效果图 八、问题 1、目前无法处…

商务电子邮件: 在WorkPlace中高效且安全

高效和安全的沟通是任何组织成功的核心。在我们关于电子邮件类型的系列文章的第二期中,我们将重点关注商业电子邮件在促进无缝交互中的关键作用。当你身处重要的工作场环境时,本系列的每篇文章都提供了电子邮件的不同维度的视角。 “2024年,全…

基于springboot实现房屋租赁管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现房屋租赁系统演示 摘要 房屋是人类生活栖息的重要场所,随着城市中的流动人口的增多,人们对房屋租赁需求越来越高,为满足用户查询房屋、预约看房、房屋租赁的需求,特开发了本基于Spring Boot的房屋租赁系统。 …

保健品wordpress外贸模板

保健品wordpress外贸模板 健康保养保健品wordpress外贸模板,做大健康行业的企业官方网站模板。 https://www.jianzhanpress.com/?p3514

防火墙状态检测和会话机制

FW对TCP,UDP和ICMP协议的报文创建会话

【如何解决一些常见的 Composer 错误的保姆级讲解】

🌈个人主页:程序员不想敲代码啊🌈 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家🏆 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提…

如何使用免费的ChatGpt3.5

如何使用免费的ChatGpt 最近免费的gpt3.5很多都不怎么行了实在是太给力了尾声 最近免费的gpt3.5很多都不怎么行了 原因是什么呢?因为openai已经取消了免费的5刀赠送,那么这些人手上的免费的sses-key 用完后,就基本上全军覆没了,再…

在 Amazon Timestream 上通过时序数据机器学习进行预测分析

由于不断变化的需求和现代化基础设施的动态性质,为大型应用程序规划容量可能会非常困难。例如,传统的反应式方法依赖于某些 DevOps 指标(如 CPU 和内存)的静态阈值,而这些指标在这样的环境中并不足以解决问题。在这篇文…

vscode + wsl1 搭建远程C/C++开发环境

记录第一次搭建环境过程。 搭建C/C开发环境有很多种方式,如 MinGW vscode(MinGW 是GCC的Windows版本,本地编译环境)SSH隧道连接 vscode(远程Linux主机)wsl vscode(远程Linux环境&#xff09…

flink1.18源码本地调试环境

01 源码本地调试环境搭建 1. 从github拉取源码创建本地项⽬ https://github.com/apache/flink.git 可以拉取github上官⽅代码 https://github.com/apache/flink.git GitHub - apache/flink: Apache Flink 2. 配置编译环境 ctrlaltshifts (或菜单)打…

node.js的错误处理

当我打开一个不存在的文件时,错误如下: 在读取文件里面写入console.log(err),在控制台中可以看到我的错误代码类型:文件不存在的错误代码 ENOENT。见更多错误代码---打开node.js官方API文档Error 错误 | N…

Redhat 7.9 安装dm8配置文档

Redhat 7.9 安装dm8配置文档 一 创建用户 groupadd -g 12349 dinstall useradd -u 12345 -g dinstall -m -d /home/dmdba -s /bin/bash dmdba passwd dmdba二 创建目录 mkdir /dm8 chown -R dmdba:dinstall /dm8三 配置/etc/security/limits.conf dmdba soft nproc 163…

Springboot Thymeleaf 实现数据添加、修改、查询、删除

1、引言 在Spring Boot中使用Thymeleaf模板引擎实现数据的添加、修改、查询和删除功能,通常步骤如下: 在Controller类中,定义处理HTTP请求的方法。创建Thymeleaf模板来处理表单的显示和数据的绑定。 2、用户数据添加 1、 在Controller类中…

【javaScript】DOM编程入门

一、什么是DOM编程 概念:DOM(Document Object Model)编程就是使用document对象的API完成对网页HTML文档进行动态修改,以实现网页数据和样式动态变化的编程 为什么要由DOM编程来动态修改呢?我们就得先理解网页的运行原理: 如上图&a…

达梦配置ODBC连接

达梦配置ODBC连接 基础环境 操作系统:Red Hat Enterprise Linux Server release 7.9 (Maipo) 数据库版本:DM Database Server 64 V8 架构:单实例1 下载ODBC包 下载网址:https://www.unixodbc.org/ unixODBC-2.3.0.tar.gz2 编译并…

C++的并发世界(六)——互斥解决数据共享冲突

0.数据共享的问题 在多个线程中共享数据时。需要注意线程安全问题。如果多个线程同时访问同一个变量。并且其中至少有一个线程对该变量进行了写操作。那么就会出现数据竞争问题。数据竞争可能会导致程序崩溃,产生来定义的结果,或者得到错误的热果。为了避免数据竞争问题。需要…

Java快速入门系列-1(Java概述)

第一章:Java概述 1.1 Java的发展历程1.2 Java的特点与优势1.2.1 特点1.2.2 优势 1.3 Java生态系统介绍1.4 Java在当前技术领域的应用案例 1.1 Java的发展历程 Java语言由Sun Microsystems公司于1995年推出,由James Gosling领导的Green Team小组研发而成…