Traffic exchange point: from sources to creating your own IX

Traffic exchange point: from sources to creating your own IX

„Vzpostavili smo telefonsko povezavo med nami in fanti iz SRI...“ je v intervjuju dejal Kleinrock.
„Vtipkali smo L in na telefonu vprašali: ‚Ali vidite L?‘“
„Da, vidimo L,“ je prišel odgovor.
„Vtipkali smo O in vprašali: ‚Ali vidite O?‘“
„Da, vidimo O.“
„Potem smo vtipkali G in sistem se je zrušil…“

Kljub temu se je začela revolucija…

Začetek interneta.


Zdravo svima!

Moje ime je Alexander, sem omrežni inženir v podjetju Linxdatacenter. V današnjem članku bomo govorili o točkah izmenjave prometa (Internet Exchange Point, IXP): o tem, kaj je predhodilo njihovemu nastanku, katere naloge rešujejo in kako so zgrajene. V tem članku tudi prikažem načelo delovanja IXPa s pomočjo platforme EVE-NG in programske usmerjevalnika BIRD, da dobite razumevanje, kako to deluje 'pod pokrovom'.

Nekaj zgodovine

Če pogledamo tukaj, lahko opazimo, da je močan porast števila točk izmenjave prometa začel leta 1993. To je povezano s tem, da je večina prometa, ki je takrat obstajal, prehajala skozi hrbtenično omrežje ZDA. Tako je na primer, ko je promet potoval od operaterja v Franciji do operaterja v Nemčiji, najprej odšel iz Francije v ZDA, šele nato iz ZDA v Nemčijo. Hrbtenično omrežje je v tem primeru služilo kot tranzit med Francijo in Nemčijo. Tudi promet znotraj iste države je pogosto prehajal ne neposredno, ampak skozi podporna omrežja ameriških operaterjev.

Takšno stanje stvari ni vplivalo le na stroške dostave tranzitnega prometa, temveč tudi na kakovost povezav in zakasnitve. Število uporabnikov interneta se je povečevalo, pojavili so se novi operaterji, obseg prometa je naraščal, internet je zorel. Operaterji po vsem svetu so začeli razumeti, da je potreben bolj racionalen pristop k organizaciji medoperaterskega sodelovanja. „Zakaj bi jaz, operater A, plačeval za tranzit skozi drugo državo, da prinesem promet operaterju B, ki se nahaja na sosednji ulici?“ Približno tako vprašanje so si postavljali operaterji v tistem času. Tako so se na različnih delih sveta na točkah koncentracije operaterjev začele pojavljati točke izmenjave prometa:

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

Internet in naši dnevi

Konceptualno, arhitektura modernog interneta se sastoji od mnogih autonomnih sistema (autonomous system, AS) i mnogih veza između njih, kako fizičkih, tako i logičkih, koje određuju putanju saobraćaja od jednog AS do drugog.

AS obično predstavljaju operateri telekomunikacija, internet provajderi, CDN, data centri, kompanije iz preduzetničkog sektora. AS organizuju logičke veze (peering) među sobom, obično koristeći BGP protokol.

Načini na koje autonomni sistemi organizuju te veze određeni su nizom faktora:

  • geografskim,
  • ekonomskim,
  • političkim,
  • dogovorima i zajedničkim interesima vlasnika AS,
  • itd.

Naravno, u ovoj shemi postoji određena struktura i hijerarhija. Tako, operateri se dele na tier-1, tier-2 i tier-3, i ako su klijenti lokalnog internet provajdera (tier-3) obično obični korisnici, za operatere nivoa tier-1 klijenti su drugi operateri. Tier-3 operateri agregiraju saobraćaj svojih pretplatnika, dok tier-2 operateri agregiraju saobraćaj tier-3 operatera, a tier-1 – sav internet saobraćaj.

Схематически это можно представить так:

Traffic exchange point: from sources to creating your own IX
Na ovoj slici se vidi da se saobraćaj agregira odozdo naviše, tj. od krajnjih korisnika ka tier-1 operaterima. Takođe postoji horizontalna razmena saobraćaja među približno jednakovrednim AS.

Neodvojivi deo, a u isto vreme i nedostatak ove sheme je određena neurednost veza između autonomnih sistema koji se nalaze bliže krajnjem korisniku, unutar geografskih zona. Razmotrimo sliku ispod:

Traffic exchange point: from sources to creating your own IX

Pretpostavimo da u velikom gradu postoji 5 operatera telekomunikacija, čija je međusobna veza, iz raznih razloga, organizovana kao što je prikazano iznad.

Ako korisnik Petar, priključen na internet provajdera Go, želi da pristupi serveru koji je povezan na provajdera ASM, saobraćaj između njih biće primoran da prođe kroz 5 autonomnih sistema. Tako se povećava latencija, jer se povećava broj mrežnih uređaja kroz koje će proći saobraćaj, kao i obim tranzitnog saobraćaja na autonomnim sistemima između Go i ASM.

Kako smanjiti broj tranzitnih AS preko kojih mora da prolazi saobraćaj? Tačno – tačka razmene saobraćaja.

Sodobni IXP nastajajo iz istih potreb, kot v začetku 90-ih in 2000-ih, le v manjšem obsegu, kot odgovor na rastoče število telekomunikacijskih operaterjev, uporabnikov in prometa ter naraščajoče količine vsebin, ki jih ustvarjajo CDN-omrežja in podatkovni centri.

Kaj je točka izmenjave prometa?

Točka izmenjave prometa je prostor s posebno omrežno infrastrukturo, kjer zainteresirani za medsebojno izmenjavo prometa organizirajo medsebojno povezovanje. Glavni udeleženci točk izmenjave prometa so telekomunikacijski operaterji, internetni ponudniki, ponudniki vsebin in podatkovni centri. V točkah izmenjave prometa se udeleženci povezujejo neposredno. To omogoča reševanje naslednjih nalog:

  • zmanjšanje zakasnitve,
  • zmanjšanje količine tranzitnega prometa,
  • optimizacijo usmerjanja med AS.

Glede na to, da so IXP prisotni v mnogih večjih mestih po svetu, to pozitivno vpliva tudi na omrežje Internet kot celoto.

Če zgoraj opisano situacijo s Petrom rešujemo s pomočjo IXP, bo to izgledalo nekako takole:

Traffic exchange point: from sources to creating your own IX

Kako je zasnovana točka izmenjave prometa?

IXP je običajno ločen AS s svojim blokom javnih IPv4/IPv6 naslovov.

Omrežje IXP večinoma predstavlja nepretrgan L2 domen. Včasih je to preprosto VLAN, v katerem so nameščeni vsi stranke IXP. Ko pa gre za večje, geografsko razpršene IXP, se lahko za organizacijo L2 domena uporabljajo tehnologije, kot so MPLS, VXLAN ipd.

