Točka izmenjave prometa: od izvora do ustvarjanja lastnega IX

Točka izmenjave prometa: od izvora do ustvarjanja lastnega IX

"Vzpostavili smo telefonsko povezavo med nami in fanti na SRI ...", je Kleinrock ... dejal v intervjuju:
»Vtipkali smo L in po 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" ...

Pa vendar se je začela revolucija ...

Začetek interneta.


Pozdravljeni vsi!

Moje ime je Alexander, sem omrežni inženir v Linxdatacentru. V današnjem članku bomo govorili o točkah izmenjave prometa (Internet Exchange Points, IXP): kaj je bilo pred njihovim pojavom, katere naloge rešujejo in kako so zgrajene. Tudi v tem članku bom prikazal princip delovanja IXP z uporabo platforme EVE-NG in programskega usmerjevalnika BIRD, da boste razumeli, kako deluje "pod pokrovom".

Malo zgodovine

Če pogledate tukaj, potem lahko vidite, da se je hitra rast števila točk izmenjave prometa začela leta 1993. To je posledica dejstva, da je večina prometa takratnih telekomunikacijskih operaterjev potekala skozi hrbtenično omrežje ZDA. Tako je na primer šel promet od operaterja v Franciji k operaterju v Nemčiji, je šel najprej iz Francije v ZDA in šele nato iz ZDA v Nemčijo. Hrbtenično omrežje je v tem primeru delovalo kot tranzit med Francijo in Nemčijo. Tudi promet znotraj ene države pogosto ni potekal neposredno, temveč prek hrbteničnih omrežij ameriških operaterjev.

To stanje ni vplivalo samo na stroške dostave tranzitnega prometa, temveč tudi na kakovost kanalov in zamude. Povečalo se je število uporabnikov interneta, pojavili so se novi operaterji, povečal se je promet, internet je dozorel. Operaterji po vsem svetu so se začeli zavedati, da je potreben bolj racionalen pristop k organizaciji medoperaterske interakcije. "Zakaj bi moral jaz, operater A, plačati tranzit skozi drugo državo, da bi dostavil promet operaterju B, ki se nahaja na sosednji ulici?" Približno tako so se takrat spraševali telekomunikacijski operaterji. Tako so se točke izmenjave prometa začele pojavljati na različnih koncih sveta na točkah koncentracije operaterjev:

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

Internet in naši dnevi

Konceptualno je arhitektura sodobnega interneta sestavljena iz številnih avtonomnih sistemov (AS) in številnih povezav med njimi, tako fizičnih kot logičnih, ki določajo pot prometa od enega do drugega AS.

AS so običajno telekomunikacijski operaterji, internetni ponudniki, CDN, podatkovni centri in podjetja segmenta podjetij. AS-ji med seboj organizirajo logične povezave (peering), običajno z uporabo protokola BGP.

Kako avtonomni sistemi organizirajo te povezave, je odvisno od številnih dejavnikov:

  • geografski,
  • gospodarski,
  • politični,
  • sporazumi in skupni interesi med lastniki AS,
  • itd

Seveda ima ta shema določeno strukturo in hierarhijo. Tako se operaterji delijo na tier-1, tier-2 in tier-3, in če so odjemalci za lokalnega internetnega ponudnika (tier-3) praviloma navadni uporabniki, potem za tier-1 npr. operaterji nivoja so stranke drugi operaterji. Operaterji Tier-3 združujejo promet svojih naročnikov, Tier-2 telekomunikacijski operaterji nato združujejo promet operaterjev Tier-3, Tier-1 pa ves internetni promet.

Shematično je to mogoče predstaviti takole:

Točka izmenjave prometa: od izvora do ustvarjanja lastnega IX
Ta slika prikazuje, da je promet združen od spodaj navzgor, tj. od končnih uporabnikov do operaterjev prve stopnje. Obstaja tudi horizontalna izmenjava prometa med AS-ji, ki so med seboj približno enakovredni.

Sestavni del in hkrati slabost te sheme je določena zmeda povezav med avtonomnimi sistemi, ki se nahajajo bližje končnemu uporabniku, znotraj geografskega območja. Razmislite o spodnji sliki:

Točka izmenjave prometa: od izvora do ustvarjanja lastnega IX

Predpostavimo, da je v velikem mestu 5 telekomunikacijskih operaterjev, med katerimi je iz takšnih ali drugačnih razlogov organizirano, kot je prikazano zgoraj.

Če želi uporabnik Petya, povezan z Go ISP, dostopati do strežnika, povezanega s ponudnikom ASM, bo promet med njima prisiljen potekati skozi 5 avtonomnih sistemov. To poveča zamudo, ker poveča se število omrežnih naprav, skozi katere bo šel promet, pa tudi obseg tranzitnega prometa na avtonomnih sistemih med Go in ASM.

Kako zmanjšati število tranzitnih AS, skozi katere mora potekati promet? Tako je - točka izmenjave prometa.

Danes nastanek novih IXP-jev poganjajo iste potrebe kot v zgodnjih 90-ih in 2000-ih, le v manjšem obsegu, kot odgovor na naraščajoče število telekomunikacijskih operaterjev, uporabnikov in prometa, vse večjo količino vsebin, ki jih ustvarjajo omrežja CDN in podatkovnih centrov.

Kaj je menjalna točka?

Točka izmenjave prometa je prostor s posebno mrežno infrastrukturo, kjer udeleženci, ki jih zanima medsebojna izmenjava prometa, organizirajo medsebojno peering. Glavni udeleženci točk izmenjave prometa: telekomunikacijski operaterji, internetni ponudniki, ponudniki vsebin in podatkovni centri. Na točkah izmenjave prometa se udeleženci neposredno povezujejo med seboj. To vam omogoča reševanje naslednjih težav:

  • zmanjšati zakasnitev,
  • zmanjšati količino tranzitnega prometa,
  • optimizirati usmerjanje med AS.

Glede na to, da so IXP-ji prisotni v številnih velikih mestih po svetu, vse to blagodejno vpliva na internet kot celoto.

Če zgornjo situacijo s Petjo rešimo z IXP, se bo izkazalo nekaj takega:

Točka izmenjave prometa: od izvora do ustvarjanja lastnega IX

Kako deluje točka izmenjave prometa?

Praviloma je IXP ločen AS z lastnim blokom javnih naslovov IPv4/IPv6.

Omrežje IXP je največkrat sestavljeno iz neprekinjene domene L2. Včasih je to preprosto VLAN, ki gosti vse odjemalce IXP. Ko gre za večje, geografsko porazdeljene IXP-je, je mogoče za organizacijo domene L2 uporabiti tehnologije, kot so MPLS, VXLAN itd.

elementi IXP

  • SKS. Tukaj ni nič nenavadnega: stojala, optične navzkrižne povezave, patch paneli.
  • Stikala – osnova IXP. Vrata stikala so vstopna točka v omrežje IXP. Stikala opravljajo tudi del varnostnih funkcij - filtrirajo neželeni promet, ki ne bi smel biti prisoten v omrežju IXP. Praviloma so stikala izbrana na podlagi funkcionalnih zahtev - zanesljivost, podprte hitrosti vrat, varnostne funkcije, podpora sFlow itd.
  • Strežnik poti (RS) – sestavni in nujni del vsake sodobne prometne izmenjave. Načelo delovanja je zelo podobno reflektorju poti v iBGP ali določenemu usmerjevalniku v OSPF in rešuje enake težave. Z naraščanjem števila udeležencev v točki izmenjave prometa se povečuje število sej BGP, ki jih mora podpirati vsak udeleženec, tj. to spominja na klasično polno mrežno topologijo v iBGP. RS problem rešuje na naslednji način: z vsakim zainteresiranim udeležencem IXP vzpostavi BGP sejo in ta udeleženec postane odjemalec RS. Ko prejme posodobitev BGP od enega od svojih odjemalcev, RS to posodobitev pošlje vsem drugim svojim odjemalcem, seveda z izjemo tistega, od katerega je to posodobitev prejel. Tako RS odpravlja potrebo po vzpostavitvi polne mreže med vsemi člani IXP in elegantno rešuje problem razširljivosti. Treba je omeniti, da usmerjevalni strežnik pregledno prenaša poti od enega AS do drugega brez spreminjanja atributov, ki jih prenaša BGP, na primer ne doda številke v svojem AS poti AS. Tudi na RS obstaja osnovno filtriranje poti: RS na primer ne sprejema omrežij Marsovcev in predpon samega IXP.

    Odprtokodni programski usmerjevalnik, BIRD (bird internet routing daemon), se pogosto uporablja kot rešitev za usmerjevalni strežnik. Dobra stvar pri njem je, da je brezplačen, se hitro namesti v večino distribucij Linuxa, ima prilagodljiv mehanizem za nastavitev politik usmerjanja/filtriranja in ni zahteven glede računalniških virov. Kot RS lahko izberete tudi strojno/virtualni usmerjevalnik Cisco, Juniper itd.

  • Varnost. Ker je omrežje IXP koncentracija velikega števila AS-ov, mora biti varnostna politika, ki jo morajo upoštevati vsi udeleženci, dobro napisana. Na splošno veljajo vsi isti mehanizmi, ki veljajo pri vzpostavljanju sosedstva BGP med dvema ločenima vrstnikoma BGP zunaj IXP, poleg tega pa še nekaj dodatnih varnostnih funkcij.

    Na primer, dobra praksa je dovoliti promet samo z določenega mac naslova udeleženca IXP, o čemer se dogovorite vnaprej. Zavrnitev prometa s polji ethertype, ki niso 0x0800(IPv4), 0x08dd(IPv6), 0x0806(ARP); to se naredi za filtriranje prometa, ki ne sodi v peering BGP. Uporabljajo se lahko tudi mehanizmi, kot so GTSM, RPKI itd.

Morda so zgoraj navedene glavne komponente katerega koli IXP, ne glede na obseg. Seveda imajo lahko večji IXP dodatne tehnologije in rešitve.
Zgodi se, da IXP svojim udeležencem nudi tudi dodatne storitve:

  • postavljen na strežnik DNS IXP TLD,
  • namestitev strojnih strežnikov NTP, ki udeležencem omogočajo natančno sinhronizacijo časa,
  • zagotoviti zaščito pred napadi DDoS itd.

Princip delovanja

Oglejmo si načelo delovanja točke za izmenjavo prometa na primeru preprostega IXP, modeliranega z EVE-NG, nato pa razmislimo o osnovni nastavitvi programskega usmerjevalnika BIRD. Za poenostavitev diagrama bomo izpustili tako pomembne stvari, kot sta redundanca in toleranca napak.

Topologija omrežja je prikazana na spodnji sliki.

Točka izmenjave prometa: od izvora do ustvarjanja lastnega IX

Predpostavimo, da upravljamo majhno izmenjevalno točko in nudimo naslednje možnosti enakovrednega povezovanja:

  • javno gledanje,
  • zasebno peering,
  • peering prek strežnika poti.

Naša AS številka je 555, imamo v lasti blok naslovov IPv4 – 50.50.50.0/24, iz katerega izdajamo IP naslove za tiste, ki se želijo povezati v naše omrežje.

50.50.50.254 – naslov IP, konfiguriran na vmesniku strežnika poti, s tem IP-jem bodo odjemalci vzpostavili sejo BGP v primeru enakovrednega povezovanja prek RS.

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

Skupnost BGP
Opis

LOCAL_AS:PEER_AS
Pošlji predpone samo PEER_AS

LOCAL_AS:IXP_AS
Prenesite predpone vsem udeležencem IXP

3 stranke se želijo povezati z našim IXP in izmenjati promet; Recimo, da so to internetni ponudniki. Vsi želijo organizirati peering prek strežnika poti. Spodaj je diagram s parametri povezave odjemalca:

Stranka
Številka AS stranke
Predpone, ki jih oglašuje stranka
Naslov IP, izdan odjemalcu za povezavo z 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 odjemalskem usmerjevalniku:

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

Tukaj velja omeniti nastavitev no bgp enforce-first-as. BGP privzeto zahteva, da as-path prejete posodobitve BGP vsebuje številko as bgp vrstnika, od katerega je bila posodobitev prejeta. Ker pa usmerjevalni strežnik ne spreminja as-path, njegova številka ne bo v as-path in posodobitev bo zavržena. Ta nastavitev se uporablja, da usmerjevalnik prezre to pravilo.

Vidimo tudi, da je odjemalec na to predpono nastavil bgp community 555:555, kar po našem pravilniku pomeni, da želi odjemalec to predpono oglaševati vsem drugim udeležencem.

Za usmerjevalnike drugih strank bodo nastavitve podobne, z izjemo njihovih edinstvenih parametrov.

Primer konfiguracije BIRD:

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

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

V nadaljevanju je opisan filter, ki ne sprejema predpon Marsovcev, pa tudi predpon samega 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;
}

Ta funkcija izvaja politiko usmerjanja, ki smo jo opisali prej.

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, uporabimo ustrezne filtre in 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;
  }
}

Treba je omeniti, da je na strežniku za usmerjanje dobra praksa, da se poti iz različnih vrstnikov postavijo v različne RIB. BIRD vam to omogoča. V našem primeru so zaradi enostavnosti vse posodobitve, prejete od vseh strank, dodane v en skupni RIB.

Torej, preverimo, kaj imamo.

Na usmerjevalnem strežniku vidimo, da je bila vzpostavljena seja BGP z vsemi tremi odjemalci:

Točka izmenjave prometa: od izvora do ustvarjanja lastnega IX

Vidimo, da prejmemo predpone od vseh strank:

Točka izmenjave prometa: od izvora do ustvarjanja lastnega IX

Na usmerjevalniku as 100 vidimo, da če obstaja samo ena seja BGP s strežnikom za usmerjanje, prejmemo predpone od obeh kot 200 in kot 300, medtem ko se atributi BGP niso spremenili, kot da bi se peering med odjemalci izvajal neposredno:

Točka izmenjave prometa: od izvora do ustvarjanja lastnega IX

Tako vidimo, da prisotnost usmerjevalnega strežnika močno poenostavi organizacijo peeringa na IXP.

Upam, da vam je ta predstavitev pomagala bolje razumeti, kako delujejo IXP-ji in kako strežnik poti deluje na IXP-ju.

Podatkovni center Linx IX

V Linxdatacentru smo zgradili lasten IXP, ki temelji na infrastrukturi, odporni na napake, dveh stikal in dveh usmerjevalnih strežnikov. Naš IXP zdaj deluje v testnem načinu in vabimo vse, da se povežejo z Linxdatacenter IX in sodelujejo pri testiranju. Ko se povežete, vam bodo zagotovljena vrata s pasovno širino 2 Gbit/s, možnost vpogleda skozi naše usmerjevalne strežnike in dostop do vašega osebnega računa portala IX, ki je na voljo na ix.linxdatacenter.com.

Za dostop do testiranja pišite v komentarje ali zasebna sporočila.

Izhod

Točke za izmenjavo prometa so nastale ob zori interneta kot orodje za reševanje problematike neoptimalnega pretoka prometa med telekomunikacijskimi operaterji. Zdaj, s pojavom novih globalnih storitev in povečanjem količine CDN prometa, menjalne točke še naprej optimizirajo delovanje globalnega omrežja. Povečanje števila IXP-jev v svetu koristi tako končnemu uporabniku storitve kot telekomunikacijskim operaterjem, operaterjem vsebin itd. Za udeležence IXP se korist izraža v zmanjšanju stroškov organizacije zunanjega peeringa, zmanjšanju količine prometa, ki ga morajo plačevati višji operaterji, optimizaciji usmerjanja in možnosti neposrednega vmesnika z vsebinskimi operaterji.

Uporabne povezave

Vir: www.habr.com

Dodaj komentar