Pika e shkëmbimit të trafikut: nga fillesat te krijimi i IX-it tuaj

Pika e shkëmbimit të trafikut: nga fillesat te krijimi i IX-it tuaj

«Ne bëmë një lidhje telefonike midis nesh dhe djemve në SRI…», tha Kleinrock në një intervistë:
«Ne shkruam L-në dhe pyetëm në telefon, „A e shihni L-në?“»
«Po, e shohim L-në,» erdhi përgjigjja.
«Ne shkruam O-në dhe pyetëm, „A e shihni O-në?“»
«Po, e shohim O-në.»
«Pastaj shkruam G-në, dhe sistemi u rrezikua»…

Megjithatë, një revolucion kishte filluar…

Fillimi i internetit.


Përshëndetje të gjithëve!

Më quajnë Aleksandër, unë jam inxhinier rrjeti në kompaninë Linxdatacenter. Në këtë artikull do të flasim për pikat e shkëmbimit të trafikut (Internet Exchange Point, IXP): çfarë e parapriu shfaqjen e tyre, cilat probleme zgjidhin dhe si ndodhin. Gjithashtu, në këtë artikull do të demonstroj parimin e funksionimit të IXP-së përmes platformës EVE-NG dhe routerit programor BIRD, në mënyrë që të kuptohet si funksionon „nën kapak“.

Pak histori

Nëse shohim këtu, mund të vëmë re se rritja e shpejtë e numrit të pikave të shkëmbimit të trafikut filloi në vitin 1993. Kjo lidhet me faktin se shumica e trafikut të operatorëve të komunikimeve që ishin në atë kohë kalonte përmes rrjetit backbone të SHBA-së. Për shembull, kur trafiku shkonte nga një operator në Francë te një operator në Gjermani, ai fillimisht kalonte në SHBA dhe vetëm pastaj nga SHBA në Gjermani. Rrjeti backbone në këtë rast shërbente si transit midis Francës dhe Gjermanisë. Edhe trafiku brenda një vendi shpesh kalonte jo drejtpërdrejt, por përmes rrjeteve mbështetëse të operatorëve amerikanë.

Ky realitet ndikohej jo vetëm në kostot e dorëzimit të trafikut tranzit, por edhe në cilësinë e kanaleve dhe vonesat. Numri i përdoruesve të internetit po rritej, po shfaqeshin operatorë të rinj, volumi i trafikut po rritej, interneti po shkonte përpara. Operatorët në të gjithë botën filluan të kuptonin se nevojitej një qasje më e arsyeshme për organizimin e bashkëpunimit midis operatorëve. «Pse unë, operatori A, duhet të paguaj për transitin përmes një vendi tjetër, për të dërguar trafikun te operatori B, i cili ndodhet në rrugën e përmbi?» Një pyetje e tillë bëhej nga operatorët e komunikimeve në atë kohë. Kështu, në pjesë të ndryshme të botës, në pikat e koncentrimit të operatorëve, filluan të shfaqen pikat e shkëmbimit të trafikut:

  • 1994 – LINX në Londër,
  • 1995 – DE-CIX në Frankfurt,
  • 1995 – MSK-IX, në Moskë etj.

Internet dhe ditët tona

Konceptualisht, arkitektura e internetit modern përbëhet nga shumë sisteme autonome (sistemi autonom, AS) dhe shumë lidhje midis tyre, si fizike ashtu edhe logjike, që përcaktojnë rrugën e kalimit të trafikut nga një AS në një tjetër.

Në rolin e AS zakonisht veprojnë operatorët e komunikimit, ofruesit e internetit, CDN, qendrat e të dhënave dhe kompanitë e segmentit të ndërmarrjeve. AS organizojnë lidhje logjike (peering) midis njëri-tjetrit, zakonisht përmes protokollit BGP.

Mënyra se si sistemet autonome organizojnë këto lidhje përcaktohet nga një sërë faktorësh:

  • gjeografikë,
  • ekonomikë,
  • politike,
  • marrëveshjeve dhe interesave të përbashkëta midis pronarëve të AS,
  • etj.

Natyrisht, në këtë skemë ka një strukturë dhe hierarki të caktuar. Kështu, operatorët ndahen në tier-1, tier-2 dhe tier-3, dhe nëse klientët për ofruesin lokal të internetit (tier-3) janë, si rregull, përdoruesit e zakonshëm, për shembull, për operatorët e nivelit tier-1, klientët janë operatorë të tjerë. Operatorët tier-3 agregojnë trafikun e abonentëve të tyre, operatorët e komunikimit tier-2, nga ana e tyre, agregojnë trafikun e operatorëve tier-3, ndërsa tier-1 – të gjithë trafikun e internetit.

Skematike, kjo mund të paraqitet kështu:

Pika e shkëmbimit të trafikut: nga fillesat te krijimi i IX-it tuaj
Në këtë imazh shihet se trafiku agregohet nga poshtë lart, pra nga përdoruesit përfundimtarë te operatorët tier-1. Po ashtu, ka shkëmbim horizontal të trafikut midis AS të barabarta me njëra-tjetrën.

Një pjesë e pandashme dhe njëkohësisht dobësi e kësaj skeme është njëfarë çrregullsie në lidhjet midis sistemeve autonome që janë më afër përdoruesit përfundimtar, brenda zonës gjeografike. Le të shqyrtojmë imazhin më poshtë:

Pika e shkëmbimit të trafikut: nga fillesat te krijimi i IX-it tuaj

Le të supozojmë se në një qytet të madh janë të pranishëm 5 operatorë të komunikimit, peering midis të cilëve, për arsye të ndryshme, është organizuar ashtu siç është treguar më sipër.

Nëse përdoruesi Petja, i lidhur me ofruesin e internetit Go, dëshiron të aksesojë një server që është lidhur me ofruesin ASM, atëherë trafiku midis tyre do të detyrohet të kalojë përmes 5 sistemeve autonome. Kështu rritet vonesa, pasi rritet numri i pajisjeve rrjetërore përmes të cilave do të kalojë trafiku, si dhe sasia e trafikut të tranzitit në sistemet autonome midis Go dhe ASM.

Si dë gjeneroni më pak AS transit që trafiku duhet të kalojë? E drejta – pika e shkëmbimit të trafikut.

Në ditët e sotme, krijimi i IXP-ve të rinj është i lidhur me të njëjtat nevoja si në fillim të viteve '90-2000, vetëm në një shkallë më të vogël, si përgjigje ndaj rritjes së numrit të operatorëve të komunikimit, përdoruesve dhe trafikut, për rritjen e sasisë së përmbajtjes të gjeneruar nga rrjete CDN dhe data-qendrat.

Çfarë është një pikë shkëmbimi trafiku?

Pika e shkëmbimit të trafikut është një vend me një infrastrukturë të posaçme rrjetore, ku pjesëmarrësit që janë të interesuar për shkëmbimin e trafikut ndërmjet tyre, organizojnë peering reciprok. Pjesëmarrësit kryesorë në pikat e shkëmbimit të trafikut janë: operatorët e komunikimit, ofruesit e internetit, ofruesit e përmbajtjes dhe data-qendrat. Në pikat e shkëmbimit të trafikut, pjesëmarrësit lidhen direkt me njëri-tjetrin. Kjo lejon zgjidhjen e detyrave të mëposhtme:

  • të reduktojë vonesën,
  • të reduktojë sasinë e trafikut transit,
  • të optimizojë rrugëtimin midis AS.

Duke pasur parasysh se IXP-të janë të pranishëm në shumë qytete të mëdha në botë, kjo gjithashtu ka një efekt pozitiv në rrjetin e internetit në përgjithësi.

Nëse situatën e përshkruar më sipër me Petën e zgjidhim përmes IXP, rezultati do të jetë më pak kështu:

Pika e shkëmbimit të trafikut: nga fillesat te krijimi i IX-it tuaj

