72 KiB
Das Internet und Autonome Systeme
Das Internet ist ein Verbundnetz, bestehend aus den Netzen vieler verschiedener Betreiber (Unternehmen, Bildungseinrichtungen, Militär, usw), die jeweils eigene, administrativ unabhängige Netze betreiben. 互联网是一个互联网络,由许多不同运营商的网络组成(如企业、教育机构、军队等),这些运营商各自运行独立的行政网络。
Das Verbinden zweier Netze verschiedener Netzbetreiber geschieht meist aus gegenseitigem Nutzen (Rechner in dem einen Netz können mit Rechnern im anderen Netz kommunizieren), oder wirtschaftlichem Interesse. 连接两个不同网络运营商的网络通常是出于互惠的目的(一个网络中的计算机可以与另一个网络中的计算机通信),或者是出于经济利益。
In diesem Zusammenhang nennt man die unabhänigigen administrativen Domänen eines Betreibers Autonome Systeme (AS). 在这种情况下,运营商的独立行政域被称为自治系统(AS)。
Ein AS ist genehmigungspflichtig (bei der Internet Assigned Numbers Authority, IANA) und trägt eine weltweit eindeutige AS-Nummer – diese stellt eine Art Adresse der administrativen Domäne dar. 一个自治系统需要获得批准(由互联网号码分配机构 IANA),并具有一个全球唯一的 AS 编号——这相当于行政域的地址。
Grundsätzlich wird unterschieden, ob es sich bei der Verbindung zweier Netze bzw. AS um eine sogenannte Peering-Beziehung handelt, oder um eine Transit-Beziehung. 原则上,会区分两个网络或自治系统之间的连接是所谓的对等关系(peering relationship),还是传输关系(Transit Relationship)。
Abbildung 3.1(a) zeigt AS-Peering, das den Netzteilnehmern in den Netzen der Peering-Partner Kommunikation in das Netz des anderen Peering-Partners erlaubt. 图 3.1(a) 显示了自治系统对等连接,它允许对等方网络中的参与者与另一个对等方的网络进行通信。
Transit bedeutet die Erlaubnis, Nachrichten durch das Netz eines Betreibers zu vermitteln, auch wenn sie an Endsysteme außerhalb dessen Netz adressiert sind: Das Netz, durch das vermittelt wird dient also als „Durchfahrtstraße”. 传输指的是允许通过一个运营商的网络转发消息,即使这些消息的目标是该网络外部的终端系统:因此,转发的网络充当了“通道”的角色。
In Abbildung 3.1(b) benötigen die beiden äußeren AS ein Transitabkommen mit dem AS 64500, damit ein Datenaustausch zwischen den beiden Endgeräten erfolgen kann. 在图 3.1(b) 中,为了使两个终端设备之间能够进行数据交换,外部的两个自治系统需要与自治系统 64500 达成一个传输协议。
Analog zu privaten IP-Adressen wurden AS-Nummern für private Nutzung (z.B. im Testbetrieb) reserviert, sowie zur Nutzung in Dokumentation: 类似于私有 IP 地址,也为私人用途(例如测试运行)保留了自治系统编号,以及用于文档中的使用:
64512-65534 Designated for private use (Allocated to the IANA) 64512-65534 被指定用于私人用途(分配给 IANA)。
64496-64511 Reserved for use in documentation and sample code [RFC5398] 64496-64511 被保留用于文档和示例代码中 [RFC5398]。
Die Versuche im Praktikum nutzen diese privaten AS-Nummern. 实习中的实验使用了这些私有自治系统编号。
3.1 Vermittlungsschicht (OSI-Schicht3)
Aufbauend auf der Sicherungsschicht (siehe Kapitel 2.2), die dafür zuständig ist Rahmen durch ein LAN zu transportieren, werden mit den Funktionen der Vermittlungsschicht Nachrichten von der Quelle, durch das Transportnetz, bis zum endgültigen Ziel übertragen. 基于数据链路层(参见第2.2章),该层负责通过局域网传输帧,而网络层的功能则是将消息从源头通过传输网络传送到最终目的地。(PS. 网络层的功能应该是负责数据包的路由选择和转发,即决定数据如何从源到达目标。它处理逻辑地址(如IP地址)并决定数据的传输路径。 也就是负责IP地址,路由器,ICMP之类的)
Dabei können Teilnetze durchquert werden, die beliebige Schicht 2 Implementierungen einsetzen. 在此过程中,可以穿越使用任意第二层实现的子网。
Dadurch wird es ermöglicht, Daten zwischen Endpunkten in heterogenen Netzen auszutauschen. 这样便可以在异构网络的端点之间交换数据。
Da die Vermittlungsschicht Datagramme bis zum endgültigen Ziel überträgt, müssen alle Endpunkte über alle Teilnetze hinweg eindeutig adressierbar sein. 由于网络层将数据报传输到最终目的地,所有端点必须在所有子网中都具有唯一的地址。
Mit dem geplanten Einsatzzweck viele Schicht 2 Netze beinhalten zu können, muss bei der Entwicklung von Schicht 3 Protokollen davon ausgegangen werden, dass man mit sehr vielen Teilnehmern zurecht kommen muss, im Gegensatz zu einem einzelnen Schicht 2 Teilnetz. 由于设计目的是能够包含多个第二层网络,在开发第三层协议时,必须假定需要处理大量参与者,而不是仅仅针对单一的第二层子网。
(p.s. 第二层(数据链路层)网络通常通过交换机(Switch)连接多个设备,但它只适用于局域网范围。一旦数据需要离开局域网(跨子网),数据链路层的MAC地址机制不再适用。
第三层(网络层)协议(如IP)需要考虑的网络环境通常是由多个第二层网络组成的复杂网络体系。每个第二层网络(子网)可以使用不同的硬件技术或协议(如以太网、Wi-Fi等)。第三层数据包中使用逻辑地址(如IP地址),而不是物理地址(MAC)。第三层还提供路由功能,使得数据包可以通过多个中间网络到达目标。
第二层网络通常只需支持局域范围的少量设备,但第三层网络可能需要支持全球范围的大量设备)
Zwei Hauptaufgaben der Schicht 3 sind also eine globale (netzweite), eindeutige Adressierung aller möglicher Endpunkte und die Verschattung der zugrunde liegenden Übertragungstechniken. 因此,第三层的两个主要任务是对所有可能的端点进行全局(网络范围内)的唯一地址分配,以及屏蔽底层的传输技术。
Protokolle höherer Schichten müssen sich dadurch nicht mehr mit Anzahl, Art und Topologie der Komponenten des Transportnetzes befassen. 这使得更高层的协议无需再关心传输网络中组件的数量、类型和拓扑结构。
3.1.1 Fragmentierung 分片
Oft wird die maximale Länge einer Schicht-N-PDU durch die darunter liegende Schicht beschränkt. 通常,某一层的PDU(协议数据单元)的最大长度会受到其下层的限制。
Auf dem Weg zwischen Sender und Empfänger durchquert ein Datagramm (Schicht-3-PDU) häufig verschiedene Subnetze bzw. LANs, deren Schicht-2-PDUs unterschiedliche maximale Längen für Nutzdaten zulassen. 在从发送方到接收方的传输过程中,一个数据报(第三层PDU)通常会穿越多个子网或局域网,而这些第二层PDU允许的有效载荷最大长度各不相同。
Ein Datagramm gegebener Größe muss daher in kleinere Fragmente aufgeteilt werden, jedesmal wenn ein Subnetz passiert werden soll, dessen MTU (engl. Maximum Transmission Unit) kleiner ist, als die Größe des Datagramms. 因此,当一个数据报经过某个子网且该子网的MTU(最大传输单元,Maximum Transmission Unit)小于数据报的大小时,必须将数据报分割成更小的片段。
Ethernet (ohne Erweiterungen) erlaubt z.B. bis zu 1500 Bytes Nutzdaten pro Rahmen. 例如,以太网(不带扩展)每个帧最多允许1500字节的有效载荷。
Fragmentierung von IP-Paketen IP 数据包的分片
Wird ein IP-Paket fragmentiert, so sind die entstehenden Fragmente ebenfalls IP-Pakete. 当一个 IP 数据包被分片时,生成的每个片段也是一个 IP 数据包。
Im IP-Header eines jeden Fragments bestimmt das Fragment Offset-Feld die Position der Daten (in Einheiten von 64-Bit) im ursprünglichen IP-Paket. 在每个片段的 IP 头中,分片偏移字段(Fragment Offset)指示数据在原始 IP 数据包中的位置(以 64 位为单位)。
Das more-Flag zeigt an, dass auf ein Fragment ein weiteres Fragment folgt. more 标志表示该片段后面还有其他片段。
Bis auf das letzte Fragment hat jedes Fragment das more-Flag im Header gesetzt. 除了最后一个片段,所有片段的头部都设置了 more 标志。
Mit Hilfe des Fragment Offset-Felds und dem more-Bit kann ein Empfänger der Fragmente diese wieder zusammensetzen und ggf. das ursprüngliche IP-Paket weiterleiten. 接收方可以借助分片偏移字段和 more 位将这些片段重新组装,并在必要时转发原始 IP 数据包。
3.1.2 Tunneling 隧道技术
Tunneling ist eine weitere Methode um ein logisches Netz in einem vorhandenen Netz zu implementieren. 隧道技术是另一种在现有网络中实现逻辑网络的方法。
Eine ähnliche Technik haben Sie mit VLANs im vorherigen Abschnitt kennengelernt. 在上一节中,您已经了解了类似的技术,例如 VLAN。
Im Gegensatz zu VLANs, die eine logische Topologie mit mehreren Endpunkten auf einen physischen Aufbau aufbringen, zielen Tunnel darauf ab, eine direkte (logische) Verbindung zwischen zwei Endpunkten zu erstellen. 与 VLAN 不同,VLAN 将多端点的逻辑拓扑映射到物理结构上,而隧道技术的目标是创建两个端点之间的直接(逻辑)连接。
Dabei wird das Netz (oder auch mehrere Netze) zwischen den Endpunkten zu einer virtuellen Leitung abstrahiert. 通过这种方式,端点之间的网络(或多个网络)被抽象为一条虚拟的通信线路。
Durch diese Technik können Teilnetze transparent zusammengeschaltet werden. 通过这种技术,子网可以透明地连接起来。
Sie wird häufig eingesetzt, um entfernte Standorte in ein internes Firmennetz zu integrieren oder mobilen Endgeräten mit Internetzugang Zugriff auf die internen Ressourcen zu ermöglichen. 它常用于将远程地点集成到公司的内部网络中,或者为具有互联网接入的移动设备提供访问内部资源的权限。
Abbildung 3.2 zeigt ein IP-Paket, das vom Rechner „Sender” an „Empfänger” gesendet wird. 图 3.2 显示了一个从计算机“发送方”发送到“接收方”的 IP 数据包。
Bis zum ersten Router A wird das IP-Paket als Nutzdaten, beispielsweise innerhalb eines Ethernet-Rahmens, transportiert. 在到达第一个路由器 A 之前,IP 数据包作为有效载荷被传输,例如在一个以太网帧中。
Router A behandelt das IP-Paket wie Nutzdaten einer höheren Schicht: er erstellt ein äußeres IP-Paket, schreibt unser ursprüngliches Paket in das Nutzdatenfeld des äußeren IP-Pakets und vermittelt das äußere Paket weiter auf dem Pfad zu Router B. 路由器 A 将 IP 数据包视为更高层的有效载荷:它创建一个外部 IP 数据包,将原始数据包写入外部 IP 数据包的有效载荷字段,并沿着路径将外部数据包转发到路由器 B。
Dieser stellt das ursprüngliche IP-Paket dem Empfänger zu. 路由器 B 将原始 IP 数据包传递给接收方。
Das Netz zwischen den Routern A und B wird dabei aus Sicht unseres (inneren) IP-Pakets zu einer direkten Verbindung – einem Tunnel – abstrahiert. 在我们(内部)IP 数据包的视角中,路由器 A 和 B 之间的网络被抽象为一个直接的连接——一个隧道。
3.2 Internet Protocol Version 6 IPv6
Seit der Einführung von IPv4 in den 1980er Jahren haben sich die Anforderungen an das Protokoll verändert. 自20世纪80年代 IPv4 推出以来,对该协议的需求发生了变化。
Dies spiegelt sich in nachträglichen Änderungen und Anpassungen wieder. 这反映在协议的后续修改和调整中。
Zum Beispiel wurde die Bildung von Subnetzen Jahre nach der Veröffentlichung von [RFC 791] (IPv4) mit [RFC 1519] (CIDR) verändert. 例如,在 [RFC 791](IPv4)发布多年后,[RFC 1519](CIDR)改变了子网的划分方式。
Durch das stetige Wachstum der Anzahl an Endgeräte im Internet und die hierarchische Aufteilung von IP-Adressen beinhaltet der 32-Bit Adressraum von IPv4 nicht genug Adressen für den Bedarf im Internet. 由于互联网中终端设备数量的不断增长以及 IP 地址的层级划分,IPv4 的 32 位地址空间无法满足互联网的需求。
Der 128-Bit Adressraum von IPv6 ist ein wesentlicher Grund für dessen Entwicklung als designierter Nachfolger von IPv4. IPv6 的 128 位地址空间是其作为 IPv4 指定继任者开发的一个重要原因。
Als eigenständige Neuentwicklung konnte IPv6 ([RFC 2460]) von den Erfahrungen mit IPv4 profitieren. 作为一项独立的新开发,IPv6([RFC 2460])能够从 IPv4 的经验中获益。
So wurde IPv6 mit vielen Funktionen und Eigenschaften entwickelt, mit der Absicht Probleme von IPv4 zu lösen und die Erweiterung des Protokolls zu erleichtern. 因此,IPv6 被开发为具有许多功能和特性,旨在解决 IPv4 的问题并简化协议的扩展。
Einige der wichtigsten Eigenschaften von IPv6 sind: IPv6 的一些主要特性包括:
1. 128-Bit Adressen 128 位地址
IPv6-Adressen sind 128-Bit lang und werden hierarchisch in Subnetze aufgeteilt. IPv6 地址长度为 128 位,并按层次结构划分为子网。
Eine IPv6-Adresse setzt sich aus einer 64-Bit langen Subnetz-ID und einer 64-Bit langen Host-ID zusammen. 一组 IPv6 地址由 64 位的子网 ID 和 64 位的主机 ID 组成。
Die Größe des Adressraums für Host-IDs erlaubt es (weltweit) eindeutige Host-IDs zu vergeben. 主机 ID 地址空间的大小允许分配全球唯一的主机 ID。
Dafür sieht die ursprüngliche IPv6-Spezifikation einen entsprechenden Algorithmus zur automatischen Generierung von Host-IDs vor. 为此,最初的 IPv6 规范规定了一种自动生成主机 ID 的相应算法。
Das Ziel war die eindeutige Identifizierung eines Hosts unabhängig von der Subnetz-ID und damit von dem Teilnetz, indem sich ein Host befindet, zu machen. 目标是使主机能够独立于子网 ID,从而独立于主机所在的子网,进行唯一标识。
Besonders für mobile Endgeräte ist dies ein relevanter Aspekt, denn diese können häufig von einem (Funk-)Netz in ein anderes wechseln. 这一点对移动终端尤为重要,因为它们经常从一个(无线)网络切换到另一个网络。
Unter Anderem ist es hier für die Abrechnung (siehe Abschnitt „Abrechnungs-Management”) wichtig, mobile Endgeräte über Subnetze hinweg eindeutig identifizieren zu können. 此外,为了计费(参见“计费管理”部分),能够跨子网唯一标识移动设备是非常重要的。
Heute ist man von dem Gedanken der eindeutigen Adressierung zum Schutz der Privatsphäre der Benutzer abgekommen, allerdings ist die technische Möglichkeit nach wie vor gegeben. 如今,为了保护用户隐私,人们已经摒弃了唯一地址分配的想法,但这种技术上的可能性仍然存在。
2. Feste Header-Länge und Header-Extensions 固定头长度与头扩展
Für die Vermittlung einer Nachricht ist es wichtig die Länge des IP-Headers zu kennen, da dieser eventuell relevante Informationen für die Vermittlung auf Schicht 3 enthält. 在消息传输中,了解 IP 头的长度非常重要,因为它可能包含第三层传输相关的重要信息。
Der IPv6-Ansatz sieht einen Header fester Länge vor, der durch Header-Extensions um zusätzliche Informationen erweitert werden kann. IPv6 的方法采用固定长度的头部,可以通过头扩展添加额外的信息。
Zu diesem Zweck ist im IPv6-Header das Feld „Next-Header” vorgesehen (siehe Abbildung 3.3). 为此,IPv6 头中引入了“Next-Header”(下一个头)字段(见图 3.3)。
Dies ermöglicht es den IPv6-Header nur bei Bedarf um Funktionen zu erweitern. 这使得 IPv6 头可以根据需要扩展功能。
Außerdem kann IPv6 zu einem späteren Zeitpunkt leicht durch das Definieren neuer Header-Extensions erweitert werden. 此外,通过定义新的头扩展,IPv6 在后续阶段可以轻松实现扩展。
Das erste Feld einer jeden Header-Extension ist ein Next-Header-Feld. 每个头扩展的第一个字段都是一个 Next-Header 字段。
Auf diese Art und Weise können Header-Extensions kombiniert werden. 通过这种方式,可以组合多个头扩展。
IPsec wurde ursprünglich als [RFC 2401] eingeführt, um bereits auf der Ebene der Vermittlungsschicht Daten verifizieren und verschlüsseln zu können. IPsec 最初作为 [RFC 2401] 引入,用于在网络层验证和加密数据。
IPsec wurde komplett in IPv6 übernommen und kann mittels Header-Extensions eingesetzt werden. IPsec 完全被整合到 IPv6 中,并可以通过头扩展来使用。
Autoconfiguration 自动配置
Unter dem Stichwort Autoconfiguration werden mehrere Funktionen und Eigenschaften von IPv6 zugefasst. 在“自动配置”这一主题下,IPv6 包含了多种功能和特性。
Ein prominenter Vertreter aus dieser Kategorie ist das automatische Generieren der Host-ID, zum Beispiel (aber nicht unbedingt!) aus der MAC-Adresse. 此类别中一个典型的功能是自动生成主机 ID,例如(但不一定是)基于 MAC 地址生成。
Des weiteren implementiert IPv6 Gültigkeitsbereiche (engl. Scopes) von IP-Adressen. 此外,IPv6 实现了 IP 地址的有效范围(Scopes)。
Die hier relevanten Scopes sind „link-local” und „global”. 这里相关的范围是“链路本地”(link-local)和“全局”(global)。
IP-Adressen deren Scope link-local ist werden nicht geroutet. 范围为“链路本地”的 IP 地址不会被路由。
Aus einem im Standard definierten Präfix und der automatisch generierten Host-ID erhält jede Schnittstelle, auf der IPv6 eingesetzt wird, eine eindeutige link-local IP-Adresse. 基于标准中定义的前缀和自动生成的主机 ID,每个使用 IPv6 的接口都会获得一个唯一的链路本地 IP 地址。
3.2.1 Adressen 地址
IPv6-Adressen werden als Folge von 16 Bit langen Segmenten notiert. IPv6 地址以一系列 16 位长的段表示。
Jedes der acht Segmente wird als Hexadezimalzahl aufgeschrieben, wobei je zwei Segmente (Oktettenpaare) durch einen Doppelpunkt ’:’ getrennt werden, zum Beispiel die Adresse 1080:0:0:0:8:800:200C:417A. 八个段中的每一个都用十六进制数字表示,每两个段(八位字节对)之间用冒号‘:’分隔,例如地址 1080:0:0:0:8:800:200C:417A。
Aufgrund des großen Adressraums kommen oft Bereiche einer Adresse vor, in denen mehrere aufeinanderfolgende Oktettenpaare den Wert null haben. 由于地址空间很大,IPv6 地址中经常会出现多个连续的八位字节对值为零的区域。
Zugunsten einer verkürzten Schreibweise darf (höchstens einmal) eine Folge von Nullen zu zwei aufeinanderfolgenden Doppelpunkten ’::’ verkürzt werden. 为了简化书写(但最多仅允许一次),一串连续的零可以缩写为两个连续的冒号‘::’。
Die Anzahl der Null-Oktette, die so repräsentiert werden kann, offensichtlich aus der festen Länge einer Adresse und den ausdrücklich angegebenen Oktetten abgeleitet werden. 通过地址的固定长度和明确指定的八位字节数,可以明显推导出以这种方式表示的零八位字节的数量。
z.B: 例如:
nicht verkürzt 1080:0:0:0:8:800:200C:417A 未缩写:1080:0:0:0:8:800:200C:417A
verkürzt 1080::8:800:200C:417A 缩写后:1080::8:800:200C:417A
Aufbau einer Adresse 地址的结构
Die Abkehr von Netzklassen, wie sie ursprünglich in IPv4 verwendet wurden, eröffent neue Möglichkeiten für die Strukturierung von IP-Adressen, insbesondere für die Subnetz-ID. 放弃最初在 IPv4 中使用的网络类别,为 IP 地址的结构化带来了新的可能性,特别是在子网 ID 的设计方面。
Die Struktur von IPv6-Adressen ist dahingehend gestaltet, den organisatorischen Gegebenheiten im Internet gerecht zu werden: es werden seitens verschiedener Organisationen Kern- und Transitnetze betrieben, sowie Zugangsnetze und lokale Netze. IPv6 地址的结构旨在适应互联网中的组织需求:不同的组织运行核心网络、传输网络,以及接入网络和本地网络。
Dies wird abgebildet auf eine dreistufige Adresshierarchie. 这体现在一个三级地址层次结构中。
Abbildung 3.4 zeigt die Aufteilung einer Aggregatable Global Unicast Address in Segmente, die aus der Adresshierarchie abgeleitet werden. 图 3.4 展示了一个可聚合的全球单播地址如何根据地址层次结构划分为不同的段。
Die ersten 48 Bit der Adresse bezeichnen die Public Topology (insbesondere die Felder TLA und NLA), zum Beispiel Transitnetze. 地址的前 48 位表示公共拓扑(尤其是 TLA 和 NLA 字段),例如传输网络。
Die zweite Hierarchietufe ist die Site Topology (SLA-Feld), die standortbezogene Adressierung bezweckt. 第二层是站点拓扑(SLA 字段),用于实现与站点相关的地址分配。
Die dritte Hierarchiestufe wird durch den Interface Identifier repräsentiert. 第三层由**接口标识符(Interface Identifier)**表示。
Diese entspricht am ehesten der aus IPv4 bekannten Host-ID. 这一部分最接近于 IPv4 中的主机 ID。
Spezielle Adressen 特殊地址
Auch bei IPv6 sind bestimmte Adressen bzw. Präfixe mit besonderer Bedeutung belegt, unter anderem gibt es Festlegungen für eine nicht definierte Adresse für eine Schnittstelle, einer loopback-Adresse und privaten Adressen. 在 IPv6 中,某些地址或前缀也被赋予了特殊的含义,其中包括未定义的接口地址、回环地址以及私有地址的指定。
nicht definiert 0:0:0:0:0:0:0:0 (bzw.
::0
)loopback 0:0:0:0:0:0:0:1 (bzw.
::1
)private Adressen Private Adressen sind solche, die nicht im Internet vermittelt werden. Dazu gehören bei IPv4 beispielsweise die Adressen des 10.-Netzes. Bei IPv6 gehören dazu auch die sogenannten link-local-Adressen, mit dem 10-Bit-Präfix 1111111010 bzw. das Subnetz FE80::/10. 私有地址 私有地址是指那些不会在互联网上路由的地址。例如,在 IPv4 中包括 10. 网络的地址。 在 IPv6 中,这些还包括所谓的链路本地地址(link-local 地址),其 10 位前缀为 1111111010,或子网 FE80::/10。
3.2.2 Hilfsprotokolle 辅助协议
Auch für IPv6 benötigt man bestimmte Funktionen, die in Hilfsprotokollen implementiert werden. IPv6 也需要通过辅助协议实现某些功能。
Die bekannten Funktionen der (IPv4-)Hilfsprotokolle ARP und ICMP sind in ICMPv6 ([RFC 4443]) konsolidiert. IPv4 辅助协议 ARP 和 ICMP 的已知功能被整合到 ICMPv6 ([RFC 4443]) 中。
Die Neuauflage war notwendig, da IPv6 subtile konzeptionelle Unterschiede zu IPv4 aufweist. 重新设计是必要的,因为 IPv6 与 IPv4 在概念上存在细微的差异。
Zum Beispiel geht IPv6 von Punkt-zu-Punkt Verbindungen auf Schicht 2 aus, während ARP für den Betrieb in einem Broadcast-Netz erforderlich ist. 例如,IPv6 假设在第二层是点对点连接,而 ARP 需要在广播网络中运行。
Infolgedessen ist z.B. die Auflösung IP-Adresse zu MAC-Adresse bei IPv6 deutlich komplexer. 因此,例如在 IPv6 中将 IP 地址解析为 MAC 地址的过程明显更加复杂。
Des weiteren implementiert ICMPv6 Funktionen aus dem Bereich Autoconfiguration, der erst mit IPv6 eingeführt wurde. 此外,ICMPv6 实现了自动配置功能,该功能是随 IPv6 引入的。
Hier gibt es Überschneidungen mit den Funktionen von DHCP. 这与 DHCP 的功能有部分重叠。
Deshalb muss auch das DHCP-Protokoll angepasst werden um mit IPv6 zusammen zu arbeiten. 因此,DHCP 协议也必须进行调整以与 IPv6 协同工作。
Analog zu ICMP heißt die IPv6 Variante des DHCP-Protokolls DHCPv6 ([RFC 3315]). 与 ICMP 类似,DHCP 协议在 IPv6 中的变体称为 DHCPv6 ([RFC 3315])。
Zum Beispiel beinhaltet ICMPv6 „Router Advertisements”, mit deren Hilfe Client-Rechner automatisch eine globale (geroutete) IPv6-Adresse und eine Default-Route erhalten. 例如,ICMPv6 包含“路由器通告”(Router Advertisements),通过它,客户端计算机可以自动获取全局(可路由的)IPv6 地址和默认路由。
Dies sind typische Eigenschaften, die bei IPv4 nur über DHCP zugewiesen werden (können). 这些是 IPv4 中只能通过 DHCP 分配的典型特性。
3.2.3 Koexistenz von IPv4 und IPv6 IPv4 和 IPv6 的共存
Seit geraumer Zeit wird die Umstellung des (gesamten) Internet auf die Version 6 von IP beschworen; tatsächlich findet diese Umstellung jedoch nur dort statt, wo ein akuter Bedarf an freien IP-Adressen (z.B. in asiatischen Ländern) besteht, oder bestimmte Eigenschaften von IPv6 zwingend erforderlich werden. 长期以来,人们呼吁将整个互联网切换到 IPv6。然而,这种切换实际上仅发生在需要大量可用 IP 地址的地方(例如亚洲国家),或在某些情况下 IPv6 的特性是必需的。
Daher ist für die nächste Zeit eine Koexistenz der beiden Protokollversionen abzusehen. 因此,在未来的一段时间内,IPv4 和 IPv6 两个协议版本将共存。
Um eine Kompatibilität zwischen IP-Netzen und -Hosts zu gewähren, obwohl diese mit verschiedenen IP-Versionen arbeiten, existieren mehrere prinzipielle Ansätze: 为了在使用不同 IP 版本的 IP 网络和主机之间实现兼容性,存在几种基本方法:
-
Dual-Stack: Knoten besitzen sowohl IPv4- als auch IPv6-Implementierung. 双栈:节点同时支持 IPv4 和 IPv6 的实现。
-
Tunneling: Kapselung von Paketen im tunnelnden Protokoll, d.h. IPv6-Verkehr über IPv4-Netz bzw. IPv4-Verkehr über IPv6-Netz. 隧道技术:在隧道协议中封装数据包,例如通过 IPv4 网络传输 IPv6 流量,或通过 IPv6 网络传输 IPv4 流量。
-
Herausforderungen: Management des Tunnels (Erstellung, Abbau), Umgang mit Fragmenten 挑战:隧道的管理(建立与拆除),以及对分片的处理。
-
Übersetzung von IPv4/IPv6-PDU in die jeweils andere Protokollversion.Diese Übersetzung kann in Übergangsknoten/Router geschehen, bzw. in Programmbibliotheken (APIs zur Netzprogrammierung) des Betriebssystems. 将 IPv4/IPv6 的 PDU 转换为另一种协议版本的格式。这种转换可以在过渡节点/路由器中完成,也可以在操作系统的程序库(网络编程 API)中实现。
3.3 Routing-Verfahren 路由方法
In Netzen mit vielen Routern und einer großen Anzahl von Verbindungen in andere Netze ist es sehr aufwändig Routing-Tabellen manuell zu verwalten. 在拥有许多路由器和大量连接到其他网络的网络中,手动管理路由表非常繁琐。
Zur Erleichterung setzt man Routing-Protokolle ein, die Router den Austausch von Informationen ermöglicht, insbesondere Routen. 为了简化这一过程,人们使用路由协议,使路由器能够交换信息,尤其是路由信息。
Indem Router „Wissen” über erreichbare Ziele austauschen, können Routing-Tabellen automatisch erstellt und aktualisiert werden. 通过路由器交换关于可达目标的“知识”,路由表可以被自动创建和更新。
Adaptive Routing-Verfahren zeichnen sich dadurch aus, dass sie sich dem Zustand des Netzes anpassen. 自适应路由方法的特点是能够根据网络的状态进行调整。
Durch den Einsatz von Routing-Protokollen erhält ein Router ereignis- oder zeitgesteuert aktuelle Informationen über die Erreichbarkeit entfernter Netzsegmente. 通过使用路由协议,路由器可以根据事件或时间周期获取远程网络段的最新可达性信息。
Router nutzen diese Informationen um die eigene Routing-Tabelle zu ergänzen oder zu modifizieren. 路由器利用这些信息来更新或修改自身的路由表。
Dadurch „lernen” Router Pfade in entfernte Netzsegmente und können auf Veränderungen in der Topologie reagieren. 因此,路由器可以“学习”到达远程网络段的路径,并对拓扑结构的变化作出响应。
Unter den adaptiven Routing-Verfahren wird zwischen zentralen und verteilten Verfahren unterschieden. 在自适应路由方法中,区分了集中式和分布式方法。
Bei zentralen Verfahren erhalten Router Informationen von fest definierten Stationen, während bei verteilten Routing-Verfahren die Router als gleichgestellte Einheiten (engl. peers) interagieren. 在集中式方法中,路由器从固定的站点获取信息;而在分布式路由方法中,路由器作为对等实体(peers)进行交互。
Die im folgenden dargestellten Verfahren sind verteilte Verfahren und werden daher auf jedem Router ausgeführt. 以下描述的方法是分布式方法,因此在每台路由器上执行。
Heute verwenden die meisten Routing-Protokolle das adaptive Distanz-Vektor Verfahren oder das adaptive Link-State Verfahren. 目前,大多数路由协议使用自适应距离向量方法或自适应链路状态方法。
3.3.1 Optimale Pfade最优路径
Die Hauptfunktion von Routing-Protokollen besteht darin, dass jeder Router Information über die ihm bekannten Subnetze anderen Routern mitteilt, so dass Rechner aus unterschiedlichen Subnetzen interagieren können. 路由协议的主要功能是让每个路由器将其已知的子网信息传递给其他路由器,从而使不同子网的计算机能够相互通信。
Dabei ist eine wichtige Herausforderung die Ermittlung eines optimalen Pfades zu jedem Subnetz. 其中一个重要的挑战是为每个子网确定一条最优路径。
Mit einer Kostenfunktion werden die Transitkosten für jede Verbindung zwischen zwei benachbarten Routern festgelegt. 通过成本函数,确定两个相邻路由器之间每条连接的传输成本。
Auf dem resultierenden Graphen mit gewichteten Kanten (wobei die Knoten des Graphen Router im Netz sind und die Kanten Leitungen zwischen den Routern) sucht ein Planungsalgorithmus einen optimalen Pfad zu jedem Subnetz. 在生成的加权边图上(图的节点是网络中的路由器,边是路由器之间的线路),规划算法为每个子网寻找一条最优路径。
Kostenfunktionen dienen dazu den Planungsalgorithmus zu beeinflussen. 成本函数用于影响规划算法。
Eine Nachricht die sich im Transitnetz befindet belegt Ressourcen in Routern und Switches. 处于传输网络中的消息会占用路由器和交换机的资源。
Da diese Ressourcen meist sehr begrenzt sind, wird die Kostenfunktion häufig so gewählt, dass eine Nachricht so schnell wie möglich das Transitnetz verlässt. 由于这些资源通常非常有限,成本函数通常会选择使消息尽快离开传输网络的方式。
Eine Nachricht verlässt das Transitnetz entweder durch direkte Zustellung an den Adressaten oder indem sie in ein Netz eines anderen Betreibers weitergeleitet wird. 消息离开传输网络的方式可以是直接送达接收者,也可以是转发到另一个运营商的网络中。
Beispiele für Kostenfunktionen sind „Anzahl Hops”, d.h. die Anzahl der Zwischenschritte, oder die summierte Latenz der Leitungen auf einem Pfad. 成本函数的示例包括“跳数”(即中间步骤的数量)或路径上所有线路的总延迟。
3.3.2 Distanz-Vektor Verfahren 距离向量方法
Beim Distanz-Vektor Verfahren (DV) erstellt jeder Router eine Liste aller erreichbaren Ziele und die zugehörigen Kosten für den Transit. 在距离向量方法(DV)中,每个路由器会创建一个所有可达目标及其传输成本的列表。
Indem benachbarte Router ihre Listen austauschen, „lernen” sie Pfade zu allen Zielen, die über ihre Nachbarn erreicht werden können. 通过相邻路由器交换列表,它们可以“学习”到通过邻居到达所有目标的路径。
Der zugrunde liegende Algorithmus für das Distanz-Vektor Verfahren ist der Bellman-Ford oder Ford-Fulkerson Algorithmus. 距离向量方法的基础算法是 Bellman-Ford 算法或 Ford-Fulkerson 算法。
Ein Router kennt und interagiert nur mit seinen direkten Nachbarn. 一个路由器仅了解并与其直接邻居交互。
Ein Ziel wird entweder direkt, oder über einen der Nachbarn erreicht. 目标可以直接到达,也可以通过某个邻居到达。
Die für das Verfahren benötigten Informationen über erreichbare Ziele erhält ein Router aus seiner Routing-Tabelle. 路由器从其路由表中获取关于可达目标的信息,这是该方法所需的数据来源。
Die Kosten werden über eine Kostenfunktion ermittelt. 成本通过成本函数计算得出。
Ein einfaches Beispiel einer Kostenfunktion für das Distanz-Vektor Verfahren ist die Anzahl der Zwischenschritte (oder Entfernung, engl. distance), mit der ein Rechner im Zielnetz erreicht werden kann. 距离向量方法的一种简单成本函数示例是中间步骤的数量(或距离),表示到达目标网络的计算机需要经过的跳数。
Direkt erreichbare Netze erhalten einen Wert von 0 für die „Kosten” der Erreichbarkeit, da keine Zwischenschritte benötigt werden. 直接可达的网络其到达成本为 0,因为不需要任何中间步骤。
Die Kosten der indirekt erreichbaren Ziele entspricht der Länge des Pfades (Anzahl vermittelnder Router) zum Zielnetz. 间接可达目标的成本等于到达目标网络的路径长度(即中间路由器的数量)。
Die vollständige Liste mit Routing-Informationen wird an alle direkten Nachbarn geschickt. 完整的路由信息列表会发送给所有直接的邻居。
Empfängt ein Router Routing-Informationen, vergleicht er deren Inhalt mit der eigenen Routing-Tabelle und den darin gespeicherten Kosten. 当一个路由器接收到路由信息时,它会将其内容与自己的路由表及其中存储的成本进行比较。
Ziele, die noch keinen Eintrag in der eigenen Routing-Tabelle haben, werden ergänzt. 对于尚未在自己的路由表中记录的目标,将添加新条目。
Da die Informationen von einem direkten Nachbarn stammen, werden die Kosten (Distanz) um eins erhöht, bevor ein Eintrag in die eigene Routing-Tabelle eingefügt wird. 由于这些信息来自直接邻居,在将条目插入自己的路由表之前,成本(距离)会增加 1。
Existiert bereits ein Eintrag in der Routing-Tabelle entscheidet der Router anhand der Kosten, ob der Eintrag in der Routing-Tabelle ersetzt oder beibehalten wird. 如果路由表中已经存在相应的条目,路由器会根据成本决定是否替换或保留该条目。
Bei dieser Entscheidung wird stets der Pfad mit weniger Zwischenschritten bevorzugt. 在做出决定时,总是优先选择跳数较少的路径。
Abbildung 3.5 zeigt ein Netz aus Routern, die ein Distanz-Vektor Verfahren einsetzen. 图 3.5 展示了一个使用距离向量方法的路由器网络。
In diesem Beispiel schicken nur die beiden direkt benachbarten Router Informationen an router0. 在此示例中,只有两个直接相邻的路由器向 router0 发送信息。
3.3.3 Link-State Verfahren 链路状态方法
Ein Router, der das Link-State Verfahren einsetzt, berechnet optimale Pfade zu jedem Ziel, z.B. mit dem Dijkstra Algorithmus. 使用链路状态方法的路由器会计算到每个目标的最优路径,例如使用 Dijkstra 算法。
Dazu ist es notwendig, dass jeder Router die gesamte Topologie kennt. 为此,每个路由器都需要了解完整的网络拓扑结构。
Teilnehmende Router erstellen eine Liste mit allen direkt erreichbaren Zielen und mit allen benachbarten Routern. 参与的路由器会创建一个列表,列出所有直接可达的目标和所有邻近的路由器。
Mit einer Kostenfunktion werden die Kosten für den Transit zu benachbarten Routern bestimmt. 通过成本函数来确定到邻近路由器的传输成本。
Ein Beispiel für eine Kostenfunktion ist die Round Trip Time zwischen den Routern. 成本函数的一个示例是路由器之间的往返时间(RTT)。
Für die Vermittlung zu den Zielen werden keine Kosten festgelegt. 对于到目标的路由,不会定义成本。
Die gesammelten Informationen werden an alle anderen Router verteilt. 收集到的信息会分发给所有其他路由器。
Die hierzu ausgetauschten Nachrichten werden link state advertisements (LSA) genannt. 这些交换的信息被称为链路状态通告(LSA)。
Aus den LSAs erstellt jeder Router einen Graphen mit gewichteten Kanten und berechnet für sich die günstigsten Pfade zu allen Zielen. 基于这些 LSA,每个路由器创建一个带权重边的图,并为自己计算到所有目标的最优路径。
Abbildung 3.6 zeigt ein Netz aus Routern, die ein Link-State Verfahren einsetzen. 图 3.6 展示了一个使用链路状态方法的路由器网络。
In diesem Beispiel schicken alle teilnehmenden Router Informationen an router0. 在此示例中,所有参与的路由器都会向 router0 发送信息。
Link-State Verfahren benötigen im Vergleich mit Distanz-Vektor Verfahren deutlich mehr Interaktion zwischen den Routern und Ressourcen zur Berechnung der optimalen Pfade. 与距离向量方法相比,链路状态方法需要显著更多的路由器间交互和资源来计算最优路径。
Mit diesen Nachteilen erhält man die Vorteile, dass Pfadberechnungen mit allen Informationen und unabhängig voneinander erfolgen. 尽管存在这些缺点,但优点是路径计算基于所有信息且彼此独立进行。
Dadurch sind mit Link-State Verfahren berechnete Pfade immer optimal, während beim Distanz-Vektor Verfahren Pfade iterativ, durch den Austausch von Routing-Informationen, zu optimalen Pfaden konvergieren. 因此,链路状态方法计算的路径总是最优的,而距离向量方法的路径是通过迭代和交换路由信息逐渐收敛到最优路径的。
3.3.4 Inter-AS-Routing 跨自治系统路由
Zwischen Autonomen Systemen werden Wegewahlverfahren eingesetzt, die politische oder wirtschaftliche Interessen der Betreiber berücksichtigen. 自治系统之间的路由选择方法会考虑运营商的政治或经济利益。
Standardmäßig wird dabei das Border Gateway Protocol ([RFC 4271]) eingesetzt, das mittels eines sogenannten Pfadvektor-Verfahrens (ähnlich dem Distanz-Vektor-Verfahren) Datenverkehr zwischen autonomen Systemen leitet. 默认情况下,使用边界网关协议(BGP,[RFC 4271]),通过所谓的路径向量方法(类似于距离向量方法)引导自治系统之间的数据流量。
Routing-Protokolle, die zwischen autonomen Systemen eingesetzt werden nennt man EGP (Exterior Gateway Protocol, BGP ist ein wichtiger Vertreter für EGP); sie ermitteln Pfade zwischen sogenannten Border Routern. 在自治系统之间使用的路由协议称为外部网关协议(EGP),BGP 是 EGP 的重要代表;这些协议负责在所谓的边界路由器之间寻找路径。
Border Router unterscheiden sich dahingehend von „normalen” Routern, dass Border Router über mindestens eine logische Verbindung in ein anderes AS verfügen. 边界路由器与“普通”路由器的不同之处在于,边界路由器至少具有一个与另一个自治系统的逻辑连接。
Andere Router sind lediglich für die Vermittlung innerhalb eines AS zuständig. 其他路由器仅负责自治系统内部的路由中继。
Kosten-„Metriken” bei EGP sind meist monetär, z.B. EUR/Datenvolumen oder aber durch Regeln mit vertraglichem Hintergrund vorgegeben. EGP 的成本“指标”通常是货币化的,例如每数据量的欧元成本,或者由合同规定的规则决定。
Routing-Protokolle, die innerhalb AS benutzt werden, nennt man IGP (Interior Gateway Protocol, z.B. RIP, OSPF). 在自治系统内部使用的路由协议被称为内部网关协议(IGP),例如 RIP、OSPF。
Die Border Router geben Informationen, die sie durch ein EGP gelernt haben mittels IGP an die inneren Router weiter. 边界路由器将通过 EGP 学到的信息通过 IGP 转发给内部路由器。
Ob und welche Routen wirklich zwischen EGP und IGP ausgetauscht werden bleibt der Konfiguration der Router überlassen. 是否以及哪些路由会在 EGP 和 IGP 之间交换,取决于路由器的配置。
Durch die Unterscheidung zwischen EGP und IGP entsteht eine Routing-Hierarchie. 通过区分 EGP 和 IGP,形成了路由层次结构。
Während IGPs meist darauf ausgerichtet sind kürzeste Wege zu wählen, berücksichtigen EGPs andere, nicht-technische Aspekte. IGP 通常旨在选择最短路径,而 EGP 则考虑其他非技术性因素。
3.3.5 FRRouting Suite FRRouting 套件
FRRouting (FRR) ist ein GPL-lizenziertes Software-Paket, das Implementierungen verschiedener Routingprotokolle, wie z.B. RIP, OSPF und BGP bereitstellt. FRRouting (FRR) 是一个基于 GPL 许可的软件包,提供了多种路由协议的实现,例如 RIP、OSPF 和 BGP。
Die Kernkomponente ist der zebra-Dienst, der als Schnittstelle zum Betriebssystem dient. 其核心组件是 zebra 服务,它充当操作系统的接口。
Für jedes in FRR enthaltene Routing-Protokoll existiert ein eigenes Programm (daemon), etwa ripd für RIP, ospfd für OSPF usw. 对于 FRR 中包含的每个路由协议,都有一个单独的程序(守护进程),例如 RIP 的 ripd、OSPF 的 ospfd 等。
Jeder Daemon bzw. Dienst kann über eine Kommandozeile (genannt „vty”) administriert werden, die sich an der Bedienung anderer Routing-Programme orientiert. 每个守护进程或服务都可以通过一个命令行(称为“vty”)进行管理,其操作方式类似于其他路由程序。
Damit nicht jeder Dienst separat verwaltet werden muss, existiert zusätzlich das Werkzeug „vtysh”, über das alle Prozesse gemeinsam administriert werden können. 为了避免每个服务需要单独管理,还提供了一个工具“vtysh”,可以用来统一管理所有进程。
In der Datei /etc/frr/daemons
konfiguriert man welche Dienste beim Start von FRR aktiviert werden.
在文件 /etc/frr/daemons
中可以配置启动 FRR 时需要激活的服务。
zebra=yes
bgpd=no
ospfd=yes
ospf6d=no
ripd=no
ripngd=no
Um FRR und die damit verknüpften Dienste zu starten oder anzuhalten verwendet man den Befehl: 要启动或停止 FRR 及其关联服务,可以使用以下命令:
FRR starten:
# /etc/init.d/frr start
FRR anhalten:
# /etc/init.d/frr stop
Eine ausführliche Dokumentation der FRRouting Suite, über die darin enthaltenen Dienste und deren Konfiguration, finden Sie unter [WWW 18]. 有关 FRRouting 套件、其中包含的服务及其配置的详细文档,请参阅 [WWW 18]。
vtysh
Nach dem Aufruf von vtysh befindet man sich auf der gemeinsamen Konsole aller aktivierten Routing-Dienste.
调用 vtysh
后,用户会进入所有已启用路由服务的统一控制台。
Dort kann man sich jederzeit durch die Eingabe von ?
eine Liste der möglichen Befehle anzeigen lassen:
在控制台中,可以随时通过输入 ?
查看所有可用命令的列表:
vtysh# ?
enable Turn on privileged mode command
exit Exit current mode and down to previous mode
list Print command list
ping Send echo messages
quit Exit current mode and down to previous mode
show Show running system information
...
Dies ist insbesondere bei teilweise eingegebenen Befehlen hilfreich. 这对于部分输入的命令特别有帮助。
Wenn man bereits einen Teil des Befehls eingegeben hat und mit einem ?
(Fragezeichen) abschließt, werden alle weiteren Optionen angezeigt, die statt dem ?
stehen können:
如果已经输入了命令的一部分并以 ?
(问号)结尾,将显示所有可能的后续选项:
vtysh# show ip ?
...
bgp BGP information
ospf OSPF information
rip Show RIP routes
...
Es gibt verschiedene VTY Modi: VTY 有多种模式:
- View-Modus: Erlaubt nur lesenden Zugriff auf die Konfiguration des Routers. 查看模式:仅允许读取路由器配置。
- Enable-Modus: Erlaubt sowohl lesenden als auch schreibenden Zugriff. 启用模式:允许读取和修改配置。
Nach dem Aufruf von vtysh
befindet man sich im View-Modus.
调用 vtysh
后,系统会默认进入查看模式。
Mit dem Kommando enable
wechselt man in den Enable-Modus.
使用命令 enable
可以切换到启用模式。
Mit disable
kehrt man zurück in den View-Modus.
使用命令 disable
可以返回到查看模式。
Möchten Sie die Konfiguration anpassen, so müssen Sie zunächst in den Configuration Mode wechseln. 如果需要修改配置,必须先切换到 配置模式(Configuration Mode)。
In den Configuration Mode gelangen Sie durch den Aufruf von configure terminal
.
通过输入命令 configure terminal
可以进入配置模式。
Nun stehen Ihnen weitere Befehle zur Verfügung. 在配置模式中,您可以使用更多命令。
Beispielsweise können Sie jetzt mit interface eth1
in den Konfigurationsmodus für das Interface eth1
wechseln und dort wiederum z.B. die IP-Adresse ändern.
例如,您可以通过 interface eth1
切换到接口 eth1
的配置模式,并在那里修改 IP 地址。
Mit dem Befehl exit
verlassen Sie den aktuellen Modus und kehren zum vorherigen zurück.
使用命令 exit
可退出当前模式并返回到上一级模式。
Die Wirkung von Befehlen, die eine Funktion aktivieren oder deaktivieren, können Sie durch Voranstellen von no
umkehren.
通过在命令前加 no
,可以撤销启用或禁用某个功能的效果。
Die gesamte Abfolge um z.B. die IP-Adresse von Interface eth1 zu ändern sieht so aus:
以下是修改接口 eth1
的 IP 地址的完整步骤:
(1) router1# vtysh
(2) router1-vtysh# enable
(3) router1-vtysh# configure terminal
(4) router1-vtysh(config)# interface eth1
(5) router1-vtysh(config-if)# ip address 10.0.0.1/8
(6) router1-vtysh(config-if)# exit
(7) router1-vtysh(config)# exit
(8) router1-vtysh# exit
Erklärung
- vtysh starten: 打开
vtysh
工具。 - Enable Mode aktivieren: 激活启用模式(如果尚未激活)。
- Konfigurationsmodus aktivieren: 进入配置模式。
- Interface-Konfigurationsmodus starten: 进入接口
eth1
的配置模式。 - IP-Adresse ändern: 设置新的 IP 地址,例如
10.0.0.1/8
。 - Interface-Konfigurationsmodus verlassen: 退出接口配置模式。
- Konfigurationsmodus deaktivieren: 退出配置模式。
- vtysh beenden: 关闭
vtysh
。
Neben der interaktiven Konfiguration über vtysh
können sämtliche Einstellungen auch in Konfigurationsdateien verwaltet werden.
除了通过 vtysh
进行交互式配置,还可以通过配置文件管理所有设置。
Diese befinden sich standardmäßig im Verzeichnis /etc/frr/
und werden mit <daemonname>.conf
benannt, also z.B. ripd.conf
.
这些配置文件默认存放在 /etc/frr/
目录下,文件名格式为 <守护进程名>.conf
,例如 ripd.conf
。
Wenn Sie FRRouting über vtysh
konfiguriert haben, können Sie mit dem Befehl write file
die entsprechenden Konfigurationsdateien automatisch erstellen lassen.
如果通过 vtysh
进行了 FRRouting 配置,可以使用命令 write file
自动生成相应的配置文件。
ripd
Die meisten Befehle zur Konfiguration des ripd
erreichen Sie vom Konfigurationsmodus aus durch den Befehl router rip
.
配置 ripd
的大多数命令可以通过配置模式中的命令 router rip
访问。
Als minimale Konfiguration wird nur eine Angabe benötigt, auf welchen Interfaces RIP aktiviert werden soll. 最小配置只需指定在哪些接口上启用 RIP。
Dies geschieht durch den Befehl:
network <IFNAME>|<IP-PREFIX>
- : 指定接口名称(例如
eth1
)。 - : 指定 IP 前缀(例如
10.6.0.0/16
)。
Letzteres bezieht alle Interfaces mit ein, die sich im angegebenen Adressbereich befinden. 如果使用 IP 前缀,将包含所有属于指定地址范围内的接口。
Beispiel
router rip
network eth1
network 10.6.0.0/16
- 这段配置表示在接口
eth1
上启用 RIP,同时对 IP 前缀10.6.0.0/16
范围内的所有接口启用 RIP。
ospfd
Die Basiskonfiguration des ospfd
verläuft analog zum ripd
.
ospfd
的基础配置与 ripd
类似。
Konfigurationsbefehle
Die grundlegenden Befehle sind:
router ospf
network <IP-PREFIX> area <AREA>
<IP-PREFIX>
: 指定 IP 前缀,例如192.168.1.0/24
。<AREA>
: 指定区域编号,对于常见用途,可以使用0
。
Beispiel
router ospf
network 192.168.1.0/24 area 0
network 10.0.0.0/8 area 0
- 这段配置在
192.168.1.0/24
和10.0.0.0/8
的网络范围内启用 OSPF,并将它们分配到区域0
.
bgpd
Um den bgpd
zu administrieren, geben Sie im Konfigurationsmodus den Befehl router bgp <AS-NUMMER>
ein, wobei Sie als AS-Nummer die Nummer Ihres autonomen Systems ersetzen.
要管理 bgpd
,可以在配置模式下输入命令 router bgp <AS-NUMMER>
,其中 <AS-NUMMER>
是您的自治系统编号。
Hinzufügen von Nachbarn (Peers)
Fügen Sie Border-Router anderer autonomer Systeme als Nachbarn hinzu mit dem Befehl:
neighbor <IP-ADRESSE> remote-as <AS-NUMMER>
<IP-ADRESSE>
: 指定邻居路由器的 IP 地址。<AS-NUMMER>
: 指定邻居自治系统的编号。
Angeben von Netzwerken
Mit dem Befehl network <IP-PREFIX>
geben Sie an, für welches Netz Ihr Router als Border-Router fungiert.
通过 network <IP-PREFIX>
命令指定您的路由器作为边界路由器所负责的网络。
Achtung: Der network
Befehl im BGP hat eine andere Semantik!
注意:在 BGP 中,network
命令的语义不同于其他协议。
Gewichtung von Nachbarn
Mit dem Befehl:
neighbor <IP-ADRESSE> weight <GEWICHT>
können Sie einem Nachbarn ein Gewicht zuordnen. 可以为某个邻居分配权重。
<GEWICHT>
: 指定权重值。权重值越高,该邻居在路由选择时的优先级越高。
Beispielkonfiguration
router bgp 65001
neighbor 192.168.0.2 remote-as 65002
neighbor 192.168.0.3 remote-as 65003
network 10.0.0.0/8
neighbor 192.168.0.2 weight 200
neighbor 192.168.0.3 weight 100
- 此配置将自治系统
65001
的路由器设置为 BGP 边界路由器。 - 添加了两个邻居:IP 为
192.168.0.2
(AS65002
)和 IP 为192.168.0.3
(AS65003
)。 - 指定
10.0.0.0/8
为本路由器负责的网络。 - 为邻居
192.168.0.2
分配了更高的权重(200),因此优先选择通过它的路径。
3.4 Aufgaben
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 分片的三个原因,并对这些原因进行解释!
iii) Wie wird in modernen TCP/IP-Implementierungen dafür gesorgt, dass Fragmentierung in der Regel nicht erforderlich ist? 在现代的 TCP/IP 实现中,是如何确保通常情况下不需要分片的?
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 地址派生的!
ii) Wie implementiert IPv6 „Broadcasts”? IPv6 是如何实现“广播”的?
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 对应的是什么?
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 保留的范围。
A302 Fragmentierung und Tunneling
i) Legen Sie den Pfad (pc1, router1, router4, router3, router2, pc2) an, so dass Nachrichten zwischen pc1 und pc2 vermittelt werden und zeigen Sie mittels traceroute, dass die Nachrichten entlang dieses Pfades vermittelt werden! 配置路径 (pc1, router1, router4, router3, router2, pc2),使得 pc1 和 pc2 之间的消息通过此路径传递,并通过 traceroute 验证消息沿该路径传递!
ii) Bestimmen Sie mittels ip die MTU der genutzten Schnittstellen! Erstellen Sie für die Ausarbeitung eine Tabelle mit den Spalten: Rechnername, Schnittstelle, IP-Adresse, MTU. 使用 ip 命令确定使用的接口的 MTU!为实验创建一个表格,列出以下列:主机名、接口、IP 地址、MTU。
iii) Beschränken Sie nun mittels ip die MTU von router3.eth3 auf 1000 Bytes und die MTU von router4.eth3 auf 1100 Bytes! 现在使用 ip 命令将 router3.eth3 的 MTU 限制为 1000 字节,将 router4.eth3 的 MTU 限制为 1100 字节!
iv) Beschreiben Sie das Verhalten der Rechner, wenn Sie IP-Nachrichten mit 1200 Bytes Nutzdaten von pc1 an pc2 schicken! Nutzen Sie ping um Nachrichten dieser Größe zu erzeugen. Achten Sie darauf, dass ping das Don’t Fragment Flag setzt. 描述当从 pc1 向 pc2 发送 1200 字节有效载荷的 IP 消息时计算机的行为!使用 ping 生成此大小的消息,并确保 ping 设置了 Don’t Fragment 标志。
v) Wiederholen Sie den ping-Versuch ohne gesetztes Don’t Fragment Flag. Wie verändert sich der Datenfluss im Vergleich zum vorherigen Versuch? 在未设置 Don’t Fragment 标志的情况下重复 ping 测试。与之前的测试相比,数据流有何变化?
vi) Weisen Sie dem Interface router3.eth3 eine beliebige IPv6 Adresse zu. Ist der Vorgang erfolgreich? Wenn nein, was ist die Ursache? Ziehen sie hierzu auch die beschriebenen Rahmenbedingungen aus [RFC 2460] in Betracht. 为接口 router3.eth3 分配一个任意 IPv6 地址。该操作是否成功?如果不成功,原因是什么?请参考 [RFC 2460] 中描述的条件。
vii) Konfigurieren Sie einen IP-Tunnel zwischen router1 und router2 und konfigurieren Sie die Systeme so, dass sämtliche IP-Nachrichten zwischen pc1 und pc2 durch den Tunnel übertragen werden! 在 router1 和 router2 之间配置一个 IP 隧道,并将系统配置为通过该隧道传输 pc1 和 pc2 之间的所有 IP 消息!
Hinweis: Benutzen Sie einen GRE-Tunnel, den Sie mit dem Programm ip einrichten. Hintergrundinformation zu GRE (Generic Routing Encapsulation) lesen Sie bitte in [RFC 2784] vor Durchführung des Versuchs nach; zur praktischen Nutzung finden Sie die Dokumentation in der Manpage ip-tunnel (8). 提示:使用 ip 程序配置一个 GRE 隧道。请在实验前查阅 [RFC 2784] 中的 GRE(通用路由封装)背景信息;实际使用的文档请参阅 ip-tunnel (8) 的手册页。
viii) Zeigen Sie mit traceroute, dass alle Nachrichten durch den Tunnel übertragen werden! 使用 traceroute 验证所有消息通过隧道传输!
ix) Vergleichen Sie die von traceroute angegebenen Zwischenstationen aus den vorangegangenen Versuchen. Nennen Sie alle Unterschiede! 比较 traceroute 在之前测试中显示的中间站点,并列出所有差异!
x) (Freiwillig) Fangen Sie mit Hilfe von tcpdump ein Paket ab, das den Tunnel gerade „betritt” bzw. „verlässt” und analysieren Sie die gekapselte Headerstruktur. Welche Unterschiede zwischen den Header-Daten des inneren versus denen des äußeren IP-Paketes stellen Sie fest? (可选)使用 tcpdump 捕获一个刚刚“进入”或“离开”隧道的数据包,并分析其封装的头部结构。您发现内部 IP 数据包与外部 IP 数据包头部数据有何不同?
Hinweis: Beim Arbeiten mit tcpdump kann es nötig sein den Detailgrad der Ausgabe (-v) oder die Mitschnitt-Größe der Pakete (-s) anzupassen. Für eine komfortablere Auswertung kann man zunächst die Rohdaten in eine Datei umleiten (-w). In diesem Fall erzeugt tcpdump keine Ausgaben mehr. Die Datei mit Rohdaten können Sie anschließend mit Wireshark auswerten. 提示:使用 tcpdump 时可能需要调整输出的详细程度(-v)或包的捕获大小(-s)。为了方便分析,可以先将原始数据重定向到文件(-w)。随后,可以使用 Wireshark 分析该文件中的原始数据。
A303 IPv6
i) Entfernen Sie alle IPv4-Adressen von den Schnittstellen eth{1,2,3,4} auf allen Routern! 从所有路由器的接口 eth{1,2,3,4} 中移除所有 IPv4 地址!
ii) Bilden Sie das Netz aus Abbildung 3.7 nach! Verwenden Sie DHCPv6-PD (prefix delegation) um ihr Netz hierarchisch aufzuteilen mit router3 als Zentrum. (Hinweis: /etc/config/{network,dhcp}, siehe OpenWrt-Dokumentation) Beachten Sie, dass . . . 按照图 3.7 构建网络!使用 DHCPv6-PD(前缀委派)以 router3 为中心对网络进行分层划分。(提示:参考 /etc/config/{network,dhcp},请查看 OpenWrt 文档)注意以下几点……
- Sie IPv6-Adressen aus den Bereichen 2001:db8:hGruppennummeri::/48 und fc00:dead:beef:hGruppennummeri::/52 verwenden! (Die ersten 48 Bits sind gesetzt, Bits 48 bis 52 ersetzen Sie durch Ihre Gruppennummer, die restlichen Bits stehen zu Ihrer freien Verfügung.) 使用地址范围 2001:db8:hGruppennummeri::/48 和 fc00:dead:beef:hGruppennummeri::/52 的 IPv6 地址!(前 48 位已固定,位 48 到 52 替换为您的组号,剩余位自由分配。)
- Die Router IPv6-Pakete zwischen ihren Schnittstellen vermitteln! 路由器需在其接口之间传递 IPv6 数据包!
- ping-Anfragen zwischen allen Routern vermittelt werden! Fügen Sie die Routing-Tabellen Ihrer Router in Ihre Ausarbeitung ein. 路由器之间需能传递 ping 请求!在实验报告中包含路由器的路由表。
iii) Konfigurieren Sie Ihre Router so, dass die PCs automatisch IPv6-Adressen mit Ihrem Präfix erhalten. Erläutern Sie anhand von geeigneten Aufzeichnungen den Vorgang wie pc1 und pc2 eine globale IPv6-Adresse erhalten! Betrachten Sie auch die Kommunikation zwischen router3 und router{1,2}. 配置路由器,使 PC 自动获得带有您前缀的 IPv6 地址。通过适当的记录说明 pc1 和 pc2 获取全局 IPv6 地址的过程!还需分析 router3 与 router{1,2} 之间的通信。
iv) Passen Sie die Routing-Konfigurationen von router1, router2 und router3 an, so dass IPv6-Pakete zwischen pc1 und pc2 vermittelt werden. Sind manuelle Änderungen daran notwendig? Zeigen Sie mittels traceroute6 (8) den Pfad von IPv6-Paketen zwischen pc1 und pc2! 调整 router1、router2 和 router3 的路由配置,使 pc1 和 pc2 之间的 IPv6 数据包得以传递。是否需要手动修改?使用 traceroute6 (8) 显示 pc1 和 pc2 之间 IPv6 数据包的路径!
v) Konfigurieren Sie einen ip4ip6-Tunnel zwischen router1 und router2, so dass IPv4-Pakete von pc1 an pc2 (und zurück!) per IPv6 zwischen den Routern vermittelt werden! Zeigen Sie, dass Ihre Konfiguration funktioniert und IPv4-Pakete tatsächlich in IPv6 gekapselt werden. 在 router1 和 router2 之间配置一个 ip4ip6 隧道,使得 pc1 到 pc2(及返回)的 IPv4 数据包通过 IPv6 在路由器之间传递!验证您的配置是否生效,并显示 IPv4 数据包确实被封装到 IPv6 中。
A304 Distanz-Vektor Routing mit RIP
i) Vernetzen Sie die Router wie folgt: router1–router2–router4–router3, deaktivieren Sie alle anderen Verbindungen zwischen den Routern! Vergeben Sie passende Subnetze und IP-Adressen aus Ihrem Gruppennetz 10.hGruppennummeri.0.0/16, legen Sie keine manuellen Routen an! 按照以下拓扑连接路由器:router1–router2–router4–router3,禁用路由器之间的所有其他连接!从您的组网络 10.hGruppennummeri.0.0/16 中分配合适的子网和 IP 地址,不要设置手动路由!
ii) Erstellen Sie die Konfigurationsdatei /etc/frr/ripd.conf! Die Syntax entnehmen Sie der Dokumentation. Hinweis: Auf Debian können Sie auch Beispielkonfigurationen in /usr/share/doc/frr/examples finden. Zeilen, die mit ! anfangen, sind Kommentare. 创建配置文件 /etc/frr/ripd.conf!语法参考文档提示:在 Debian 系统中,您也可以在 /usr/share/doc/frr/examples 找到示例配置文件。以 “!” 开头的行是注释。
iii) Passen Sie die Datei /etc/frr/daemons an und starten Sie die Dienste zebra und ripd nacheinander auf Ihren Routern! (/etc/init.d/frr start) Hinweis: starten Sie zuerst beide Dienste auf router1, dann auf router2, usw. usf.
调整文件 /etc/frr/daemons,并依次在路由器上启动 zebra 和 ripd 服务!使用命令 /etc/init.d/frr start
。提示:首先在 router1 上启动两个服务,然后依次启动 router2 等。
iv) Beobachten Sie auf router1.eth2 die ein- und ausgehenden RIP-PDUs! Zeigen Sie die Zwischenschritte in denen router1 sein Wissen über die Infrastruktur vervollständigt! 在 router1.eth2 上观察进入和发出的 RIP-PDU!展示 router1 完善其基础设施知识的各个中间步骤!
v) Machen Sie sich mit vtysh vertraut. Benutzen Sie vtysh um sich die Routing-Tabelle für router1 anzeigen zu lassen! Welche Bedeutung hat das Feld „From”? 熟悉 vtysh。使用 vtysh 查看 router1 的路由表!字段 “From” 的含义是什么?
vi) Aktivieren Sie die Verbindung router1-router3 und zeigen Sie die Zwischenschritte, bis sich die Routingtabellen von router2 und router4 an den neuen Zustand angepasst haben! 启用 router1 和 router3 之间的连接,展示 router2 和 router4 的路由表调整到新状态的所有中间步骤!
vii) Deaktivieren Sie router1.eth1, um einen Verbindungsausfall zu simulieren! Beobachten Sie das Verhalten der Router! 禁用 router1.eth1,以模拟连接中断!观察路由器的行为!
a) Welches Verhalten der Router ist nach [RFC 1058] zu erwarten, um das über router1.eth1 erreichbare Subnetz aus den Routing-Tabellen zu entfernen? 根据 [RFC 1058],路由器应如何表现以将通过 router1.eth1 可达的子网从路由表中移除?
b) Welches Verhalten der Router ist tatsächlich zu beobachten? Welche Technik wird eingesetzt um das nun nicht mehr erreichbare Subnetz aus den Routing-Tabellen zu entfernen? Zeigen Sie die entsprechenden PDUs der Router! 实际观察到的路由器行为是什么?使用了什么技术将不再可达的子网从路由表中移除?展示路由器的相关 PDU!
A305 Link-State Routing mit OSPF
i) Stellen Sie den Zustand aus A304, i) wieder her. Deaktivieren Sie FRR auf allen Routern! 恢复 A304 中 i) 的状态。禁用所有路由器上的 FRR 服务!
ii) Erstellen Sie die Konfigurationsdatei /etc/frr/ospfd.conf! Die Syntax entnehmen Sie der Dokumentation](https://docs.frrouting.org/en/latest/ospfd.html).
创建配置文件 /etc/frr/ospfd.conf
!语法参考相关文档。
iii) Passen Sie die Datei /etc/frr/daemons an und starten Sie zebra und ospfd nacheinander! Hinweis: zuerst beide Dienste auf router1, dann router2, usw. usf.
调整文件 /etc/frr/daemons
并依次启动 zebra 和 ospfd 服务!提示:先在 router1 上启动两个服务,然后依次启动 router2 等。
iv) Beobachten Sie die ein- und ausgehenden OSPF-PDUs auf router1.eth2! Beschreiben Sie die Zwischenschritte, in denen router1 sein Wissen über die Infrastruktur vervollständigt! 在 router1.eth2 上观察进入和发出的 OSPF-PDU!描述 router1 完善其基础设施知识的各个中间步骤!
v) Aktivieren Sie die Verbindung router1-router3. Beschreiben Sie die Zwischenschritte, bis sich die Routingtabellen von router2 und router4 an den neuen Zustand angepasst haben! Belegen Sie Ihre Erklärung mit entsprechenden Programmausgaben! 启用 router1 和 router3 之间的连接。描述 router2 和 router4 的路由表调整到新状态的所有中间步骤!通过相关程序输出验证您的解释。
vi) Deaktivieren Sie router1.eth1, um einen Verbindungsausfall zu simulieren! Erläutern Sie den Unterschied zwischen RIP und OSPF in der Art und Weise wie der Verbindungsausfall an andere Router propagiert wird! 禁用 router1.eth1,以模拟连接中断!说明 RIP 和 OSPF 在传播连接中断信息到其他路由器的方式上的区别!
A306 Autonome Systeme und BGP
i) Stellen Sie sicher, dass Sie Adressen aus Ihrem Subnet (10.hGruppei.0.0/16) verwenden. Ihre Infrastruktur bildet das Autonome System mit der Nummer 65000 + hGruppei. 确保使用您子网 (10.hGruppei.0.0/16) 中的地址。您的基础设施组成一个编号为 65000 + hGruppei 的自治系统。
ii) Für diese Aufgabe werden vom Lehrstuhl zwei weitere Maschinen bereitgestellt, Gruppe11 (Odd, AS 65011) und Gruppe12 (Even, AS 65012). Auf diesen Maschinen ist BGP bereits konfiguriert. Abhängig von ihrer Gruppennummer können Sie allerdings nur mit einer der Maschinen direkt kommunizieren. Ihr Ziel ist es mittels BGP eine Route in das Subnet der anderen Maschine zu bekommen. 对于此任务,学院提供了两台额外的机器:Gruppe11 (Odd, AS 65011) 和 Gruppe12 (Even, AS 65012)。这些机器已经配置了 BGP。根据您的组号,您只能直接与其中一台机器通信。您的目标是通过 BGP 获取到另一台机器子网的路由。
Stellen Sie mit Hilfe eines GRE-Tunnels eine Verbindung zu der Maschine her. Verwenden Sie als Endpunkte die Adresse von router1 an eth0 und die globale IP-Adresse der Zielmaschine. Achten Sie darauf, dass eine TTL > 3 verwendet wird. Hinweis: Sie können auf die selbe Weise eine Verbindung zu anderen Gruppen herstellen. 使用 GRE 隧道连接到目标机器。将 router1 的 eth0 地址和目标机器的全局 IP 地址用作隧道的端点。确保使用 TTL > 3。提示:您可以通过相同的方式与其他组建立连接。
iii) Konfigurieren Sie Router1 als Border Router Ihres Autonomen Systems. Vermitteln Sie mit dem Border Router am anderen Ende des Tunnels. Dieser hat die IP-Adresse 10.11.0.hIhre Gruppei bzw. 10.12.0.hIhre Gruppei. Hinweis: Definieren Sie Host-Routen. 将 router1 配置为您自治系统的边界路由器。通过隧道连接的另一端边界路由器进行中继。其 IP 地址为 10.11.0.hIhre Gruppei 或 10.12.0.hIhre Gruppei。提示:定义主机路由。
iv) Passen Sie die OSPF-Konfiguration von Ihren Routern so an, dass die über BGP gelernten Routen auch den anderen Routern im jeweiligen Netz mitgeteilt werden. Hinweis: Sie können dazu entweder mit vtysh arbeiten, oder die Datei /etc/frr/ospfd.conf anpassen. Die Befehle hierzu finden sich in der Dokumentation zur FRR-Suite. 调整路由器的 OSPF 配置,使通过 BGP 学到的路由也能够传递给各自网络中的其他路由器。提示:您可以使用 vtysh 或修改文件 /etc/frr/ospfd.conf。相关命令可以在 FRR 套件文档中找到。
v) Zeigen Sie mit traceroute den Weg einer Nachricht von Ihrem PC3 zu 10.11.2.100 und 10.12.2.100. Über welche AS und welche Router wird die Nachricht vermittelt? 使用 traceroute 显示从 PC3 到 10.11.2.100 和 10.12.2.100 的消息路径。消息通过了哪些自治系统和路由器?
vi) Angenommen, der Lehrstuhl verlangt hohe Gebühren für den Transit Ihrer Nachrichten. Konfigurieren Sie Ihren Router1 so, dass über dieses AS nur vermittelt wird, wenn keine andere Verbindung zur Verfügung steht. Optional: Weisen Sie nach, das Ihre Konfiguration funktioniert, indem Sie mit den andern Gruppen kommunizieren und den Transit über diese abwickeln. 假设学院对您的消息传输收取高额费用。将 router1 配置为仅在没有其他连接可用时才通过该自治系统中继。可选:通过与其他组通信并使用其传输来验证您的配置是否有效。
vii) Konfigurieren Sie nun Router4 anstatt Router1 als BGP-Router Ihres AS, wobei die externen AS weiterhin an Router1 angeschlossen bleiben. Erläutern Sie anhand Ihrer Beobachtungen, inwiefern sich die beiden Szenarien unterscheiden. Theorie: Nennen Sie mindestens 2 Gründe, die für ein solches Szenario sprechen würden. 现在将 router4 配置为您自治系统的 BGP 路由器,而外部自治系统仍然连接到 router1。根据您的观察,说明这两种场景有何不同。 理论:列出至少两个支持这种场景的理由。
Appendix
Mathematical Explanation of the Fragmentation Process
Definitions of Symbols
- StotalS_{\text{total}}: Total size of the IP packet (in bytes), Stotal=9000S_{\text{total}} = 9000.
- SheaderS_{\text{header}}: Size of the IP header (in bytes), Sheader=20S_{\text{header}} = 20.
- SMTUS_{\text{MTU}}: Size of the MTU (in bytes), SMTU=1500S_{\text{MTU}} = 1500.
- Sdata_per_fragmentS_{\text{data_per_fragment}}: Maximum data size per fragment (in bytes).
- NfragmentsN_{\text{fragments}}: Total number of fragments.
Calculation Steps
-
Maximum data size per fragment
Sdata_per_fragment=SMTU−SheaderS_{\text{data_per_fragment}} = S_{\text{MTU}} - S_{\text{header}}
Substituting values:
Sdata_per_fragment=1500−20=1480 bytesS_{\text{data_per_fragment}} = 1500 - 20 = 1480 \text{ bytes}
-
Total size of the data section
Sdata_total=Stotal−SheaderS_{\text{data_total}} = S_{\text{total}} - S_{\text{header}}
Substituting values:
Sdata_total=9000−20=8980 bytesS_{\text{data_total}} = 9000 - 20 = 8980 \text{ bytes}
-
Total number of fragments Each fragment can carry Sdata_per_fragmentS_{\text{data_per_fragment}} bytes of data. The total number of fragments required is:
Nfragments=⌈Sdata_totalSdata_per_fragment⌉N_{\text{fragments}} = \lceil \frac{S_{\text{data_total}}}{S_{\text{data_per_fragment}}} \rceil
Substituting values:
Nfragments=⌈89801480⌉=⌈6.068⌉=7N_{\text{fragments}} = \lceil \frac{8980}{1480} \rceil = \lceil 6.068 \rceil = 7
-
Data size of the last fragment The total data size carried by the first Nfragments−1N_{\text{fragments}} - 1 fragments is:
Sdata_used=(Nfragments−1)⋅Sdata_per_fragmentS_{\text{data_used}} = (N_{\text{fragments}} - 1) \cdot S_{\text{data_per_fragment}}
Substituting values:
Sdata_used=(7−1)⋅1480=8880 bytesS_{\text{data_used}} = (7 - 1) \cdot 1480 = 8880 \text{ bytes}
The data size of the last fragment is:
Sdata_last=Sdata_total−Sdata_usedS_{\text{data_last}} = S_{\text{data_total}} - S_{\text{data_used}}
Substituting values:
Sdata_last=8980−8880=100 bytesS_{\text{data_last}} = 8980 - 8880 = 100 \text{ bytes}
-
Validation of total size The total size of all fragments, including the header, should equal the original IP packet size:
Stotal=Sdata_total+SheaderS_{\text{total}} = S_{\text{data_total}} + S_{\text{header}}
Verification:
8980+20=9000 bytes8980 + 20 = 9000 \text{ bytes}
Summary
- Total number of fragments: Nfragments=7N_{\text{fragments}} = 7.
- Data size per fragment:
- The first Nfragments−1=6N_{\text{fragments}} - 1 = 6 fragments carry Sdata_per_fragment=1480S_{\text{data_per_fragment}} = 1480 bytes of data.
- The last fragment carries Sdata_last=100S_{\text{data_last}} = 100 bytes of data.