Tačka razmene saobraćaja: od nastanka do kreiranja sopstvenog IX

Tačka razmene saobraćaja: od nastanka do kreiranja sopstvenog IX

“Postavili smo telefonsku vezu između nas i momaka iz SRI...”, rekao je Kleinrock... u intervjuu:
“Ukucali smo L i pitali smo telefonom: “Vidiš li L?”
„Da, vidimo L“, stigao je odgovor.
“Ukucali smo O i pitali smo: “Vidiš li O.”
"Da, vidimo O."
“Onda smo otkucali G, i sistem se srušio”...

Ipak je revolucija počela…

Početak interneta.


Pozdrav svima!

Moje ime je Alexander, ja sam mrežni inženjer u Linxdatacenter. U današnjem članku ćemo govoriti o tačkama za razmjenu prometa (Internet Exchange Points, IXP): šta je prethodilo njihovoj pojavi, koje zadatke rješavaju i kako se grade. Takođe u ovom članku ću demonstrirati princip rada IXP-a koristeći EVE-NG platformu i softverski ruter BIRD, tako da imate razumijevanje kako on funkcionira “ispod haube”.

Malo istorije

Ako pogledate ovdje, onda možete vidjeti da je nagli rast broja točaka za razmjenu saobraćaja počeo 1993. godine. To je zbog činjenice da je većina saobraćaja u to vrijeme postojalih telekom operatera prolazila kroz američku okosnu mrežu. Tako, na primjer, kada je saobraćaj išao od operatera u Francuskoj do operatera u Njemačkoj, prvo je išao iz Francuske u SAD, a tek onda iz SAD-a u Njemačku. Mreža okosnice u ovom slučaju je djelovala kao tranzit između Francuske i Njemačke. Čak se i saobraćaj unutar jedne zemlje često odvijao ne direktno, već kroz okosne mreže američkih operatera.

Ovakvo stanje je uticalo ne samo na troškove isporuke tranzitnog saobraćaja, već i na kvalitet kanala i kašnjenja. Povećao se broj korisnika interneta, pojavili su se novi operateri, povećao se obim saobraćaja, a internet je sazreo. Operateri širom svijeta počeli su shvaćati da je potreban racionalniji pristup organizaciji interakcije među operaterima. „Zašto bih ja, operater A, trebao plaćati tranzit kroz drugu državu da bih isporučio saobraćaj operateru B, koji se nalazi u susjednoj ulici?“ To je otprilike pitanje koje su si tada postavljali telekom operateri. Tako su se tačke razmjene saobraćaja počele pojavljivati ​​u različitim dijelovima svijeta na mjestima 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 se sastoji od mnogih autonomnih sistema (AS) i mnogih veza između njih, fizičkih i logičkih, koje određuju put saobraćaja od jednog AS do drugog.

AS su obično telekom operateri, Internet provajderi, CDN-ovi, data centri i kompanije iz segmenta preduzeća. AS organizuju logičke veze (peering) među sobom, obično koristeći BGP protokol.

Način na koji autonomni sistemi organizuju ove veze je određen brojnim faktorima:

  • geografski,
  • ekonomski,
  • politički,
  • sporazumi i zajednički interesi između vlasnika AS,
  • i tako dalje.

Naravno, ova šema ima određenu strukturu i hijerarhiju. Tako su operateri podijeljeni na tier-1, tier-2 i tier-3, a ako su klijenti lokalnog internet provajdera (tier-3) u pravilu obični korisnici, onda, na primjer, za nivo-1 operatori nivoa klijenti su drugi operateri. Tier-3 operateri agregiraju promet svojih pretplatnika, telekom operateri Tier-2, zauzvrat, agregiraju promet Tier-3 operatera, a Tier-1 – sav Internet promet.

Šematski se može predstaviti ovako:

Tačka razmene saobraćaja: od nastanka do kreiranja sopstvenog IX
Ova slika pokazuje da je promet agregiran odozdo prema gore, tj. od krajnjih korisnika do Tier-1 operatera. Postoji i horizontalna razmjena saobraćaja između AS-ova koji su međusobno približno ekvivalentni.

Sastavni dio, a ujedno i nedostatak ove šeme je određena konfuzija veza između autonomnih sistema koji se nalaze bliže krajnjem korisniku, unutar geografskog područja. Razmotrite sliku ispod:

Tačka razmene saobraćaja: od nastanka do kreiranja sopstvenog IX

Pretpostavimo da u velikom gradu postoji 5 telekom operatera, među kojima je, iz ovih ili onih razloga, organizovano kao što je prikazano gore.

Ako korisnik Petya, povezan sa Go ISP-om, želi da pristupi serveru povezanom sa ASM provajderom, tada će saobraćaj između njih biti primoran da prolazi kroz 5 autonomnih sistema. Ovo povećava kašnjenje jer povećava se broj mrežnih uređaja preko kojih će saobraćaj ići, kao i obim tranzitnog saobraćaja na autonomnim sistemima između Go i ASM.

Kako smanjiti broj tranzitnih AS-ova kroz koje je promet prisiljen proći? Tako je - tačka razmene saobraćaja.

Danas je pojava novih IXP-a vođena istim potrebama kao i ranih 90-ih-2000-ih, samo u manjem obimu, kao odgovor na sve veći broj telekom operatera, korisnika i prometa, rastuću količinu sadržaja koji generiraju CDN mreže. i data centri.

Šta je tačka razmene?

Tačka razmene saobraćaja je mesto sa posebnom mrežnom infrastrukturom gde učesnici zainteresovani za međusobnu razmenu saobraćaja organizuju međusobno peering. Glavni učesnici tačaka razmene saobraćaja: telekom operateri, Internet provajderi, provajderi sadržaja i data centri. Na mjestima za razmjenu saobraćaja, učesnici se direktno povezuju jedni s drugima. To vam omogućava da riješite sljedeće probleme:

  • smanjiti kašnjenje,
  • smanjiti količinu tranzitnog saobraćaja,
  • optimizirati rutiranje između AS.

S obzirom da su IXP-ovi prisutni u mnogim velikim gradovima širom svijeta, sve ovo ima blagotvoran učinak na internet u cjelini.

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

Tačka razmene saobraćaja: od nastanka do kreiranja sopstvenog IX

Kako funkcioniše tačka razmene saobraćaja?

Po pravilu, IXP je poseban AS sa sopstvenim blokom javnih IPv4/IPv6 adresa.

IXP mreža se najčešće sastoji od kontinuiranog L2 domena. Ponekad je ovo jednostavno VLAN koji ugošćuje sve IXP klijente. Kada su u pitanju veći, geografski distribuirani IXP-ovi, tehnologije kao što su MPLS, VXLAN, itd. mogu se koristiti za organizaciju L2 domena.

IXP elementi

  • SKS. Ovdje nema ničeg neobičnog: stalci, optičke unakrsne veze, patch paneli.
  • Prekidači – osnova IXP. Svitch port je ulazna tač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, prekidači se biraju na osnovu funkcionalnih zahtjeva - pouzdanost, podržane brzine portova, sigurnosne karakteristike, podrška za sFlow itd.
  • Rut server (RS) – sastavni i neophodan deo svakog modernog mesta razmene saobraćaja. Princip rada je vrlo sličan reflektoru rute u iBGP-u ili određenom ruteru u OSPF-u i rješava iste probleme. Kako broj učesnika u tački razmene saobraćaja raste, povećava se i broj BGP sesija koje svaki učesnik treba da podrži, tj. ovo podsjeća na klasičnu topologiju pune mreže u iBGP-u. RS rješava problem na sljedeći način: uspostavlja BGP sesiju sa svakim zainteresovanim IXP učesnikom i taj učesnik postaje RS klijent. Primajući BGP ažuriranje od jednog od svojih klijenata, RS šalje ovu nadogradnju svim svojim drugim klijentima, naravno, osim onog od kojeg je ovo ažuriranje primljeno. Tako RS eliminiše potrebu za uspostavljanjem pune mreže između svih IXP članova i elegantno rješava problem skalabilnosti. Vrijedi napomenuti da server rute transparentno prenosi rute od jednog AS do drugog bez mijenjanja atributa koje prenosi BGP, na primjer, ne dodaje broj u svom AS-u na AS-putu. Također u RS postoji osnovno filtriranje ruta: na primjer, RS ne prihvata mreže Marsovaca i prefikse samog IXP-a.

    Softverski ruter otvorenog koda, BIRD (bird internet routing daemon), često se koristi kao rješenje servera ruta. Dobra stvar u vezi s tim je što je besplatan, brzo se postavlja na većinu Linux distribucija, ima fleksibilan mehanizam za postavljanje politika usmjeravanja/filtriranja i nije zahtjevan za računarske resurse. Također, hardverski/virtuelni ruter iz 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 učesnici moraju slijediti mora biti dobro napisana. Uopšteno govoreći, ovdje se primjenjuju svi isti mehanizmi koji se primjenjuju kada se uspostavlja BGP susjedstvo između dva odvojena BGP peer-a izvan IXP-a, plus neke dodatne sigurnosne mjere.

    Na primjer, dobra je praksa dozvoliti promet samo sa određene mac adrese IXP učesnika, o čemu se unaprijed dogovara. Odbijanje saobraćaja sa ethertype poljima 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 bilo kojeg 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 učesnicima pruža i dodatne usluge:

  • postavljeno na IXP TLD DNS server,
  • instalirati hardverske NTP servere, omogućavajući učesnicima da precizno sinhronizuju vrijeme,
  • pružaju zaštitu od DDoS napada itd.

Kako to radi

Pogledajmo princip rada tačke razmjene prometa na primjeru jednostavnog IXP-a, modeliranog pomoću EVE-NG, a zatim razmotrimo osnovnu postavku softverskog rutera BIRD. Da bismo pojednostavili dijagram, izostavićemo važne stvari kao što su redundantnost i tolerancija grešaka.

Topologija mreže je prikazana na donjoj slici.

