Verkehrsknotenpunkt: Von den Anfängen bis zur Schaffung eines eigenen IX



"Wir haben eine Telefonverbindung zwischen uns und den Jungs von SRI aufgebaut ...", sagte Kleinrock in einem Interview:
"Wir haben das L eingegeben und am Telefon gefragt:" Sehen Sie das L? "
"Ja, wir sehen das L", kam die Antwort.
"Wir tippten das O ein und fragten:" Siehst du das O? "
"Ja, wir sehen das O."
"Dann haben wir das G eingegeben und das System ist abgestürzt" ...

Doch eine Revolution hatte begonnen ...

Der Beginn des Internets.

Hallo allerseits!

Mein Name ist Alexander, ich bin Netzwerktechniker im Linxdatacenter. In dem heutigen Artikel werden wir über Verkehrsknotenpunkte (Internet Exchange Point, IXP) sprechen: Was war vor ihrem Erscheinen, welche Aufgaben lösen sie und wie werden sie erstellt. Auch in diesem Artikel werde ich zeigen, wie IXP mit der EVE-NG-Plattform und dem BIRD-Software-Router funktioniert, damit Sie verstehen, wie es "unter der Haube" funktioniert.

Ein bisschen Geschichte


Wenn Sie hier schauen, können Sie sehen, dass das schnelle Wachstum der Anzahl der Verkehrsknotenpunkte im Jahr 1993 begann. Dies ist auf die Tatsache zurückzuführen, dass der größte Teil des Verkehrs der zu diesem Zeitpunkt existierenden Telekommunikationsbetreiber über das US-amerikanische Backbone-Netzwerk geleitet wurde. Wenn also beispielsweise der Verkehr vom Betreiber in Frankreich zum Betreiber in Deutschland ging, kam er zuerst von Frankreich in die USA und erst dann von den USA nach Deutschland. Das Backbone-Netzwerk fungierte in diesem Fall als Transit zwischen Frankreich und Deutschland. Auch der Verkehr innerhalb eines Landes verlief oft nicht direkt, sondern über die Kernnetze amerikanischer Betreiber.

Dieser Sachverhalt wirkte sich nicht nur auf die Kosten für die Zustellung des Transitverkehrs aus, sondern auch auf die Qualität der Kanäle und die Verzögerung. Die Zahl der Internetnutzer stieg, neue Betreiber erschienen, das Verkehrsaufkommen stieg, das Internet wuchs. Die Betreiber auf der ganzen Welt erkannten, dass ein rationalerer Ansatz für die Organisation der Interaktion zwischen den Betreibern erforderlich war. "Warum sollte ich, Betreiber A, für die Durchreise durch ein anderes Land bezahlen, um den Verkehr an Betreiber B zu liefern, der sich in einer benachbarten Straße befindet?" So etwas wurde damals von Telekommunikationsbetreibern gefragt. In verschiedenen Teilen der Welt tauchten Verkehrsknotenpunkte an den Konzentrationspunkten der Betreiber auf:

  • 1994 - LINX in London,
  • 1995 - DE-CIX in Frankfurt,
  • 1995 - MSK-IX, in Moskau usw.

Internet und heute


Konzeptionell besteht die Architektur des modernen Internets aus einer Reihe autonomer Systeme (autonome Systeme, AS) und vielen physischen und logischen Verbindungen, die den Verkehrsweg von einem AS zum anderen bestimmen.

AS sind in der Regel Telekommunikationsanbieter, Internetprovider, CDNs, Rechenzentren und Unternehmen im Enterprise-Segment. AS organisieren das Peering untereinander in der Regel über das BGP-Protokoll.

Wie autonome Systeme diese Beziehungen organisieren, hängt von einer Reihe von Faktoren ab:

  • geografisch
  • wirtschaftlich
  • politisch
  • Vereinbarungen und gemeinsame Interessen zwischen AS-Eigentümern,
  • usw.

Natürlich gibt es in diesem Schema eine bestimmte Struktur und Hierarchie. Daher werden die Betreiber in Tier-1, Tier-2 und Tier-3 unterteilt, und wenn die Kunden für den lokalen Internetanbieter (Tier-3) normalerweise normale Benutzer sind, dann zum Beispiel für Tier-1-Betreiber andere Betreiber. Die Tier-3-Betreiber aggregieren den Verkehr ihrer Teilnehmer auf sich selbst, die Tier-2-Telekommunikationsbetreiber wiederum aggregieren den Verkehr der Tier-3-Betreiber und Tier-1 - den gesamten Internetverkehr.

Schematisch kann dies wie folgt dargestellt werden:


In diesem Bild sehen Sie, dass der Datenverkehr von unten nach oben aggregiert ist, d. H. vom Endbenutzer bis zum Tier-1-Betreiber. Es gibt auch einen horizontalen Verkehrsaustausch zwischen den AS, der ungefähr gleich ist.

Ein wesentlicher Bestandteil und gleichzeitig ein Nachteil dieses Schemas ist ein gewisses Durcheinander von Verbindungen zwischen autonomen Systemen, die sich näher am Endbenutzer innerhalb der geografischen Zone befinden. Betrachten Sie das Bild unten:



Angenommen, in einer Großstadt gibt es 5 Kommunikationsbetreiber, zwischen denen aus dem einen oder anderen Grund ein Peering stattfindet, wie oben dargestellt.
Wenn der Benutzer Petya, der mit dem Internetprovider Go verbunden ist, Zugriff auf den mit dem ASM-Provider verbundenen Server erhalten möchte, muss der Datenverkehr zwischen ihnen 5 autonome Systeme durchlaufen. Dies erhöht die Verzögerung, weil Erhöhen der Anzahl der Netzwerkgeräte, über die Datenverkehr geleitet wird, sowie des Transitverkehrs auf autonomen Systemen zwischen Go und ASM.
Wie kann die Anzahl der Transit-ASs reduziert werden, die gezwungen sind, den Verkehr zu passieren? Das ist richtig - ein Verkehrsknotenpunkt.

Heutzutage ist das Erscheinen neuer IXPs auf die gleichen Bedürfnisse zurückzuführen wie in den frühen 90er-2000er Jahren, jedoch nur in geringerem Umfang, als Reaktion auf die zunehmende Anzahl von Telekommunikationsbetreibern, Benutzern und Verkehr, die durch CDN-Netze erzeugte wachsende Menge an Inhalten und Rechenzentren.

Was ist ein Verkehrsknotenpunkt?


Ein Verkehrsknotenpunkt ist ein Ort mit einer speziellen Netzwerkinfrastruktur, an dem Teilnehmer, die am gegenseitigen Verkehrsknoten interessiert sind, das gegenseitige Peering organisieren. Die Hauptbeteiligten an den Verkehrsknotenpunkten: Telekommunikationsanbieter, Internetanbieter, Inhaltsanbieter und Datenzentren. An Verkehrsknotenpunkten sind die Teilnehmer direkt miteinander verbunden. Auf diese Weise können Sie die folgenden Probleme lösen:

  • Verzögerung reduzieren
  • den Transitverkehr reduzieren,
  • Optimieren Sie das Routing zwischen ASs.

In Anbetracht der Tatsache, dass IXPs in vielen großen Städten der Welt vorhanden sind, wirkt sich dies positiv auf das Internet insgesamt aus.

Wenn die oben beschriebene Situation mit Petya mit Hilfe von IXP gelöst wird, stellt sich Folgendes heraus:



Wie ist der Verkehrsknotenpunkt angeordnet?


IXP ist in der Regel ein separater AS mit einem eigenen Block öffentlicher IPv4 / IPv6-Adressen.

Das IXP-Netzwerk ist am häufigsten eine kontinuierliche L2-Domäne. Manchmal ist es nur ein VLAN, das alle IXP-Clients hostet. Bei größeren, geografisch verteilten IXPs können Technologien wie MPLS, VXLAN usw. zum Organisieren der L2-Domäne verwendet werden.