Elementi IXP

  • Kabelska sistematika. Tukaj ni nič nenavadnega: omarice, optični razdelilniki, patch paneli.
  • Stikali so osnova IXP. Port stikala je vstopna točka v omrežje IXP. Stikali prav tako opravljajo del funkcij varnosti - filtrirajo odpadni promet, ki ne bi smel biti prisoten v omrežju IXP. Običajno se stikala izberejo glede na zahteve po funkcionalnosti - zanesljivost, podprta hitrost portov, varnostne funkcije, podpora sFlow ipd.
  • Usmerjevalni strežnik (RS) – je neodvojiv i neophodan deo svake savremene tačke za razmenu saobraćaja. Po svom principu rada veoma podseća na route reflector u iBGP-u ili designated router u OSPF-u i rešava iste probleme. Kako broj učesnika tačke za razmenu saobraćaja raste, raste i broj BGP sesija koje svaki od učesnika mora da podrži, tj. to podseća na klasičnu full-mesh topologiju u iBGP-u. RS rešava problem na sledeći način: uspostavlja BGP sesiju sa svakim zainteresovanim učesnikom IXP-a, a on postaje klijent RS-a. Primaći BGP update od jednog svog klijenta, RS prosleđuje ovaj update svim ostalim svojim klijentima, naravno, osim onome od kojeg je taj update primljen. Tako RS eliminiše potrebu za uspostavljanjem full-mesh između svih učesnika IXP-a i elegantno rešava problem skalabilnosti. Vredi napomenuti da route server transparentno prenosi rute od jedne AS do druge, ne menjajući prenesene BGP atribute, na primer, ne dodaje svoj broj u AS u AS-path. Takođe, na RS-u se vrši osnovna filtracija ruta: na primer, RS ne prihvata martians networks i prefikse same IXP.

    Kao rešenje, route server često koristi softverski router sa otvorenim izvorom – BIRD (bird internet routing daemon). On je dobar jer je besplatan, brzo se postavlja na većini Linux distribucija, ima fleksibilan mehanizam za podešavanje politika rutiranja/filtriranja, a ne zahteva velike računarske resurse. Takođe, kao RS može se izabrati i hardverski/virtualni router Cisco, Juniper itd.

  • Varnost. Pošto je mreža IXP koncentracija velikog broja AS, politika bezbednosti kojoj svi učesnici moraju da se pridržavaju mora biti dobro definisana. Kao pravilo, svi isti mehanizmi koji se primenjuju pri uspostavljanju BGP susedstva između dva pojedinačna BGP peera van IXP-a, primenjuju se i ovde, kao i neka dodatna sredstva zaštite.

    Na primer, dobra praksa je, da se dovoli promet le s specifične MAC-naslove udeležencev IXP, ki se vnaprej dogovorijo. Preprečevanje prometa z ethernetskimi tipkami, ki se razlikujejo od 0x0800(IPv4), 0x08dd(IPv6), 0x0806(ARP); to se stori, da se filtrira promet, ki ni primeren za BGP peering. Uporabljajo se lahko tudi mehanizmi, kot sta GTSM, RPKI itd.

Verjetno so zgoraj naštete osnovne sestavine vsakega IXP ne glede na obseg. Seveda lahko večji IXP uporabljajo dodatne tehnologije in rešitve.
Včasih IXP svojim udeležencem ponuja tudi dodatne storitve:

  • nastavitev DNS strežnikov TLD na IXP,
  • namestitev strojnih NTP strežnikov, kar omogoča udeležencem natančno usklajevanje časa,
  • ponudba zaščite pred DDoS napadi itd.

Načelo delovanja

Poglejmo delovanje točke izmenjave prometa na primeru preproste IXP, simulirane z EVE-NG, nato pa bomo obravnavali osnovno nastavitev programske usmerjevalnika BIRD. Za poenostavitev sheme bomo izpustili tako pomembne stvari, kot sta redundanca in odpornost na napake.

Topologija omrežja je prikazana na spodnji sliki.

Traffic exchange point: from sources to creating your own IX

Predpostavimo, da upravljamo majhno točko izmenjave prometa in ponujamo naslednje možnosti peeringa:

  • javna povezava,
  • zasebna povezava,
  • peering preko usmerjevalnika (route server).

Naša AS številka je 555, lastimo blok IPv4 naslovov – 50.50.50.0/24, iz katerega dodeljujemo IP-naslove tistim, ki želijo povezati svoje omrežje na našo mrežo.

50.50.50.254 – IP-naslov, nastavljen na vmesniku usmerjevalnika (route server), s katerim bodo stranke vzpostavile BGP sejo v primeru peeringa preko RS.

Prav tako smo za peering preko RS razvili preprosto politiko usmerjanja na osnovi BGP skupnosti, ki udeležencem IXP omogoča, da regulirajo, komu in katere poti pošiljajo:

BGP skupnost
Opis

LOCAL_AS:PEER_AS
Prenesi predpone samo PEER_AS

LOCAL_AS:IXP_AS
Prenesi predpone vsem udeležencem IXP

Na naš IXP želijo priti in zamenjati promet trije kupci; recimo, da so to ponudniki internetnih storitev. Vsi želijo organizirati peering preko usmerjevalnika. Spodaj so prikazane sheme s parametri povezave strank:

Korisnik
AS številka stranke
Oznanjeni predpisi stranke
IP naslov dodeljen stranki za povezavo 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 nastavitev BGP na usmerjevalniku stranke:

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

