[Cloud Networking] Layer 2
1. 什么是Mac Address?
MAC 地址是计算机的唯一48位硬件编码,嵌入到网卡中。
MAC地址也称为网络设备的物理地址,在IEEE 802中规定,数据链路层分为 逻辑链路控制(LLC)子层 和 媒体控制访问(MAC)子层。
MAC地址由数据链路层的媒体访问控制(MAC)子层使用,MAC地址在全球范围内唯一。
MAC地址也是一个12位的十六进制数,前6位为制造商唯一标识(OUI),最右边六位代表 Network Interface Controller,由制造商分配。
2. 如何查找MAC地址?
# UNIX/Linux
> ifconfig -a ip link list ip address show
# Windows
> ipconfig /all
3. 二层数据交换
如图,假如有3个机器 C1、C2、C3,他们分别有Mac Address嵌入到各自的网卡(NIC)中 。
他们之间通过一个network switch 连接,switch 内部维护一张表,这张表有2个参数,Mac Address 和 出口Port。
这个Switch即为二层交换机,可以识别数据包中的MAC地址,根据MAC进行转发,并将这些MAC地址与对应的端口记录在自己内部的地址表中,交换机接收的数据包会包括 目的MAC,源MAC。
当C1想向C2发送数据包时:
- 当交换机从某个端口收到一个数据包,它会先读取包头中的源MAC地址,这样就知道源MAC地址机器是连在哪个端口
- 再去读包头中的目的地址,并在地址表中查找端口
- 如果有,则直接把数据包复制到这个端口
- 如果没有,则把数据包广播到所有端口,当目的机器回应时,就可以学校目的MAC地址与哪个端口对应。
4. STP / RSTP / MSTP Protocol
4.1 STP的作用
- 消除二层环路:通过阻断冗余链路来消除网络中可能存在的环路
- 链路备份:当活动链路发生故障时,激活冗余链路,恢复网络连通性。
4.2 STP 生成树算法的三个步骤
- 选择根交换机 (Root Bridge):网桥ID(BID)最小者当选
- 优先级 ( P ) 越小则 BID 越小
- 优先级相同,比较MAC,从左至右,数值越小 BID越小
- 选举根端口:每个非根交换机上有且仅有一个根端口 RP(Root Port)
- BDPU 接收到根交换机路径成本最小(带宽越大,成本越小)
- 成本相同的端口,选择对端 BID 最小的端口
- 对端BID相同,则选择对端端口ID(PID)最小的端口
- 优先级 P
- 端口号越小,PID 越小
根端口用于接收根交换机发来的BDPU,也可用来转发普通流量
- 选举指定端口并阻塞备用端口:每一个网段上选出一个指定端口 DP(Designated Port),剩余端口为备用端口(Alternate Port),将他们阻塞
- 根交换机的所有端口都是指定端口
- 根端口的对端端口一定是指定端口
- BDPU转发端口到根交换机的路径成本最小的端口
- 本端的 BID 最小
指定端口用来转发根交换机发来的BDPU,也用来转发普通流量
4.3 STP缺点
端口从阻塞状态到转发状态必须经历两倍的Forward Delay事件,如果网络拓扑结构变化频繁,网络会频繁失去连通性
5. ARP Protocol
ARP 协议 Address Resolution Protocol(地址解析协议),它是一个通过用于实现从 IP 地址到 MAC 地址的映射,即询问目标 IP 对应的 MAC 地址 的一种协议。ARP 协议在 IPv4 中极其重要。
ARP 只用于 IPv4 协议中,IPv6 协议使用的是 Neighbor Discovery Protocol,译为邻居发现协议,它被纳入 ICMPv6 中。
C1 要给 C2发消息:( C1已知 IP2 ,但是不知道 C2 的 MAC)
- C1 发出 broadcast package
- 目的MAC Addres 是 ff:ff:ff:ff:ff:ff
- 目的协议地址 是 IP2
- 源 MAC Address 是 C1的 MAC Address
- 源协议地址 是 IP1
- C2/C3 收到 broadcast package
- C2 发现 broadcast package 的目标协议地址 IP2 是自己的IP,应该发送 ARP 应答
- C3 发现问的不是自己的 IP,不应答
- C2 以单播形式应答 C1 告知自己的 MAC Address
6. MACSEC
MACsec(Media Access Control Security,MAC安全)定义了基于IEEE 802局域网络的数据安全通信的方法。MACsec可为用户提供安全的MAC层数据发送和接收服务,包括用户数据加密、数据帧完整性检查及数据源真实性校验。
Encrypt traffic on Layer2 that nobody be able to sniff it.
MACsec主要应用在点对点组网的环境中,即从一台设备的接口到另一台设备的接口的组网。本端和对端之间使用安全密钥对数据报文进行加密和解密,密钥的协商以及安全通道的建立和管理由MKA(MACsec Key Agreement)协议负责。MKA协议定义了复杂的密钥生成体系,确保MACsec数据传输的安全性。其中,CAK(secure Connectivity Association Key)是用户在设备上配置的密钥,不直接用于数据报文的加密,而是由它和其他参数派生出用于数据加密的SAK(Secure Association Key)。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix