在基础课程里面了解过集线器的原理,那会没有太多的去做实验,这里我们使用eNSP来做一个实验,正好支持HUB这个设备。
这里使用192.168.255.1去ping 192.168.255.2,然后抓起PC3的流量,看看发生什么事情。
当你抓起PC3的流量的时候,使用PC1去PingPC2,所有的流量,PC3都是可以收到的,这个就是集线器工作的原理,一个数据发送出去,会复制到其他的所有接口,不管该PC是否要不要,另外的半双工、冲突域这些缺点就不在介绍了,可以回顾下基础的内容,后面替代这个产品的就是交换机。
了解交换机的工作过程
在了解交换机的正式过程之前,回顾下交换机带来的特性
还是之前的实验环境,只是把HUB换成了一台交换机。
在开始之前,先学一个命令,通过上面了解到交换机是具有学习地址的功能,也就是MAC地址,在交换机里面可以通过 display mac-address 查看当前交换机学习到的MAC地址,这个表项叫做MAC地址表,用于存放学习到的MAC地址,当前没有学习,因为还没触发数据。
开启PC3的抓包,建议过滤一下,因为交换机默认会发送一个报文,有点干扰我们抓包,然后就PC1去ping PC2
会发现现在抓包,PC3上面只收到了一个广播包,广播包是目的MAC全F,所以交换机会除了发送者接口以外的所有接口发送出去,但是其余的单播包,PC3是收不到的。
这个时候交换机的MAC表里面就出现了内容了,这个就是我们要了解的。
(1)当PC1发起去往PC2的Ping请求后,首先PC1会发送一个ARP请求
因为它并不知道PC2的MAC地址是多少。
(2)这个数据包发出以后会被交换机的G0/0/1收到,它通过读取以太网的头部信息,发现源MAC地址是PC1,目的MAC全F(广播,表示局域网所有主机)
这个时候交换机会做两件事情,第一个:将PC1的MAC地址记录到MAC地址表中,并且关联接口G0/0/1(因为数据包是从G0/0/1收到)。
第二个,将这个ARP请求包,发送至接收接口以外的全部接口(PC1以外的全部接口)
这就是为什么在PC3抓包能够看到ARP广播报文的原因。
(3)交换机发出以后,PC2与PC3会都收到ARP的请求,PC3发现请求的不是自己,就丢弃了,PC2发现,这是找自己的,于是回应一个ARP响应,这个是单播回应,这也是在PC3抓包看不到的原因,为什么看不到呢?这就是交换机的处理过程了。当交换机收到这个ARP响应后,它读取二层头部信息,发现源MAC是PC2,于是它将PC2的MAC记录到MAC地址表中,关联G0/0/3。
在看目的MAC是PC1的MAC,它会在MAC表中查询是否有该MAC地址与接口对应记录存在,发现存在PC1的MAC地址,于是从G0/0/1把这个数据包发送出去,这就是PC3收不到的原因,因为交换机知道PC1在哪,并不会像HUB一样全部接口都发送。
(4)PC1收到ARP回应后,可以进行封装二层头部了,这样就把ICMP的请求发送出去,交换机收到以后同样的读取二层头部,发现目的MAC是PC2,MAC表中有记录,从G0/0/3发出。
(5)PC2收到PC1的ICMP请求,回应ICMP应答,交给交换机,交换机同样读取二层头部,发现目的MAC是PC1,直接从G0/0/1发出。
总结:从以上的流程中可以发现,交换机是通过读取以太网头部中的源MAC来学习MAC地址的,并且后续通过二层头部的目的MAC,在自己学习到的MAC地址表来寻找到对应接口,将数据发送出去。
要完成这个实验呢,首先,要先Ping一次,建议关闭之前的PC3抓包,重新抓取。
老样子,PC3抓包还是只看到了ARP报文,这个时候做一个操作,假设PC2的线路坏了
通过把PC2停止(关机),好玩的事情出现了,pc1ping pc2,显示Request timeout(这个在ICMP的差错报文中有讲解,还记得吗),这因为PC2关了,自然是不通,但是好玩的事就在PC3竟然收到了PC1的ICMP报文!!!!是不是有点奇怪,不是只有目的MAC全F的才进行发送到其他接口吗?
这里就要介绍交换机工作的另外一个特点了
当交换机收到一个数据包以后,它会读取里面的以太网头部,源MAC学习进MAC地址表
至此呢,交换机的转发数据原理就明白了,总结下来就是上面这2点,建议大家做做这个实验,可以了解下整个转发的原理。
H3C设备MAC地址表查看
H3C模拟器跟华为一样,拖3台PC,然后一台交换机出来,通过连线接好,然后测试下。
PC3与PC4同样的设置地址,记得启用哦
开启抓包后,还要启动wirehsark,不会自动启动的。
这个时候默认情况下华三交换机也是没有任何地址表项存在的。
启动命令行终端(这个就是之前为什么用eNSP演示的原因,HCL稍微有点麻烦)
现象跟华为是一样的
一个特殊案例分享(华为华三命令一样)
在某些特定的环境下,特别是有服务器这种,通常会进行一个操作,就是把服务器MAC地址静态绑定的操作,比如上图服务器接在G0/0/3上面,可以在交换机做一个操作。
命令:mac-address static 【MAC地址】【接口】【VLAN】 MAC地址你在操作的时候MAC地址跟图不一样,以你自己实际的为准 将服务器的MAC地址静态的跟G0/0/3口进行绑定,其中有一个比较陌生的参数是vlan 1,这个下一篇我们会学到,可以先理解交换机默认初始状态都属于VLAN1。
可以看到类型变成了static,访问也没什么问题,这个时候假设有一个伪装服务器MAC的设备出现,会怎么样呢?
当把PC2设置成192.168.255.3后,并且MAC地址也伪装,但是实际PC1去访问服务器,PC2这个伪装并不会影响到服务器,这样就是静态绑定的好处,也是实际中比较常用的方法,因为静态绑定的优先级是高于动态的,所以PC2设置成了服务器一样的IP地址跟MAC也不会影响到服务器,交换机不会把这个MAC地址记录到MAC表中,通过上面查看也可以发现,没有关于G0/0/2的信息,保障了服务器连接的稳定性。
如果我想要G0/0/3不在学习其他的MAC地址,就只使用静态绑定的行不行呢?是可以的,交换机支持一个功能可以关闭某一个接口的动态MAC学习机制
作业
PC_2,pc_3_pc4设置好地址,PC4当做一台服务器
网站内容来自网络,如有侵权请联系我们,立即删除!
Copyright © 驰雷百科 琼ICP备2024039176号-17