IXP-Elemente


  • SCS. Hier gibt es nichts Ungewöhnliches: Gestelle, optische Querfelder, Rangierfelder.
  • Switches sind das Fundament von IXP. Der Switch-Port ist der IXP-Netzwerkeinstiegspunkt. Die Switches erfüllen auch einen Teil der Sicherheitsfunktionen: Sie filtern den Junk-Verkehr heraus, der im IXP-Netzwerk nicht vorhanden sein sollte. In der Regel werden Switches basierend auf den funktionalen Anforderungen ausgewählt - Zuverlässigkeit, unterstützte Portgeschwindigkeit, Sicherheitsfunktionen, sFlow-Unterstützung usw.
  • Der Routenserver (RS) ist ein wesentlicher und notwendiger Bestandteil jeder modernen Verkehrsknotenstelle. Es funktioniert sehr ähnlich wie ein Routenreflektor in iBGP oder ein festgelegter Router in OSPF und löst dieselben Probleme. Mit zunehmender Anzahl von Teilnehmern an einem Verkehrsvermittlungspunkt nimmt die Anzahl von BGP-Sitzungen zu, die jeder Teilnehmer unterstützen muss, d. H. Es ähnelt der klassischen Full-Mesh-Topologie in iBGP. RS löst das Problem wie folgt: Richtet eine BGP-Sitzung mit jedem interessierten IXP-Teilnehmer ein und er wird Kunde von RS. RS akzeptiert ein BGP-Update von einem seiner Clients und sendet dieses Update natürlich an alle anderen Clients, mit Ausnahme desjenigen, von dem dieses Update empfangen wurde. Auf diese Weise muss RS nicht mehr vollständig zwischen allen IXP-Teilnehmern installiert werden, und das Problem der Skalierbarkeit wird auf elegante Weise gelöst. Es ist zu beachten, dass der Routenserver Routen transparent von einem AS zu einem anderen überträgt, ohne Änderungen an den übertragenen BGP-Attributen vorzunehmen, z. B. dem AS-Pfad keine Nummer in seinem AS hinzufügt. Außerdem erfolgt die grundlegende Filterung von Routen auf RS: Beispielsweise akzeptiert RS keine Martians-Netzwerke und IXP-Präfixe.

    Ein Open-Source-Software-Router, BIRD (Bird Internet Routing Daemon), wird häufig als Route-Server-Lösung verwendet. Es ist gut, weil es kostenlos ist, schnell auf den meisten Linux-Distributionen bereitgestellt wird, über einen flexiblen Mechanismus zum Festlegen von Routing- / Filterrichtlinien verfügt und keine Rechenressourcen erfordert. Außerdem kann die Hardware / der virtuelle Router von Cisco, Juniper usw. als RS ausgewählt werden.
  • Sicherheit Da sich das IXP-Netzwerk aus einer Vielzahl von AS zusammensetzt, muss die Sicherheitsrichtlinie, die alle Teilnehmer befolgen müssen, genau definiert sein. In der Regel werden hier dieselben Mechanismen angewendet, die zum Herstellen einer BGP-Nachbarschaft zwischen zwei separaten BGP-Peers außerhalb von IXP verwendet werden, sowie einige zusätzliche Sicherheitsmerkmale.

    Es wird beispielsweise empfohlen, Datenverkehr nur von einer bestimmten IXP-Mac-Adresse zuzulassen, die im Voraus ausgehandelt wird. Datenverkehr mit anderen Ethertypfeldern als 0x0800 (IPv4), 0x08dd (IPv6), 0x0806 (ARP) verweigern; Dies geschieht, um Datenverkehr herauszufiltern, der keinen Platz für das BGP-Peering bietet. Mechanismen wie GTSM, RPKI usw. können ebenfalls verwendet werden.

Möglicherweise sind die oben genannten Komponenten die Hauptbestandteile eines IXP, unabhängig vom Maßstab. Natürlich können große IXPs zusätzliche Technologien und Lösungen verwenden.
Es kommt vor, dass IXP seinen Mitgliedern zusätzliche Dienste anbietet:

  • auf dem IXP TLD DNS Server gehostet,
  • Installieren Sie Hardware-NTP-Server, damit die Teilnehmer die Zeit präzise synchronisieren können.
  • Bieten Sie Schutz vor DDoS-Angriffen usw.

Arbeitsprinzip


Wir analysieren das Funktionsprinzip des Verkehrsknotenpunkts am einfachsten von EVE-NG simulierten IXP und betrachten dann die Grundkonfiguration des BIRD-Software-Routers. Um das Schema zu vereinfachen, lassen wir so wichtige Dinge wie Redundanz und Fehlertoleranz weg.

Die Netzwerktopologie ist in der folgenden Abbildung dargestellt.



Angenommen, wir verwalten einen kleinen Verkehrsknoten und bieten die folgenden Peering-Optionen an:

  • öffentliches Peering
  • privates Peering
  • Peering über den Routenserver.

Unsere AS-Nummer ist 555, wir besitzen einen IPv4-Adressblock - 50.50.50.0/24, von dem aus wir IP-Adressen für diejenigen vergeben, die eine Verbindung zu unserem Netzwerk herstellen möchten.

50.50.50.254 - Auf der Route Server-Schnittstelle konfigurierte IP-Adresse. Mit dieser IP-Adresse richten Clients eine BGP-Sitzung für den Fall eines Peerings über RS ​​ein.

Auch für das Peering durch RS haben wir auf der Grundlage der BGP-Community die einfachste Routing-Richtlinie entwickelt, mit der IXP-Teilnehmer festlegen können, an wen und welche Routen gesendet werden sollen:
BGP-GemeinschaftBeschreibung
LOCAL_AS: PEER_ASÜbergeben Sie nur die Präfixe PEER_AS
LOCAL_AS: IXP_ASÜbergeben Sie Präfixe an alle IXP-Mitglieder

3 Clients möchten Daten mit unserem IXP verbinden und austauschen. Nehmen wir an, dies sind Internetanbieter. Sie alle möchten das Peering über den Routenserver organisieren. Unten sehen Sie ein Diagramm mit Client-Verbindungsparametern:
KundeKunden-AS-NummerVom Kunden angekündigte PräfixeIP-Adresse, die dem Client für die Verbindung mit IXP zugewiesen wurde
ISP # 1AS 1001.1.0.0/1650.50.50.10/24
ISP # 2AS 2002.2.0.0/1650.50.50.20/24
ISP # 3AS 3003.3.0.0/1650.50.50.30/24

Grundlegendes BGP-Setup auf einem Client-Router:


router bgp 100 no bgp enforce-first-as bgp log-neighbor-changes neighbor 50.50.50.254 remote-as 555 address-family ipv4 network 1.1.0.0 mask 255.255.0.0 neighbor 50.50.50.254 activate neighbor 50.50.50.254 send-community both neighbor 50.50.50.254 soft-reconfiguration inbound neighbor 50.50.50.254 route-map ixp-out out exit-address-family ip prefix-list as100-prefixes seq 5 permit 1.1.0.0/16 route-map bgp-out permit 10 match ip address prefix-list as100-prefixes set community 555:555 

Die Einstellung hier ist kein bgp force-first-as. Standardmäßig erfordert BGP, dass die as-bgp-Nummer des Peers, von dem dieses Update empfangen wurde, im as-Pfad des empfangenen BGP-Updates vorhanden ist. Da der Routenserver keine Änderungen an as-path vornimmt, fehlt seine Nummer in as-path, und die Aktualisierung wird verworfen. Mit dieser Einstellung ignoriert der Router diese Regel.

Wir sehen auch, dass der Client die bgp-Community 555: 555 auf diesem Präfix installiert hat, was gemäß unserer Richtlinie bedeutet, dass der Client dieses Präfix allen anderen Teilnehmern mitteilen möchte.

Für die Router anderer Clients ist die Einstellung bis auf ihre eindeutigen Parameter ähnlich.

BIRD Konfigurationsbeispiel:


 define ixp_as = 555; define ixp_prefixes = [ 50.50.50.0/24+ ]; template bgp RS_CLIENT { local as ixp_as; rs client; } 

Im Folgenden wird ein Filter beschrieben, der keine Mars-Präfixe sowie Präfixe von IXP selbst akzeptiert:

 function catch_martians_and_ixp() prefix set martians; prefix set ixp_prefixes; { martians = [ 0.0.0.0/8+, 10.0.0.0/8+, 100.64.0.0/10+, 127.0.0.0/8+, 169.254.0.0/16+, 172.16.0.0/12+, 192.0.0.0/24+, 192.0.2.0/24+, 192.168.0.0/16+, 198.18.0.0/15+, 198.51.100.0/24+, 203.0.113.0/24+, 224.0.0.0/4+, 240.0.0.0/4+ ]; if net ~ martians || net ~ ixp_prefixes then return false; return true; } 

