Dopravný výmenný bod: od vzniku až po vytvorenie vlastného IX

Dopravný výmenný bod: od vzniku až po vytvorenie vlastného IX

„Nadviazali sme telefonické spojenie medzi nami a chlapcami zo SRI...“, povedal Kleinrock... v rozhovore:
"Napísali sme L a do telefónu sme sa spýtali: "Vidíš L?"
"Áno, vidíme L," znela odpoveď.
"Napísali sme O a spýtali sme sa: "Vidíš to O?"
"Áno, vidíme O."
"Potom sme napísali G a systém sa zrútil"...

Revolúcia sa však začala…

Začiatok internetu.


Ahoj všetci!

Volám sa Alexander, som sieťový inžinier v Linxdatacenter. V dnešnom článku si povieme o dopravných výmenných bodoch (Internet Exchange Points, IXP): čo predchádzalo ich vzniku, aké úlohy riešia a ako sú postavené. Aj v tomto článku predvediem princíp fungovania IXP pomocou platformy EVE-NG a softvérového routera BIRD, aby ste pochopili, ako to funguje „pod kapotou“.

Trocha histórie

Ak sa pozriete tu, potom môžete vidieť, že rýchly rast počtu dopravných výmenných miest začal v roku 1993. Je to spôsobené tým, že väčšina prevádzky vtedy existujúcich telekomunikačných operátorov prechádzala cez chrbticovú sieť USA. Takže napríklad, keď prevádzka smerovala od operátora vo Francúzsku k operátorovi v Nemecku, najskôr smerovala z Francúzska do USA a až potom z USA do Nemecka. Chrbtová sieť v tomto prípade fungovala ako tranzitná medzi Francúzskom a Nemeckom. Aj prevádzka v rámci jednej krajiny často prechádzala nie priamo, ale cez chrbticové siete amerických operátorov.

Tento stav ovplyvnil nielen náklady na poskytovanie tranzitnej dopravy, ale aj kvalitu kanálov a meškania. Zvýšil sa počet používateľov internetu, objavili sa noví operátori, zvýšil sa objem prevádzky, internet dozrel. Operátori na celom svete si začali uvedomovať, že je potrebný racionálnejší prístup k organizácii interakcie medzi operátormi. "Prečo by som ja, operátor A, mal platiť za tranzit cez inú krajinu, aby som mohol doručiť dopravu operátorovi B, ktorý sa nachádza na ďalšej ulici?" Zhruba túto otázku si vtedy kládli telekomunikační operátori. Body výmeny dopravy sa tak začali objavovať v rôznych častiach sveta na miestach koncentrácie operátorov:

  • 1994 – LINX v Londýne,
  • 1995 – DE-CIX vo Frankfurte,
  • 1995 – MSK-IX, v Moskve atď.

Internet a naše dni

Koncepčne architektúra moderného internetu pozostáva z mnohých autonómnych systémov (AS) a mnohých spojení medzi nimi, fyzických aj logických, ktoré určujú cestu prevádzky z jedného AS do druhého.

AS sú zvyčajne telekomunikační operátori, poskytovatelia internetu, siete CDN, dátové centrá a spoločnosti podnikového segmentu. AS medzi sebou organizujú logické spojenia (peering), zvyčajne pomocou protokolu BGP.

Spôsob, akým autonómne systémy organizujú tieto spojenia, je určený množstvom faktorov:

  • geografický,
  • ekonomický,
  • politický,
  • dohody a spoločné záujmy medzi vlastníkmi AS,
  • atď

Samozrejme, táto schéma má určitú štruktúru a hierarchiu. Operátori sa teda delia na tier-1, tier-2 a tier-3, a ak sú klientmi pre lokálneho poskytovateľa internetu (tier-3) spravidla bežní používatelia, tak napríklad pre tier-1 klientmi sú iní operátori. Operátori úrovne 3 agregujú prevádzku svojich predplatiteľov, telekomunikační operátori úrovne 2 zase agregujú prevádzku operátorov úrovne 3 a úroveň 1 – všetku internetovú prevádzku.

Schematicky to môže byť znázornené takto:

Dopravný výmenný bod: od vzniku až po vytvorenie vlastného IX
Tento obrázok ukazuje, že návštevnosť je agregovaná zdola nahor, t.j. od koncových používateľov až po operátorov úrovne 1. Existuje aj horizontálna výmena prevádzky medzi AS, ktoré sú si navzájom približne rovnocenné.

Neoddeliteľnou súčasťou a zároveň nevýhodou tejto schémy je určitá zámena prepojení medzi autonómnymi systémami umiestnenými bližšie ku koncovému užívateľovi, v rámci geografickej oblasti. Zvážte obrázok nižšie:

Dopravný výmenný bod: od vzniku až po vytvorenie vlastného IX

Predpokladajme, že vo veľkom meste je 5 telekomunikačných operátorov, medzi ktorými je peering z jedného alebo druhého dôvodu organizovaný tak, ako je uvedené vyššie.

Ak chce používateľ Petya pripojený k Go ISP pristupovať k serveru pripojenému k poskytovateľovi ASM, potom bude komunikácia medzi nimi nútená prechádzať cez 5 autonómnych systémov. To zvyšuje oneskorenie, pretože zvyšuje sa počet sieťových zariadení, cez ktoré pôjde prevádzka, ako aj objem tranzitnej prevádzky na autonómnych systémoch medzi Go a ASM.

Ako znížiť počet tranzitných AS, cez ktoré je nútená premávka prechádzať? Správne - dopravný výmenný bod.

V súčasnosti je vznik nových IXP poháňaný rovnakými potrebami ako na začiatku 90. až 2000. storočia, len v menšom meradle, v reakcii na zvyšujúci sa počet telekomunikačných operátorov, používateľov a návštevnosti, rastúci objem obsahu generovaného sieťami CDN. a dátové centrá.

Čo je výmenný bod?

Výmenný dopravný bod je miesto so špeciálnou sieťovou infraštruktúrou, kde účastníci so záujmom o vzájomnú výmenu prevádzky organizujú vzájomný peering. Hlavní účastníci výmenných bodov prevádzky: telekomunikační operátori, poskytovatelia internetu, poskytovatelia obsahu a dátové centrá. Na dopravných výmenných miestach sa účastníci spájajú priamo medzi sebou. To vám umožní vyriešiť nasledujúce problémy:

  • znížiť latenciu,
  • znížiť objem tranzitnej dopravy,
  • optimalizovať smerovanie medzi AS.

Vzhľadom na to, že IXP sú prítomné v mnohých veľkých mestách po celom svete, toto všetko má priaznivý vplyv na internet ako celok.

Ak sa vyššie uvedená situácia s Peťou vyrieši pomocou IXP, dopadne to asi takto:

Dopravný výmenný bod: od vzniku až po vytvorenie vlastného IX

Ako funguje dopravný výmenný bod?

IXP je spravidla samostatný AS s vlastným blokom verejných IPv4/IPv6 adries.

Sieť IXP najčastejšie pozostáva zo súvislej domény L2. Niekedy je to jednoducho VLAN, ktorá hostí všetkých klientov IXP. Pokiaľ ide o väčšie, geograficky distribuované IXP, na organizáciu domény L2 možno použiť technológie ako MPLS, VXLAN atď.

prvky IXP

  • SKS. Nie je tu nič neobvyklé: stojany, optické krížové prepojenia, patch panely.
  • Prepínače – základ IXP. Port prepínača je vstupným bodom do siete IXP. Prepínače tiež vykonávajú časť bezpečnostných funkcií – filtrujú nevyžiadanú prevádzku, ktorá by nemala byť prítomná v sieti IXP. Prepínače sa spravidla vyberajú na základe funkčných požiadaviek - spoľahlivosť, podporované rýchlosti portov, bezpečnostné funkcie, podpora sFlow atď.
  • Smerovací server (RS) – neoddeliteľná a nevyhnutná súčasť každej modernej dopravnej výmeny. Princíp činnosti je veľmi podobný reflektoru trasy v iBGP alebo určenému smerovaču v OSPF a rieši rovnaké problémy. Ako rastie počet účastníkov v dopravnom výmennom bode, zvyšuje sa počet relácií BGP, ktoré každý účastník potrebuje podporovať, t.j. to pripomína klasickú full-mesh topológiu v iBGP. RS rieši problém nasledujúcim spôsobom: nadviaže reláciu BGP s každým zainteresovaným účastníkom IXP a tento účastník sa stane klientom RS. Po prijatí aktualizácie BGP od jedného zo svojich klientov RS túto aktualizáciu odošle všetkým svojim ostatným klientom, samozrejme, s výnimkou toho, od ktorého bola táto aktualizácia prijatá. RS teda eliminuje potrebu vytvoriť úplnú sieť medzi všetkými členmi IXP a elegantne rieši problém škálovateľnosti. Stojí za zmienku, že smerovací server transparentne prenáša cesty z jedného AS do druhého bez vykonania zmien v atribútoch prenášaných BGP, napríklad nepridáva číslo vo svojom AS k AS-ceste. Aj na RS je základné filtrovanie trás: RS napríklad neakceptuje siete Marťanov a prefixy samotného IXP.

    Ako riešenie smerovacieho servera sa často používa smerovač s otvoreným zdrojovým kódom, BIRD (vtáčí internetový smerovací démon). Dobré na ňom je, že je zadarmo, rýchlo sa nasadzuje na väčšinu linuxových distribúcií, má flexibilný mechanizmus na nastavenie smerovania/filtrovania politík a nie je náročný na výpočtové zdroje. Ako RS je možné zvoliť aj hardvérový/virtuálny smerovač od spoločností Cisco, Juniper atď.

  • Bezpečnosť. Keďže sieť IXP je koncentráciou veľkého počtu AS, bezpečnostná politika, ktorú musia dodržiavať všetci účastníci, musí byť dobre napísaná. Vo všeobecnosti tu platia všetky rovnaké mechanizmy, ktoré platia pri vytváraní susedstva BGP medzi dvoma samostatnými partnermi BGP mimo IXP, plus niektoré ďalšie bezpečnostné funkcie.

    Napríklad je dobrou praxou povoliť prevádzku iba z konkrétnej mac adresy účastníka IXP, ktorá je vopred dohodnutá. Odmietnutie prenosu s inými poľami typu ether ako 0x0800(IPv4), 0x08dd(IPv6), 0x0806(ARP); toto sa robí s cieľom odfiltrovať prevádzku, ktorá nepatrí do partnerského vzťahu BGP. Môžu sa použiť aj mechanizmy ako GTSM, RPKI atď.

Možno sú vyššie uvedené hlavné komponenty akéhokoľvek IXP, bez ohľadu na rozsah. Samozrejme, väčšie IXP môžu mať zavedené ďalšie technológie a riešenia.
Stáva sa, že IXP poskytuje svojim účastníkom aj doplnkové služby:

  • umiestnené na serveri DNS IXP TLD,
  • inštalovať hardvérové ​​NTP servery, ktoré umožňujú účastníkom presne synchronizovať čas,
  • poskytujú ochranu pred DDoS útokmi atď.

Princíp činnosti

Pozrime sa na princíp fungovania prevádzkového výmenného bodu na príklade jednoduchého IXP, modelovaného pomocou EVE-NG, a potom zvážime základné nastavenie softvérového smerovača BIRD. Pre zjednodušenie diagramu vynecháme také dôležité veci ako redundancia a odolnosť voči chybám.

Topológia siete je znázornená na obrázku nižšie.

Dopravný výmenný bod: od vzniku až po vytvorenie vlastného IX

Predpokladajme, že spravujeme malý výmenný bod a poskytujeme nasledujúce možnosti partnerstva:

  • verejný peering,
  • súkromný peering,
  • peering cez smerovací server.

Naše AS číslo je 555, vlastníme blok IPv4 adries – 50.50.50.0/24, z ktorého vydávame IP adresy pre tých, ktorí sa chcú pripojiť do našej siete.

50.50.50.254 – IP adresa nakonfigurovaná na rozhraní smerovacieho servera, s touto IP klienti vytvoria reláciu BGP v prípade peeringu cez RS.

Pre peering cez RS sme tiež vyvinuli jednoduchú smerovaciu politiku založenú na BGP komunite, ktorá umožňuje účastníkom IXP regulovať, komu a aké trasy posielať:

BGP komunita
Popis

LOCAL_AS:PEER_AS
Posielajte predpony iba do PEER_AS

LOCAL_AS:IXP_AS
Preneste prefixy všetkým účastníkom IXP

3 klienti sa chcú pripojiť k nášmu IXP a vymieňať si prevádzku; Povedzme, že ide o poskytovateľov internetu. Všetci chcú organizovať partnerský vzťah cez smerovací server. Nižšie je uvedený diagram s parametrami pripojenia klienta:

zákazník
Číslo AS zákazníka
Klientom inzerované predvoľby
IP adresa pridelená klientovi na pripojenie k IXP

ISP #1
AS 100
1.1.0.0/16
50.50.50.10/24

