update the folder organisation
This commit is contained in:
@@ -194,3 +194,171 @@ buf :FF FF FF FF FF FF AE AB 32 09 8E B4 08 06 00 01 08 00 06 04 00 01 AE AB 32
|
||||
|
||||

|
||||
|
||||
root@pc1:~# tcpdump -i eth1
|
||||
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
|
||||
listening on eth1, link-type EN10MB (Ethernet), snapshot length 262144 bytes
|
||||
10:53:47.911087 IP6 2001:db8:5::2 > ff02::1:ff00:1: ICMP6, neighbor solicitation, who has 2001:db8:5::1, length 32
|
||||
10:53:47.911189 IP6 2001:db8:5::1 > 2001:db8:5::2: ICMP6, neighbor advertisement, tgt is 2001:db8:5::1, length 32
|
||||
10:53:47.912325 IP6 2001:db8:5::2 > 2001:db8:5::1: ICMP6, echo request, id 56760, seq 1, length 64
|
||||
10:53:47.912349 IP6 2001:db8:5::1 > 2001:db8:5::2: ICMP6, echo reply, id 56760, seq 1, length 64
|
||||
10:53:48.904692 IP6 2001:db8:5::2 > 2001:db8:5::1: ICMP6, echo request, id 56760, seq 2, length 64
|
||||
10:53:48.904719 IP6 2001:db8:5::1 > 2001:db8:5::2: ICMP6, echo reply, id 56760, seq 2, length 64
|
||||
10:53:49.906078 IP6 2001:db8:5::2 > 2001:db8:5::1: ICMP6, echo request, id 56760, seq 3, length 64
|
||||
10:53:49.906103 IP6 2001:db8:5::1 > 2001:db8:5::2: ICMP6, echo reply, id 56760, seq 3, length 64
|
||||
10:53:50.907512 IP6 2001:db8:5::2 > 2001:db8:5::1: ICMP6, echo request, id 56760, seq 4, length 64
|
||||
10:53:50.907538 IP6 2001:db8:5::1 > 2001:db8:5::2: ICMP6, echo reply, id 56760, seq 4, length 64
|
||||
10:53:51.908904 IP6 2001:db8:5::2 > 2001:db8:5::1: ICMP6, echo request, id 56760, seq 5, length 64
|
||||
10:53:51.908929 IP6 2001:db8:5::1 > 2001:db8:5::2: ICMP6, echo reply, id 56760, seq 5, length 64
|
||||
10:53:52.926411 IP6 fe80::216:3eff:fe00:2 > 2001:db8:5::2: ICMP6, neighbor solicitation, who has 2001:db8:5::2, length 32
|
||||
10:53:52.927121 IP6 2001:db8:5::2 > fe80::216:3eff:fe00:2: ICMP6, neighbor advertisement, tgt is 2001:db8:5::2, length 24
|
||||
|
||||
|
||||
|
||||
13:14:32.958532 IP6 2001:db8:5::1 > 2001:db8:5::2: ICMP6, neighbor advertisement, tgt is 2001:db8:5::2, length 32
|
||||
0x0000: 0016 3e00 0004 0016 3e00 0602 86dd 6000 ..>.....>.....`.
|
||||
0x0010: 0000 0020 3aff 2001 0db8 0005 0000 0000 ....:...........
|
||||
0x0020: 0000 0000 0001 2001 0db8 0005 0000 0000 ................
|
||||
0x0030: 0000 0000 0002 8800 484c 6000 0000 2001 ........HL`.....
|
||||
0x0040: 0db8 0005 0000 0000 0000 0000 0002 0201 ................
|
||||
0x0050: 0016 3e00 0602 ..>...
|
||||
|
||||
```
|
||||
13:14:32.958532 IP6 2001:db8:5::1 > 2001:db8:5::2: ICMP6, neighbor advertisement, tgt is 2001:db8:5::2, length 32
|
||||
0x0000: 0016 3e00 0004 0016 3e00 0602 86dd 6000 ..>.....>.....`.
|
||||
0x0010: 0000 0020 3aff 2001 0db8 0005 0000 0000 ....:...........
|
||||
0x0020: 0000 0000 0001 2001 0db8 0005 0000 0000 ................
|
||||
0x0030: 0000 0000 0002 8800 484c 6000 0000 2001 ........HL`.....
|
||||
0x0040: 0db8 0005 0000 0000 0000 0000 0002 0201 ................
|
||||
0x0050: 0016 3e00 0602 ..>...
|
||||
```
|
||||
|
||||
00:16:3e:00:00:02
|
||||
|
||||
|
||||
|
||||
这个包是一个 **ICMPv6 邻居通告(Neighbor Advertisement, NA)** 消息,表明发送方(`2001:db8:5::1`)告知接收方(`2001:db8:5::2`),其目标地址(`tgt`)的链路层(MAC)信息。
|
||||
|
||||
以下是对这个包的逐字段详细分析:
|
||||
|
||||
------
|
||||
|
||||
### **1. 数据包的结构**
|
||||
|
||||
ICMPv6 邻居通告消息由以下几部分组成:
|
||||
|
||||
| **字段** | **长度** | **解释** |
|
||||
| ------------------- | -------- | ------------------------------------------------------ |
|
||||
| **以太网帧头** | 14 字节 | 包括源 MAC 地址、目标 MAC 地址和以太网类型。 |
|
||||
| **IPv6 头** | 40 字节 | IPv6 源地址、目的地址,及与数据包相关的信息。 |
|
||||
| **ICMPv6 头** | 4 字节 | 包括类型(Type)、代码(Code)、校验和(Checksum)。 |
|
||||
| **ICMPv6 数据部分** | 可变长度 | 邻居通告消息的具体内容,包括目标地址和链路层地址选项。 |
|
||||
|
||||
------
|
||||
|
||||
### **2. 分析具体字段**
|
||||
|
||||
#### **以太网帧头**
|
||||
|
||||
```
|
||||
0x0000: 0016 3e00 0004 0016 3e00 0602 86dd
|
||||
```
|
||||
|
||||
| 偏移量 | 字段 | 值 | 解释 |
|
||||
| -------- | ------------- | ------------------- | --------------------------------------- |
|
||||
| `0x0000` | 目标 MAC 地址 | `00:16:3e:00:00:04` | 目标设备的链路层地址(目的 MAC 地址)。 |
|
||||
| `0x0006` | 源 MAC 地址 | `00:16:3e:00:06:02` | 源设备的链路层地址(发送方 MAC 地址)。 |
|
||||
| `0x000c` | 以太网类型 | `0x86dd` | 表示接下来的数据是 IPv6 数据包。 |
|
||||
|
||||
------
|
||||
|
||||
#### **IPv6 头部**
|
||||
|
||||
```
|
||||
0x0010: 6000 0000 0020 3aff 2001 0db8 0005 0000
|
||||
0x0020: 0000 0000 0001 2001 0db8 0005 0000 0000
|
||||
0x0030: 0000 0000 0002
|
||||
```
|
||||
|
||||
| 偏移量 | 字段 | 值 | 解释 |
|
||||
| -------- | ---------------- | --------------- | -------------------------------------------- |
|
||||
| `0x0010` | 版本/流量类/流标 | `6000 0000` | IPv6 版本号(6),流量类别(0),流标(0)。 |
|
||||
| `0x0014` | 载荷长度 | `0020` | 载荷长度 32 字节。 |
|
||||
| `0x0016` | 下一头部类型 | `3a` | 表示下一头部为 ICMPv6(58)。 |
|
||||
| `0x0017` | 跳数限制 | `ff` | 初始跳数设置为 255,避免跨链路转发。 |
|
||||
| `0x0018` | 源地址 | `2001:db8:5::1` | 发送方 IPv6 地址。 |
|
||||
| `0x0028` | 目的地址 | `2001:db8:5::2` | 接收方 IPv6 地址。 |
|
||||
|
||||
------
|
||||
|
||||
#### **ICMPv6 头部**
|
||||
|
||||
```
|
||||
0x0030: 8800 484c
|
||||
```
|
||||
|
||||
| 偏移量 | 字段 | 值 | 解释 |
|
||||
| -------- | ------------ | ------ | ------------------------------------------------ |
|
||||
| `0x0030` | 类型(Type) | `88` | 表示这是一个邻居通告(Neighbor Advertisement)。 |
|
||||
| `0x0031` | 代码(Code) | `00` | 固定为 0(邻居通告无子代码)。 |
|
||||
| `0x0032` | 校验和 | `484c` | 校验和,确保 ICMPv6 数据的完整性。 |
|
||||
|
||||
------
|
||||
|
||||
#### **ICMPv6 数据部分**
|
||||
|
||||
```
|
||||
0x0034: 6000 0000 2001 0db8 0005 0000 0000 0000 0002
|
||||
0x0050: 0201 0016 3e00 0602
|
||||
```
|
||||
|
||||
##### **(a) 邻居通告标志和目标地址**
|
||||
|
||||
```
|
||||
0x0034: 6000 0000 2001 0db8 0005 0000 0000 0000 0002
|
||||
```
|
||||
|
||||
| 偏移量 | 字段 | 值 | 解释 |
|
||||
| -------- | -------- | --------------- | ---------------------------------- |
|
||||
| `0x0034` | 目标地址 | `2001:db8:5::2` | 目标设备的 IPv6 地址,告知请求方。 |
|
||||
|
||||
##### **(b) 链路层地址选项**
|
||||
|
||||
```
|
||||
0x0050: 0201 0016 3e00 0602
|
||||
```
|
||||
|
||||
| 偏移量 | 字段 | 值 | 解释 |
|
||||
| -------- | -------- | ------------------- | ---------------------------------------------------- |
|
||||
| `0x0050` | 选项类型 | `02` | 链路层地址选项(Target Link-Layer Address Option)。 |
|
||||
| `0x0051` | 选项长度 | `01` | 长度为 1(单位:8 字节)。 |
|
||||
| `0x0052` | MAC 地址 | `00:16:3e:00:06:02` | 目标设备的链路层地址(MAC 地址)。 |
|
||||
|
||||
------
|
||||
|
||||
### **3. 总结这个包的含义**
|
||||
|
||||
1. **包类型**:
|
||||
- 这是一个 **ICMPv6 邻居通告(NA)** 数据包。
|
||||
2. **发送方信息**:
|
||||
- IPv6 地址:`2001:db8:5::1`。
|
||||
- MAC 地址:`00:16:3e:00:06:02`。
|
||||
3. **接收方信息**:
|
||||
- 目标 IPv6 地址:`2001:db8:5::2`。
|
||||
- 目标链路层地址(MAC):`00:16:3e:00:04`。
|
||||
4. **作用**:
|
||||
- 通知目标设备(`2001:db8:5::2`),IPv6 地址 `2001:db8:5::1` 解析为 MAC 地址 `00:16:3e:00:06:02`。
|
||||
5. **网络流程**:
|
||||
- 这是对之前邻居请求(NS)消息的回复,目标设备将更新其邻居表,以便后续通信。
|
||||
|
||||
------
|
||||
|
||||
### **补充**
|
||||
|
||||
- **邻居通告的用途**:
|
||||
- 用于响应邻居请求。
|
||||
- 通知链路上的其他设备该地址的链路层信息。
|
||||
- **校验关键点**:
|
||||
- 确认 IPv6 头部和 ICMPv6 数据是否正确匹配。
|
||||
- 确保链路层地址和目标地址一致。
|
||||
|
||||
如果你需要进一步分析或有其他问题,请随时补充!
|
||||
|
Reference in New Issue
Block a user