华为HCIA-Datacom认证指南
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.3 交换网络基础

3.3.1 以太网交换机

交换机工作在OSI参考模型的数据链路层,以太网交换机的每一个端口都是一个冲突域,同时1台以太网交换机默认属于1个广播域。如果多台交换机通过线缆连接,会使广播域扩大。过大的广播域会造成以太网中充满了广播帧,造成带宽利用率下降,整体故障域变大,让网络变得更加复杂且不易维护。

冲突域和广播域的划分如图3-8,在该图中所有设备都通过以太网交换机连接,你能算出这张图中有多少个冲突域,又有多少个广播域吗?

注释:图3-8中共计有10个冲突域和1个广播域,交换机之间的互连端口属于同一个冲突域。

图3-8 冲突域和广播域的划分

3.3.2 交换机的3种转发行为

交换机的基本作用就是用来转发数据帧,交换机收到数据帧后的转发方式共有3种:泛洪(Flooding)、转发(Forwarding)、过滤(Filter)。

1.泛洪

泛洪是指交换机把从某一个端口接收到的数据帧向除接收端口以外的其他端口转发出去。泛洪是一种点到多点的转发行为,交换机在以下几种情况下会泛洪数据帧:

●收到广播数据帧;

●收到组播数据帧;

●收到未知的单播数据帧(未知的单播帧是指数据帧的目的 MAC地址在 MAC地址表中不存在的数据帧)。

2.转发

转发是指交换机把从某一个端口收到数据帧从另外一个端口转发出去,转发是一种点到点的转发行为。交换机转发数据帧流程是:交换机收到数据帧以后根据数据帧的目的MAC地址查看本地MAC地址表,如果MAC地址表中存在目的MAC地址,则将数据帧从目的MAC地址绑定的端口转发出去;如果MAC地址表中不存在MAC地址,则执行泛洪转发。

3.过滤

交换机在以下两种场景中会对数据进行过滤:

●交换机收到数据帧后根据 MAC地址表进行转发,不从其他端口泛洪数据帧;

●交换机接收数据帧的端口和转发数据帧的端口是同一个端口,则丢弃数据帧不转发。

过滤数据帧如图3-9所示,该图展示了第二种过滤场景。

图3-9 过滤数据帧

根据图3-9,笔者对第二种过滤场景说明如下。

① 主机A访问主机B,数据帧的目的MAC地址是主机B的MAC地址,源MAC地址是主机A的MAC地址,数据帧经过Hub,Hub将数据帧泛洪转发给主机B和交换机。

② 交换机收到数据帧后,学习源MAC地址,将源MAC地址绑定到E0端口,并根据目的MAC地址查MAC地址然后进行转发。由于当前交换机的MAC地址为空,交换机执行泛洪转发,将数据帧从除接收端口以外的其他端口转发出去。

③ 主机B收到数据帧后回复数据帧给主机A,数据帧目的MAC地址是主机A的MAC地址,源MAC地址是主机B的MAC地址,数据帧再次经过Hub,Hub将数据帧转发给主机A和交换机。

④ 交换机收到数据帧后学习源MAC地址,并将源MAC地址绑定到E0端口,然后根据数据帧目的MAC地址查MAC地址表然后进行转发。由于交换机发现数据帧的出端口和接收数据帧的端口是同一个,说明存在环路,于是丢弃数据帧不转发,过滤数据帧。

3.3.3 交换机转发原理

以太交换机通过MAC地址表转发二层以太帧。

那么什么是MAC地址表呢?MAC地址表就像一本通信录,记录了所有人的姓名和地址,通过这本通信录,可以找到想要联系的人。交换机通过学习数据帧的源MAC地址构建这本通信录(MAC地址表),在这本通信录中,不仅要记录源MAC地址,还需要同时记录MAC地址来源的端口(以及对应的VLAN),并将MAC地址与来源端口进行绑定。这样既知道了这个人的姓名(MAC地址)也知道他的家庭住址(端口)。有了这本通信录,就可以转发数据帧了。交换机收到数据帧后,根据目的MAC地址(收件人姓名)查询通信录,找到收件人及其家庭住址(端口),将数据帧从端口转发出去。在该流程中,你一定会觉得交换机就是个快递员。没错,它就是个快递员,只不过快递的物品是数据帧。但是它也有它的苦恼,那就是交换机的通信录(MAC地址表)能记录的数量是有限的,如果之前记录过的地址(MAC地址)不存在了,那么交换机还需要继续在通信录中记录这个无效的地址(MAC地址)吗?答案是肯定不会的,交换机会为每一条MAC地址都启动一个定时器,定时器的老化时间为300秒(可以更改),如果在300秒内都没有收到该MAC地址发送的数据帧,则将该MAC地址从通信录(MAC地址表)中删除。

下面我们通过图3-10来具体地了解交换机的转发原理。

图3-10 交换机转发原理

① PC A发送数据帧给PC D[目的MAC地址为PC D 的MAC地址(0260.8c01.4444),源MAC地址为PC A的 MAC地址(0260.8c01.1111)],交换机从E0端口收到数据帧后,根据数据帧的目的MAC地址查找交换机的MAC地址表。由于交换机的MAC地址表为空,在MAC地址表中找不到目的MAC地址,交换机便将该数据帧从除接收端口(E0)外的其他端口全部转发出去,这种特性称被为泛洪。同时,交换机会学习数据帧的源MAC地址,并将该MAC地址和接收端口记录到MAC地址表中,这种特性被称为学习(Learn)(学习源MAC地址)。转发数据帧后的MAC地址表如图3-10(b)所示。

② 由于该数据帧被交换机泛洪出去,所以PC B、PC C和PC D都能收到该数据帧,但是PC B和PC C会丢弃该数据帧,原因是它们接收数据帧后会对比数据帧的目的MAC地址与接收端口的MAC地址是否一致,如果一致则说明数据帧是给自己的便会接收,如果不一致则丢弃。PC D收到数据帧后同样会检查目的MAC地址是否与自己端口的MAC地址一致,发现MAC地址一致,PC D知道数据帧是发给自己的,便拆封二层数据帧交给上层处理。同时给PC A发送一个回复数据帧(目的MAC地址为PC A的MAC地(0260.8c01.1111),源MAC地址为PC D的MAC地址(0260.8c01.4444))。

③ 交换机从E3端口收到回复数据帧后,根据数据帧的目的MAC地址查找交换机的MAC地址表,交换机在MAC地址表中查找到了目的MAC地址,发现该MAC地址被绑定到了E0端口上。交换机便将该数据帧直接从E0端口转发出去,而不再进行泛洪。这种特性被称为过滤。同时,交换机学习源MAC地址,并将MAC地址记录到MAC地址表,与E3端口绑定。转发数据帧后的MAC地址表如图3-10(c)所示。