V tem treba otmetit' nastrojku no bgp enforce-first-as. Po umolchaniyu, BGP trebuyet, chtoby v as-path prinyatogo BGP apdejta, prisutstvoval nomer as bgp pira, ot kotorogo dannyy apdejt byl poluchen. No potomu chto route server ne vnosit izmeneniya v as-path, ego nomer budet otsutstvovat' v as-path i apdejt budet otbrashen. Dannya nastrojka primenyaetsya, chtoby maršrutizator nachal ignorirovat' dannoye pravilo.

Takzhe my vidim, chto klient ustanovil bgp community 555:555 na dannyy prefix, chto soglasno nashiy politike oznachayet, chto klient khochet anonisirovat' dannyy prefix vsem ostal'nym uchastnikam.

Dlya maršrutizatorov ostal'nykh klientov nastrojka budet analogichnaya, za isklyucheniem ikh unikal'nykh parametrov.

Primer konfiguratsii BIRD:

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

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

Dalee opisivayetsya filtr, kotoryy ne prinimayet martians prefixy, a takzhe prefixy samoy 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;
}

Dannaya funktsiya realizuyet politiku maršrutizatsii, kotoruyu my opisali ranee.

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

Nastroyavem piring, primenyaem sootvetstvuyushchie fil'try i politiki.

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

Stoit otmetit', chto na route server'e yavlyayetsya khorosho tonom skladyvat' maršruty ot raznykh pirov v raznye RIB. BIRD pozvolyayet eto delat'. V nashem zhe primere dlya prosto vse apdejty, prinatyye ot vsekh klientov, skladivayutsya v odnu obshchuyu RIB.

Torej, preverimo, kaj smo dosegli.

Na route strežniku vidimo, da je z vsemi tremi strankami vzpostavljena BGP sešna:

Traffic exchange point: from sources to creating your own IX

Vidimo, da prejemamo prefiks poprav iz vseh strank:

Traffic exchange point: from sources to creating your own IX

Na usmerjevalniku as 100 vidimo, da ob prisotnosti samo ene BGP sešne z strežnikom usmerjanja prejemamo prefikse tako iz as 200 kot iz as 300, pri čemer se BGP atributi niso spremenili, kot bi če bi povezovanje med strankami potekalo neposredno:

Traffic exchange point: from sources to creating your own IX

Tako vidimo, da prisotnost usmerjevalnega strežnika znatno poenostavi organizacijo povezovanja na IXP.

Upam, da vam je ta predstavitev pomagala bolje razumeti, kako so organizirane točke izmenjave prometa in kako deluje usmerjevalni strežnik na IXP.

Linxdatacenter IX

V Linxdatacenter smo zgradili lastno IXP na osnovi zanesljive infrastrukture, sestavljene iz 2 preklopnikov in 2 route strežnikov. Sedaj je naš IXP v testnem načinu delovanja, in vabimo vse, da se priključijo Linxdatacenter IX in sodelujejo pri testiranju. Ob povezovanju boste prejeli port s pasovno širino 1 Gbit/s, možnost povezovanja prek naših route strežnikov, ter dostop do osebnega računa IX portala, ki je dostopen na naslovu ix.linxdatacenter.com.

Pišite v komentarje ali osebna sporočila za dostop do testiranja.

Izlaz

Točke izmenjave prometa so se pojavile ob zori interneta kot orodje za reševanje vprašanja neoptimalnega prehajanja prometa med operaterji. Danes, z nastankom novih globalnih storitev in povečanjem količine CDN prometa, točke izmenjave še vedno optimizirajo delovanje globalnega omrežja. Povečanje števila IXP po svetu prinaša koristi tako končnim uporabnikom storitve kot tudi operaterjem, ponudnikom vsebin itd. Za udeležence IXP je prednost izražena v zmanjšanju stroškov za organizacijo zunanjih povezav, zmanjšanju obsega prometa, za katerega je potrebno plačati višjim operaterjem, optimizaciji usmerjanja in možnosti neposredne povezave s ponudniki vsebin.

Koristne poveznice

Izvor: habr.com

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster