Dopravní výměnný bod: od počátků po vytvoření vlastního IX

Dopravní výměnný bod: od počátků po vytvoření vlastního IX

„Navázali jsme telefonické spojení mezi námi a kluky ze SRI...“, řekl Kleinrock... v rozhovoru:
"Napsali jsme L a do telefonu jsme se zeptali: "Vidíš to L?"
"Ano, vidíme L," zněla odpověď.
"Napsali jsme O a zeptali jsme se: "Vidíš to O?"
"Ano, vidíme O."
"Pak jsme napsali G a systém se zhroutil"...

Přesto začala revoluce…

Začátek internetu.


Ahoj všichni!

Jmenuji se Alexander a jsem síťový inženýr ve společnosti Linxdatacenter. V dnešním článku si povíme o dopravních výměnných bodech (Internet Exchange Points, IXP): co předcházelo jejich vzniku, jaké úkoly řeší a jak se staví. Také v tomto článku předvedu princip fungování IXP pomocí platformy EVE-NG a softwarového routeru BIRD, abyste pochopili, jak to funguje „pod kapotou“.

Trocha historie

Když se podíváte zde, pak můžete vidět, že rychlý růst počtu míst výměny provozu začal v roce 1993. Je to dáno tím, že většina provozu tehdy existujících telekomunikačních operátorů procházela páteřní sítí USA. Když tedy například provoz šel od operátora ve Francii k operátorovi v Německu, směřoval nejprve z Francie do USA a teprve potom z USA do Německa. Páteřní síť v tomto případě fungovala jako tranzitní mezi Francií a Německem. I provoz v rámci jedné země často procházel nikoli přímo, ale přes páteřní sítě amerických operátorů.

Tento stav neovlivnil pouze náklady na poskytování tranzitního provozu, ale také kvalitu kanálů a zpoždění. Zvýšil se počet uživatelů internetu, objevili se noví operátoři, zvýšil se objem provozu a internet dozrál. Operátoři po celém světě si začali uvědomovat, že je zapotřebí racionálnějšího přístupu k organizaci interakce mezi operátory. "Proč bych měl já, operátor A, platit za tranzit přes jinou zemi, abych doručil provoz operátorovi B, který sídlí v další ulici?" To je zhruba otázka, kterou si tehdy telekomunikační operátoři kladli. Body pro výměnu provozu se tak začaly objevovat v různých částech světa v místech koncentrace operátorů:

  • 1994 – LINX v Londýně,
  • 1995 – DE-CIX ve Frankfurtu,
  • 1995 - MSK-IX, v Moskvě, atd.

Internet a naše dny

Koncepčně se architektura moderního internetu skládá z mnoha autonomních systémů (AS) a mnoha spojení mezi nimi, fyzických i logických, které určují cestu provozu z jednoho AS do druhého.

AS jsou obvykle telekomunikační operátoři, poskytovatelé internetu, CDN, datová centra a společnosti podnikového segmentu. AS mezi sebou organizují logická spojení (peering), obvykle pomocí protokolu BGP.

Jak autonomní systémy organizují tato spojení, je určeno řadou faktorů:

  • geografický,
  • hospodářský,
  • politický,
  • dohody a společné zájmy mezi vlastníky AS,
  • atd.

Toto schéma má samozřejmě určitou strukturu a hierarchii. Operátoři se tedy dělí na tier-1, tier-2 a tier-3, a pokud jsou klienty pro lokálního poskytovatele internetu (tier-3) zpravidla běžní uživatelé, pak např. pro tier-1 klienti jsou jiní operátoři. Operátoři úrovně 3 agregují provoz svých předplatitelů, telekomunikační operátoři úrovně 2 zase agregují provoz operátorů úrovně 3 a úroveň 1 – veškerý internetový provoz.

Schematicky to lze znázornit takto:

Dopravní výměnný bod: od počátků po vytvoření vlastního IX
Tento obrázek ukazuje, že provoz je agregován zdola nahoru, tzn. od koncových uživatelů po operátory úrovně 1. Existuje také horizontální výměna provozu mezi přidruženými systémy, které jsou si navzájem přibližně rovnocenné.

Nedílnou součástí a zároveň nevýhodou tohoto schématu je určitá záměna vazeb mezi autonomními systémy umístěnými blíže koncovému uživateli, v rámci geografické oblasti. Zvažte obrázek níže:

Dopravní výměnný bod: od počátků po vytvoření vlastního IX

Předpokládejme, že ve velkém městě existuje 5 telekomunikačních operátorů, mezi nimiž je peering z toho či onoho důvodu organizován tak, jak je uvedeno výše.

Pokud chce uživatel Petya, připojený k Go ISP, přistupovat k serveru připojenému k poskytovateli ASM, pak bude provoz mezi nimi nucen procházet přes 5 autonomních systémů. To zvyšuje zpoždění, protože zvyšuje se počet síťových zařízení, přes která bude provoz procházet, a také objem tranzitního provozu na autonomních systémech mezi Go a ASM.

Jak snížit počet tranzitních AS, kterými je provoz nucen projíždět? Správně - dopravní výměnný bod.

Dnes je vznik nových IXP poháněn stejnými potřebami jako na počátku 90. až 2000. let, pouze v menším měřítku, v reakci na rostoucí počet telekomunikačních operátorů, uživatelů a provozu, rostoucí množství obsahu generovaného sítěmi CDN. a datová centra.

Co je směnný bod?

Dopravní výměnný bod je místo se speciální síťovou infrastrukturou, kde účastníci se zájmem o vzájemnou výměnu provozu organizují vzájemný peering. Hlavní účastníci výměnných bodů provozu: telekomunikační operátoři, poskytovatelé internetu, poskytovatelé obsahu a datová centra. V místech dopravní výměny se účastníci spojují přímo mezi sebou. To vám umožní vyřešit následující problémy:

  • snížit latenci,
  • snížit objem tranzitní dopravy,
  • optimalizovat směrování mezi AS.

Vzhledem k tomu, že IXP jsou přítomny v mnoha velkých městech po celém světě, má toto vše příznivý vliv na internet jako celek.

Pokud se výše uvedená situace s Petyou vyřeší pomocí IXP, dopadne to asi takto:

Dopravní výměnný bod: od počátků po vytvoření vlastního IX

Jak funguje místo pro výměnu provozu?

IXP je zpravidla samostatný AS s vlastním blokem veřejných IPv4/IPv6 adres.

Síť IXP se nejčastěji skládá z kontinuální domény L2. Někdy je to jednoduše VLAN, která hostí všechny klienty IXP. Pokud jde o větší, geograficky distribuované IXP, lze k organizaci L2 domény použít technologie jako MPLS, VXLAN atd.

prvky IXP

  • SKS. Není zde nic neobvyklého: stojany, optická křížová propojení, patch panely.
  • Přepínače – základ IXP. Port přepínače je vstupním bodem do sítě IXP. Přepínače také plní část funkcí zabezpečení – filtrují nevyžádaný provoz, který by neměl být přítomen v síti IXP. Přepínače se zpravidla vybírají na základě funkčních požadavků – spolehlivost, podporované rychlosti portů, bezpečnostní funkce, podpora sFlow atd.
  • Směrovací server (RS) – nedílnou a nezbytnou součástí každého moderního dopravního výměnného místa. Princip fungování je velmi podobný routeru v iBGP nebo určenému routeru v OSPF a řeší stejné problémy. S rostoucím počtem účastníků v místě výměny provozu se zvyšuje počet relací BGP, které každý účastník potřebuje podporovat, tzn. to připomíná klasickou full-mesh topologii v iBGP. RS řeší problém následujícím způsobem: naváže relaci BGP s každým zainteresovaným účastníkem IXP a tento účastník se stane klientem RS. Po obdržení aktualizace BGP od jednoho ze svých klientů RS tuto aktualizaci odešle všem svým dalším klientům, samozřejmě s výjimkou toho, od kterého tuto aktualizaci obdržel. RS tedy eliminuje potřebu vytvořit úplnou síť mezi všemi členy IXP a elegantně řeší problém škálovatelnosti. Stojí za zmínku, že směrovací server transparentně přenáší cesty z jednoho AS do druhého, aniž by prováděl změny v atributech přenášených BGP, například nepřidává číslo ve svém AS k AS-cestě. Také na RS je základní filtrování tras: RS například nepřijímá sítě Marťanů a prefixy samotného IXP.

    Router s otevřeným zdrojovým kódem, BIRD (bird internet routing daemon), se často používá jako řešení směrovacího serveru. Dobré na něm je, že je zdarma, rychle se nasazuje na většinu linuxových distribucí, má flexibilní mechanismus pro nastavování politik směrování/filtrování a není náročný na výpočetní zdroje. Jako RS lze také vybrat hardwarový/virtuální router od Cisco, Juniper atd.

  • Security. Protože síť IXP je koncentrací velkého počtu AS, musí být dobře napsána bezpečnostní politika, kterou musí všichni účastníci dodržovat. Obecně platí, že zde platí všechny stejné mechanismy, které se uplatňují při nastavování sousedství BGP mezi dvěma samostatnými partnery BGP mimo IXP, plus některé další bezpečnostní funkce.

    Je například dobrou praxí povolit provoz pouze z konkrétní mac adresy účastníka IXP, která je předem vyjednána. Odmítnutí provozu s poli ethertype jiným než 0x0800(IPv4), 0x08dd(IPv6), 0x0806(ARP); to se provádí za účelem odfiltrování provozu, který nepatří do peeringu BGP. Lze použít i mechanismy jako GTSM, RPKI atd.

Možná jsou výše uvedené hlavní součásti jakéhokoli IXP, bez ohledu na měřítko. Větší IXP samozřejmě mohou mít další technologie a řešení.
Stává se, že IXP poskytuje svým účastníkům i doplňkové služby:

  • umístěna na serveru DNS IXP TLD,
  • nainstalovat hardwarové NTP servery, které účastníkům umožní přesně synchronizovat čas,
  • poskytují ochranu proti DDoS útokům atd.

Princip činnosti

Podívejme se na princip fungování dopravního výměnného bodu na příkladu jednoduchého IXP, modelovaného pomocí EVE-NG, a poté uvažujme o základním nastavení softwarového routeru BIRD. Pro zjednodušení diagramu vynecháme tak důležité věci, jako je redundance a odolnost proti chybám.

Topologie sítě je znázorněna na obrázku níže.

Dopravní výměnný bod: od počátků po vytvoření vlastního IX

Předpokládejme, že spravujeme malý výměnný bod a poskytujeme následující možnosti partnerského vztahu:

  • veřejný peering,
  • soukromý peering,
  • peering přes směrovací server.

Naše AS číslo je 555, vlastníme blok IPv4 adres – 50.50.50.0/24, ze kterého vydáváme IP adresy pro ty, kteří se chtějí připojit k naší síti.

50.50.50.254 – IP adresa nakonfigurovaná na rozhraní směrovacího serveru, s touto IP klienti vytvoří relaci BGP v případě peeringu přes RS.

Pro peering přes RS jsme také vyvinuli jednoduchou směrovací politiku založenou na BGP komunitě, která umožňuje účastníkům IXP regulovat, komu a jaké cesty posílat:

komunita BGP
popis

LOCAL_AS:PEER_AS
Odesílat předpony pouze do PEER_AS

LOCAL_AS:IXP_AS
Přeneste prefixy všem účastníkům IXP

3 klienti se chtějí připojit k našemu IXP a vyměňovat si provoz; Řekněme, že se jedná o poskytovatele internetu. Všichni chtějí organizovat peering prostřednictvím směrovacího serveru. Níže je schéma s parametry připojení klienta:

