Liiklusvahetuspunkt: algusest kuni oma IX loomisega

Liiklusvahetuspunkt: algusest kuni oma IX loomisega

„Me lĂ”ime telefoniga ĂŒhenduse meie ja SRI meestega
“, ĂŒtles Kleinrock intervjuus.
„Me sisestasime L ja kĂŒsisime telefonis: „Kas nĂ€ete L-i?“
„Jah, me nĂ€eme L-i,“ tuli vastus.
„Me sisestasime O ja kĂŒsisime: „Kas nĂ€ete O-d?“
„Jah, me nĂ€eme O-d.“
„Siis sisestasime G ja sĂŒsteem langes vĂ€lja“


Kuid revolutsioon oli alanud


Interneti algus.


Tere kÔigile!

Minu nimi on Aleksander, olen vĂ”rguinsener ettevĂ”ttes Linxdatacenter. TĂ€na rÀÀgime liiklusvahetuspunktidest (Internet Exchange Point, IXP): sellest, mis eelnes nende tekkele, milliseid ĂŒlesandeid nad lahendavad ja kuidas nad on ĂŒles ehitatud. Samuti demonstreerin selles artiklis IXP tööpĂ”himĂ”tet EVE-NG platvormi ja tarkvararuuter BIRD abil, et mĂ”ista, kuidas see töötab „kapoti all“.

Veidi ajalugu

Kui vaadata siia, on mĂ€rgata, et liiklusvahetuspunktide arvu kiire kasv algas 1993. aastal. See on seotud sellega, et enamik tol ajal tegutsevatest sideoperaatoritest edastas oma liiklust Ameerika Ühendriikide backbone-vĂ”rgu kaudu. NĂ€iteks, kui liiklus liikus operaatorilt Prantsusmaal operaatorile Saksamaal, siis jĂ”udis see esmakordselt Prantsusmaalt Ameerikasse ja alles seejĂ€rel Ameerikast Saksamaale. Backbone-vĂ”rk toimis sel juhul transiidina Prantsusmaa ja Saksamaa vahel. Isegi liiklus ĂŒhe riigi sees ei kulgenud sageli otse, vaid Ameerika operaatorite tugivĂ”rkude kaudu.

See olukord mĂ”jutas mitte ainult transiittrafiku kohaletoimetamise maksumust, vaid ka kanalite kvaliteeti ja viivitust. Interneti kasutajate arv kasvas, ilmusid uued operaatorid, liiklusmaht suurenes, internet kasvas. Operaatorid kogu maailmas hakkasid mĂ”istma, et on vaja ratsionaalsemat lĂ€henemist operaatoritevahelise suhtluse korraldamiseks. "Miks peaks operaator A maksma transiidi eest lĂ€bi teise riigi, et edastada liiklust operaatorile B, kes asub naaber tĂ€naval?". Umbes sellise kĂŒsimuse esitasid endale telekommunikatsiooni operaatorid tol ajal. Nii hakkasid eri maailma paikades operaatorite kogunemiskohtadesse tekkima liiklusvahetuspunktid:

  • 1994 – LINX Londonis,
  • 1995 – DE-CIX Frankfurtis,
  • 1995 – MSK-IX, Moskvas jne.

Internet ja meie pÀevad

Kontseptuaalselt esindab kaasaegse Interneti arhitektuur mitmeid autonoomseid sĂŒsteeme (autonomous system, AS) ja mitmeid nende vahelisi fĂŒĂŒsilisi ja loogilisi sidemeid, mis mÀÀravad liikluse tee ĂŒhe AS-ist teise.

AS-idena esindavad tavaliselt sideoperaatorid, internetiteenuse pakkujad, CDN-id, andmekeskused ja ettevÔtte segment. AS-id loovad omavahel loogilisi seoseid (peering) peamiselt BGP protokolli abil.

Eraisikute sĂŒsteemide viis, kuidas need seosed korraldatakse, mÀÀratakse mitmete tegurite poolt:

  • geograafilised,
  • majanduslikud,
  • poliitilised,
  • kokkulepped ja ĂŒhised huvid AS-ide omanike vahel,
  • Kui kaua aega kulub vĂ€ljastamiseks?

Muidugi on sellel skeemil teatud struktuur ja hierarhia. NĂ€iteks jagunevad operaatorid tier-1, tier-2 ja tier-3 vahel, kusjuures tier-3 internetiteenuse pakkujate (kohalikud operaatorid) klientideks on tavaliselt tavalised kasutajad, samas kui tier-1 operaatorite klientideks on teised operaatorid. Tier-3 operaatorid koondavad enda alla oma abonentide liiklust, tier-2 sideoperaatorid koondavad omakorda tier-3 operaatorite liiklust, ja tier-1 koondab kogu internetiliiklust.

Skeemiliselt vÔib seda esitada nii:

Liiklusvahetuspunkt: algusest kuni oma IX loomisega
Antud pildil on nĂ€ha, et liiklus koondatakse alt ĂŒles, st lĂ”ppkasutajatelt tier-1 operaatoriteni. Samuti toimub horisontaalne liikluse vahetus ligikaudu vĂ”rdsete AS-ide vahel.

Selle skeemi lahutamatuks osaks ja samas puuduseks on mingisugune segadus ĂŒhendustes autonoomsete sĂŒsteemide vahel, mis asuvad lĂ€hemal lĂ”ppkasutajale teatud geograafilises piirkonnas. Vaadake allolevat pilti:

Liiklusvahetuspunkt: algusest kuni oma IX loomisega

Oletame, et suures linnas on 5 teenusepakkujat, kelle vaheline peer'ing on mingil pĂ”hjusel korraldatud nagu ĂŒlal nĂ€idatud.

Kui kasutaja Petja, kes on ĂŒhendatud internetiteenuse pakkujaga Go, soovib pÀÀseda ligi serverile, mis on ĂŒhendatud pakkujaga ASM, siis peab nende vahel liikuv liiklus lĂ€bima 5 autonoomset sĂŒsteemi. SeetĂ”ttu suureneb viivitus, kuna suureneb vĂ”rgu seadmete arv, mille kaudu liiklus lĂ€heb, samuti liikluse maht autonoomsete sĂŒsteemide vahel Go ja ASM.

Kuidas vĂ€hendada tranzit AS-ide arvu, mis peab liiklust lĂ€bima? Õige vastus on - liikluse vahetuspunkt.

TĂ€napĂ€eval on uute IXP-de ilmumine tingitud samadest vajadustest, mis olid 90ndate ja 2000. aastate alguses, kuid vĂ€iksemas mastaabis, vastates ĂŒha suurenevale sideteenuste pakkujate, kasutajate ja liikluse hulgale, samuti kasvavale sisu hulgale, mida genereerivad CDN-vĂ”rgud ja andmekeskused.

Mis on liikluse vahetuspunkt?

Liikluse vahetuspunkt on koht, kus on spetsiaalne vĂ”rginfrastruktuur, kus huvitatud osalised korraldavad omavahelise peerimise. Peamised liikluse vahetuspunktide osalised on sideteenuste pakkujad, interneti-teenuse pakkujad, sisuteenuste pakkujad ja andmekeskused. Liikluse vahetuspunktides ĂŒhenduvad osalised omavahel otse. See vĂ”imaldab lahendada jĂ€rgmisi ĂŒlesandeid:

  • minimeerida viivitusi,
  • vĂ€hendada transiidiliiklust,
  • optimeerida marsruutimist AS-ide vahel.

Arvestades, et IXP-d on paljudes suuremates linnades ĂŒle maailma, avaldab see positiivset mĂ”ju ka kogu internetivĂ”rgule.

Kui ĂŒlaltoodud olukorda Peeteriga lahendada IXP abil, toimub see umbes nii:

Liiklusvahetuspunkt: algusest kuni oma IX loomisega

Kuidas on liikluse vahetuspunkt ĂŒles ehitatud?

Üldiselt on IXP eraldi AS oma avalike IPv4/IPv6 aadresside plokiga.

IXP vÔrk on enamasti pidev L2 domeen. MÔnikord on see lihtsalt VLAN, kuhu on paigutatud kÔik IXP kliendid. Suuremate, geograafiliselt hajutatud IXP-de puhul vÔivad L2 domeeni korraldamiseks kasutada selliseid tehnoloogiaid nagu MPLS, VXLAN jne.

IXP elemendid

  • SKS. Siin ei ole midagi ebatavalist: riiulid, optilised ristpunktid, patch-paneelid.
  • LĂŒlitid – IXP aluseks. LĂŒliti port on sisenemispunkt IXP vĂ”rku. Samuti tĂ€idavad lĂŒlitid osa turvafunktsioonidest – filtreerivad prĂŒgiliiklust, mis ei peaks IXP vĂ”rgus olema. Üldiselt valitakse lĂŒlitid vastavalt funktsionaalsuse nĂ”uetele – usaldusvÀÀrsus, toetatud portide kiirus, turvafunktsioonid, sFlow tugi jne.
  • Route server (RS) – on oluline ja hĂ€davajalik osa igast kaasaegsest andmevahetuspunktist. Tööprincipid sarnanevad vĂ€ga iBGP-s route reflector'i vĂ”i OSPF-is designated router'iga ning lahendavad samu probleeme. Andmevahetuspunkti osalejate arvu kasvades suureneb ka iga osaleja jaoks vajalik BGP sessioonide arv, mis meenutab klassikalist full-mesh topoloogiat iBGP-s. RS lahendab probleemi jĂ€rgmiselt: loob BGP-sessiooni iga huvilise osalejaga IXP-s, mistĂ”ttu muutub see RS-i kliendiks. Saades BGP vĂ€rskenduse ĂŒhelt oma kliendilt, saadab RS selle vĂ€rskenduse kĂ”igile oma teistele klientidele, loomulikult vĂ€lja arvatud sellele, kellelt antud vĂ€rskendus saadud oli. Seega vabastab RS vajadusest luua full-mesh kĂ”igi IXP osalejate vahel ning lahendab elegantset probleemid skaleerimisest. Oluline on mĂ€rkida, et marsruutimise server edastab marsruute ĂŒhiselt ĂŒhelt AS-ilt teisele, mitte muutes edastatavaid BGP atribuute, nĂ€iteks ei lisa ta oma AS-numbrite AS-path'i. Samuti toimub RS-is pĂ”hifiltreerimine: nĂ€iteks RS ei vĂ”ta vastu martian'ite vĂ”rgustikke ja IXP enda prefikseid.

    Route serveri lahendusena kasutatakse sageli avatud lÀhtekoodiga tarkvara, nagu BIRD (bird internet routing daemon). See on hea, kuna see on tasuta, kiirelt seadistatav enamikus Linuxi distributsioonides, omab paindlikku marsruudipoliitikate/filtreerimise seadistamise mehhanismi ja ei nÔua palju arvutusressursse. Samuti vÔib RS-ks valida riistvara/virtuaalse ruuteri, nÀiteks Cisco, Juniper jne.

  • Turvalisus. Kuna IXP vĂ”rk on suures osas AS-i koondamine, peab ka kĂ”igi osaliste jĂ€rgitud turvapoliitika olema hĂ€sti sĂ”nastatud. Reeglina rakendatakse samu mehhanisme, mis kehtivad BGP-naabruse loomisel kahe eraldi BGP-pira vahel vĂ€ljaspool IXP-d, ning kasutatakse ka mĂ”ningaid tĂ€iendavaid kaitsevahendeid.

    NÀiteks on hea praktikana soovită ning edastada liiklust ainult teatud IXP osalejate mac-aadressidelt, mis on eelnevalt kokku lepitud. Liiklus, mille ethertype vÀljad erinevad 0x0800 (IPv4), 0x08dd (IPv6), 0x0806 (ARP), tuleb keelata; see tehakse selleks, et filtreerida vÀlja liiklus, mis ei mahtu BGP-pirniga. Samuti vÔivad rakenduda sellised mehhanismid nagu GTSM, RPKI jne.

