
âMe seadsime telefonikontakti meie ja SRI poiste vahelâŠâ ĂŒtles Kleinrock ĂŒhes intervjuus:
âMe sisestasime L-i ja kĂŒsisime telefoni teel: âKas nĂ€ete L-i?ââ
âJah, me nĂ€eme L-i,â tuli vastus.
âSisestasime O ja kĂŒsisime: âKas nĂ€ete O-d?ââ
âJah, me nĂ€eme O-d.â
âSiis sisestasime G ja sĂŒsteem krahh...âKuid revolutsioon oli alanudâŠ
Interneti algus.
Tere kÔigile!
Minu nimi on Aleksander, olen vĂ”rginsener ettevĂ”ttes Linxdatacenter. TĂ€na rÀÀgime liikluse vahetuspunktidest (Internet Exchange Point, IXP): sellest, mis eelnes nende tekkimisele, milliseid ĂŒlesandeid nad tĂ€idavad ja kuidas need on ĂŒles ehitatud. Samuti demonstreerin selles artiklis IXP tööpĂ”himĂ”tet EVE-NG platvormi ja BIRD tarkvararuuteri kaudu, et oleks arusaam, kuidas see âkapoti allâ töötab.
Enne kui liigume edasi
Kui vaadata , siis vÔib mÀrgata, et liikluse vahetuspunktide kiire kasv algas 1993. aastal. See oli tingitud sellest, et enamus sel ajal olemas olnud sideteenuste liiklusest lÀbis USA selgroo. NÀiteks, kui liiklus suundus Prantsusmaalt Saksamaale, jÔudis see esmalt USA-sse ja alles sealt Saksamaale. Selgroo vÔrk toimis sellisel juhul transiidina Prantsusmaa ja Saksamaa vahel. Isegi riigi sees liikuv liiklus ei lÀinud sageli otse, vaid Ameerika operaatorite toetavate vÔrkude kaudu.
Selline olukord mĂ”jutas mitte ainult transiitliikluse kulu, vaid ka kanalite kvaliteeti ja viivitust. Interneti kasutajate arv suurenes, ilmus uusi operaatorite, liiklusmaht kasvas, internet arenes. Operaatorid ĂŒle kogu maailma hakkasid mĂ”istma, et on vajalik ratsionaalsem lĂ€henemine operatsioonidevahelise koostöö korraldamisele. âKĂŒsimus, miks peaks operaator A maksma transiidi eest teise riigi kaudu, et saata liiklust operaatorile B, kes asub naabruses?â Sellise kĂŒsimuse esitasid endale sideteenuste operaatorid sel ajal. Nii hakkasid erinevates maailma nurkades operaatorite kontsentratsioonikohtadesse ilmuma liikluse vahetuspunktid:
- 1994 â LINX Londonis,
- 1995 â DE-CIX Frankfurtis,
- 1995 â MSK-IX, Moskvas jne.
Internet ja meie pÀevad
Kontseptuaalselt esindab tĂ€napĂ€eva interneti arhitektuur paljusid iseseisvaid sĂŒsteeme (autonomous system, AS) ja mitmeid sidemeid nende vahel, nii fĂŒĂŒsilisi kui ka loogilisi, mis mÀÀravad liikluse teed ĂŒhelt AS-ilt teisele.
AS-i rolli tÀidavad tavaliselt sideoperaatorid, interneti pakkujad, CDN-id, andmekeskused ja ettevÔtted ettevÔtete segmentis. AS-id korraldavad omavahelisi loogilisi sidemeid (peering) peamiselt BGP protokolli abil.
Autonoomsete sĂŒsteemide sidemete korralduse mÀÀrab mitu tegurit:
- geograafilised,
- majanduslikud,
- poliitilised,
- lepingud ja ĂŒhised huvid AS-i omanike vahel,
- jne.
Muidugi on selles skeemis teatud struktuur ja hierarhia. Nii jaotatakse operaatorid tier-1, tier-2 ja tier-3, ning kui kohaliku interneti pakkuja (tier-3) kliendid on tavaliselt tavalised kasutajad, siis nÀiteks tier-1 operaatorite kliendid on teised operaatorid. Tier-3 operaatorid koguvad oma klientide liiklust, tier-2 sideoperaatorid koguvad omakorda tier-3 operaatorite liiklust, ning tier-1 kogub kogu interneti liikluse.
Schemaatiliselt vÔib seda kujutada jÀrgmiselt:

Sellel pildil on nĂ€ha, et liiklus kogutakse alt ĂŒles, st lĂ”ppkasutajatelt tier-1 operaatoriteni. Samuti toimub horisontaalne liikluse vahetamine omavahel peaaegu vĂ”rdsete AS-ide vahel.
Selle skeemi lahutamatuks osaks ja samas puuduseks on teatud kaootilisus sidemete vahel iseseisvate sĂŒsteemide, mis asuvad lĂ”ppkasutajale lĂ€hemal, geograafilises piirkonnas. Vaatame allolevat pilti:

VÔtame aluseks, et suures linnas on 5 sideoperaatorit, kelle vahel on fikseeritud peering, erinevatel pÔhjustel, nagu allpool nÀidatud.
Kui kasutaja Petja, kes on ĂŒhendatud interneti pakkujaga Go, soovib pÀÀseda juurde serverile, mis on ĂŒhendatud pakkujaga ASM, peab nende vahelise liiklus lĂ€bima 5 iseseisvat sĂŒsteemi. SeelĂ€bi suureneb viivitus, kuna suureneb vĂ”rgu seadmete arv, mille kaudu liiklus lĂ€bib, samuti suureneb tranzitliikluse maht iseseisvate sĂŒsteemide vahel Go ja ASM vahel.
Kuidas vĂ€hendada tranzitsete AS-ide arvu, mille lĂ€bi liiklus peab lĂ€bi minema? Ăige vastus on liikluse vahetuspunkt.
TĂ€napĂ€eval on uute IXP-de tekkimise pĂ”hjuseks samad vajadused nagu 90ndate alguses ja 2000ndatel, kuid nĂŒĂŒd vĂ€iksemas mahus, vastuseks kasvavale sideoperaatorite, kasutajate ja liikluse arvule, samuti jĂ€rjest suurenevale sisu hulgale, mida genereerivad CDN-vĂ”rgud ja andmekeskused.
Mis on liikluse vahetuspunkte?
Liikluse vahetuspunkt on koht, kus on spetsiaalne vĂ”rguinfrastruktuur, kus huvi liikluse vastastikuse vahetuse vastu olevad osalised organiseerivad vastastikku peeringu. Peamised osalised liikluse vahetuspunktides on sideoperaatorid, internetiteenuse pakkujad, sisu pakkujad ja andmekeskused. Liikluse vahetuspunktides ĂŒhendavad osalised end omavahel otse. See vĂ”imaldab lahendada jĂ€rgmised ĂŒlesanded:
- vÀhendada viivitust,
- kujundada ĂŒmber transitliiklust,
- optimeerida marsruute AS-ide vahel.
Kuna IXP-d on paljude suurte linnade maailmas, on see kÔik positiivselt mÔjutanud ka interneti vÔrku tervikuna.
Kui ĂŒlaltoodud olukorda Pete osas lahendada IXP kaudu, siis see vĂ”ib vĂ€lja nĂ€ha umbes nii:

Kuidas liikluse vahetuspunkt töötab?
Tavaliselt on IXP eraldi AS koos oma avalike IPv4/IPv6 aadresside plokiga.
IXP vĂ”rk koosneb enamasti ĂŒhtsest L2 domeenist. MĂ”nikord on see lihtsalt VLAN, kuhu on koondatud kĂ”ik IXP kliendid. Suuremate, geograafia poolest jaotatud IXP-de puhul vĂ”ib L2 domeeni organiseerimiseks kasutada tehnoloogiaid nagu MPLS, VXLAN jne.
IXP elemendid
- SKS. Siin pole midagi ebatavalist: riiulid, optilised ristlÔiked, patch-paneelid.
- LĂŒlitid â IXP alus. LĂŒlitite port on sisenemispunkt IXP vĂ”rku. Samuti tĂ€idavad lĂŒlitid osaliselt turvafunktsioone â filtreerivad prĂŒgi liiklust, mida ei tohiks IXP vĂ”rgus olla. Tavaliselt valitakse lĂŒlitid vastavalt funktsionaalsetele nĂ”udmistele â töökindlus, toetatud portide kiirus, turvafunktsioonid, sFlow toetamine jne.
- Marsruudi server (RS) â lahutamatu ja vajalik osa igast kaasaegsest liikluse vahetuspunktist. Töö pĂ”himĂ”ttelt sarnaneb see vĂ€ga iBGP route reflectorile vĂ”i OSPF designated routerile ning lahendab samad probleemid. Liikmete arvu suurenedes liikluse vahetuspunktis suureneb ka BGP sessioonide arv, mida tuleb igaĂŒhel hoida, st see meenutab klassikalist full-mesh topoloogiat iBGP-s. RS lahendab probleemi jĂ€rgmiselt: see loob BGP sessiooni iga huvitatud IXP osalejaga, kes muutub RS kliendiks. Saades BGP uuenduse ĂŒhelt oma kliendilt, edastab RS selle uuenduse kĂ”igile oma teistele klientidele, vĂ€lja arvatud sellele, kellelt uuendus saadi. Nii vabastab RS vajadusest luua full-mesh kĂ”igi IXP osalejate vahel ja lahendab elegantselt skaleerimise probleemi. Tuleb mĂ€rkida, et marsruutide server edastab marsruudid ĂŒhelt AS-ilt teisele lĂ€binĂ€gematult, muudatusi tegemata edastatavatest BGP attribuutidest, nĂ€iteks ei lisa oma AS numbrit AS-pathi. Samuti toimub RS-s pĂ”hifiltratsioon, nĂ€iteks RS ei aktsepteeri martians vĂ”rgustikke ja IXP enda prefikseid.
Route serverina kasutatakse sageli avatud lĂ€htekoodiga tarkvara marsruutimistarkvara â BIRD (bird internet routing daemon). Selle eelised on, et see on tasuta, kiiruselt lihtne seadistada enamikul Linuxi distributsioonidel, tal on paindlik marsruudi/poliitikate seadistamise mehhanism ja see ei nĂ”ua palju arvutusressursse. RS-ks vĂ”ib valida ka Cisco, Juniperi jms riistvaralise/virtuaalse marsruuteri.
- Turvalisus. Kuna IXP vÔrk keskendub suure hulga AS-ide koondamisele, peab kÔigil osalejatel olema hÀsti vÀljendatud turvapoliitika. Reeglina kehtivad kÔik samad mehhanismid, mida kasutatakse BGP naabruse loomisel kahe eraldi BGP-pira vahel vÀljaspool IXP, ka siin, ning on rakendatud ka mitmeid tÀiendavaid kaitsevahendeid.
NÀiteks on hea praktika suunata liiklust ainult teatud osaleja IXP MAC-aadressilt, mis on eelnevalt kokku lepitud. Liiklus, mille ethertype vÀljad erinevad 0x0800 (IPv4), 0x08dd (IPv6), 0x0806 (ARP), on keelatud; see tehakse selleks, et filtreerida liiklust, millel BGP peerimiseks kohta ei ole. Samuti vÔivad olla kasutusel sellised mehhanismid nagu GTSM, RPKI jne.
Ilmselt on eespool loetletud peamised koostisosad igas IXP-s, olenemata suurusest. Loomulikult vÔivad suurtel IXP-del olla tÀiendavad tehnoloogiad ja lahendused.
On juhtunud, et IXP pakub oma osalejatele ka tÀiendavaid teenuseid:
- paigutatakse IXP-sse TLD DNS-serverid,
- paigaldatakse riistvara NTP-serverid, mis vĂ”imaldavad osalejatel tĂ€pselt aega sĂŒnkroonida,
- pakuvad DDoS-rĂŒnnakute kaitset jne.
Töö ĐżŃĐžĐœŃОп
Vaatame, kuidas liikluse vahetamise punkt töötab, kasutades lihtsustatud IXP nÀidet, simuleeritud EVE-NG abil, seejÀrel vaatame pÔhiseadet BIRD tarkvara marsruuteril. Skeemi lihtsustamiseks jÀtame vÀlja sellised olulised asjad nagu varundamine ja rikete taluvus.
VÔrgu topoloogia on kujutatud alloleval joonisel.

Oletame, et haldame vÀikest liikluse vahetamise punkti ja pakume jÀrgmisi pirimise variante:
- avalik pirimine,
- privaatne pirimine,
- pirimine lÀbi marsruudiserveri.
Meie AS number on 555, meil on IPv4 aadresside plokk â 50.50.50.0/24, millest jagame IP-aadresse neile, kes soovivad meie vĂ”rguga liituda.
50.50.50.254 on IP-aadress, mis on seadistatud marsruudiserveri liidesesse; selle IP-ga loovad kliendid BGP seansi, kui nad pirivad lÀbi RS.
Samuti oleme RS kaudu pirimise jaoks vÀlja töötanud lihtsa marsruutimise poliitika, mis pÔhineb BGP community-l, mis vÔimaldab IXP liikmetel reguleerida, kellele ja milliseid marsruute edastada:
BGP community
Kirjeldus
LOCAL_AS:PEER_AS
Edastada eelistused ainult PEER_AS-ile
LOCAL_AS:IXP_AS
Edastada eelistused kÔigile IXP liikmetele
Meie IXP-sse soovivad ĂŒhenduda ja liiklust vahetada 3 klienti; oletame, et need on internetiteenuse pakkujad. KĂ”ik nad soovivad korraldada pirimist lĂ€bi marsruudiserveri. Allpool on kliendi ĂŒhendamise parameetrite skeem:
Kliendi
Kliendi AS number
Kliendi poolt kuulutatud eelistused
IP aadress, mis on kliendile antud ĂŒhenduse loomiseks IXP-ga
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
Baasseade BGP kliendi marsruuteris:
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 on oluline mĂ€rkida, et on seadistus no bgp enforce-first-as. Vaikimisi nĂ”uab BGP, et vastuvĂ”etud BGP uuenduste as-path sisaldaks BGP sĂ”bra AS-i numbrit, kellelt uuendus saadud. Kuid kuna marsruutimisserver ei muuda as-pathâi, siis ei sisaldu selle numbrit as-pathâis ja uuendus lĂŒkatakse tagasi. See seadistus rakendatakse, et marsruuter ignoreeriks seda reeglit.
Samuti nÀeme, et klient on mÀÀranud BGP community 555:555 antud eelistusele, mis meie poliitika kohaselt tÀhendab, et klient soovib seda eelistust kuulutada kÔigile teistele osalistele.
Muude klientide marsruutijate seadistus on sarnane, vÀlja arvatud nende unikaalsed parameetrid.
BIRD konfiguratsiooni nÀidis:
define ixp_as = 555;
define ixp_prefixes = [ 50.50.50.0/24+ ];
template bgp RS_CLIENT {
local as ixp_as;
rs client;
}
Edasi on kirjeldatud filtrit, mis ei vÔta vastu martians eelistusi, samuti IXP enda eelistusi:
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 marsruutimispoliitikat, 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 pilti, rakendame vastavad filtrid ja poliitikad.
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;
}
}
Oluline on mĂ€rkida, et marsruudiserveri puhul on heaks tooniks hoida erinevatelt sĂ”pradelt saadud marsruute erinevates RIB-ides. BIRD vĂ”imaldab seda teha. Meie nĂ€ites, lihtsuse huvides, kogutakse kĂ”ik kĂ”ikidest klientidest saadud uuendused ĂŒheks ĂŒhiseks RIB-iks.
Nii et kontrollime, mida oleme saavutanud.
Route serveril nÀeme, et kÔigi kolme kliendiga on loodud BGP-seanss:

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

MarĆĄrutiseris as 100 nĂ€eme, et ĂŒhe BGP-seansi olemasolul marsruudiserveriga saame prefikseid nii as 200 kui ka as 300, samas BGP-atribuut ei ole muutunud, nagu oleks peerimine klientide vahel toimunud otse:

Seega nÀeme, et marsruudiserveri olemasolu lihtsustab oluliselt peerimise organiseerimist IXP-l.
Loodan, et see demonstratsioon aitas teil paremini mÔista, kuidas toimivad liiklusvahetuspunktid ja kuidas marsruudiserver IXP-l töötab.
Linxdatacenter IX
Linxdatacenteris oleme loonud oma IXP, mis pĂ”hineb kaksikvĂ”rgu ja kahe marsruudiserveri tĂ”rketaluvusel infrastruktuuril. Praegu on meie IXP katsetamisreĆŸiimis ja kutume kĂ”iki huvitatud osalema Linxdatacenter IX-s ja osalema testimisel. Ăhenduse loomisel antakse teile port, mille lĂ€bilaskevĂ”ime on 1 Gbit/s, vĂ”imalus peerida meie marsruudiserveritega ning juurdepÀÀs IX-portaali isiklikule kabinetile, mis on saadaval aadressil .
Kirjutage kommentaaridesse vÔi isiklikele sÔnumitele, et saada ligipÀÀs testimisele.
KokkuvÔte
Liiklusvahetuspunktid tekkisid interneti algusaegadel, et lahendada probleeme, mis olid seotud ebaoptimaalse liikluse lĂ€bimisega sideoperaatorite vahel. TĂ€napĂ€eval, uute globaalsete teenuste ja CDN-liikluse suurenenud hulga ilmumisega, jĂ€tkavad liiklusvahetuspunktid globaalse vĂ”rgu töö optimeerimist. IXP-de arvu suurenemine maailmas toob kasu nii teenuse lĂ”ppkasutajale kui ka sideoperaatoritele ja sisuoperaatoritele jne. IXP osalejate eeliseid vĂ€ljendatakse kulude vĂ€henemises vĂ€liste peerimiste korraldamisel, alandatud liikluse hulgas, mille eest tuleb maksta kĂ”rgematele operaatoritele, marsruutimise optimeerimisel ja vĂ”imaluses otseĂŒhenduse loomisel sisuoperaatoritega.
Kasulikud lingid
- Vaata liiklusvahetuspunktide asukoha kaarti:
- Vaata ĂŒksikasjalikku statistikat BGP peerimise kohta, sealhulgas IXP-l osalemise kohta:
Allikas: habr.com
