Točka razmjene prometa: od nastanka do stvaranja vlastitog IX

Točka razmjene prometa: od nastanka do stvaranja vlastitog IX

“Uspostavili smo telefonsku vezu između nas i momaka iz SRI-ja...”, rekao je Kleinrock... u intervjuu:
“Upisali smo L i telefonom smo ga pitali: “Vidite li L?”
"Da, vidimo L", stigao je odgovor.
“Upisali smo O i pitali: Vidite li O.”
"Da, vidimo O."
“Onda smo upisali G i sustav se srušio”...

Ipak, revolucija je počela...

Početak interneta.


Pozdrav!

Moje ime je Alexander, ja sam mrežni inženjer u Linxdatacentru. U današnjem ćemo članku govoriti o točkama razmjene prometa (Internet Exchange Points, IXP): što je prethodilo njihovoj pojavi, koje zadatke rješavaju i kako su izgrađene. Također, u ovom ću članku demonstrirati princip rada IXP-a koristeći EVE-NG platformu i BIRD softverski usmjerivač, kako biste razumjeli kako radi "ispod haube".

Malo povijesti

Ako pogledate ovdje, onda možete vidjeti da je nagli rast broja točaka razmjene prometa započeo 1993. godine. To je zbog činjenice da je najveći dio prometa tada postojećih telekom operatera prolazio kroz okosnicu američke mreže. Tako je, primjerice, promet od operatera u Francuskoj išao prema operateru u Njemačkoj, prvo je išao iz Francuske u SAD, a tek onda iz SAD-a u Njemačku. Okosnica mreže u ovom je slučaju djelovala kao tranzit između Francuske i Njemačke. Čak je i promet unutar jedne zemlje često prolazio ne izravno, već kroz mreže okosnice američkih operatera.

Ovakvo stanje nije utjecalo samo na troškove isporuke tranzitnog prometa, već i na kvalitetu kanala i kašnjenja. Povećao se broj korisnika interneta, pojavili su se novi operateri, povećao se promet, a internet je sazrio. Operateri diljem svijeta počeli su shvaćati da je potreban racionalniji pristup organizaciji međuoperaterske interakcije. “Zašto bih ja, operater A, trebao plaćati tranzit kroz drugu državu kako bih isporučio promet operateru B koji se nalazi u susjednoj ulici?” Otprilike to su se tada pitali teleoperateri. Tako su se točke razmjene prometa počele pojavljivati ​​u različitim dijelovima svijeta u točkama koncentracije operatera:

  • 1994. – LINX u Londonu,
  • 1995. – DE-CIX u Frankfurtu,
  • 1995 – MSK-IX, u Moskvi itd.

Internet i naši dani

Konceptualno, arhitektura modernog Interneta sastoji se od mnogih autonomnih sustava (AS) i mnogih veza između njih, fizičkih i logičkih, koje određuju put prometa od jednog do drugog AS-a.

AS-ovi su obično telekom operateri, davatelji internetskih usluga, CDN-ovi, podatkovni centri i tvrtke segmenta poduzeća. AS-ovi organiziraju logičke veze (peering) među sobom, obično koristeći BGP protokol.

Način na koji autonomni sustavi organiziraju ove veze određuje niz čimbenika:

  • geografski,
  • ekonomski,
  • politički,
  • sporazumi i zajednički interesi između vlasnika AS-a,
  • itd.

Naravno, ova shema ima određenu strukturu i hijerarhiju. Tako se operatori dijele na tier-1, tier-2 i tier-3, a ako su klijenti za lokalnog internetskog davatelja (tier-3) u pravilu obični korisnici, onda je za tier-1 npr. operatori razine klijenti su drugi operateri. Tier-3 operateri zbrajaju promet svojih pretplatnika, tier-2 telekom operateri pak zbrajaju promet tier-3 operatera, a tier-1 – sav internetski promet.

Shematski se to može prikazati ovako:

Točka razmjene prometa: od nastanka do stvaranja vlastitog IX
Ova slika pokazuje da se promet prikuplja odozdo prema gore, tj. od krajnjih korisnika do operatera razine 1. Također postoji horizontalna razmjena prometa između AS-ova koji su međusobno približno ekvivalentni.

