前言
上次有写过一篇文章,里面有提到了MAC地址表。那么什么是MAC地址表?MAC地址表有什么作用?MAC地址表里面包含了哪些要素?今天带你好好唠唠。
我们以一个案例为例:
如上图:PC1和PC2通过交换机SW1直连,此时PC1想要和PC2通信。
1、根据TCP/IP参考模型,PC1想要和PC2通信,除了需要知道PC2的IP地址,还需要知道PC2的MAC地址,这个我们在之前章节已经讲了,可以通过ARP广播获取PC2的目的IP地址。(PC1的ARP表项如下图)
2、PC1将报文封装好发送给交换机SW1,交换机SW1会查找MAC地址表,匹配到PC2的MAC地址,查找出接口为GE0/0/2。(交换机的MAC地址表如下图)
3、交换机SW1将报文发给PC2,PC2收到后解封装发现目的MAC和目的IP均为自己的,因此接收该报文继续处理。
以上就是整个案例的通信过程,可是我们有没有想过,就是交换机SW1的MAC地址表是怎么生成的?交换机的MAC地址表是啥样的?由哪些要素构成?
MAC地址表
MAC地址表:简单的说,MAC地址表是交换机等网络设备记录MAC地址和端口的映射关系(见下图),代表了交换机从哪个端口学习到了某个MAC地址,交换机把这个信息记录下来,后续交换机需要转发数据的时候就可以根据报文的目的MAC地址去根据MAC地址表转发数据。
华为交换机上可以通过命令display mac-address查看所有类型的MAC地址表项信息;
MAC地址表作用:
1、用于存放交换机所学习到的其它设备的MAC地址信息。
2、用于交换机在转发数据时,根据以太网帧中的目的MAC地址和VLAN编号查询MAC表,快速定位设备的出接口。
MAC地址表主要构成:包括目的MAC地址、设备所属的VLAN、出接口、MAC表项类型、老化时间等。
下面我们就分别来讲下MAC地址表的五大要素。
目的MAC地址
什么是MAC地址?
每个网卡或三层网口都有一个 MAC 地址, MAC 地址是烧录到硬件上,因此也称为硬件地址。MAC 地址作为数据链路设备的地址标识符,需要保证网络中的每个 MAC 地址都是唯一的,才能正确识别到数据链路上的设备。
MAC地址组成?
MAC 地址由 6 个字节组成。前 3 个字节表示厂商识别码,每个网卡厂商都有特定唯一的识别数字。后 3 个字节由厂商给每个网卡进行分配。厂商可以保证生产出来的网卡不会有相同 MAC 地址的网卡。
MAC地址表示方法?
为了查看方便, 6 个字节的 MAC 地址使用十六进制来表示。每个字节的 8 位二进制数分别用 2 个十六进制数来表示。
例如我的网卡 MAC 地址是 34-F6-4B-62-B3-85。可以在自己的PC通过打开cmd通过命令ipconfig /all 查看
交换机是如何学习MAC地址的?
1、交换机在从某接口收到数据帧时会基于源MAC地址学习,然后在MAC地址表中添加MAC地址和接口的映射关系,生成对应的MAC地址表项
2、交换机在转发数据帧时是基于目的MAC地址进行转发。
所属VLAN
当交换机上的接口有绑定VLAN时,生成的MAC地址表项会标识接口所属的VLAN。如下图中接口10GE1/0/1的所属VLAN为100。
关于VLAN,我们简单看下VLAN相关的概念。
什么是VLAN?
VLAN是为了在二层隔离广播域而提出的一个概念。
举个例子,我们班级一共有15个人,为了方便管理,我们3人1组,分成组1,组2,组3,组4,组5。那么划分VLAN就类似于分组的概念。
如下图:我们将PC1和PC3划分为VLAN10,PC2和PC4划分为VLAN20,那么相同的VLAN之间可以通信,不同VLAN之间二层不可以通信。
怎么区分不同的 VLAN ?
通过 VLAN ID 进行区分,例如 VLAN 10 和 VLAN 20 就是不同的 VLAN 。
VLAN 技术有哪些好处?
增加了广播域的数量,减小了每个广播域的规模,也减少了每个广播域中终端设备的数量;
增强了网络安全性,保障网络安全的方法增加了;
提高了网络设计的逻辑性,可以规避地理、物理等因素对于网络设计的限制。
VLAN 划分
交换机通常会使用基于端口划分 VLAN 的方法。在交换机上手动配置,绑定交换机端口和 VLAN ID 的关系。
如下图就是基于接口的方式划分VLAN。
优点:配置简单。想要把某个端口划分到某个 VLAN 中,只需要把端口的 PVID (端口 VLAN ID )配置到相应的 VLAN ID 即可。
缺点:当终端设备移动位置是,可能需要为终端设备连接的新端口重新划分 VLAN 。
除了这种方法外,还可以使用基于 MAC 地址划分 VLAN 、基于 IP 地址划分 VLAN 、基于协议划分 VLAN 、基于策略划分 VLAN 等方法来划分 VLAN。
出接口
当交换机收到一个数据包会根据数据帧的目的MAC地址去查找MAC地址表,如果能够匹配到,那么就会根据表项的出接口发送出数据帧。
如上图所示:
1、PC1发送一个如下图所示的数据帧给SW1,目的MAC为PC2的MAC;
2、交换机SW1收到该数据帧后根据目的MAC查找MAC地址表,匹配到表项,按照表项提供的出接口将数据从G0/0/2口转发出去;
3、PC2收到数据帧后进行解封装,通信结束。
MAC地址表表项类型
MAC地址表生成的方式有多种,最常见的就是动态生成MAC地址表项。
下面我们一起看下MAC地址表的表项类型:
1、static:静态MAC地址表项。由用户手工配置,表项不会被老化。
2、blackhole:标识黑洞MAC地址表项,由用户手工配置,表项不会被老化。
3、dynamic:标识动态MAC地址表项,由设备通过源MAC地址学习获得,表项有老化时间,可被老化。
4、security:标识安全动态MAC表项,由接口使能端口安全功能后学习到的MAC地址表项。
5、sticky:标识Sticky MAC表项,由接口使能Sticky MAC功能后学习到的MAC地址表项。
6、mux:标识MUX MAC表项,当接口使能MUX VLAN功能后,该接口学习到的MAC地址表项会记录到mux类型的MAC地址表项中。
7、snooping:根据DHCP Snooping绑定表生成的静态MAC表项类型。
8、evn:标识EVN或EVPN网络中存在的MAC地址表项。
9、authen:用户通过MAC认证或802.1x认证后形成的MAC地址表项。
10、tunnel:通过二层隧道学到的MAC地址。
11、ovsdb:标识通过OVSDB学习到的MAC地址表项。由VMware NSX控制器下发至本端设备获得,表项不会被老化。系统复位或接口板热插拔后不丢失。
老化时间
MAC老化时间:动态MAC地址学习时间,单位是秒。
华为交换机可以通过命令 display mac-address aging-time命令用来查看MAC地址表中动态MAC地址表项的老化时间。
使用本命令查看动态MAC地址表项的老化时间为0秒时,说明学习到的动态MAC地址不会被老化,可能会使MAC地址表项爆炸式增长,降低系统性能。