Satiksmes apmaiņas punkts: no pirmsākumiem līdz sava IX izveidei

Satiksmes apmaiņas punkts: no pirmsākumiem līdz sava IX izveidei

"Mēs izveidojām telefona savienojumu starp mums un SRI puiÅ”iem...," intervijā sacÄ«ja Kleinroks.
"Mēs ierakstījām L un pa tālruni jautājām: "Vai jūs redzat L?"
"Jā, mēs redzam L," skanēja atbilde.
"Mēs ierakstījām O un vaicājām: "Vai jūs redzat O."
"Jā, mēs redzam O."
"Tad mēs ierakstījām G, un sistēma avarēja" ...

Tomēr bija sākusies revolÅ«cijaā€¦

Interneta sākums.


Sveiki visiem!

Mani sauc Aleksandrs, es esmu tÄ«kla inženieris uzņēmumā Linxdatacenter. Å odienas rakstā mēs runāsim par trafika apmaiņas punktiem (Internet Exchange Points, IXP): kas bija pirms to parādÄ«Å”anās, kādus uzdevumus tie atrisina un kā tie tiek veidoti. ArÄ« Å”ajā rakstā es demonstrÄ“Å”u IXP darbÄ«bas principu, izmantojot EVE-NG platformu un BIRD programmatÅ«ras marÅ”rutētāju, lai jums bÅ«tu izpratne par to, kā tas darbojas ā€œzem pārsegaā€.

Nedaudz vēstures

Ja paskatās Å”eit, tad var redzēt, ka straujÅ” satiksmes apmaiņas punktu skaita pieaugums sākās 1993. gadā. Tas ir saistÄ«ts ar faktu, ka lielākā daļa tajā laikā pastāvoÅ”o telekomunikāciju operatoru trafika gāja caur ASV maÄ£istrālo tÄ«klu. Tā, piemēram, kad satiksme pārgāja no operatora Francijā uz operatoru Vācijā, tā vispirms devās no Francijas uz ASV un tikai pēc tam no ASV uz Vāciju. PamattÄ«kls Å”ajā gadÄ«jumā darbojās kā tranzÄ«ts starp Franciju un Vāciju. Pat satiksme vienas valsts robežās bieži notika nevis tieÅ”i, bet gan caur Amerikas operatoru mugurkaula tÄ«kliem.

Å is stāvoklis ietekmēja ne tikai tranzÄ«ta satiksmes nodroÅ”ināŔanas izmaksas, bet arÄ« kanālu kvalitāti un kavējumus. Pieauga interneta lietotāju skaits, parādÄ«jās jauni operatori, pieauga trafika apjoms, un internets nobrieda. Operatori visā pasaulē sāka saprast, ka ir nepiecieÅ”ama racionālāka pieeja operatoru savstarpējās mijiedarbÄ«bas organizÄ“Å”anai. "Kāpēc man, operatoram A, bÅ«tu jāmaksā par tranzÄ«tu caur citu valsti, lai nodroÅ”inātu satiksmi operatoram B, kurÅ” atrodas nākamajā ielā?" Aptuveni Ŕādu jautājumu tolaik sev uzdeva telekomunikāciju operatori. Tādējādi dažādās pasaules vietās operatoru koncentrācijas punktos sāka parādÄ«ties satiksmes apmaiņas punkti:

  • 1994 ā€“ LINX Londonā,
  • 1995 ā€“ DE-CIX Frankfurtē,
  • 1995. gads ā€“ MSK-IX, Maskavā u.c.

Internets un mūsu dienas

Konceptuāli mūsdienu interneta arhitektūra sastāv no daudzām autonomām sistēmām (AS) un daudziem savienojumiem starp tām, gan fiziskiem, gan loģiskiem, kas nosaka trafika ceļu no vienas AS uz otru.

AS parasti ir telekomunikāciju operatori, interneta pakalpojumu sniedzēji, CDN, datu centri un uzņēmumu segmenta uzņēmumi. AS organizē loģiskos savienojumus (peering) savā starpā, parasti izmantojot BGP protokolu.

To, kā autonomās sistēmas organizē Å”os savienojumus, nosaka vairāki faktori:

  • Ä£eogrāfisks,
  • ekonomisks,
  • politisks,
  • AS Ä«paÅ”nieku vienoÅ”anās un kopÄ«gās intereses,
  • uc

Protams, Å”ai shēmai ir noteikta struktÅ«ra un hierarhija. Tādējādi operatori tiek sadalÄ«ti 1., 2. un 3. lÄ«menÄ«, un, ja vietējā interneta pakalpojumu sniedzēja (3. lÄ«meņa) klienti parasti ir parastie lietotāji, tad, piemēram, 1. lÄ«menÄ«. lÄ«meņa operatori klienti ir citi operatori. TreŔā lÄ«meņa operatori apkopo savu abonentu trafiku, 3. lÄ«meņa telekomunikāciju operatori, savukārt, apkopo 2. lÄ«meņa operatoru trafiku, bet 3. lÄ«meņa operatori ā€“ visu interneta trafiku.

Shematiski to var attēlot Ŕādi:

Satiksmes apmaiņas punkts: no pirmsākumiem līdz sava IX izveidei
Å ajā attēlā redzams, ka satiksme tiek apkopota no apakÅ”as uz augÅ”u, t.i. no gala lietotājiem lÄ«dz 1. lÄ«meņa operatoriem. Notiek arÄ« horizontāla trafika apmaiņa starp AS, kas ir aptuveni lÄ«dzvērtÄ«gas viena otrai.

Å Ä«s shēmas neatņemama sastāvdaļa un vienlaikus trÅ«kums ir zināma sajaukÅ”anās starp autonomām sistēmām, kas atrodas tuvāk gala lietotājam, Ä£eogrāfiskā apgabalā. Apsveriet tālāk redzamo attēlu:

Satiksmes apmaiņas punkts: no pirmsākumiem līdz sava IX izveidei

Pieņemsim, ka lielā pilsētā ir 5 telekomunikāciju operatori, starp kuriem viena vai otra iemesla dēļ ir organizēts, kā parādÄ«ts iepriekÅ”.

Ja lietotājs Petya, kurÅ” ir savienots ar Go ISP, vēlas piekļūt serverim, kas ir savienots ar ASM pakalpojumu sniedzēju, satiksme starp viņiem bÅ«s spiesta iziet cauri 5 autonomām sistēmām. Tas palielina kavÄ“Å”anos, jo palielinās tÄ«kla ierīču skaits, caur kurām notiks trafika, kā arÄ« tranzÄ«ta satiksmes apjoms autonomajās sistēmās starp Go un ASM.

Kā samazināt tranzÄ«ta AS skaitu, kurām satiksme ir spiesta iziet cauri? TieÅ”i tā ā€“ satiksmes maiņas punkts.

MÅ«sdienās jaunu IXP raÅ”anos nosaka tās paÅ”as vajadzÄ«bas, kas 90.-2000. gadu sākumā, tikai mazākā mērogā, reaģējot uz pieaugoÅ”o telekomunikāciju operatoru, lietotāju un trafika skaitu, pieaugoÅ”o CDN tÄ«klu radÄ«tā satura apjomu. un datu centri.

Kas ir maiņas punkts?

Satiksmes apmaiņas punkts ir vieta ar speciālu tÄ«kla infrastruktÅ«ru, kur savstarpējā satiksmes apmaiņā ieinteresētie dalÄ«bnieki organizē savstarpējo peering. Galvenie trafika apmaiņas punktu dalÄ«bnieki: telekomunikāciju operatori, interneta nodroÅ”inātāji, satura nodroÅ”inātāji un datu centri. Satiksmes apmaiņas punktos dalÄ«bnieki tieÅ”i savienojas viens ar otru. Tas ļauj atrisināt Ŕādas problēmas:

  • samazināt latentumu,
  • samazināt tranzÄ«ta satiksmes apjomu,
  • optimizēt marÅ”rutÄ“Å”anu starp AS.

Ņemot vērā, ka IXP ir daudzās lielajās pilsētās visā pasaulē, tas viss labvēlīgi ietekmē internetu kopumā.

Ja iepriekÅ” minētā situācija ar Petju tiek atrisināta, izmantojot IXP, tas izrādÄ«sies apmēram Ŕāds:

Satiksmes apmaiņas punkts: no pirmsākumiem līdz sava IX izveidei

Kā darbojas satiksmes apmaiņas punkts?

Parasti IXP ir atseviŔķa AS ar savu publisko IPv4/IPv6 adreŔu bloku.

IXP tÄ«kls visbiežāk sastāv no nepārtraukta L2 domēna. Dažreiz tas ir vienkārÅ”i VLAN, kurā tiek mitināti visi IXP klienti. Runājot par lielākiem, Ä£eogrāfiski sadalÄ«tiem IXP, L2 domēna organizÄ“Å”anai var izmantot tādas tehnoloÄ£ijas kā MPLS, VXLAN utt.

IXP elementi

  • SKS. Å eit nav nekā neparasta: statÄ«vi, optiskie Ŕķērssavienojumi, plākstera paneļi.
  • Slēdži ā€“ IXP pamats. Slēdža ports ir ieejas punkts IXP tÄ«klā. Slēdži veic arÄ« daļu no droŔības funkcijām - tie filtrē nevēlamo trafiku, kam nevajadzētu bÅ«t IXP tÄ«klā. Parasti slēdži tiek izvēlēti, pamatojoties uz funkcionālajām prasÄ«bām - uzticamÄ«bu, atbalstÄ«to portu ātrumu, droŔības lÄ«dzekļiem, sFlow atbalstu utt.
  • MarÅ”ruta serveris (RS) ā€“ jebkura moderna satiksmes apmaiņas punkta neatņemama un nepiecieÅ”ama sastāvdaļa. DarbÄ«bas princips ir ļoti lÄ«dzÄ«gs marÅ”ruta reflektoram iBGP vai norādÄ«tajam marÅ”rutētājam OSPF un atrisina tās paÅ”as problēmas. Pieaugot dalÄ«bnieku skaitam satiksmes apmaiņas punktā, palielinās BGP sesiju skaits, kas jāatbalsta katram dalÄ«bniekam, t.i. tas atgādina klasisko pilna tÄ«kla topoloÄ£iju iBGP. RS atrisina problēmu Ŕādā veidā: izveido BGP sesiju ar katru ieinteresēto IXP dalÄ«bnieku, un Å”is dalÄ«bnieks kļūst par RS klientu. Saņemot BGP atjauninājumu no viena no saviem klientiem, RS nosÅ«ta Å”o atjauninājumu visiem citiem saviem klientiem, protams, izņemot to, no kura Å”is atjauninājums tika saņemts. Tādējādi RS novērÅ” nepiecieÅ”amÄ«bu izveidot pilnu tÄ«klu starp visiem IXP dalÄ«bniekiem un eleganti atrisina mērogojamÄ«bas problēmu. Ir vērts atzÄ«mēt, ka marÅ”ruta serveris pārskatāmi pārsÅ«ta marÅ”rutus no vienas AS uz otru, neveicot izmaiņas BGP pārsÅ«tÄ«tajos atribÅ«tos, piemēram, tas nepievieno AS ceļam numuru savā AS. ArÄ« RS ir pamata marÅ”rutu filtrÄ“Å”ana: piemēram, RS nepieņem marsieÅ”u tÄ«klus un paÅ”a IXP prefiksus.

    Atvērtā pirmkoda programmatÅ«ras marÅ”rutētājs BIRD (putnu interneta marÅ”rutÄ“Å”anas dēmons) bieži tiek izmantots kā marÅ”ruta servera risinājums. Labā lieta ir tāda, ka tā ir bezmaksas, ātri tiek izvietota lielākajā daļā Linux izplatÄ«jumu, tai ir elastÄ«gs mehānisms marÅ”rutÄ“Å”anas/filtrÄ“Å”anas politiku iestatÄ«Å”anai, un tas nav prasÄ«gs skaitļoÅ”anas resursiem. Kā RS var izvēlēties arÄ« aparatÅ«ras/virtuālo marÅ”rutētāju no Cisco, Juniper utt.

  • DroŔība. Tā kā IXP tÄ«kls ir liela skaita AS koncentrācija, droŔības politikai, kas jāievēro visiem dalÄ«bniekiem, jābÅ«t labi uzrakstÄ«tai. Kopumā Å”eit tiek piemēroti visi tie paÅ”i mehānismi, kas tiek piemēroti, izveidojot BGP blakus starp diviem atseviŔķiem BGP vienādrangiem ārpus IXP, kā arÄ« daži papildu droŔības lÄ«dzekļi.

    Piemēram, laba prakse ir atļaut trafiku tikai no konkrētas IXP dalÄ«bnieka mac adreses, kas tiek iepriekÅ” saskaņota. Trafika liegÅ”ana ar ētera tipa laukiem, kas nav 0x0800(IPv4), 0x08dd(IPv6), 0x0806(ARP); tas tiek darÄ«ts, lai filtrētu trafiku, kas neietilpst BGP peering. Var izmantot arÄ« tādus mehānismus kā GTSM, RPKI u.c.

Iespējams, iepriekÅ” minētie ir jebkura IXP galvenie komponenti neatkarÄ«gi no mēroga. Protams, lielākiem IXP var bÅ«t ieviestas papildu tehnoloÄ£ijas un risinājumi.
Gadās, ka IXP saviem dalībniekiem nodroŔina arī papildu pakalpojumus:

  • ievietots IXP TLD DNS serverÄ«,
  • instalēt aparatÅ«ras NTP serverus, ļaujot dalÄ«bniekiem precÄ«zi sinhronizēt laiku,
  • nodroÅ”ināt aizsardzÄ«bu pret DDoS uzbrukumiem utt.

Kā tas darbojas

ApskatÄ«sim satiksmes apmaiņas punkta darbÄ«bas principu, izmantojot vienkārÅ”a IXP piemēru, kas modelēts, izmantojot EVE-NG, un pēc tam apsvērsim BIRD programmatÅ«ras marÅ”rutētāja pamata iestatÄ«jumus. Lai vienkārÅ”otu diagrammu, mēs izlaidÄ«sim tādas svarÄ«gas lietas kā atlaiÅ”ana un kļūdu tolerance.

Tīkla topoloģija ir parādīta attēlā zemāk.

Satiksmes apmaiņas punkts: no pirmsākumiem līdz sava IX izveidei

Pieņemsim, ka mēs administrējam nelielu apmaiņas punktu un nodroÅ”inām Ŕādas peering iespējas:

  • publiska skatÄ«Å”anās,
  • privāta skatÄ«Å”anās,
  • peering caur marÅ”ruta serveri.

MÅ«su AS numurs ir 555, mums pieder IPv4 adreÅ”u bloks ā€“ 50.50.50.0/24, no kura izsniedzam IP adreses tiem, kas vēlas pieslēgties mÅ«su tÄ«klam.

50.50.50.254 ā€“ marÅ”ruta servera saskarnē konfigurēta IP adrese, ar Å”o IP klienti izveidos BGP sesiju, ja tiks veikta peering caur RS.

Tāpat, lai veiktu paging caur RS, esam izstrādājuÅ”i vienkārÅ”u marÅ”rutÄ“Å”anas politiku, kuras pamatā ir BGP kopiena, kas ļauj IXP dalÄ«bniekiem regulēt, kam un kādus marÅ”rutus nosÅ«tÄ«t:

BGP kopiena
Apraksts

LOCAL_AS:PEER_AS
Sūtīt prefiksus tikai uz PEER_AS

LOCAL_AS:IXP_AS
Pārsūtiet prefiksus visiem IXP dalībniekiem

3 klienti vēlas izveidot savienojumu ar mÅ«su IXP un apmainÄ«ties ar trafiku; Pieņemsim, ka tie ir interneta pakalpojumu sniedzēji. Viņi visi vēlas organizēt peering caur marÅ”ruta serveri. Zemāk ir diagramma ar klienta savienojuma parametriem:

Klients
Klienta AS numurs
Klienta reklamētie prefiksi
IP adrese, kas izsniegta klientam, lai izveidotu savienojumu ar 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

BGP pamata iestatÄ«Å”ana klienta marÅ”rutētājā:

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

Ir vērts atzÄ«mēt Å”eit esoÅ”o iestatÄ«jumu no bgp enforce-first-as. Pēc noklusējuma BGP pieprasa, lai saņemtā BGP atjauninājuma as-ceļŔ saturētu tā vienādranga as bgp numuru, no kura tika saņemts atjauninājums. Bet, tā kā marÅ”ruta serveris neveic izmaiņas as-path, tā numurs nebÅ«s as-path un atjauninājums tiks atmests. Å is iestatÄ«jums tiek izmantots, lai marÅ”rutētājs ignorētu Å”o noteikumu.

Mēs arÄ« redzam, ka klients Å”im prefiksam ir iestatÄ«jis bgp Community 555:555, kas saskaņā ar mÅ«su politiku nozÄ«mē, ka klients vēlas reklamēt Å”o prefiksu visiem pārējiem dalÄ«bniekiem.

Citu klientu marÅ”rutētājiem iestatÄ«jumi bÅ«s lÄ«dzÄ«gi, izņemot to unikālos parametrus.

BIRD konfigurācijas piemērs:

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

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

Tālāk ir aprakstÄ«ts filtrs, kas nepieņem marsieÅ”u prefiksus, kā arÄ« paÅ”a IXP prefiksus:

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

Šī funkcija ievieŔ iepriekŔ aprakstīto marŔrutēŔanas politiku.

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;


}

Mēs konfigurējam peering, izmantojam atbilstoÅ”us filtrus un politikas.

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

Ir vērts atzÄ«mēt, ka marÅ”ruta serverÄ« ir laba prakse dažādu vienaudžu marÅ”rutus ievietot dažādos RIB. BIRD ļauj jums to izdarÄ«t. MÅ«su piemērā vienkārŔības labad visi atjauninājumi, kas saņemti no visiem klientiem, tiek pievienoti vienā kopējā RIB.

Tātad, pārbaudīsim, kas mums ir.

MarÅ”ruta serverÄ« mēs redzam, ka ir izveidota BGP sesija ar visiem trim klientiem:

Satiksmes apmaiņas punkts: no pirmsākumiem līdz sava IX izveidei

Mēs redzam, ka mēs saņemam prefiksus no visiem klientiem:

Satiksmes apmaiņas punkts: no pirmsākumiem līdz sava IX izveidei

MarÅ”rutētājā as 100 mēs redzam, ka, ja ir tikai viena BGP sesija ar marÅ”ruta serveri, mēs saņemam prefiksus gan no 200, gan kā 300, savukārt BGP atribÅ«ti nav mainÄ«juÅ”ies, it kā peering starp klientiem tiktu veikta tieÅ”i:

Satiksmes apmaiņas punkts: no pirmsākumiem līdz sava IX izveidei

Tādējādi mēs redzam, ka marÅ”ruta servera klātbÅ«tne ievērojami vienkārÅ”o peering organizÄ“Å”anu IXP.

Es ceru, ka Ŕī demonstrācija palÄ«dzēja jums labāk izprast, kā darbojas IXP un kā marÅ”ruta serveris darbojas IXP.

Linxdatacenter IX

Uzņēmumā Linxdatacenter mēs izveidojām paÅ”i savu IXP, kuras pamatā ir 2 slēdžu un 2 marÅ”ruta serveru kļūmju izturÄ«ga infrastruktÅ«ra. MÅ«su IXP tagad darbojas testa režīmā, un mēs aicinām ikvienu izveidot savienojumu ar Linxdatacenter IX un piedalÄ«ties testÄ“Å”anā. Kad esat pieslēgts, jums tiks nodroÅ”ināts ports ar joslas platumu 1 Gbit/s, iespēja pāriet caur mÅ«su marÅ”ruta serveriem, kā arÄ« piekļuve jÅ«su personÄ«gajam IX portāla kontam, kas pieejams ix.linxdatacenter.com.

Rakstiet komentāros vai privātās ziņās, lai piekļūtu testÄ“Å”anai.

secinājums

Satiksmes apmaiņas punkti radās interneta rÄ«tausmā kā instruments, lai atrisinātu jautājumu par neoptimālu satiksmes plÅ«smu starp telekomunikāciju operatoriem. Tagad, parādoties jauniem globāliem pakalpojumiem un palielinoties CDN trafika apjomam, apmaiņas punkti turpina optimizēt globālā tÄ«kla darbÄ«bu. IXP skaita pieaugums pasaulē nāk par labu gan pakalpojuma gala lietotājam, gan telekomunikāciju operatoriem, satura operatoriem u.c. IXP dalÄ«bniekiem ieguvums izpaužas, samazinot ārējās peering organizÄ“Å”anas izmaksas, samazinot trafika apjomu, par kuru jāmaksā augstāka lÄ«meņa operatoriem, optimizējot marÅ”rutÄ“Å”anu un iespēju izveidot tieÅ”u saskarni ar satura operatoriem.

Noderīgas saites

Avots: www.habr.com

Pievieno komentāru