Sastavni dio, a ujedno i nedostatak ove sheme je određena konfuzija veza između autonomnih sustava smještenih bliže krajnjem korisniku, unutar zemljopisnog područja. Razmotrite sliku u nastavku:

Točka razmjene prometa: od nastanka do stvaranja vlastitog IX

Pretpostavimo da u velikom gradu postoji 5 telekom operatera, među kojima je peering, iz ovog ili onog razloga, organiziran kao što je prikazano gore.

Ako korisnik Petya, spojen na Go ISP, želi pristupiti poslužitelju povezanom s ASM providerom, tada će promet između njih biti prisiljen prolaziti kroz 5 autonomnih sustava. Time se kašnjenje povećava jer povećava se broj mrežnih uređaja kroz koje će ići promet, kao i obujam tranzitnog prometa na autonomnim sustavima između Go i ASM.

Kako smanjiti broj tranzitnih AS kroz koje promet mora proći? Tako je - točka razmjene prometa.

Danas je pojava novih IXP-ova potaknuta istim potrebama kao i ranih 90-ih i 2000-ih, samo u manjem opsegu, kao odgovor na sve veći broj telekom operatera, korisnika i prometa, sve veću količinu sadržaja koju generiraju CDN mreže i podatkovnih centara.

Što je mjenjačko mjesto?

Točka razmjene prometa je mjesto s posebnom mrežnom infrastrukturom gdje sudionici zainteresirani za međusobnu razmjenu prometa organiziraju međusobno peering. Glavni sudionici točaka razmjene prometa: telekom operateri, Internet provideri, content provideri i podatkovni centri. Na točkama razmjene prometa sudionici se međusobno izravno povezuju. To vam omogućuje rješavanje sljedećih problema:

  • smanjiti latenciju,
  • smanjiti količinu tranzitnog prometa,
  • optimizirati usmjeravanje između AS-a.

S obzirom na to da su IXP-ovi prisutni u mnogim velikim svjetskim gradovima, sve to ima blagotvoran učinak na Internet u cjelini.

Ako se gornja situacija s Petyom riješi pomoću IXP-a, ispast će ovako:

Točka razmjene prometa: od nastanka do stvaranja vlastitog IX

Kako funkcionira točka razmjene prometa?

U pravilu, IXP je zaseban AS s vlastitim blokom javnih IPv4/IPv6 adresa.

IXP mreža se najčešće sastoji od kontinuirane L2 domene. Ponekad je to jednostavno VLAN koji ugošćuje sve IXP klijente. Kada je riječ o većim, geografski raspoređenim IXP-ovima, tehnologije kao što su MPLS, VXLAN itd. mogu se koristiti za organiziranje L2 domene.

IXP elementi

  • SKS. Ovdje nema ničeg neobičnog: regali, optički križni spojevi, patch paneli.
  • Prekidači – osnova IXP. Switch port je ulazna točka u IXP mrežu. Prekidači također obavljaju dio sigurnosnih funkcija - filtriraju neželjeni promet koji ne bi trebao biti prisutan na IXP mreži. U pravilu se preklopnici odabiru na temelju funkcionalnih zahtjeva - pouzdanosti, podržanih brzina portova, sigurnosnih značajki, podrške za sFlow itd.
  • Poslužitelj rute (RS) – sastavni i nužni dio svake moderne prometne razmjene. Princip rada vrlo je sličan reflektoru rute u iBGP-u ili određenom usmjerivaču u OSPF-u i rješava iste probleme. Kako raste broj sudionika u točki razmjene prometa, povećava se i broj BGP sesija koje svaki sudionik treba podržati, tj. ovo podsjeća na klasičnu full-mesh topologiju u iBGP-u. RS problem rješava na sljedeći način: uspostavlja BGP sesiju sa svakim zainteresiranim IXP sudionikom, a taj sudionik postaje RS klijent. Primivši ažuriranje BGP-a od jednog od svojih klijenata, RS šalje ovo ažuriranje svim svojim ostalim klijentima, naravno, s izuzetkom onog od kojeg je primljeno ažuriranje. Stoga RS eliminira potrebu za uspostavljanjem pune mreže između svih članova IXP-a i elegantno rješava problem skalabilnosti. Vrijedno je napomenuti da poslužitelj rute transparentno prenosi rute s jednog AS-a na drugi bez mijenjanja atributa koje prenosi BGP, na primjer, ne dodaje broj u svom AS-u putu AS-a. Također na RS-u postoji osnovno filtriranje ruta: na primjer, RS ne prihvaća Marsovske mreže i prefikse samog IXP-a.

    Softverski usmjerivač otvorenog koda, BIRD (bird internet routing daemon), često se koristi kao rješenje poslužitelja rute. Dobra stvar kod njega je što je besplatan, brzo se postavlja na većinu distribucija Linuxa, ima fleksibilan mehanizam za postavljanje pravila usmjeravanja/filtriranja i nije zahtjevan za računalne resurse. Također, hardverski/virtualni usmjerivač Cisco, Juniper itd. može se odabrati kao RS.

  • Sigurnost. Budući da je IXP mreža koncentracija velikog broja AS-ova, sigurnosna politika koju svi sudionici moraju slijediti mora biti dobro napisana. Općenito, ovdje se primjenjuju svi isti mehanizmi koji se primjenjuju prilikom uspostavljanja BGP susjedstva između dva odvojena BGP peera izvan IXP-a, plus neke dodatne sigurnosne značajke.

    Na primjer, dobra je praksa dopustiti promet samo s određene mac adrese sudionika IXP-a, što se unaprijed dogovara. Odbijanje prometa s poljima ethertype koja nisu 0x0800(IPv4), 0x08dd(IPv6), 0x0806(ARP); ovo se radi kako bi se filtrirao promet koji ne pripada BGP peeringu. Mogu se koristiti i mehanizmi kao što su GTSM, RPKI itd.

Možda su gore navedene glavne komponente svakog IXP-a, bez obzira na veličinu. Naravno, veći IXP-ovi mogu imati dodatne tehnologije i rješenja.
Dešava se da IXP svojim sudionicima pruža i dodatne usluge:

  • hostiran na IXP TLD DNS poslužiteljima,
  • instalirajte hardverske NTP poslužitelje, omogućujući sudionicima točnu sinkronizaciju vremena,
  • pružiti zaštitu od DDoS napada itd.

Princip rada

Pogledajmo princip rada točke razmjene prometa na primjeru jednostavnog IXP-a, modeliranog korištenjem EVE-NG, a zatim razmotrimo osnovne postavke BIRD softverskog usmjerivača. Kako bismo pojednostavili dijagram, izostavit ćemo tako važne stvari kao što su redundancija i tolerancija na greške.

Topologija mreže prikazana je na donjoj slici.

Točka razmjene prometa: od nastanka do stvaranja vlastitog IX

Pretpostavimo da administriramo malu točku razmjene i pružamo sljedeće opcije peeringa:

  • javni peering,
  • privatni peering,
  • peering preko route servera.

Naš AS broj je 555, posjedujemo blok IPv4 adresa – 50.50.50.0/24, s kojih izdajemo IP adrese za one koji se žele spojiti na našu mrežu.

50.50.50.254 – IP adresa konfigurirana na sučelju poslužitelja rute, s ovim IP-om klijenti će uspostaviti BGP sesiju u slučaju peeringa putem RS-a.

Također, za peering preko RS-a razvili smo jednostavnu politiku usmjeravanja temeljenu na BGP zajednici, koja sudionicima IXP-a omogućuje da reguliraju kome i koje rute slati:

BGP zajednica
Opis

LOCAL_AS:PEER_AS
Šalji prefikse samo na PEER_AS

LOCAL_AS:IXP_AS
Prijenos prefiksa svim sudionicima IXP-a

3 klijenta se žele spojiti na naš IXP i razmjenjivati ​​promet; Recimo da su to Internet provideri. Svi žele organizirati peering kroz server rute. Ispod je dijagram s parametrima veze klijenta:

