Zwar beginnt jede Anfrage im Internet mit der DNS-Auflösung, doch das ist nur der erste Teil der Reise. Sobald DNS die IP -Adresse eines Servers zurückgibt, leitet das Border Gateway Protocol (BGP) die Anfrage an den entsprechenden Server weiter. BGP navigiert zwischen vernetzten Netzwerken, um Sie mit dem von Ihnen angeforderten Server zu verbinden.
Wie bei DNS passiert auch bei BGP eine Menge hinter den Kulissen, einschließlich technischer und geschäftlicher Präferenzen, die die meisten Menschen nicht berücksichtigen. In diesem Leitfaden werden wir uns eingehend mit der Funktionsweise von BGP befassen. Wir werden einige der Auswirkungen von BGP, wie es zwischen autonomen Systemen funktioniert und einige Anwendungsfälle für BGP in der IT-Netzwerkverwaltung besprechen.
Wie eine Anfrage das Internet durchläuft
Wenn Sie eine Website besuchen, muss Ihr Computer die IP-Adresse des Servers herausfinden, der die betreffende Website hostet. DNS-Server liefern diese Informationen zwar, aber der Auflösungsprozess besteht aus mehreren Schritten.
Zunächst sendet Ihr Computer die URL der Website an den DNS-Resolver Ihres Internetanbieters. Vorausgesetzt, der DNS-Resolver hat die URL nicht zwischengespeichert, sendet er zunächst eine Anfrage an einen Root-Nameserver.
Wenn der Root-Nameserver diese URL nicht zwischengespeichert hat, gibt er die IP-Adresse des Nameservers für die Top-Level-Domain (TLD) zurück. Der TLD-Nameserver gibt dann die IP-Adresse des autorisierenden Nameservers zurück. Dieser gibt die IP-Adresse des Servers zurück, der die Webanwendung hostet, auf die Sie zugreifen wollen.
Sobald Ihr Computer die IP -Adresse des Servers kennt, kann er Daten vom Server anfordern, die in der Regel Kopfzeilen, einen Textkörper und andere Metadaten enthalten. Das wirft jedoch die Frage auf, wie Anfragen an eine IP -Adresse den Server finden, den sie suchen.
Die Rolle des BGP
Hier kommt das Border Gateway Protocol ins Spiel.
BGP definiert die Regeln dafür, wie Server, die mit dem Internet verbunden sind, einander finden. Ähnlich wie eine App wie Google Maps Ihnen hilft, den Weg zu einer Adresse zu finden, hilft BGP Computern, eine IP-Adresse in einen physischen Server zu übersetzen, mit dem sie sich verbinden und Anfragen stellen können.
Es ist wichtig zu wissen, dass das Internet eigentlich kein einzelnes Netzwerk ist, sondern ein Netzwerk von Netzwerken, die Autonome Systeme (AS) genannt werden. Jedes Autonome System kontrolliert die Zustellung von Informationen an jede der ihm zugewiesenen IP-Adressen.
Jeder mit dem Internet verbundene Computer ist Teil eines Autonomen Systems, und BGP wird als Protokoll für Routing-Anfragen zwischen Autonomen Systemen und (manchmal) innerhalb jedes Autonomen Systems verwendet. Die meisten Router in Rechenzentren, die mit dem Internet verbunden sind, implementieren BGP, um zu gewährleisten, dass die IP -Adressen ihres Netzwerks jederzeit weltweit erreichbar sind und Aktualisierungen dieser Adressen berücksichtigt werden.
BGP bietet eine Reihe von Vorteilen, auf die wir im Laufe dieses Artikels eingehen werden, aber eine seiner grundlegendsten Eigenschaften ist, dass es eine „Schleifenbildung“ verhindert. Indem der gesamte AS-Pfad mit jeder Anfrage gesendet wird, können die empfangenden Router sicherstellen, dass die Anfragen vor der Annahme nicht bereits ihren AS-Pfad enthalten. Dadurch wird verhindert, dass Anfragen in ein endloses Hin und Her zwischen Autonomen Systemen oder Routern geraten, das zu Datenverlusten führen könnte.
BGP ist außerdem sehr belastbar. Im Gegensatz zu einigen internen Netzwerkprotokollen verfügt BGP über integrierte Sicherungspfade. Das bedeutet, dass BGP auf die nächstbeste Route zurückgreift, wenn eine Anfrage normalerweise über ein Autonomes System laufen würde, das vorübergehend nicht verfügbar ist.
BGP wird zwar hauptsächlich für externe Netzwerkverbindungen verwendet, die Computer über das Internet miteinander verbinden, aber das ist nicht immer der Fall. An dieser Stelle wird die Unterscheidung zwischen internem BGP (IBGP) und externem (EBGP) wichtig.
Internes vs. externes BGP
Externes BGP bezieht sich auf das Border Gateway Protocol, das zwischen verschiedenen Autonomen Systemen angewendet wird, während internes BGP die Anwendung des Protokolls zwischen Routern innerhalb eines Autonomen Systems ist.
Mit anderen Worten: Wenn eine Anfrage an ein AS außerhalb des AS des Anfragenden gestellt werden muss, wird EBGP verwendet. Wenn eine Anfrage an einen anderen Server innerhalb desselben AS gestellt wird, könnte iBGP verwendet werden. Eine Anfrage kann auf ihrem gesamten Weg zu dem durch die IP -Adresse beschriebenen Server Router durchlaufen, die beide Versionen des Protokolls verwenden. Das Autonome System wird jedoch in der Regel nur EBGP auf dem Randknoten verwenden, der es mit anderen Autonomen Systemen verbindet.
Einer der großen Unterschiede zwischen IBGP und EBGP ist der Mechanismus zur Vermeidung von Schleifen. Da IBGP für die Verwendung innerhalb desselben Autonomen Systems vorgesehen ist, muss jeder Router im Netzwerk Routing-Informationen mit seinen benachbarten Peers austauschen. Wenn einer der Router ein Update von einem Peer erhält, weiß er, dass er es nicht an andere IBGP-Nachbarn weitergeben darf.
Abbilden einer Route mit minimalen Sprüngen (Hops)
Jedes AutonomeSystem ist physisch mit mindestens einem anderen Autonomen System an einem Internet Exchange Point (IXP) verbunden. Manchmal muss eine Anfrage jedoch mehrere Autonome Systeme durchlaufen, um die gewünschte IP-Adresse zu erreichen. BGP erleichtert dies, indem es vorschreibt, dass Autonome Systeme sich über den Pfad mit den wenigsten Sprüngen verbinden.
Im folgenden Diagramm leitet BGP beispielsweise Anfragen von AS 1 nach AS 5 über AS 3 (die grüne Linie).
Wie bereits erwähnt, ist BGP sehr resilient. Das Internet funktioniert unter anderem deshalb so gut, weil BGP auf die nächstbeste Option zurückgreift, wenn eine der Verbindungen über ein Autonomes System ausfällt. Wenn beispielsweise die physische Verbindung zwischen AS 3 und AS 5 unterbrochen würde, würde BGP Anfragen über AS 4 und AS 6 (die rote Linie) leiten.
Wie wir später sehen, bringt die Suche nach minimalen Sprüngen einige Probleme mit sich, aber größtenteils trägt dies dazu bei, die geringstmögliche Latenz zwischen Servern überall auf der Welt aufrechtzuerhalten.
Unicast vs. Anycast
Bis jetzt sind wir davon ausgegangen, dass jede IP -Adresse einem einzelnen Server zugewiesen ist. Dies wird als Unicast bezeichnet und ist zwar das häufigste Muster für die IP-Zuweisung, aber nicht die einzige Option. IP -Adressen können auch mehreren Servern an mehreren physischen Standorten zugewiesen werden. Diese Konfiguration wird als Anycast bezeichnet und bietet einige interessante Vorteile.
Auf der positiven Seite kann Anycast schnellere Anfragen und Antworten ermöglichen. Da BGP Anfragen an den Server sendet, der die geringste Anzahl von Sprüngen entfernt ist, verringert Anycast die Anzahl der Autonomen Systeme, die eine Anfrage durchlaufen muss, bevor sie ihr Ziel erreicht.
Dies macht Anycast nützlich für das Load Balancing. Da Autonome Systeme an irgendeinem Punkt eine physische Verbindung herstellen müssen, ist der Pfad mit den wenigsten Sprüngen in der Regel auch die kürzeste physische Entfernung zwischen Servern.
So, if you assign a server in Europe an IP Wenn Sie also einem Server in Europa eine IP-Adresse zuweisen und dann dieselbe IP-Adresse einem Klon dieses Servers in den Vereinigten Staaten zuweisen, werden Anfragen aus Europa höchstwahrscheinlich auf dem europäischen Server landen, während Anfragen aus den USA wahrscheinlich auf dem US-Server landen werden. Anycast bietet zudem Redundanz. Wenn der europäische Server im vorherigen Beispiel ausfällt oder das Netzwerk verlässt, werden die Anfragen stattdessen an den US-Server weitergeleitet.
Leider ist die Einrichtung von Anycast komplizierter als die von Unicast, sodass es in der Regel nur für Internetanbieter oder Webhosting-Unternehmen sinnvoll ist. Anycast funktioniert auch besser über IPV6, das nach wie vor nicht von jedem Autonomen System unterstützt wird. Allerdings bieten viele große Webhosting- und DNS-Anbieter, einschließlich Gcore, Anycast als Teil ihrer Dienste an.
Mögliche Probleme mit BGP
Im Großen und Ganzen ist BGP eine solide Lösung für eine komplizierte technische Herausforderung, aber es ist nicht ohne Einschränkungen und Schwächen. Unternehmen, die Autonome Systeme betreiben, müssen entscheiden, wie sie die Anforderung der geringsten Sprünge in BGP interpretieren. Manchmal stehen ihre Präferenzen auch im Widerspruch zu denen eines Benutzers.
Bei der Implementierung von BGP treten Probleme auf, wenn mehrere Pfade für die Weiterleitung von Anfragen über dieselbe Anzahl von Sprüngen verwendet werden könnten. Wenn beispielsweise eine Anfrage für eine IP -Adresse in New York aus Memphis kommt, gibt es möglicherweise zwei Pfade, die einen Sprung erfordern: einen über Chicago und einen über London.
Während Chicago die logische Wahl zu sein scheint, da es physisch näher an New York und Memphis liegt, könnte ein Internet Service Provider, der ein Autonomes System in Memphis kontrolliert, es vorziehen, alle Anfragen in seinem Netzwerk zu halten. Wenn dieser die Verbindung von Chicago nach New York nicht selbst besitzt, muss er möglicherweise mehr für die Bandbreite bezahlen, sodass er es vorziehen würde, die Anfragen erst nach London und dann nach New York zu leiten.
Das mag zwar für den Internetanbieter von Vorteil sein, da er dadurch Geld spart, aber für die Nutzer bedeutet es möglicherweise eine höhere Latenz. Dies ist ein extremes Beispiel, aber es verdeutlicht, dass BGP nicht unbedingt dem Anfragesteller oder Server dient.
So kontrollieren Regierungen in vielen Teilen der Welt Autonome Systeme. Wenn eine Regierung Teile des Internets außerhalb ihres Zuständigkeitsbereichs einschränken will, kann dies zu unbeabsichtigten weitreichenden Ausfällen führen. Im Jahr 2008 schnitt Pakistan den Zugang zu YouTube ab, aber anstatt die Seite nur innerhalb der eigenen Grenzen zu sperren, entfernte es versehentlich die IP -Adressen von YouTube vollständig, was zu einem weltweiten Ausfall von YouTube führte.
BGP in der Praxis
Zwar gibt es diese makroökonomischen Probleme mit BGP, aber es handelt sich dabei um Grenzfälle, über die sich ein Netzwerkadministrator in der Regel keine Gedanken machen muss. Unabhängig davon, ob Sie IBGP zwischen netzinternen Systemen oder EBGP als Verbindung zu anderen Autonomen Systemen verwenden, ist es wichtig zu verstehen, wie Sie das BGP-Protokoll nutzen können.
- VPN-IP-Announcement. Da BGP über eine integrierte Ausfallsicherung verfügt, ist es von Vorteil, es für das IP-Announcement anstelle des traditionellen statischen IP-Routings zu verwenden. Ohne BGP auf Ihrem Router müssen Sie den Zustand des Servers regelmäßig überprüfen, um sicherzustellen, dass er noch ordnungsgemäß routet. Viele Webhoster und auch Gcore bieten ein BGP-IP-Announcement an, sodass Sie dies möglicherweise nicht selbst konfigurieren müssen.
- Backdoor-BGP-Routing. Wie bereits erwähnt, folgt BGP der Route mit den wenigsten Sprüngen zwischen den Knoten. Das kann jedoch bedeuten, dass eine Anfrage mehrere Autonome Systeme durchläuft, um ihr Ziel zu erreichen. Diese Anordnung ist möglicherweise nicht sinnvoll, wenn Sie Ihren Netzwerkverkehr innerhalb eines einzigen AS halten möchten. Glücklicherweise kann internes BGP den Netzwerk-Backdoor-Befehl verwenden, um einen bevorzugten Pfad innerhalb des AS festzulegen.
- Netzwerk-Peering. Eine weitere Möglichkeit, BGP so zu manipulieren, dass netzinterne Verbindungen bevorzugt werden, ist Netzwerk-Peering. Indem Sie zwei Knoten in einem Netzwerk als Peers bezeichnen, können Sie Anfragen zwischen diesen Knoten zulassen, ohne dass sie ins öffentliche Internet gelangen. Sowohl Peering als auch Backdoor-Routing ermöglichen es Ihnen, bei der Bearbeitung interner Anfragen Geld zu sparen und die Netzwerksicherheit zu verbessern.
Fazit
BGP ist ein grundlegender Bestandteil der Funktionsweise des Internets, und seine Ausfallsicherheit trägt zur relativen Stabilität und hohen Verfügbarkeit des heutigen Internets bei. Aus der Sicht der Netzwerkadministration ist es wichtig, dies zu verstehen, denn selbst wenn Sie kein eigenes Autonomes System haben, werden Sie wahrscheinlich mit BGP interagieren, um Verbindungen mit anderen Netzwerken herzustellen oder Routing-Probleme zu beheben.
Wenn Sie wissen, wie Sie BGP verwenden, um einen globalen Lastausgleich durch Anycast, IP-Announcement für VPNs und die Beeinflussung von Routing-Präferenzen innerhalb eines AS zu ermöglichen, können Sie den größten Nutzen für Ihr Unternehmen erzielen.
Wenn Sie einen DNS-Anbieter mit Anycast oder eine Webhosting-Plattform mit VPN-IP-Announcement über BGP suchen, dann ist Gcore eine hervorragende Wahl. Zusätzlich zu den in diesem Beitrag erwähnten Funktionen bietet Gcore:
- 26 ms durchschnittliche Latenzzeit weltweit und 12 ms in Europa
- GeoDNS-Funktionalität mit verschiedenen Arten des Ausgleichs (nach Gewichten, Georegionen, geo lat/long, ASN)
- DDoS-Schutz und DNS-Failover zur Vermeidung von Ausfällen
- Unterstützung von OctoDNS, Terraform, Certbot und externen DNS
- Wildcard-DNS-Unterstützung
- Erschwingliche Tarife, einschließlich eines kostenlosen Tarifs
Geschrieben von Karl Hughes