Tačka razmene saobraćaja: od nastanka do kreiranja sopstvenog IX

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

  • javno gledanje,
  • privatno peering,
  • peering putem servera rute.

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

50.50.50.254 – IP adresa konfigurisana na interfejsu servera rute, sa ovim IP klijenti će uspostaviti BGP sesiju u slučaju peeringa preko RS.

Takođe, za peering preko RS, razvili smo jednostavnu politiku rutiranja zasnovanu na BGP zajednici, koja omogućava učesnicima IXP-a da regulišu kome i koje rute slati:

BGP zajednica
Opis

LOCAL_AS:PEER_AS
Šalji prefikse samo na PEER_AS

LOCAL_AS:IXP_AS
Prenesite prefikse svim IXP učesnicima

3 klijenta žele da se povežu na naš IXP i razmene saobraćaj; Recimo da su ovo internet provajderi. Svi oni žele da organizuju gledanje preko servera ruta. Ispod je dijagram sa parametrima povezivanja klijenta:

Kupac
AS broj klijenta
Prefiksi koje je reklamirao klijent
IP adresa izdata klijentu za povezivanje na IXP

ISP #1
AS100
1.1.0.0/16
50.50.50.10/24

ISP #2
AS200
2.2.0.0/16
50.50.50.20/24

ISP #3
AS300
3.3.0.0/16
50.50.50.30/24

Osnovno podešavanje BGP-a na klijentskom ruteru:

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

Vrijedi napomenuti postavku no bgp enforce-first-as. BGP podrazumevano zahteva da as-put primljenog BGP ažuriranja sadrži as bgp broj ravnopravnog korisnika od kojeg je ažuriranje primljeno. Ali pošto server rute ne pravi promene na as-putanju, njegov broj neće biti u as-stazi i ažuriranje će biti odbačeno. Ova postavka se koristi da bi ruter zanemario ovo pravilo.

Takođe vidimo da je klijent postavio bgp community 555:555 na ovaj prefiks, što prema našoj politici znači da klijent želi da reklamira ovaj prefiks svim ostalim učesnicima.

Za rutere drugih klijenata, postavke će biti slične, sa 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;
}

U nastavku je opisan filter koji ne prihvata marsovske prefikse, kao i 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 rutiranja koju smo opisali ranije.

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 politike.

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

Vrijedi napomenuti da je na serveru ruta dobra praksa staviti rute od različitih ravnopravnih korisnika u različite RIB-ove. BIRD vam to dozvoljava. U našem primjeru, radi jednostavnosti, sva ažuriranja primljena od svih klijenata dodaju se u jedan zajednički RIB.

Pa, hajde da proverimo šta imamo.

Na serveru rute vidimo da je uspostavljena BGP sesija sa sva tri klijenta:

Tačka razmene saobraćaja: od nastanka do kreiranja sopstvenog IX

Vidimo da dobijamo prefikse od svih klijenata:

Tačka razmene saobraćaja: od nastanka do kreiranja sopstvenog IX

Na as 100 ruteru vidimo da ako postoji samo jedna BGP sesija sa serverom rute, dobijamo prefikse i od 200 i od 300, dok se BGP atributi nisu promenili, kao da je peering direktno između klijenata:

Tačka razmene saobraćaja: od nastanka do kreiranja sopstvenog IX

Dakle, vidimo da prisustvo servera rute uveliko pojednostavljuje organizaciju peeringa na IXP-u.

Nadam se da vam je ova demonstracija pomogla da bolje shvatite kako IXP-ovi rade i kako radi server rute na IXP-u.

Linxdatacenter IX

U Linxdatacenter smo izgradili vlastiti IXP baziran na infrastrukturi otpornoj na greške od 2 prekidača i 2 servera ruta. Naš IXP sada radi u test modu, i pozivamo sve da se povežu na Linxdatacenter IX i učestvuju u testiranju. Kada se povežete, biće vam obezbeđen port sa propusnim opsegom od 1 Gbit/s, mogućnost provirivanja kroz naše servere ruta, kao i pristup vašem ličnom nalogu na IX portalu, dostupan na ix.linxdatacenter.com.

Pišite u komentarima ili privatnim porukama da dobijete pristup testiranju.

zaključak

Tačke za razmjenu saobraćaja nastale su u zoru interneta kao alat za rješavanje problema neoptimalnog protoka saobraćaja između telekom operatera. Sada, sa pojavom novih globalnih usluga i povećanjem količine CDN saobraćaja, razmjenski punktovi nastavljaju optimizirati rad globalne mreže. Povećanje broja IXP-a u svijetu koristi kako krajnjem korisniku usluge tako i telekom operaterima, operaterima sadržaja itd. Za učesnike IXP-a, korist se izražava u smanjenju troškova organizovanja eksternog peeringa, smanjenju količine saobraćaja za koji operateri višeg nivoa moraju da plate, optimizaciji rutiranja i mogućnosti direktnog interfejsa sa operaterima sadržaja.

korisni linkovi

izvor: www.habr.com

Dodajte komentar