Zákazník
Číslo AS zákazníka
Předpony inzerované klientem
IP adresa přidělená klientovi pro připojení 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í nastavení BGP na klientském routeru:

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

Zde stojí za zmínku nastavení no bgp force-first-as. BGP standardně vyžaduje, aby as-path přijaté aktualizace BGP obsahovala as bgp číslo partnera, od kterého byla aktualizace přijata. Ale protože směrovací server neprovádí změny v as-cestě, jeho číslo nebude v as-cestě a aktualizace bude zahozena. Toto nastavení se používá k tomu, aby router toto pravidlo ignoroval.

Vidíme také, že klient nastavil na tento prefix bgp community 555:555, což podle našich zásad znamená, že klient chce tento prefix inzerovat všem ostatním účastníkům.

U routerů ostatních klientů bude nastavení podobné, s výjimkou jejich jedinečných parametrů.

Příklad konfigurace BIRD:

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

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

Následující text popisuje filtr, který nepřijímá předpony marťanů, stejně jako předpony 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;
}

Tato funkce implementuje zásady směrování, které jsme popsali dříve.

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ý vztah, aplikujeme vhodné filtry 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 zmínku, že na serveru směrování je dobrou praxí vkládat cesty od různých vrstevníků do různých RIB. BIRD vám to umožňuje. V našem příkladu jsou pro zjednodušení všechny aktualizace přijaté od všech klientů přidány do jednoho společného RIB.

Pojďme se tedy podívat, co máme.

Na směrovacím serveru vidíme, že byla vytvořena relace BGP se všemi třemi klienty:

Dopravní výměnný bod: od počátků po vytvoření vlastního IX

Vidíme, že dostáváme předpony od všech klientů:

Dopravní výměnný bod: od počátků po vytvoření vlastního IX

Na routeru as 100 vidíme, že pokud existuje pouze jedna relace BGP s routerem, dostáváme prefixy jak z 200, tak z 300, zatímco atributy BGP se nezměnily, jako by se peering mezi klienty prováděl přímo:

Dopravní výměnný bod: od počátků po vytvoření vlastního IX

Vidíme tedy, že přítomnost směrovacího serveru značně zjednodušuje organizaci peeringu na IXP.

Doufám, že vám tato ukázka pomohla lépe pochopit, jak fungují IXP a jak funguje směrovací server na IXP.

Linxdatacenter IX

V Linxdatacenter jsme vybudovali vlastní IXP založené na infrastruktuře 2 přepínačů a 2 směrovacích serverech odolné proti chybám. Náš IXP nyní běží v testovacím režimu a zveme všechny, aby se připojili k Linxdatacenter IX a zúčastnili se testování. Po připojení budete mít k dispozici port s šířkou pásma 1 Gbit/s, možnost peer přes naše směrovací servery a také přístup k vašemu osobnímu účtu portálu IX, který je k dispozici na adrese ix.linxdatacenter.com.

Pro přístup k testování pište do komentářů nebo soukromých zpráv.

Výkon

Dopravní výměnné body vznikly na úsvitu internetu jako nástroj pro řešení problému neoptimálního provozu mezi telekomunikačními operátory. Nyní, s příchodem nových globálních služeb a nárůstem objemu provozu CDN, výměnné body pokračují v optimalizaci provozu globální sítě. Nárůst počtu IXP ve světě přináší prospěch jak koncovému uživateli služby, tak telekomunikačním operátorům, provozovatelům obsahu atd. Pro účastníky IXP je přínos vyjádřen ve snížení nákladů na organizaci externího peeringu, snížení objemu provozu, za který musí platit operátoři vyšší úrovně, optimalizaci směrování a možnosti přímého rozhraní s provozovateli obsahu.

Užitečné odkazy

Zdroj: www.habr.com

Přidat komentář