ISP #2
AS 200
2.2.0.0/16
50.50.50.20/24

ISP #3
AS 300
3.3.0.0/16
50.50.50.30/24

Základné nastavenie BGP na klientskom smerovači:

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

Za zmienku tu stojí nastavenie no bgp force-first-as. Štandardne BGP vyžaduje, aby as-cesta prijatej aktualizácie BGP obsahovala as bgp číslo partnera, od ktorého bola aktualizácia prijatá. Ale keďže smerovací server nevykonáva zmeny v ceste ako, jeho číslo nebude v ceste ako a aktualizácia sa zahodí. Toto nastavenie sa používa na to, aby smerovač ignoroval toto pravidlo.

Tiež vidíme, že klient nastavil na túto predponu bgp community 555:555, čo podľa našej politiky znamená, že klient chce túto predponu inzerovať všetkým ostatným účastníkom.

Pre smerovače ostatných klientov budú nastavenia podobné, s výnimkou ich jedinečných parametrov.

Príklad konfigurácie BIRD:

define ixp_as = 555;
define ixp_prefixes = [ 50.50.50.0/24+ ];

template bgp RS_CLIENT {
  local as ixp_as;
  rs client;
}

Nasledujúci text popisuje filter, ktorý neprijíma marťanské predpony, ako aj predpony samotného IXP:

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;
}

Táto funkcia implementuje politiku smerovania, ktorú sme opísali vyššie.

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;


}

Nakonfigurujeme partnerský vzťah, aplikujeme vhodné filtre a zásady.

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;
  }
}

Stojí za zmienku, že na serveri smerovania je dobrou praxou vkladať cesty od rôznych partnerov do rôznych RIB. BIRD vám to umožňuje. V našom príklade sú pre zjednodušenie všetky aktualizácie prijaté od všetkých klientov pridané do jedného spoločného RIB.

Tak skontrolujme, čo máme.

Na smerovacom serveri vidíme, že relácia BGP bola vytvorená so všetkými tromi klientmi:

Dopravný výmenný bod: od vzniku až po vytvorenie vlastného IX

Vidíme, že od všetkých klientov dostávame predpony:

Dopravný výmenný bod: od vzniku až po vytvorenie vlastného IX

Na smerovači as 100 vidíme, že ak existuje iba jedna relácia BGP so serverom smerovania, dostávame predpony ako 200, tak aj 300, pričom atribúty BGP sa nezmenili, ako keby sa peering medzi klientmi vykonával priamo:

Dopravný výmenný bod: od vzniku až po vytvorenie vlastného IX

Vidíme teda, že prítomnosť smerovacieho servera výrazne zjednodušuje organizáciu partnerského vzťahu na IXP.

Dúfam, že vám táto ukážka pomohla lepšie pochopiť, ako fungujú IXP a ako funguje smerovací server na IXP.

Linxdatacenter IX

V Linxdatacenter sme vybudovali vlastný IXP založený na infraštruktúre 2 prepínačov a 2 smerovacích serveroch odolnej voči chybám. Náš IXP teraz beží v testovacom režime a pozývame všetkých, aby sa pripojili k Linxdatacenter IX a zúčastnili sa testovania. Po pripojení vám bude poskytnutý port so šírkou pásma 1 Gbit/s, možnosť peerovania cez naše smerovacie servery, ako aj prístup k vášmu osobnému účtu portálu IX, ktorý je dostupný na ix.linxdatacenter.com.

Ak chcete získať prístup k testovaniu, píšte do komentárov alebo súkromných správ.

Výkon

Dopravné výmenné body vznikli na úsvite internetu ako nástroj riešenia problému neoptimálneho prevádzkového toku medzi telekomunikačnými operátormi. Teraz, s príchodom nových globálnych služieb a nárastom objemu prevádzky CDN, výmenné body pokračujú v optimalizácii prevádzky globálnej siete. Nárast počtu IXP vo svete prospieva ako koncovému užívateľovi služby, tak aj telekomunikačným operátorom, prevádzkovateľom obsahu atď. Pre účastníkov IXP je prínos vyjadrený v znížení nákladov na organizáciu externého peeringu, znížení objemu prevádzky, za ktorú musia platiť operátori vyššej úrovne, optimalizácii smerovania a možnosti mať priame rozhranie s operátormi obsahu.

Užitočné odkazy

Zdroj: hab.com

Pridať komentár