HCNA Routing&Switching之交换技术基础

  什么是交换机?顾名思义,交换机就是用来数据包交换的;广泛用于终端接入;它的前身是hub(集线器),hub是一个古老的设备,它的作用也是用于终端接入,但hub有一个最大的缺点是它不能隔离冲突域;所谓冲突域就好比我们现实生活中的单行道路;冲突域的特点就是在一个冲突域内的设备,同一时刻只能允许一个设备发送数据;这样一来就很影响双方通讯;为了解决冲突域问题,交换机出现了;交换机的出现解决了hub的冲突域问题(其原因是交换机的每个端口都是一个冲突域,而hub的所有端口都属于一个冲突域,即交换机天生就有隔离冲突域的作用),极大提升网络的性能和安全性;

  冲突域和广播域

  在以太网中冲突域是由hub设备产生的,一个hub就是一个冲突域。而交换机的一个端口属于一个冲突域,有多少个接口就有多少个冲突域,接口之间的冲突域是相互隔离的;在同一个冲突域中的每个节点都能收到所有被发送的帧,而在同一广播域中的每个节点能接收任意一台设备发出的广播帧;我们可以简单理解同一冲突域中的设备只能同一时刻一台设备发送,多台设备接收;而在同一广播域中的设备,可以同一时刻多台设备同时发送和接收;冲突域是基于第一层(物理层,由硬件设备属性决定),而广播域是基于第二层(数据链路层,由协议封装报文决定,不同协议封装报文,其二层封装也有所不同,比如以太网封装二层就是封装源mac地址和目标mac地址,而ppp协议封装就不用mac地址) 。

  交换机工作在数据链路层,对数据帧进行操作,在收到数据帧后,交换机会根据数据帧的头部信息对数据帧进行转发;

  交换机的作用功能

  1、终端设备的接入,因为交换机有很多接口可以供其他设备接入到网络中来;

  2、以太网数据帧的交换(数据包),根据目标mac地址转发数据包;

  3、学习mac地址,并维护mac地址表(交换机核心工作原理,转发数据包就是根据这张表进行的)

  4、防止二层环路(一般傻瓜交换机没有这种功能,必须支持运行stp协议的交换机才有该功能)

  交换机的核心工作原理:根据MAC地址表中的MAC地址记录,做出智能转发

  提示:交换机的工作原理很简单,它就是靠mac地址表来进行转发数据包;当交换机从一个接口收到一个数据包以后,首先它会查看该数据包的目标mac地址,看看自己的mac地址表中是否有对应记录,如果有,就根据对应的mac地址所绑定的接口,将数据包从该接口发送出去;如果没有,它将会从其他接口发送出去(泛洪)

  提示:如上图所示,当交换机收到一个数据包是发送给目标mac为2222的主机,此时交换机会查看自己的mac地址表,一看有对应mac地址为2222的记录,该mac地址对应的接口为f0/2;那么此时数据包会从f01转发至f0/2,从而连接交换机的f0/2口的设备就会收到连接f0/1口的设备发送到数据包;此时f0/3和f0/4口是收不到f0/1口发送的数据包;

  实验:根据下面的拓扑图抓包分析交换机的工作原理

  配置pc1

  提示:我们把pc1的ip地址配置为1.0.0.1/8,和交换机的g0/0/1口连接;

  在查看交换机的mac地址表,看看对应是否能够学习到pc的mac地址呢?

  提示:可以看到交换机的mac地址表为空,没有任何信息;其实在真机环境中,只要对应的主机配置好ip地址以后,它会发送免费arp(就是自己问自己,然后自己回答,其主要目的就是想让局域网中的交换机学习自己的mac);

  在pc1上抓包,然后使用pc1Ping任意一地址(不一定是pc2),看看交换机是否会学习pc11的mac地址?

  提示:首先pc1ping1.1.1.1的时候,在pc1上会封装1.1.1.1的mac地址,这个mac地址对应在pc1的mac地址表中没有,此时pc1会发送arp请求,请求局域网中的ip地址为1.1.1.1的mac地址,如果有设备回复这个arp请求,那么对应pc1就能收到对应设备的mac地址;然后pc的icmp包就会在二层封装自己的mac地址为源mac,对方设备的mac地址为目标mac地址,进行数据包发送;此时对于交换机来说,在收到pc1发送到arp请求时,它首先会查看收到的数据包目标mac地址,一看目标mac地址为全f,此时交换机就知道这是一个广播,此时它会将该arp请求数据包中的源mac地址和收到该包的接口做绑定并记录域mac地址表中,然后在把该arp请求从其他接口泛洪出去;此时交换机就通过pc1发送的arp请求包学习到pc的mac;

  验证:查看交换机mac地址表,看看是否学习到pc1的mac地址呢?

  提示:可以看到此时交换机的mac地址表中就记录了pc1的mac地址和对应的接口;

  验证:用pc1ping pc2,看看交换机是否会学习pc2的mac地址呢?

  提示:首先我们可以看到pc1ping pc2 通了,在抓包中我们发现,首先抓到了是pc1发送的arp请求,在pc2收到pc1发送的arp请求,查看ip地址和自己一样,此时pc2就回复pc1,然后pc1和pc2就可以正常发送icmp数据包了;其实在这一过程中交换机会从pc1发送的arp请求中学习到pc1的mac地址,从pc2发送的arp回复报文中学习到pc2的mac地址,在这同时pc1也会收到pc2的mac地址,pc2也会收到pc1的mac地址并记录在自己的mac地址表中;

  验证:查看pc1、pc2的mac地址表,看看是否记录了对方的mac地址呢?

  验证:查看交换机的mac地址表,看看是否学习到pc1和pc2的mac地址呢?

  提示:交换机能够学习到pc1和pc2的mac地址的前提是他俩都是同一vlan;交换机有了这个mac地址表,它就知道去往那个mac地址的数据包,该从那个接口发送出去;

  交换机工作逻辑图

  提示:交换机和路由器不同,路由器的工作是依靠路由表,如果收到数据包没有匹配的路由,则丢包,而交换机不会,交换机收到数据包查看mac地址表,如果mac地址表中有对应的记录,那么就从对应的接口转发出去,如果没有对应的记录则从其他接口防洪出去;

  总结:交换机的工作过程

  1、交换机在初始状况下mac地址为空

  2、学习mac地址:当从一个接口收到一个帧时,就会把帧内的源MAC与该接口进行绑定,放入MAC地址表;

  3、转发数据帧:当从一个接口收到广播帧、组播帧、未知单播帧(目标MAC不存在于MAC地址表中),就会把该帧从所有其它接口转发出去,除了接收接口;

 

  4、当从一个接口收到已知单播帧,立即从相应的的接口转发出去;

  交换机的mac地址表更新规则

  1、默认每条记录保存300秒;

  2、交换机重启会清空所有接口学习到的mac记录,接口关闭后会清空该接口学习到的记录;

  3、一个源mac出现在另外一个接口上,会删除老的记录,添加新的记录;也就是说一个mac只能关联在一个接口上;但对于接口来说,一个接口可以关联多个mac地址;比如交换机和交换机相连接;

  验证:查看交换机mac地址表生存时间

  提示:这个生存时间是指没有对应接口没有发送数据,如果300秒钟都没有发送数据,那么对应接口学习到的mac信息就会从mac地址表中清除,一旦有数据包发送,那么这个时间会刷新;如果一直有数据包发送,那么该接口学习到的mac地址就会一直存放在mac地址表中;

  验证:查看交换机的mac地址表,看看是否清空了记录?

  提示:可以看到现在交换机的mac地址表没有了记录,其原因是pc1和pc2超过300秒没有发送数据,所以对应学习到的mac信息就会从该表中删除;

  以太网接口工作模式

  1、半双工(half-duplex):通信双方都能发送和接收数据,但不能同时进行;

  2、全双工(full-duplex):通信双方都能同时接收和发送数据;

  提示:接口的双工模式有两种,一种是半双工,一种是全双工;半双工我们可以理解为现实生活中的单行道路,同一时间只允许一台主机发送数据,另外一台主机只能接受,两者不可同时发送数据;而全双工就好比双行道路,可以允许同一时间双发收发数据;默认情况下接口都是全双工模式;

  3、速率(speed):接口连接时两端进行协商,协商失败则无法正常通信;

  提示:默认情况下接口的速率都是自动协商,只有双方的速率一样,才可以实现通讯;

  配置交换机接口为半双工模式

  提示:修改接口的双工模式,首先要先关闭自动协商,其次1000M接口不支持半双工;通常不建议修改双工模式;

  修改电脑的网卡双工模式

  提示:如果修改电脑的速率为10M,而连接的交换机速率为100M,两者无法实现通讯,只有速率相同的情况下才可正常通行;其次全双工和半双工,是建立在两者都能通信的前提下;所以通常情况下不建议修改交换机或终端设备的接口的速率和双工模式;

posted @ 2021-08-02 01:13  Linux-1874  阅读(772)  评论(0编辑  收藏  举报