Files
My-Notes/笔记/网络工程/01_二层交换技术/MAC_ARP.md
T

133 lines
3.3 KiB
Markdown

# MAC 与 ARP
## MAC
MAC 一般指 **MAC 地址**,不是我们平时说的一种独立协议。
MAC 地址的主要作用是:
- 在二层网络中唯一标识网卡或接口
- 让交换机能够根据目的 MAC 地址进行转发
常见特点:
- MAC 地址长度为 48 位,通常写成 12 个十六进制数
- 前 24 位一般表示厂商标识,后 24 位一般由厂商分配
- 二层交换机维护 **MAC 地址表**,记录“某个 MAC 地址对应哪个接口”
交换机转发数据帧时的大致过程:
1. 先学习源 MAC 地址,并记录进入接口
2. 查看目的 MAC 地址是否在 MAC 地址表中
3. 如果表中有记录,就从对应接口转发
4. 如果表中没有记录,就进行泛洪
## ARP
ARP 是 **地址解析协议**,作用是把 **IP 地址解析为 MAC 地址**
ARP 的核心用途:
- 主机已知目标 IP 地址,但不知道目标 MAC 地址时,先通过 ARP 查询
- 查询到 MAC 地址后,再封装二层帧并发送数据
要注意:
- ARP 不是“基于 MAC 的协议”,而是“根据 IP 找 MAC 的协议”
- ARP 不是用来路由的
- 二层交换机转发主要看 **MAC 地址表**
- 主机或三层设备在发送数据前,往往先通过 **ARP 表** 找到下一跳或目标主机的 MAC 地址
ARP 工作过程大致如下:
1. 主机先查看本地 ARP 表中有没有目标 IP 对应的 MAC
2. 如果没有,就发送 ARP Request 广播
3. 目标主机收到后,返回 ARP Reply 单播
4. 发送方学到对方的 MAC 地址,并写入 ARP 表
5. 后续数据通信就可以正常封装并发送
## MAC 地址表与 ARP 表的区别
MAC 地址表:
- 维护设备:二层交换机
- 作用:记录 MAC 地址与接口的对应关系
- 用途:决定二层帧从哪个端口转发
ARP 表:
- 维护设备:主机、路由器、三层交换机
- 作用:记录 IP 地址与 MAC 地址的对应关系
- 用途:发送数据前完成二层封装
## 一句话理解
- **MAC 地址表解决“帧往哪一个接口走”**
- **ARP 表解决“这个 IP 对应哪个 MAC”**
## 常见问题
### 1. 为什么同网段通信需要 ARP
因为发送方虽然知道对方 IP,但真正发二层数据帧时,还需要知道对方的 MAC 地址。
### 2. 为什么跨网段通信也会用到 ARP
因为主机把数据交给网关时,实际封装的是 **网关接口的 MAC 地址**,所以仍然要先解析网关的 MAC。
### 3. ARP 广播会不会很多
会。ARP 请求是广播报文,所以网络里主机很多时,ARP 广播也会增多。
## 常见厂商命令
### 华为
查看 MAC 地址表:
```bash
display mac-address
```
查看 ARP 表:
```bash
display arp
```
查看接口简要信息:
```bash
display interface brief
```
查看某个 VLAN 的 MAC 学习情况:
```bash
display mac-address vlan 10
```
### 思科 Cisco
查看 MAC 地址表:
```bash
show mac address-table
```
查看 ARP 表:
```bash
show arp
```
或:
```bash
show ip arp
```
查看接口状态:
```bash
show ip interface brief
```
## 复习时容易写错的点
- MAC 地址不是“身份协议”,更准确地说是二层地址
- ARP 不是“绑定设备 IP 与 MAC 方便二层交换时的路由”,更准确地说是“把 IP 解析为 MAC,方便后续二层封装与转发”
- 交换机转发数据帧主要依据 MAC 地址表,不是 ARP 表