kupac
AS broj kupca
Prefiksi koje reklamira klijent
IP adresa izdana klijentu za povezivanje na 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

Osnovna BGP postavka na klijentskom usmjerivaču:

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

Ovdje je vrijedno pažnje da nema postavke bgp force-first-as. Prema zadanim postavkama, BGP zahtijeva da as-path primljenog BGP ažuriranja sadrži as bgp broj peera od kojeg je ažuriranje primljeno. Ali budući da poslužitelj rute ne mijenja as-path, njegov broj neće biti u as-path-u i ažuriranje će biti odbačeno. Ova se postavka koristi kako bi usmjerivač zanemario ovo pravilo.

Također vidimo da je klijent postavio bgp community 555:555 na ovaj prefiks, što prema našoj politici znači da klijent želi oglašavati ovaj prefiks svim ostalim sudionicima.

Za usmjerivače drugih klijenata, postavke će biti slične, s izuzetkom njihovih jedinstvenih parametara.

Primjer BIRD konfiguracije:

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

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

Sljedeće opisuje filtar koji ne prihvaća prefikse Marsovci, kao ni prefikse samog IXP-a:

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

Ova funkcija implementira politiku usmjeravanja koju smo ranije opisali.

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;


}

Konfiguriramo peering, primjenjujemo odgovarajuće filtere i pravila.

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

Vrijedno je napomenuti da je na poslužitelju ruta dobra praksa staviti rute od različitih peerova u različite RIB-ove. BIRD vam to omogućuje. U našem primjeru, radi jednostavnosti, sva ažuriranja primljena od svih klijenata dodaju se u jedan zajednički RIB.

Dakle, provjerimo što imamo.

Na poslužitelju rute vidimo da je BGP sesija uspostavljena sa sva tri klijenta:

Točka razmjene prometa: od nastanka do stvaranja vlastitog IX

Vidimo da primamo prefikse od svih klijenata:

Točka razmjene prometa: od nastanka do stvaranja vlastitog IX

Na usmjerivaču as 100 vidimo da ako postoji samo jedna BGP sesija s poslužiteljem rute, primamo prefikse i od as 200 i od as 300, dok se BGP atributi nisu promijenili, kao da je peering između klijenata izvršen izravno:

Točka razmjene prometa: od nastanka do stvaranja vlastitog IX

Dakle, vidimo da prisutnost poslužitelja rute uvelike pojednostavljuje organizaciju peeringa na IXP.

Nadam se da vam je ova demonstracija pomogla da bolje razumijete kako IXP-ovi rade i kako poslužitelj rute radi na IXP-u.

Linx podatkovni centar IX

U Linxdatacentru izgradili smo vlastiti IXP temeljen na infrastrukturi otpornoj na greške od 2 preklopnika i 2 poslužitelja za usmjeravanje. Naš IXP sada radi u testnom načinu rada i pozivamo sve da se povežu na Linxdatacenter IX i sudjeluju u testiranju. Kada se povežete, dobit ćete priključak s propusnošću od 1 Gbit/s, mogućnost peeriranja kroz naše rutne poslužitelje, kao i pristup vašem osobnom računu portala IX, dostupnom na ix.linxdatacenter.com.

Pišite u komentarima ili privatnim porukama kako biste dobili pristup testiranju.

Izlaz

Točke razmjene prometa nastale su u zoru interneta kao alat za rješavanje problema neoptimalnog protoka prometa između telekom operatera. Sada, s pojavom novih globalnih usluga i povećanjem količine CDN prometa, razmjenske točke nastavljaju optimizirati rad globalne mreže. Povećanje broja IXP-ova u svijetu pogoduje kako krajnjem korisniku usluge tako i telekom operaterima, operatorima sadržaja itd. Za sudionike IXP-a korist se izražava u smanjenju troškova organiziranja eksternog peeringa, smanjenju količine prometa koji operateri više razine moraju platiti, optimizaciji usmjeravanja te mogućnosti izravnog sučelja s operatorima sadržaja.

korisni linkovi

Izvor: www.habr.com

Dodajte komentar