RN/OralNotes.md

832 lines
42 KiB
Markdown
Raw Permalink Normal View History

2025-02-24 23:38:30 +01:00
还差什么?
1-3 Theoretical Problems
4 ask yourself questions
3 RIP OSPF BGP?
3 讲述一下RA RS NA NS的过程
2025-02-24 07:33:01 +01:00
[toc]
2025-02-24 23:38:30 +01:00
2025-02-24 07:33:01 +01:00
## 什么是一个自治系统?(Autonome Systeme)
自治系统Autonomous SystemAS指的是在互联网中由单一管理实体如网络运营商、企业、大学等控制的一组IP网络和路由器集合。每个自治系统都有一个唯一的自治系统号码ASN用于在边界网关协议BGP中标识和交换路由信息。自治系统内部使用统一的路由策略管理数据流而各AS之间则通过BGP互联从而构成全球互联网的基础架构。
## 自治系统语境下的对等关系和传输关系各是什么意思?
**Peering relationship对等互联关系**
在这种关系中,两家或多家网络通常规模相近且流量互补,它们直接互联并交换彼此的流量,而不收取费用或仅象征性收取费用。这种方式旨在优化数据传输路径和提高网络效率,同时降低运营成本。
**Transit relationship传递关系**
这种关系通常涉及付费,指的是一个网络(客户网络)向一个规模更大、覆盖范围更广的网络(提供商网络)支付费用,以获得对整个互联网或更大部分网络的连接。通过 Transit 关系,客户网络可以访问那些没有与之直接对等互联的其他网络。
## 网络层和数据链路层的作用各是什么?
- **网络层Network Layer**
- **主要作用:** 负责在不同网络之间传输数据包,确定数据从源到目的地的最佳路径。
- 关键功能:
- **逻辑寻址:** 使用IP地址标识各个网络设备。
- **路由选择:** 通过路由协议如OSPF、BGP等决定数据包的转发路径。
- **数据包转发:** 在各个网络间将数据包从一跳转发到下一跳。
- **分片与重组:** 当数据包在传输中需要跨越不同MTU的网络时进行分片并在目的地重组数据包。
- **数据链路层Data Link Layer**
- **主要作用:** 负责在相邻网络节点之间进行可靠的数据传输,确保物理传输过程中数据的完整性。
- 关键功能:
- **帧封装:** 将网络层传来的数据封装成帧,并在接收端进行解封装。
- **物理地址:** 使用MAC地址来唯一标识局域网中的设备。
- **错误检测与纠正:** 通过校验和等机制检测传输错误,并在必要时进行纠正。
- **流量控制:** 管理数据传输速率,避免网络拥塞。
## 不同子网的不同的第二层实现指的是什么?
以太网WiFi
## CIDR出现前是怎么划分子网的
IPv4 地址被划分为五类,每类的网络部分和主机部分的长度不同:
| **类别** | **地址范围** | **网络部分长度** | **主机部分长度** | **用途** |
| :------- | :-------------------------- | :--------------- | :--------------- | :------------------- |
| A | 0.0.0.0 - 127.255.255.255 | 8 位 | 24 位 | 大型网络 |
| B | 128.0.0.0 - 191.255.255.255 | 16 位 | 16 位 | 中型网络 |
| C | 192.0.0.0 - 223.255.255.255 | 24 位 | 8 位 | 小型网络 |
| D | 224.0.0.0 - 239.255.255.255 | N/A | N/A | 多播地址 |
| E | 240.0.0.0 - 255.255.255.255 | N/A | N/A | 保留地址(实验用途) |
RFC 1918 定义了以下私有地址范围,这些地址用于本地网络(如企业内部网络),不会在公共互联网上路由:
| **类别** | **私有地址范围** | **默认子网掩码** |
| :------- | :---------------------------- | :---------------- |
| A | 10.0.0.0 - 10.255.255.255 | 255.0.0.0 (/8) |
| B | 172.16.0.0 - 172.31.255.255 | 255.240.0.0 (/12) |
| C | 192.168.0.0 - 192.168.255.255 | 255.255.0.0 (/16) |
6. IPv6协议有多长
128位
| **字段** | **长度(比特)** | **描述** |
| :-------------------------------- | :--------------- | :--------------------------------------------------------- |
| **FPFormat Prefix** | 3 | 格式前缀,用于标识地址类型(如全局单播地址、本地地址等)。 |
| **TLATop-Level Aggregation** | 13 | 顶级聚合标识符,用于标识顶级 ISP 或大型组织。 |
| **RESReserved** | 8 | 保留字段,用于未来扩展。 |
| **NLANext-Level Aggregation** | 24 | 下一级聚合标识符,用于标识下级 ISP 或组织。 |
| **SLASite-Level Aggregation** | 16 | 站点级聚合标识符,用于标识组织内部的子网。 |
| **Interface ID** | 64 | 接口标识符,用于标识网络接口。 |
## IPv6地址的构成子网和主机ID各有多少位
各64位
## IPv6的头部是固定的还是变长的如果是固定的如何添加额外的信息
固定的存在header-extension
IPv6 头部固定为 **40 字节**,包含以下字段:
| **字段** | **长度(比特)** | **描述** |
| :---------------------- | :--------------- | :----------------------------------------------------------- |
| **Version** | 4 | 版本号IPv6 的值为 `6`。 |
| **Traffic Class** | 8 | 流量类别,用于区分不同类型的流量(类似于 IPv4 的 TOS 字段)。 |
| **Flow Label** | 20 | 流标签,用于标识属于同一流的数据包(用于 QoS 和实时应用)。 |
| **Payload Length** | 16 | 有效载荷长度,表示 IPv6 头部之后的数据长度(不包括头部本身)。 |
| **Next Header** | 8 | 下一个头部类型,标识紧接在 IPv6 头部之后的扩展头部或上层协议(如 TCP/UDP。 |
| **Hop Limit** | 8 | 跳数限制,类似于 IPv4 的 TTL每经过一个路由器减 1减到 0 时丢弃数据包。 |
| **Source Address** | 128 | 源 IPv6 地址。 |
| **Destination Address** | 128 | 目的 IPv6 地址。 |
在next header处添加扩展信息
每个扩展头部都包含以下两个关键字段:
1. **Next Header**8 位):指示下一个扩展头部或上层协议的类型。
2. **Header Extension Length**8 位):指示当前扩展头部的长度(以 8 字节为单位,不包括前 8 字节)。
## 什么是IPsec?
**IPsecInternet Protocol Security** 是一种用于保护 IP 通信的安全协议套件。它通过在 IP 层提供加密、认证和完整性保护确保数据在传输过程中的机密性、完整性和真实性。IPsec 广泛应用于虚拟专用网络VPN、远程访问、站点到站点连接等场景。
传输模式Transport Mode
- 仅保护 IP 数据包的有效载荷Payload不修改原始 IP 头部。
- 适用于端到端通信(如主机到主机)。
- 示例:
- 原始数据包:`[IP Header][TCP/UDP Header][Data]`
- IPsec 保护后:`[IP Header][AH/ESP Header][TCP/UDP Header][Data][ESP Trailer][ICV]`
**隧道模式Tunnel Mode**
- 保护整个 IP 数据包(包括 IP 头部和有效载荷),并封装在新的 IP 数据包中。
- 适用于站点到站点 VPN 或远程访问 VPN。
- 示例:
- 原始数据包:`[IP Header][TCP/UDP Header][Data]`
- IPsec 保护后:`[New IP Header][AH/ESP Header][Original IP Header][TCP/UDP Header][Data][ESP Trailer][ICV]`
## IPv6是怎么区分本地和全局地址的
1. script里主要写分为两类**全局地址**和**链路本地地址**
2. 需要注意的是**链路本地地址不能跨路由器**
3. IPv6 地址主要分为以下几类:
1. **全局单播地址Global Unicast Address**
1. 用于公共互联网,全球唯一。
2. 前缀通常为 `2000::/3`(即 `2000::``3FFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF`)。
2. **唯一本地地址Unique Local Address, ULA**
1. 用于本地网络,类似于 IPv4 的私有地址。
2. 前缀为 `FC00::/7`(即 `FC00::``FDFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF`)。
3. **链路本地地址Link-Local Address**
1. 用于同一链路上的设备通信,不能跨路由器。
2. 前缀为 `FE80::/10`(即 `FE80::``FEBF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF`)。
4. **多播地址Multicast Address**
1. 用于一对多通信。
2. 前缀为 `FF00::/8`(即 `FF00::``FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF`)。
5. **回环地址Loopback Address**
1. 用于本地回环测试。
2. 地址为 `::1`
6. **未指定地址Unspecified Address**
1. 用于表示地址未指定。
2. 地址为 `::`
## 实现IPv4和IPv6两个协议版本共存的方法
1. 双栈
2. 隧道技术
## 讲一讲ICMPv6
ICMPv6 的主要功能包括:
1. **错误报告**
- 当数据包传输过程中发生错误时ICMPv6 会生成错误消息并发送给源节点。
- 例如,目标不可达、数据包过大、超时等。
2. **诊断功能**
- 提供网络诊断工具,如 **Ping****Traceroute**
- 用于测试网络连通性和路径。
3. **邻居发现协议NDP**
- 用于 IPv6 中的地址解析、邻居状态跟踪和路由器发现。
- 替代了 IPv4 中的 **ARPAddress Resolution Protocol**
4. **多播监听发现协议MLD**
- 用于管理多播组成员关系。
- 替代了 IPv4 中的 **IGMPInternet Group Management Protocol**
**2. ICMPv6 的消息类型**
ICMPv6 消息分为两大类:**错误消息** 和 **信息消息**。每种消息类型由一个唯一的类型值标识。
**2.1 错误消息**
错误消息用于报告数据包传输过程中的问题。常见的错误消息类型包括:
| **类型值** | **消息类型** | **描述** |
| :--------- | :------------------------------------ | :------------------------------------------- |
| 1 | 目标不可达Destination Unreachable | 数据包无法到达目标节点。 |
| 2 | 数据包过大Packet Too Big | 数据包超过链路的 MTU无法传输。 |
| 3 | 超时Time Exceeded | 数据包的 TTL跳数限制减到 0或重组超时。 |
| 4 | 参数问题Parameter Problem | 数据包头部字段有错误。 |
**2.2 信息消息**
信息消息用于网络诊断和管理。常见的信息消息类型包括:
| **类型值** | **消息类型** | **描述** |
| :--------- | :---------------------------------------- | :--------------------------------------- |
| 128 | 回显请求Echo Request | 用于 Ping 测试,请求目标节点回复。 |
| 129 | 回显应答Echo Reply | 目标节点对回显请求的响应。 |
| 133 | 路由器请求Router Solicitation | 主机请求路由器发送路由器通告。 |
| 134 | 路由器通告Router Advertisement | 路由器发送的通告消息,包含网络配置信息。 |
| 135 | 邻居请求Neighbor Solicitation | 用于地址解析和邻居状态跟踪。 |
| 136 | 邻居通告Neighbor Advertisement | 对邻居请求的响应,包含链路层地址。 |
| 130 | 多播监听查询Multicast Listener Query | 用于查询多播组成员。 |
| 131 | 多播监听报告Multicast Listener Report | 主机报告其多播组成员关系。 |
| 132 | 多播监听完成Multicast Listener Done | 主机离开多播组时发送的消息。 |
------
**3. ICMPv6 的消息格式**
ICMPv6 消息的通用格式如下:
| **字段** | **长度(字节)** | **描述** |
| :------------------------- | :--------------- | :-------------------------------------------------- |
| **类型Type** | 1 | 消息类型(如 1 表示目标不可达128 表示回显请求)。 |
| **代码Code** | 1 | 消息子类型,提供更详细的错误分类。 |
| **校验和Checksum** | 2 | 用于检测消息在传输过程中是否损坏。 |
| **消息体Message Body** | 可变 | 包含具体的消息数据,如错误信息、诊断数据等。 |
------
**4. ICMPv6 的关键功能**
**4.1 邻居发现协议NDP**
NDP 是 ICMPv6 的核心功能之一,用于替代 IPv4 中的 ARP。它通过以下消息实现
- **路由器请求Router Solicitation, RS**
- 主机发送 RS 消息,请求路由器发送路由器通告。
- **路由器通告Router Advertisement, RA**
- 路由器发送 RA 消息包含网络配置信息如前缀、MTU 等)。
- **邻居请求Neighbor Solicitation, NS**
- 用于地址解析(将 IPv6 地址解析为链路层地址)。
- **邻居通告Neighbor Advertisement, NA**
- 对 NS 消息的响应,包含链路层地址。
**4.2 多播监听发现协议MLD**
MLD 用于管理多播组成员关系,替代了 IPv4 中的 IGMP。它通过以下消息实现
- **多播监听查询Multicast Listener Query**
- 路由器发送查询消息,询问哪些主机加入了多播组。
- **多播监听报告Multicast Listener Report**
- 主机发送报告消息,声明其加入的多播组。
- **多播监听完成Multicast Listener Done**
- 主机发送完成消息,声明其离开多播组。
## 描述一下NDP的过程
**NDPNeighbor Discovery Protocol邻居发现协议** 是 IPv6 中的一个关键协议,用于替代 IPv4 中的 **ARPAddress Resolution Protocol**。NDP 不仅支持地址解析,还提供了路由器发现、邻居状态跟踪、重复地址检测等功能。以下是 NDP 的工作过程及其主要功能的详细说明:
**2. NDP 的工作过程**
**2.1 路由器发现Router Discovery**
当主机加入网络时它需要发现本地网络中的路由器并获取网络配置信息如前缀、MTU 等)。这个过程通过 **RS****RA** 消息实现。
1. **主机发送 RS 消息**
- 主机发送 **Router SolicitationRS** 消息,请求路由器发送路由器通告。
- RS 消息的目标地址为 **所有路由器多播地址FF02::2**
2. **路由器发送 RA 消息**
- 路由器收到 RS 消息后,发送 **Router AdvertisementRA** 消息。
- RA 消息包含以下信息:
- 网络前缀(用于地址自动配置)。
- 默认路由器的链路层地址。
- MTU最大传输单元
- RA 消息可以定期发送,也可以响应 RS 消息发送。
---
**2.2 地址解析Address Resolution**
当主机需要将 IPv6 地址解析为链路层地址时,使用 **NS****NA** 消息。
1. **主机发送 NS 消息**
- 主机发送 **Neighbor SolicitationNS** 消息,请求目标 IPv6 地址对应的链路层地址。
- NS 消息的目标地址为 **请求节点多播地址Solicited-Node Multicast Address**,格式为 `FF02::1:FFXX:XXXX`,其中 `XX:XXXX` 是目标 IPv6 地址的最后 24 位。
2. **目标主机发送 NA 消息**
- 目标主机收到 NS 消息后,发送 **Neighbor AdvertisementNA** 消息,包含其链路层地址。
- NA 消息的目标地址为请求主机的单播地址。
---
**2.3 邻居状态跟踪Neighbor State Tracking**
NDP 维护一个 **邻居缓存表Neighbor Cache**,用于跟踪邻居的状态。邻居状态包括:
- **INCOMPLETE**:正在解析地址。
- **REACHABLE**:邻居可达。
- **STALE**:邻居状态未知,需要验证。
- **DELAY**:延迟验证。
- **PROBE**:正在验证邻居的可达性。
---
**2.4 重复地址检测Duplicate Address Detection, DAD**
在主机配置 IPv6 地址之前,需要确保该地址在本地链路上是唯一的。这个过程通过 **NS****NA** 消息实现。
1. **主机发送 NS 消息**
- 主机发送 **Neighbor SolicitationNS** 消息,目标地址为待检测的 IPv6 地址。
- 如果收到 **Neighbor AdvertisementNA** 消息,说明地址已被占用。
2. **地址可用**
- 如果没有收到 NA 消息,主机可以安全地使用该地址。
---
**2.5 重定向Redirect**
当路由器发现主机选择的下一跳不是最优路径时,会发送 **Redirect** 消息,通知主机有更好的下一跳地址。
1. **路由器发送 Redirect 消息**
- 路由器发送 **Redirect** 消息,包含更好的下一跳地址。
- 主机更新其路由表,使用新的下一跳地址。
## 路由协议的主要功能是什么?最优路径用在哪里?
路由协议的主要功能是让每个路由器将其已知的子网信息传递给其他路由器。
最优路径用在计算两个设备之间的最优距离
## 如何计算最优路径?
1. 网络可以看成是在生成的加权边图上(generated weighted graph),规划算法为路由器寻找一条最优路径(plan algorithm finds an optimal path for the router.)
2. 一般存在一个成本函数,成本函数会计算包离开网络的代价。离开网络既可以指送到指定设备,也可以是送到对应的运营商(自治系统
## 自适应路由方法的分类?
1. 集中式
2. 分布式
## 路由协议一般使用哪两种方法
1. 自适应距离向量方法
1. **距离向量Distance Vector**:每个路由器维护一个路由表,表中包含到每个目标网络的距离(通常以跳数或成本度量)和下一跳路由器。
2. **自适应Adaptive**:路由器根据网络拓扑的变化动态更新路由表。
2. 自适应链路状态方法
1. **链路状态Link State**:每个路由器维护整个网络的拓扑图,包含所有路由器和链路的状态。
2. **自适应Adaptive**:路由器根据网络拓扑的变化动态更新链路状态数据库。
2025-02-24 23:38:30 +01:00
## 讲一下RIP
## 什么是OSPF
## 什么是BGP
**OSPF**、**RIP** 和 **BGP** 是三种常见的路由协议,分别适用于不同的网络环境和需求。以下是它们的详细说明:
---
## **1. OSPFOpen Shortest Path First**
### **1.1 概述**
- **类型**链路状态路由协议Link-State Routing Protocol
- **适用范围**中大型企业网络、ISP 网络。
- **标准**RFC 2328。
### **1.2 工作原理**
1. **链路状态信息收集**
- 每个路由器通过 **Hello 协议** 发现邻居路由器,并收集链路状态信息(如链路成本、带宽等)。
2. **链路状态广播**
- 每个路由器将收集到的链路状态信息封装成 **链路状态通告LSA, Link State Advertisement**,并广播给整个网络。
- 使用 **泛洪Flooding** 机制确保所有路由器收到 LSA。
3. **链路状态数据库同步**
- 每个路由器维护一个 **链路状态数据库LSDB, Link State Database**,存储整个网络的拓扑信息。
- 通过交换 LSA所有路由器的 LSDB 最终同步。
4. **最短路径计算**
- 每个路由器使用 **Dijkstra 算法** 计算到所有目标网络的最短路径。
- 根据计算结果更新路由表。
5. **区域划分**
- OSPF 支持将网络划分为多个 **区域Area**,以减少路由信息的传播范围。
- **Area 0** 是骨干区域,其他区域必须与 Area 0 直接或间接连接。
### **1.3 特点**
- **快速收敛**:在网络拓扑变化时,路由信息传播较快,收敛速度快。
- **支持分层设计**:通过区域划分减少路由信息的传播范围。
- **计算复杂度高**:需要更多的计算资源和存储空间。
### **1.4 适用场景**
- 中大型企业网络。
- ISP 网络。
---
## **2. RIPRouting Information Protocol**
### **2.1 概述**
- **类型**距离向量路由协议Distance-Vector Routing Protocol
- **适用范围**:小型网络。
- **版本**RIP v1RFC 1058、RIP v2RFC 2453
### **2.2 工作原理**
1. **路由表初始化**
- 每个路由器初始化自己的路由表,记录到直连网络的距离(通常为 0和下一跳路由器。
2. **定期广播路由信息**
- 每个路由器定期(默认 30 秒)向邻居路由器广播自己的路由表。
- 广播的内容包括目标网络和到该网络的距离(跳数)。
3. **更新路由表**
- 路由器收到邻居的路由表后,根据以下规则更新自己的路由表:
- 如果通过邻居到达目标网络的距离更短,则更新路由表。
- 如果邻居的路由表中包含新的目标网络,则添加到自己的路由表中。
4. **路由收敛**
- 通过多次广播和更新,路由表最终收敛到稳定的状态。
### **2.3 特点**
- **简单易实现**:算法简单,适合小型网络。
- **慢收敛问题**:在网络拓扑变化时,路由信息传播较慢,可能导致路由环路。
- **最大跳数限制**RIP 的最大跳数为 15超过 15 跳的网络被视为不可达。
### **2.4 适用场景**
- 小型网络。
- 对路由计算复杂度要求较低的场景。
---
## **3. BGPBorder Gateway Protocol**
### **3.1 概述**
- **类型**路径向量路由协议Path-Vector Routing Protocol
- **适用范围**互联网骨干网、ISP 之间的路由。
- **版本**BGP-4RFC 4271
### **3.2 工作原理**
1. **建立邻居关系**
- BGP 路由器通过 **TCP 连接(端口 179** 建立邻居关系Peer
- 邻居关系可以是 **内部 BGPiBGP****外部 BGPeBGP**
2. **交换路由信息**
- 邻居之间交换 **BGP 更新消息Update Message**,包含目标网络和路径属性(如 AS 路径、下一跳等)。
3. **路径选择**
- 每个 BGP 路由器根据路径属性(如 AS 路径长度、本地优先级等)选择最佳路径。
- 最佳路径被添加到路由表中,并广播给其他邻居。
4. **路由策略**
- BGP 支持灵活的路由策略配置,如路由过滤、路径偏好设置等。
### **3.3 特点**
- **支持大规模网络**BGP 是互联网的核心路由协议,支持大规模路由表。
- **路径向量协议**:通过 AS 路径属性避免路由环路。
- **路由策略灵活**:支持复杂的路由策略配置。
### **3.4 适用场景**
- 互联网骨干网。
- ISP 之间的路由。
- 大型企业网络的多宿主连接。
---
## **4. 三种协议的对比**
| **特性** | **OSPF** | **RIP** | **BGP** |
| -------------- | ------------------------ | ---------- | ---------------------------- |
| **类型** | 链路状态 | 距离向量 | 路径向量 |
| **适用范围** | 中大型企业网络、ISP 网络 | 小型网络 | 互联网骨干网、ISP 之间的路由 |
| **收敛速度** | 快 | 慢 | 中等 |
| **计算复杂度** | 高 | 低 | 高 |
| **路由策略** | 有限 | 无 | 灵活 |
| **典型应用** | 企业内网、ISP 网络 | 小型局域网 | 互联网骨干网 |
---
## **5. 总结**
- **OSPF**:适用于中大型网络,支持分层设计和快速收敛,计算复杂度较高。
- **RIP**:适用于小型网络,简单易实现,但存在慢收敛问题。
- **BGP**:适用于互联网骨干网和 ISP 之间的路由,支持复杂的路由策略,但配置和管理较为复杂。
根据网络规模和需求,可以选择合适的路由协议。
## A200 Address Resolution and Neighbor Discovery (Theorie)
Das RFC 826 definiert das Address Resolution Protocol (ARP). In RFC 4861 wird das Neighbor Discovery Protocol (NDP) spezifiziert. RFC 826 定义了地址解析协议ARP。RFC 4861 规定了邻居发现协议NDP
1. **Wozu wird ARP eingesetzt? Was ist der Unterschied zu NDP?** **ARP 的用途是什么?它与 NDP 的区别是什么?**
My answer: ARP is used to convert the IPv4 Address to Hardware address, i.e. MAC address.
NDP is used in IPv6 protocol
While ARP works by broadcasting requests, NDP uses ICMPv6 messages and **multicast** addresses to achieve more efficient neighbor discovery.
2. **Beschreiben Sie den Aufbau einer ARP-PDU und erläutern Sie die Bedeutung der einzelnen Felder!** **描述 ARP-PDU 的结构并解释各个字段的含义!**
Hardware type 2
protocol type 2
hardware size 1
protocol size 1
op code 2
src_ip: 4
src_hw: 6
dst_ip: 4
dst_hw: 6(ff)
3. **Welche unterschiedlichen ARP-PDUs gibt es? Welche NDP-PDUs gibt es?** **有哪些不同的 ARP-PDUNDP-PDU 又有哪些?**
reply and request
NA NS RS rA
4. **Wie lang (in Bytes) ist eine ARP-PDU in einem Netz in dem IPv4 und Ethernet eingesetzt werden?** **在 IPv4 和以太网网络中ARP-PDU 的长度是多少字节?** 28
5. **Wie lang (in Bytes) ist eine Neighbor Solicitation Nachricht?** **Neighbor Solicitation 消息的长度是多少字节?**
![image-20250224232406578](./assets/image-20250224232406578.png)
6. **Das RFC 826 spricht von einer Tabelle (table), deren Implementierung meist als ARP-Cache bezeichnet wird. Was soll laut RFC mit einer Ethernet-SDU passieren, wenn kein Eintrag zur Ziel-IP-Adresse in der Tabelle gefunden wird?** **RFC 826 提到了一张表table其实现通常称为 ARP 缓存。RFC 规定如果表中没有找到目标 IP 地址的条目,对以太网 SDU 应该怎么处理?**
First, the host broadcast the ARP request packet to every neighbor in the network.
If the host receives the ARP reply packet, add the entry to both sides.
else drop the packet.
### A300 Fragmentierung und IP-Tunneling (Theorie)
i) In wie viele Fragmente wird ein IP-Paket mit Größe 9000 Byte zerlegt, um über ein Ethernet mit MTU = 1500 Byte übertragen zu werden? Geben Sie eine vollständige Rechnung an! 一个大小为 9000 字节的 IP 包在 Ethernet 的 MTU 为 1500 字节的情况下会被分成多少个片段?请提供完整的计算过程!
ii) Nennen Sie drei Gründe dafür, dass Netzbetreiber IP-Fragmentierung in ihren Netzen verbieten. Erläutern Sie diese Gründe! 请列举网络运营商在其网络中禁止 IP 分片的三个原因,并对这些原因进行解释!**Three Reasons Why Network Operators Prohibit IP Fragmentation and Their Explanations**
IP fragmentation occurs when a packet exceeds the Maximum Transmission Unit (MTU) of a network link and must be broken into smaller fragments. Many **network operators prohibit IP fragmentation** due to the following reasons:
**1. Performance Degradation & Increased Overhead**
- Fragmentation increases the number of packets that must be processed, leading to **higher CPU and memory usage** in routers and firewalls.
- Each fragment requires additional headers, increasing **network overhead** and reducing effective data transmission efficiency.
- Reassembly at the destination requires buffer space, which can cause delays and resource exhaustion in high-throughput environments.
**2. Security Risks & Susceptibility to Attacks**
- Fragmentation makes networks vulnerable to **fragmentation-based attacks**, such as **overlapping fragments (Teardrop attack)** and **tiny fragment attacks** used to evade security filters.
- Intrusion Detection Systems (IDS) and firewalls may struggle to inspect fragmented packets, allowing attackers to **bypass security policies** and smuggle malicious payloads.
- Attackers can send fragmented packets with missing fragments, causing **DoS (Denial of Service)** by exhausting resources on the target system waiting for reassembly.
**3. Complications in Path MTU Discovery (PMTUD) & Packet Loss Issues**
- Many modern networks use **Path MTU Discovery (PMTUD)** to dynamically determine the optimal packet size. If fragmentation is allowed, incorrect PMTUD settings can result in persistent retransmissions.
- If a single fragment of a fragmented packet is lost, the entire packet must be retransmitted, leading to **higher packet loss rates** and inefficiencies.
- Some middleboxes (e.g., NAT devices, firewalls) drop fragmented packets, causing unpredictable failures in communication.
### **Conclusion:**
Because of these issues, **network operators often prohibit IP fragmentation and instead rely on techniques like MSS (Maximum Segment Size) adjustment and PMTUD** to ensure efficient packet transmission without fragmentation.
------
**网络运营商在其网络中禁止 IP 分片的三个原因及其解释**
IP 分片IP Fragmentation发生在数据包超过网络链路的 **最大传输单元MTU** 时,需要拆分成多个小片进行传输。许多**网络运营商禁止 IP 分片**的原因如下:
**1. 性能下降 & 额外开销增加**
- 分片会导致 **路由器和防火墙的 CPU 及内存负载增加**,因为它们需要处理更多的小数据包。
- 每个分片都需要附加额外的头部信息,增加了**协议开销**,降低了有效数据传输效率。
- 目标端的 **数据重组** 需要缓冲区buffer在高吞吐量环境下容易造成**延迟**或**资源耗尽**。
**2. 安全风险增加 & 易受攻击**
- 分片容易受到 **基于分片的攻击**,例如**重叠分片攻击Teardrop attack\**和\**微小分片攻击Tiny Fragment Attack**,这些攻击可用于绕过安全检查。
- **入侵检测系统IDS和防火墙** 可能无法正确分析分片数据包,导致攻击者可以绕过安全策略,传输恶意负载。
- 攻击者可以发送 **丢失部分片段的数据包**,导致目标设备的**资源耗尽DoS 攻击)**,因为系统需要长时间等待完整数据包。
**3. PMTUD路径 MTU 发现)问题 & 数据丢失风险**
- 现代网络通常使用 **路径 MTU 发现PMTUD** 机制来动态确定最佳数据包大小,如果允许分片,错误的 PMTUD 配置可能导致**持续的重传**问题。
- 如果 **一个分片丢失**,整个数据包必须重新传输,导致**更高的数据丢失率**和**不必要的网络流量**。
- 一些中间设备(如 **NAT 设备、防火墙**)可能会**直接丢弃**分片数据包,导致通信失败。
iii) Wie wird in modernen TCP/IP-Implementierungen dafür gesorgt, dass Fragmentierung in der Regel nicht erforderlich ist? 在现代的 TCP/IP 实现中,是如何确保通常情况下不需要分片的?
### **How Do Modern TCP/IP Implementations Avoid the Need for Fragmentation?**
Modern TCP/IP implementations use several techniques to **minimize or eliminate IP fragmentation**, ensuring efficient packet transmission. The key mechanisms include:
#### **1. Path MTU Discovery (PMTUD)**
- **PMTUD dynamically determines the maximum packet size** that can be transmitted without fragmentation.
- It works by sending packets with the **Don't Fragment (DF) flag** set. If a router cannot forward the packet due to MTU limitations, it drops the packet and sends an **ICMP "Fragmentation Needed" message** back to the sender.
- The sender then **reduces the packet size** accordingly until it finds a suitable MTU.
- **Drawback:** Some networks block ICMP messages, causing PMTUD to fail.
#### **2. TCP Maximum Segment Size (MSS) Adjustment**
- During the **TCP handshake**, both communicating hosts negotiate the **Maximum Segment Size (MSS)**, which defines the largest payload a TCP segment can carry.
- The MSS is set to ensure that the TCP segment, when combined with headers, does not exceed the MTU.
- This prevents the need for IP fragmentation at the transport layer.
#### **3. IPv6 Enforces No Fragmentation by Routers**
- Unlike IPv4, **IPv6 does not allow routers to fragment packets**. Instead, **only the sender can fragment** based on the discovered MTU.
- IPv6 requires **end-to-end PMTUD**, ensuring that packets fit within the smallest MTU along the path.
- This shifts the responsibility of fragmentation from routers to the sender, improving network efficiency.
#### **4. Datagram Packetization Layer Path MTU Discovery (DPLPMTUD)**
- To address ICMP blocking issues in traditional PMTUD, **DPLPMTUD** uses **probe packets** of increasing sizes to discover the optimal MTU.
- This method is more reliable since it does not rely on ICMP messages.
- Supported in protocols like **QUIC and modern TCP implementations**.
### **Conclusion:**
Modern TCP/IP implementations avoid fragmentation by:
1. **Using PMTUD** to dynamically adjust packet sizes.
2. **Negotiating MSS** in TCP to prevent oversized packets.
3. **Relying on IPv6's no-fragmentation rule** and sender-side control.
4. **Using DPLPMTUD** as an advanced method for MTU discovery.
------
### **在现代的 TCP/IP 实现中,是如何确保通常情况下不需要分片的?**
现代 TCP/IP 实现采用多个技术来**减少或避免 IP 分片**,从而提高数据传输效率。主要方法包括:
#### **1. 路径 MTU 发现PMTUD**
- **PMTUD 负责动态确定数据包的最大可传输大小**,以避免分片。
- 它通过发送 **“不分片DF”标志** 的数据包来测试路径 MTU。
- 如果路由器无法转发该数据包(因为 MTU 限制),它会丢弃数据包并返回 **ICMP “需要分片”** 消息。
- 发送方根据反馈**调整数据包大小**,直到找到合适的 MTU。
- **缺点:**某些网络会屏蔽 ICMP 消息,导致 PMTUD 失败。
#### **2. TCP 最大段大小MSS调整**
-**TCP 握手** 过程中,双方会协商 **最大段大小MSS**,决定 TCP 段的最大有效负载。
- MSS 设定时会确保 TCP 段加上 **IP 和 TCP 头部** 不会超过 MTU。
- 这样可以在 **传输层避免 IP 分片**,确保数据包大小适应网络环境。
#### **3. IPv6 取消路由器分片**
- IPv6 **不允许路由器对数据包进行分片**,只有**发送端**可以执行分片。
- IPv6 依赖 **端到端的 PMTUD**,确保数据包适应最小 MTU。
- 这使得分片的控制权交给发送方,**提升了网络效率**。
#### **4. 数据报分组层路径 MTU 发现DPLPMTUD**
- 传统 PMTUD 依赖 ICMP 消息,但某些网络会**屏蔽 ICMP**,导致失败。
- **DPLPMTUD** 通过发送不同大小的**探测数据包**来测试路径 MTU而不依赖 ICMP。
- 这种方法更可靠,并已在 **QUIC 和现代 TCP 实现** 中得到支持。
### **总结:**
现代 TCP/IP 通过以下方式避免分片:
1. **使用 PMTUD** 动态调整数据包大小。
2. **TCP 通过 MSS 协商**,确保 TCP 段不会超出 MTU 限制。
3. **IPv6 取消路由器分片**,让发送方控制数据包大小。
4. **DPLPMTUD 提供更先进的 MTU 发现机制**,解决 ICMP 屏蔽问题。
### A301 IPv6 (Theorie)
i) Erklären Sie anhand eines Beispiels auf einer Ihrer VMs wie link-local Adressen aus der MAC-Adresse abgeleitet werden! 请结合您虚拟机中的一个示例,解释链路本地地址是如何从 MAC 地址派生的!
1. Split the MAC address into two halves:
- `08:00:27:53:8a:e0``08:00:27` and `53:8a:e0`
2. Insert `FF:FE` in the middle:
- `08:00:27:FF:FE:53:8a:e0`
3. Invert the 7th bit (Universal/Local bit) of the first byte (08):
- Convert `08` to binary: `00001000`
- Flip the **7th bit**: `00001010` (which is `0A` in hex)
- New identifier: **0A:00:27:FF:FE:53:8A:E0**
4.
5. ```
FE80::0A00:27FF:FE53:8AE0
```
ii) Wie implementiert IPv6 „Broadcasts”? IPv6 是如何实现“广播”的?
2025-02-24 23:38:58 +01:00
iii) Welches sind die privaten Adressbereiche in IPv6, analog zu 10.0.0.0/8, 172.16.0.0/12 und 192.168.0.0/16 in IPv4? IPv6 中的私有地址范围与 IPv4 中的 10.0.0.0/8、172.16.0.0/12 和 192.168.0.0/16 对应的是什么?**What Are the Private Address Ranges in IPv6, Equivalent to IPv4's 10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16?**
In **IPv6**, the equivalent of IPv4s private address ranges includes **Unique Local Addresses (ULA)** and **Link-Local Addresses**.
#### **1. Unique Local Addresses (ULA) Equivalent to IPv4 Private Addresses**
- **Address Range:** `FC00::/7` (commonly used as `FD00::/8`)
- **Similar to:** IPv4 **10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16**
- **Purpose:** Used for private networks **without global Internet access**.
- Structure:
```
FC00::/7
```
is divided as:
- `FC00::/8` (reserved, not widely used)
- `FD00::/8` (widely used for private networks)
- The next **40 bits** are a randomly generated "Global ID" to ensure uniqueness.
- The remaining **16 bits** are for subnetting.
Example ULA address:
```
FD12:3456:789A::/48
```
- These addresses are **not routable on the global Internet** but can be used across a large organization.
------
#### **2. Link-Local Addresses Equivalent to IPv4 APIPA (169.254.0.0/16)**
- **Address Range:** `FE80::/10`
- **Similar to:** IPv4 **169.254.0.0/16** (Automatic Private IP Addressing, APIPA)
- **Purpose:** Used for communication **within the same link (network segment)**.
- **Mandatory:** Every IPv6-enabled device **must** have a link-local address.
- **Not Routable:** Cannot be forwarded beyond the local network interface.
- **Automatically Assigned:** The address is generated based on the interface MAC address (Modified EUI-64) or a random value.
Example link-local address:
```
FE80::1a2b:3c4d:5e6f:7g8h/64
```
- Always used in local communication, like **Neighbor Discovery Protocol (NDP) and Router Advertisements (RA)**.
------
### **Comparison: IPv4 Private vs. IPv6 Private**
| **IPv4 Private Address** | **Equivalent IPv6 Address** | **Usage** |
| ------------------------ | --------------------------- | -------------------------------------------- |
| 10.0.0.0/8 | FD00::/8 (ULA) | Private networks |
| 172.16.0.0/12 | FD00::/8 (ULA) | Private networks |
| 192.168.0.0/16 | FD00::/8 (ULA) | Private home/enterprise networks |
| 169.254.0.0/16 (APIPA) | FE80::/10 (Link-Local) | Automatic addressing within the same network |
### **Conclusion**
- **`FD00::/8` (ULA) replaces IPv4 private addresses** (10.x.x.x, 172.16.x.x, 192.168.x.x).
- **`FE80::/10` (Link-Local) replaces IPv4 APIPA** (169.254.x.x) and is used for local communication.
Thus, **IPv6 provides private networking similar to IPv4 but with better uniqueness and flexibility**.
------
### **IPv6 中的私有地址范围,与 IPv4 中的 10.0.0.0/8、172.16.0.0/12 和 192.168.0.0/16 对应的是什么?**
**IPv6** 中,与 **IPv4 私有地址** 对应的主要是 **唯一本地地址ULA****链路本地地址Link-Local Address**
------
#### **1. 唯一本地地址ULA—— 对应 IPv4 私有地址**
- **地址范围:** `FC00::/7`(通常使用 `FD00::/8`
- **类似于:** IPv4 **10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16**
- **用途:** 供**私有网络使用,不能访问互联网**。
- 结构:
```
FC00::/7
```
进一步划分为:
- `FC00::/8`(保留地址,通常不使用)。
- `FD00::/8`(广泛用于私有网络)。
- 接下来的 **40 位** 是随机生成的 “Global ID”以确保不同网络中的 ULA 地址唯一。
- 其余 **16 位** 用于子网划分。
示例 ULA 地址:
```
FD12:3456:789A::/48
```
- **不会在全球互联网路由**,但可以用于大规模企业网络或 VPN 连接。
------
#### **2. 链路本地地址Link-Local Address—— 对应 IPv4 APIPA (169.254.0.0/16)**
- **地址范围:** `FE80::/10`
- **类似于:** IPv4 **169.254.0.0/16**(自动私有 IP 地址APIPA
- **用途:** 仅用于**同一链路(网络段)内的通信**。
- **强制要求:** 每个 IPv6 设备都**必须**拥有一个链路本地地址。
- **不可路由:** 不能跨网络转发,仅用于本地通信。
- **自动分配:** 设备启动时,会根据**接口 MAC 地址EUI-64或随机数**自动生成地址。
示例链路本地地址:
```
FE80::1a2b:3c4d:5e6f:7g8h/64
```
- 常用于**本地通信**,如 **邻居发现协议NDP和路由器通告RA**
------
### **IPv4 私有地址 vs. IPv6 私有地址**
| **IPv4 私有地址** | **对应 IPv6 地址** | **用途** |
| ---------------------- | -------------------- | ------------------ |
| 10.0.0.0/8 | FD00::/8 (ULA) | 私有网络 |
| 172.16.0.0/12 | FD00::/8 (ULA) | 私有网络 |
| 192.168.0.0/16 | FD00::/8 (ULA) | 私有家庭或企业网络 |
| 169.254.0.0/16 (APIPA) | FE80::/10 (链路本地) | 同一局域网自动通信 |
------
### **总结**
- **`FD00::/8`ULA取代 IPv4 私有地址**10.x.x.x, 172.16.x.x, 192.168.x.x
- **`FE80::/10`(链路本地地址)取代 IPv4 APIPA 地址**169.254.x.x用于本地通信。
IPv6 提供了与 IPv4 类似的私有网络方案,但**解决了 IPv4 私有地址冲突的问题,提供更好的唯一性和灵活性**。
2025-02-24 23:38:30 +01:00
iv) Für besondere Zwecke, außer für den privaten Gebrauch, sind noch weitere Bereiche reserviert. Wie teilt sich der IPv6 Addressraum auf? Hinweis: IANA, ignorieren Sie die vom IETF reservierten Bereiche 除了私人用途外还有其他特殊用途的地址范围被保留。IPv6 地址空间如何划分?提示:请参考 IANA并忽略由 IETF 保留的范围。