Si është e strukturuar një pikë shkëmbimi trafiku?

Si rregull, IXP është një AS e veçantë me bllokun e vet të adresave publike IPv4/IPv6.

Rrjeti IXP më së shpeshti përbën një domene të plotë L2. Ndonjëherë, kjo është thjesht një VLAN, në të cilën vendosen të gjithë klientët e IXP. Kur flitet për IXP më të mëdha, të shpërndara gjeografikisht, për organizimin e domeneve L2 mund të përdoren teknologji të tilla si MPLS, VXLAN etj.

Elementet e IXP

  • Kablazhi Struktural. Nuk ka asgjë të çuditshme këtu: raftet, kryqëzat optike, panelet e patch-it.
  • Çswitch-et – baza e IXP. Porta e switch-it është pika e hyrjes në rrjetin IXP. Gjithashtu, switch-të përmbushin disa funksione të sigurisë – filtrojnë trafikun e papërshtatshëm që nuk duhet të jetë në rrjetin IXP. Si rregull, switch-të zgjidhen në përputhje me kërkesat për funksionalitet - qëndrueshmëri, shpejtësinë e mbështetur të porteve, funksionet e sigurisë, mbështetje për sFlow etj.
  • Serveri i rrugës (RS) – një pjesë e pandashme dhe e nevojshme e çdo pika moderne të këmbimit të trafikut. Në parim, ngjan shumë me route reflector në iBGP ose routerin e caktuar në OSPF dhe zgjidh të njëjtat probleme. Me rritjen e numrit të pjesëmarrësve në pikën e këmbimit të trafikut, rritet numri i seancave BGP që çdo pjesëmarrës duhet të mbajë, domethënë, kjo i ngjan topologjisë klasike full-mesh në iBGP. RS e zgjidh problemin në këtë mënyrë: krijon një seancë BGP me çdo pjesëmarrës të interesuar IXP, dhe ky bëhet klient i RS. Duke pranuar BGP update nga një nga klientët e saj, RS e shpërndan këtë update te të gjithë klientët e tjerë, natyrisht, përveç atij nga i cili ky update u mor. Kështu, RS eliminon nevojën për të krijuar një rrjet full-mesh mes të gjithë pjesëmarrësve të IXP dhe e zgjidh shkëlqyeshëm problemin e shkallëzueshmërisë. Duhet theksuar se serveri i rrugëve transmeton në mënyrë transparente rrugët nga një AS në tjetër, pa bërë ndryshime në atributet e BP-së të transmetuara, p.sh., nuk shton numrin në AS-në e saj në AS-path. Gjithashtu, RS bën filtrimin bazik të rrugëve: p.sh., RS nuk pranon rrjetet martiane dhe prefikset e IXP.

    Si një zgjidhje, serveri i rrugëve shpesh përdor një router softueri me kod të hapur – BIRD (bird internet routing daemon). Ai është i mirë se është falas, shpejt implementohet në shumicën e shpërndarjeve Linux, ka një mekanizëm fleksibël për konfigurimin e politikave të rrugëzimit / filtrimit, dhe nuk kërkon shumë burime kompjuterike. Po ashtu, si RS mund të zgjidhet edhe një router harduerik / virtual Cisco, Juniper, etj.

  • Siguria. Duke qenë se rrjeti IXP është një përqendrim i një numri të madh AS, politika e sigurisë që duhet të ndjekin të gjithë pjesëmarrësit duhet të jetë e shkruar mirë. Në përgjithësi, të njëjtat mekanizma që përdoren për të krijuar fqinjësinë BGP mes dy BGP-peerave të veçantë jashtë IXP, përdoren edhe këtu, si dhe disa mjete shtesë mbrojtjeje.

    Për shembull, një praktikë e mirë është të lejohet kalimi i trafikut vetëm nga adresa e caktuar MAC të pjesëmarrësit IXP, e cila diskutohet paraprakisht. Ndalohet trafiku me fusha ethertype që dallohen nga 0x0800 (IPv4), 0x08dd (IPv6), 0x0806 (ARP); kjo bëhet për të filtruar trafikun që nuk ka vend në një BGP peering. Mecanizma të tjerë si GTSM, RPKI, etj., mund të zbatohen gjithashtu.

Sidoqoftë, përmbajtja e përmendur më sipër është komponentët kryesorë të çdo IXP, pavarësisht nga shkalla. Sigurisht, IXP-të e mëdha mund të përdorin teknologji dhe zgjidhje të tjera shtesë.
Ndonjëherë, IXP gjithashtu ofron shërbime të tjera për pjesëmarrësit e saj:

  • vendosin servera DNS TLD në IXP,
  • instalojnë servera NTP hardware, duke u dhënë mundësinë pjesëmarrësve të sinkronizojnë saktësisht kohën,
  • ofrojnë mbrojtje nga sulmet DDoS, etj.

Parimi i funksionimit

Le të shqyrtojmë parimin e funksionimit të një pike shkëmbimi të trafikut përmes një IXP të thjeshtë, e modeluar me mjete EVE-NG, dhe pastaj do të shqyrtojmë konfigurimin bazë të një routeri të programuar BIRD. Për të thjeshtuar skemën, do të anashkalojmë disa çështje të rëndësishme, si rezervimi dhe qëndrueshmëria.

Topologjia e rrjetit paraqitet në figurën më poshtë.

Pika e shkëmbimit të trafikut: nga fillesat te krijimi i IX-it tuaj

Supozoni se ne administrojmë një pikë të vogël shkëmbimi të trafikut dhe ofrojmë opsionet e mëposhtme të peering:

  • peering publik,
  • peering privat,
  • peering përmes serverëve të ruterëve.

Numri ynë AS është 555, ne posedojmë një bllok të adresave IPv4 – 50.50.50.0/24, nga i cili lëshojmë adresat IP për ata që dëshirojnë të lidhen me rrjetin tonë.

50.50.50.254 – adresa IP e konfiguruar në ndërfaqen e serverit të ruterit, me këtë IP klientët do të vendosin një sesion BGP në rastin e peering-ut përmes RS.

Po ashtu për peering përmes RS kemi zhvilluar një politikë të thjeshtë ruterimi në bazë të komunitetit BGP, e cila i jep mundësi pjesëmarrësve të IXP të rregullojnë kujt dhe cilat rrugë të dergojnë:

BGP community
Përshkrimi

LOCAL_AS:PEER_AS
Të kalohen prefixet vetëm PEER_AS

LOCAL_AS:IXP_AS
Të kalohen prefixet të gjithë pjesëmarrësve të IXP

Të IXP-në tonë dëshirojnë të lidhen dhe të shkëmbejnë trafik 3 klientë; le të supozojmë se janë ofruesit e internetit. Të gjithë ata dëshirojnë të organizojnë peering përmes serverit të ruterit. Më poshtë janë paraqitur skema me parametrat e lidhjeve të klientëve:

Kλίουent
Numri AS i klientit
Prefixet e njoftuara nga klienti
adresa IP e dhënë klientit për lidhje me 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

Konfigurimi bazë i BGP në ruterin e klientit:

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

Duhet theksuar konfigurimi i no bgp enforce-first-as. Nënkupton që BGP, në mënyrë standarde, kërkon që në as-path e azhurnimit të pranuar BGP, të jetë i pranishëm numri i as të peer-it BGP, nga i cili u mor ky azhurnim. Por pasi serveri i rrugëve nuk bën ndryshime në as-path, numri i tij do të mungojë në as-path dhe azhurnimi do të refuzohet. Ky konfigurim aplikohet që router-i të fillojë të injorojë këtë rregull.

Ne gjithashtu shohim që klienti ka vendosur komunitetin BGP 555:555 për këtë prefix, e cila sipas politikës sonë do të thotë që klienti dëshiron të njoftojë këtë prefix të gjithë pjesëmarrësve të tjerë.

Për routerët e klientëve të tjerë, konfigurimi do të jetë i ngjashëm, përveç për parametra të tyre unikë.

Shembulli i konfigurimit BIRD:

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

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

Më pas përshkruhet një filtër, i cili nuk pranon prefixet martians, si dhe prefixet e vetë 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;
}

Kjo funksion implementon politikën e routing-it, që e kemi përshkruar më parë.

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;


}

Konfirmojmë lidhjen, aplikojmë filtrat dhe politikat përkatëse.

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

Duhet theksuar se në serverin e rrugëve është një praktikë e mirë të grumbullosh rrugët nga peer të ndryshëm në ribrat të ndryshëm. BIRD e lejon këtë. Në shembullin tonë për thjeshtësi, të gjitha azhurnimet e marra nga të gjithë klientët grumbullohen në një RIB të përbashkët.

Pra të fillojmë, le të kontrollojmë çfarë kemi arritur.

Në serverin e routes shohim se me të tre klientët është vendosur një seancë BGP:

Pika e shkëmbimit të trafikut: nga fillesat te krijimi i IX-it tuaj

Shohim se po marrim prefikse nga të gjithë klientët:

Pika e shkëmbimit të trafikut: nga fillesat te krijimi i IX-it tuaj

Në routerin as 100 shohim se me një seancë të vetme BGP me serverin e routes, po marrim prefikse si nga as 200 ashtu edhe nga as 300, ndërkohë që atributet BGP nuk janë ndryshuar, siç do të ndodhte nëse peeringu do të realizohej direkt mes klientëve:

Pika e shkëmbimit të trafikut: nga fillesat te krijimi i IX-it tuaj

Pra, shohim se prania e serverit të routes e thjeshton ndjeshëm organizimin e peeringut në IXP.

Shpresoj se kjo demostrim ju ndihmoi të kuptoni më mirë se si funksionojnë pikat e shkëmbimit të trafikut dhe si realizohet puna e serverit të routes në IXP.

Linxdatacenter IX

Në Linxdatacenter ne kemi ndërtuar IXP tonë më bazën e një infrastrukture të qëndrueshme nga 2 switch-e dhe 2 serverë routes. Tani IXP jonë është në një gjendje testimi, dhe ne ftojmë të gjithë ata që dëshirojnë të lidhen me Linxdatacenter IX dhe të marrin pjesë në testimin. Me lidhjen tuaj do t'ju ofrohet një port me kapacitet 1 Gbit/s, mundësia e peeringut përmes serverëve tanë të routes, si dhe akses në panelin personal të portalit IX, në adresën ix.linxdatacenter.com.

Shkruani në komente ose mesazhe private për të marrë akses në testim.

Përfundimi

Pikat e shkëmbimit të trafikut u shfaqën në fillimet e internetit si një mjet për zgjidhjen e problemit të kalimit të paoptimizuar të trafikut mes operatorëve të komunikimit. Tani, me shfaqjen e shërbimeve globale të reja dhe rritjen e sasisë së trafikut CDN, pikat e shkëmbimit vazhdojnë të optimizojnë punën e rrjetit global. Rritja e numrit të IXP-ve në botë sjell dobi si për përdoruesin përfundimtar të shërbimit, ashtu edhe për operatorët e komunikimit, operatorët e përmbajtjes, etj. Për pjesëmarrësit e IXP-së, përfitimi shprehhet në reduktimin e kostove për organizimin e peeringëve të jashtëm, reduktimin e sasisë së trafikut për të cilin duhet marrë pagesë te operatorët më të lartë, optimizimin e routing-ut, mundësinë për të patur një lidhje direkte me operatorët e përmbajtjes.

Useful links

Burimi: habr.com

Blini hosting të besueshëm për faqe interneti me mbrojtje nga DDoS, serverë VPS VDS 🔥 Blini hosting të besueshëm për faqe interneti me mbrojtje nga DDoS, serverë VPS VDS | ProHoster