
â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 , 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:

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:

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:

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.

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:

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

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:

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 .
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
- Vaata liiklusvahetuspunktide asukoha kaarti:
- Vaata ĂŒksikasjalikku statistikat BGP peer'ingust, sealhulgas kohalolekust IXP-l:
Allikas: habr.com