VÔib öelda, et eeltoodud on igasuguste IXP-de pÔhikomponendid olenemata nende suurusest. Loomulikult vÔivad suurte IXP-de korral rakenduda mÔningad lisatehnoloogiad ja lahendused.
Juhtub, et IXP pakub oma osalejatele ka tÀiendavaid teenuseid:

  • paigutavad IXP-le TLD DNS-servereid,
  • paigaldavad riistvaralised NTP-serverid, andes osalejatele vĂ”imaluse aega tĂ€pselt sĂŒnkroniseerida,
  • pakuvad DDoS-rĂŒnnakute kaitset jne.

Tööprintsiip

KĂ€ime lĂ€bi liiklusvahetuspunkti tööprintsiibi lihtsaima IXP nĂ€ite kaudu, simuleerituna EVE-NG abil, ning seejĂ€rel vaatame ĂŒle BIRD tarkvararuuteri aluskonfiguratsiooni. Skeemi lihtsustamiseks jĂ€tame vĂ€lja sellised olulised asjad nagu reservimine ja talitlushĂ€ired.

VÔrgu topoloogia on esitatud alloleval joonisel.

Liiklusvahetuspunkt: algusest kuni oma IX loomisega

Oletame, et haldame vÀikest liikluse vahetuspunkti ja pakume jÀrgmisi piirimisvÔimalusi:

  • avalik piirimine,
  • privaatne piirimine,
  • piirimine route server'i kaudu.

Meie AS-i number on 555, omame IPv4 aadressiblokki – 50.50.50.0/24, millest jagame IP-aadresse neile, kes soovivad meie vĂ”rguga ĂŒhineda.

50.50.50.254 on IP-aadress, mis on seadistatud route server'i liidesele; selle IP-ga loovad kliendid BGP sessiooni, kui piirimine toimub RS kaudu.

Samuti oleme RS kaudu piirimiseks vÀlja töötanud lihtsa marsruutimise poliitika, mis pÔhineb BGP community'l, mis vÔimaldab IXP osalejatel reguleerida, kellele ja milliseid marsruute edastada:

BGP community
Kirjeldus

LOCAL_AS:PEER_AS
Eda edastamine ainult PEER_AS-ile

LOCAL_AS:IXP_AS
Eda edastamine kÔikidele IXP osalejatele

Meie IXP soovib ĂŒhineda ja liiklust vahetada 3 klient; oletame, et need on internetiteenuse pakkujad. KĂ”ik nad soovivad korraldada piirimist route server'i kaudu. Allpool on toodud skeem koos klientide ĂŒhendamise parameetritega:

Klient
Kliendi AS number
Klientide poolt kuulutatud eelistused
IP aadress, mis on antud kliendile IXP-ga ĂŒhendamiseks

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

Kliendi ruuteri pÔhiseade BGP jaoks:

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

Siin tasub mĂ€rkida seadet no bgp enforce-first-as. Vaikimisi nĂ”uab BGP, et vastuvĂ”etud BGP uuenduste as-path'is oleks BGP peer'i number, kellelt uuendus saadud. Kuna route server ei muudab as-path'i, jÀÀb selle number as-path'ist puudu ja uuendus lĂŒkatakse tagasi. See seade rakendatakse, et ruuter hakkaks seda reeglit tĂ”lgendama.

Samuti nÀeme, et klient on seadnud bgp community 555:555 antud prefiksile, mis meie poliitika kohaselt tÀhendab, et klient soovib teada anda seda prefiksi kÔigile teistele osalejatele.

Muude klientide ruuterite seadistus on sarnane, vÀlja arvatud nende unikaalsed parameetrid.

BIRD konfiguratsiooninÀide:

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

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

Allpool kirjeldatakse filtrit, mis ei aktsepteeri martians eeliseid ning ka IXP eeliseid:

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

See funktsioon rakendab marsruutimise poliitikat, millest oleme varem rÀÀkinud.

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;


}

Seame pĂŒringu, rakendame vastavaid filtreid ja poliitikaid.

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

Tuleb mĂ€rkida, et route server’is on hea tava grupeerida marsruudid erinevatest peer'idest erinevatesse RIB-idesse. BIRD vĂ”imaldab seda teha. Meie nĂ€ites, lihtsuse huvides, kogutakse kĂ”ik uuendused, mis saadakse kĂ”igilt klientidelt, ĂŒhte ĂŒldisesse RIB-i.

Nii et kontrollime, mida oleme saavutanud.

Route server’is nĂ€eme, et kĂ”igi kolme kliendiga on loodud BGP-seanss:

Liiklusvahetuspunkt: algusest kuni oma IX loomisega

NÀeme, et saame eelseadeid kÔigilt klientidelt:

Liiklusvahetuspunkt: algusest kuni oma IX loomisega

Marsruuteris as 100 nĂ€eme, et ainult ĂŒhe BGP-seansiga route serveriga saame eelseadeid nii as 200-lt kui ka as 300-lt, samas kui BGP-atribuutide struktuur ei ole muutunud, justkui peerimine klientide vahel toimuks otse:

Liiklusvahetuspunkt: algusest kuni oma IX loomisega

Nii nÀeme, et route serveri olemasolu lihtsustab oluliselt peerimise korraldamist IXP-l.

Loodan, et see demonstraatsioon aitas teil paremini mÔista, kuidas liikluse vahetamispunktid töötavad ja kuidas route server IXP-l toimib.

Linxdatacenter IX

Linxdatacenteris oleme loonud oma IXP, mis pĂ”hineb kahekordselt varustatud infrastruktuuril, kus on kaks lĂŒlitit ja kaks marsruuteriserverit. Meie IXP on hetkel testimisseisundis ja kutsume kĂ”iki soovijaid liituma Linxdatacenter IX-iga ning osalema testimises. Ühendamise korral antakse teile 1 Gbit/s lĂ€bilaskevĂ”imega port, vĂ”imalus teha ĂŒhendusi meie marsruuteriserverite kaudu, samuti juurdepÀÀs IX-portaali isiklikule kabinetile, mis on saadaval aadressil ix.linxdatacenter.com.

Kirjutage kommentaaridesse vÔi isiklikele sÔnumitele, et saada juurdepÀÀs testimisele.

KokkuvÔte

Liiklusvahetuspunktid tekkisid interneti algusaegadel, et lahendada telekommunikatsioonioperaatorite vahelise liikluse mitteoptimaalset edastamist. Praegu, uute globaalsete teenuste ja CDN-i liikluse kasvu tĂ”ttu, jĂ€tkavad liiklusvahetuspunktid globaalse vĂ”rgu töö optimeerimist. IXP-de arvu kasv maailmas toob kasu nii teenuse lĂ”ppkasutajale kui ka telekommunikatsioonioperaatoritele ja sisuteenuse pakkujatele jne. IXP osalejate jaoks vĂ€ljendub kasu vĂ€liste peer'ingute korraldamise kulude vĂ€henemises, makstava liikluse arvu vĂ€henemises kĂ”rgematele operaatoritele, marsruutimise optimeerimises ja vĂ”imaluses olla otseĂŒhenduses sisuteenuse pakkujatega.

Kasulikud lingid

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster