在网络中传输数据时需要遵循一些标准,以太网协议定义了数据帧在以太网上的传输标准,了解以太网协议是充分理解数据链路层通信的基础。以太网交换机是实现数据链路层通信的主要设备,了解以太网交换机的工作原理也是十分必要的。
1、以太网协议介绍
1.1以太网协议
以太网是当今现有局域网(Local Area Network, LAN)采用的最通用的通信协议标准,该标准定义了在局域网中采用的电缆类型和信号处理方法。
以太网是建立在CSMA/CD (Carrier Sense Multiple Access/Collision Detection,载波监听多路访问/冲突检测)机制上的广播型网络。
1.2冲突域
冲突域是指连接在同一共享介质上的所有节点的集合,冲突域内所有节点竞争同一带宽,一个节点发出的报文(无论是单播、组播、广播),其余节点都可以收到。
在传统的以太网中,同一介质上的多个节点共享链路带宽,争用链路的使用权,这样就会发生冲突。
同一介质上的节点越多,冲突发生的概率越大。
交换机不同的接口发送和接收数据独立,各接口属于不同的冲突域,因此有效地隔离了网络中物理层冲突域,使得通过它互连的主机(或网络)之间不必再担心流量大小对于数据发送冲突的影响。
1.3广播域
广播报文所能到达的整个访问范围称为二层广播域,简称广播域,同一广播域内的主机都能收到广播报文。
在传统的以太网中,同一介质上的多个节点共享链路,一台设备发出的广播报文,所有设备均会收到。
交换机对广播报文会向所有的接口都转发,所以交换机的所有接口连接的节点属于一个广播域。
1.4以太网帧格式
以太网技术所使用的帧称为以太网帧 (Ethernet Frame),或简称以太帧。
以太帧的格式有两个标准:Ethernet_II格式和IEEE 802.3格式。
2、以太网交换机原理简介
2.1园区网典型架构
2.2以太网二层交换机
以太网二层交换机转发数据的端口都是以太网口,并且只能够针对数据的二层头部 (以太网数据帧头) 中的MAC地址进行寻址并转发数据。
2.3交换机的工作原理
2.4MAC地址表
每台交换机中都有一个MAC地址表,存放了MAC地址与交换机端口编号之间的映射关系。
2.5交换机的3种数据帧处理行为
交换机对于从传输介质进入某一端口的帧的处理行为一共有3种:
2.5.1泛洪
2.5.2转发
2.5.3丢弃
2.6交换机的MAC地址学习
(1)初始情况,交换机的MAC 地址表是空的。
(2)主机1发送数据帧给主机2。交换机GE0/0/1口接收到数据帧后,在MAC地址表中查询该帧的目的MAC地址,发现没有对应表项,则收到的数据帧是“未知单播帧”。
(3)交换机在MAC地址表中没有查到对应表项,则交换机对该单播帧执行泛洪操作。同时,交换机学习该数据帧的源MAC地址,并创建对应的MAC地址表项,与接收口GE0/0/1关联。
(4)交换机其他端口连接的主机,也会收到该数据帧,但是会丢弃。 主机2收到并处理该数据帧,向主机 1回复,将数据帧发往交换机。
(5)交换机在MAC地址表中查到了对应表项,则交换机对该单播帧执行转发操作,将数据帧从GE0/0/1口转发出去。同时,交换机学习该数据帧的源MAC地址,并创建对应的MAC地址表项,与接收口GE0/0/2关联。
2.7交换机常见问题思考与关键知识
2.7.1常见问题
(1)交换机接口down后,相应MAC地址表项如何变化?
对应接口学习到的MAC地址会在MAC地址表现中消失;
如在SW2上对G0/0/1口进行shutdown;
Shutdown之前:
Shutdown之后:
(2)同一个Vlan中,PC 从交换机A端口迁移到B端口,交换机MAC地址表项如何变化?
在SW2的角度来看,原本是从G0/0/3接口学习到PC2的MAC,当PC接到SW2的G0/0/4号接口时,不会立刻发生改变,除非MAC地址表学习到PC2的MAC地址时间老化,PC2对外进行通信,那么SW2学习到PC2的MAC接口就会发生改变,变为G0/0/4。
(3)MAC地址表的老化时间是多少?为什么需要老化时间?
对于华为的设备默认是300秒。(查看命令display mac-address aging-time)
修改MAC地址老化时间命令:mac-address aging-time XXX
一般不建议进行修改。
为什么需要老化时间?
原因是使设备能够高效的进行工作运行。如果不老化,内存空间越来越小,设备性能就会降低。
(4)如何设置“黑洞”MAC?
通过命令mac-address blackhole 5489-98EA-0A02 vlan X进行设置。
PC1就无法进入到SW2去访问PC3
(5)交换机的一个接口可以学习多个MAC地址吗?
可以的,例如SW2的G0/0/3口,既可以学习到PC1的MAC,又可以学习到PC2的MAC。
(6)交换机的MAC地址表项可以无限增加吗?
不可以,设备的内存空间有限。
display mac-address summary 当前设备可以存放32768条。
(7)交换机和集线器有什么区别?
交换机:采用存储转发原理工作,具有自动过滤和学习功能。当交换机接收到数据包时,会先将其存储在内部缓存中,然后检查数据包的MAC地址,并根据地址表将数据包转发到正确的端口。这种机制可以有效减少网络冲突,提高数据传输效率。
集线器:则采用广播原理工作。当集线器接收到数据包时,会将其广播到所有连接的端口上,无论目标设备是否在该端口上。这种机制容易导致网络冲突和性能下降,特别是在设备数量较多的情况下。
(8)交换机有NAT功能吗?
大部分是没有的,传统的交换机不具备NAT功能,但多层交换机或集成服务路由器等复合型网络设备可以支持NAT功能。不能说完全没有。
(9)所有交换机的端口都可以切换成路由口吗?
不是所有交换机的端口都可以切换成路由口。不排除一些高级交换机可以切换成路由口。
2.7.2关键知识
(1)交换机基于目标mac 转发数据。
(2)交换机的MAC地址表项需要报文触发才可以构建。
(3)交换机的MAC地址表是交换机转发数据“地图”。
(4)交换机MAC地址表中存放:mac地址和端口映射
(5)泛洪:① 未知单播泛洪 ② 广播泛洪
(6)交换机根据接收报文的源mac地址来构建自己的MAC地址表项
3、同网段数据通信全过程
场景描述:
▫ 任务:主机1想要访问主机2
▫ 主机:初始化状态
▫ 交换机:刚上电,初始化状态
当主机1去访问主机2,在建立ICMP通信之前,首先从主机1发送ARP请求,去广播请求学习,192.168.1.2的MAC在哪,当它找到192.168.1.2的位置后,通过IP地址学习MAC,接着单播返回给192.168.1.1,解析192.168.1.2的MAC是0050-5600-0002,报文信息完善之后,ICMP就建立了。
在主机1的E0/0/1接口进行抓包:
同网段数据通信的全过程相对简单,主要发生在同一局域网(LAN)内,不涉及路由器的路由决策。以下是该过程的简要描述:
(1)源主机阶段
封装数据包:源主机(如PC1)将要发送的数据封装成IP数据包,数据包中包含源IP地址、目标IP地址以及具体的数据内容。由于是同网段通信,源主机和目标主机的IP地址将位于相同的子网内。
ARP请求:源主机检查其ARP缓存,以查看是否已知目标主机(如PC2)的MAC地址。如果不知道,源主机会向本地网络发送一个ARP(地址解析协议)请求广播,询问目标IP地址对应的MAC地址。
接收ARP响应:网络中的设备(包括目标主机)会监听ARP请求。如果目标主机接收到请求,并且IP地址匹配,它会向源主机发送一个ARP响应,其中包含其MAC地址。
封装数据帧:一旦源主机获得目标主机的MAC地址,它就将IP数据包封装成以太网数据帧。数据帧的源MAC地址是源主机的MAC地址,目标MAC地址是目标主机的MAC地址。
(2)交换机转发阶段
接收数据帧:交换机接收到源主机发送的数据帧后,会读取数据帧的目标MAC地址。
查找MAC地址表:交换机在其MAC地址表中查找与目标MAC地址相匹配的条目。由于这是同网段通信,交换机通常会在其MAC地址表中找到对应的条目,该条目指定了数据帧应该被转发到的端口。
转发数据帧:交换机将数据帧转发到与目标MAC地址相关联的端口。由于目标主机和源主机位于同一网段,因此数据帧通常会直接到达目标主机,而无需经过其他网络设备。
(3)目标主机接收阶段
接收数据帧:目标主机通过其网络接口接收到数据帧。
解封装:目标主机解封装数据帧,以提取IP数据包。
处理数据:目标主机根据IP数据包中的目标IP地址确认数据包是发给自己的,然后进一步处理数据包中的数据。
整个过程主要涉及到ARP协议用于解析MAC地址,以及交换机根据MAC地址表进行数据帧的转发。由于源主机和目标主机位于同一网段,因此不需要路由器的参与,数据帧可以直接在局域网内传输。
4、跨网段数据通信全过程
场景描述:
▫ 任务:主机1想要访问主机2
▫ 主机:初始化状态
▫ 交换机:刚上电,初始化状态
(1)源主机阶段
封装数据包:源主机(如PC1)将要发送的数据封装成数据包,数据包中包含源IP地址、目标IP地址以及具体的数据内容。
判断网段:源主机通过比较本地IP地址、子网掩码和目标IP地址,判断目标主机(如PC2)是否在同一网段内。如果不在同一网段,则需要进行跨网段通信。
发送数据:源主机将数据包封装成数据帧,其中目的MAC地址设置为网关(通常是路由器的一个接口)的MAC地址,然后通过物理介质(如以太网)发送给交换机。
(2)交换机转发阶段
接收与转发:交换机接收到数据帧后,根据目的MAC地址查找MAC地址表,确定数据帧的转发端口。由于目的MAC地址是网关的MAC地址,交换机将数据帧转发给网关(路由器)。
(3)路由器转发阶段
解封装与解析:路由器接收到数据帧后,首先解封装得到IP数据包。然后,路由器解析IP数据包中的目标IP地址,查找路由表以确定下一跳地址。
重新封装与转发:路由器根据路由表中的下一跳地址,通过ARP协议获取下一跳设备的MAC地址。然后,路由器将IP数据包重新封装成新的数据帧,其中源MAC地址是路由器自身的MAC地址,目标MAC地址是下一跳设备的MAC地址。之后,路由器将新封装的数据帧发送给下一跳设备。
(4)多次转发(可能)
如果目标主机与源主机之间相隔多个网段,数据包可能需要经过多个路由器的转发。在每个路由器上,都会重复上述的解封装、解析、重新封装和转发的过程,直到数据包到达目标网段的网关。
(5)目标网段网关转发阶段
解封装与识别:目标网段的网关(可能也是路由器)接收到数据包后,解封装得到IP数据包,并识别出目标IP地址属于本网段内的某台主机(如PC2)。
ARP请求(可选):如果网关没有目标主机(PC2)的MAC地址,可能会发送ARP请求到本网段内,以获取目标主机的MAC地址。
封装与发送:网关获取到目标主机的MAC地址后,将IP数据包封装成数据帧,其中目的MAC地址为目标主机的MAC地址,然后通过物理介质发送给目标主机。
(6)目标主机接收阶段
接收与处理:目标主机接收到数据帧后,解封装得到IP数据包。然后,目标主机根据IP数据包中的目标IP地址判断是否是自己的数据包。如果是,则进一步处理数据包中的数据;如果不是,则可能将数据包丢弃或转发给同一网段内的其他主机。
通过以上步骤,跨网段数据通信得以实现,使得不同网段内的设备能够相互通信。