Diese Funktion implementiert die zuvor beschriebene Routing-Richtlinie.

 function bgp_ixp_policy(int peer_as) { if (ixp_as, ixp_as) ~ bgp_community then return true; if (ixp_as, peer_as) ~ bgp_community then return true; return false; } filter reject_martians_and_ixp { if catch_martians_and_ixp() then reject; if ( net ~ [0.0.0.0/0{25,32} ] ) then { reject; } accept; } 

Wir richten Peering ein und wenden geeignete Filter und Richtlinien an.

 protocol as_100 from RS_CLIENT { neighbor 50.50.50.10 as 100; ipv4 { export where bgp_ixp_policy(100); import filter reject_martians_and_ixp; } } protocol as_200 from RS_CLIENT { neighbor 50.50.50.20 as 200; ipv4 { export where bgp_ixp_policy(200); import filter reject_martians_and_ixp; } } protocol as_300 from RS_CLIENT { neighbor 50.50.50.30 as 300; ipv4 { export where bgp_ixp_policy(300); import filter reject_martians_and_ixp; } } 

Es ist erwähnenswert, dass es auf dem Routenserver eine gute Form ist, Routen von verschiedenen Peers zu verschiedenen RIBs hinzuzufügen. Mit BIRD können Sie dies tun. In unserem Beispiel werden der Einfachheit halber alle von allen Clients empfangenen Aktualisierungen zu einer gemeinsamen RIB hinzugefügt.

Also lasst uns überprüfen, was wir haben.

Auf dem Routenserver sehen wir, dass bei allen drei Clients eine BGP-Sitzung installiert ist:



Wir sehen, dass wir Präfixe von allen Kunden erhalten:



Auf dem Router als 100 sehen wir, dass wenn es nur eine BGP-Sitzung mit dem Routenserver gibt, wir Präfixe von sowohl 200 als auch 300 erhalten, während sich die BGP-Attribute nicht geändert haben, als ob das Peering zwischen den Clients direkt ausgeführt wurde:



Wir sehen also, dass das Vorhandensein eines Routenservers die Organisation des Peerings auf IXP erheblich vereinfacht.

Ich hoffe, diese Demonstration hat Ihnen geholfen, die Anordnung der Verkehrsknotenpunkte und die Implementierung des Routenservers auf IXP besser zu verstehen.

Linxdatacenter ix


Im Linxdatacenter haben wir unser eigenes IXP auf der Grundlage einer fehlertoleranten Infrastruktur aus 2 Switches und 2 Routenservern erstellt. Jetzt wird unser IXP im Testmodus gestartet, und wir laden alle ein, eine Verbindung zu Linxdatacenter IX herzustellen und an den Tests teilzunehmen. Mit der Verbindung erhalten Sie einen Port mit einer Bandbreite von 1 Gbit / s, die Möglichkeit, über unsere Routenserver zu blättern sowie auf Ihr persönliches Konto des IX-Portals zuzugreifen , das unter ix.linxdatacenter.com verfügbar ist .

Schreiben Sie Kommentare oder private Nachrichten, um Zugriff auf das Testen zu erhalten.

Fazit


Verkehrsknotenpunkte tauchten zu Beginn des Internets auf, um das Problem des nicht optimalen Verkehrsflusses zwischen Telekommunikationsbetreibern anzugehen. Mit dem Aufkommen neuer globaler Dienste und einer Zunahme des CDN-Verkehrs optimieren die Austauschpunkte auch weiterhin den Betrieb des globalen Netzwerks. Die Zunahme der Anzahl von IXPs in der Welt ist sowohl für den Endnutzer des Dienstes als auch für Telekommunikationsbetreiber, Inhaltsbetreiber usw. von Vorteil. Für IXP-Teilnehmer drückt sich der Vorteil in einer Reduzierung der Kosten für die Organisation externer Peer-to-Peer-Dienste, einer Reduzierung des Verkehrsaufkommens, das höhere Betreiber kostet, einer Optimierung des Routings und der Möglichkeit einer direkten Schnittstelle zu Inhaltsanbietern aus.

Nützliche Links


Source: https://habr.com/ru/post/de478832/


All Articles