Verkeersuitruilpunt: van oorsprong tot die skep van jou eie IX

Verkeersuitruilpunt: van oorsprong tot die skep van jou eie IX

"Ons het 'n telefoonverbinding tussen ons en die ouens by SRI opgestel ...", het Kleinrock ... in 'n onderhoud gesê:
“Ons het die L getik en ons het oor die telefoon gevra: “Sien jy die L?”
"Ja, ons sien die L," kom die reaksie.
"Ons het die O getik, en ons het gevra: "Sien jy die O."
"Ja, ons sien die O."
"Toe tik ons ​​die G, en die stelsel het neergestort" ...

Tog het 'n rewolusie begin ...

Die begin van die internet.


Hallo almal!

My naam is Alexander, ek is 'n netwerkingenieur by Linxdatacenter. In vandag se artikel sal ons praat oor verkeersuitruilpunte (Internet-uitruilpunte, IXP): wat hul verskyning voorafgegaan het, watter take hulle oplos en hoe hulle gebou is. Ek sal ook in hierdie artikel die beginsel van werking van IXP demonstreer deur die EVE-NG-platform en die BIRD-sagteware-roeteerder te gebruik, sodat jy 'n begrip het van hoe dit "onder die enjinkap" werk.

'N bietjie geskiedenis

As jy kyk hier, dan kan jy sien dat die vinnige groei in die aantal verkeersruilpunte in 1993 begin het. Dit is te wyte aan die feit dat die meeste van die verkeer van die telekommunikasie-operateurs wat destyds bestaan ​​het, deur die Amerikaanse ruggraatnetwerk gegaan het. So, byvoorbeeld, wanneer verkeer van 'n operateur in Frankryk na 'n operateur in Duitsland gegaan het, het dit eers van Frankryk na die VSA gegaan, en eers daarna van die VSA na Duitsland. Die ruggraatnetwerk het in hierdie geval as 'n transito tussen Frankryk en Duitsland opgetree. Selfs verkeer binne een land het dikwels nie direk verbygegaan nie, maar deur die ruggraatnetwerke van Amerikaanse operateurs.

Hierdie toedrag van sake het nie net die koste van die lewering van transitoverkeer beïnvloed nie, maar ook die kwaliteit van kanale en vertragings. Die aantal internetgebruikers het toegeneem, nuwe operateurs het verskyn, die verkeersvolume het toegeneem en die internet het volwasse geword. Operateurs regoor die wêreld het begin besef dat 'n meer rasionele benadering tot die organisering van interoperateur-interaksie nodig is. "Hoekom moet ek, operateur A, betaal vir vervoer deur 'n ander land om verkeer aan operateur B, wat in die volgende straat geleë is, te lewer?" Dit is ongeveer die vraag wat telekommunikasie-operateurs hulself destyds gevra het. Dus het verkeersuitruilpunte in verskillende dele van die wêreld by operateurkonsentrasiepunte begin verskyn:

  • 1994 – LINX in Londen,
  • 1995 – DE-CIX in Frankfurt,
  • 1995 – MSK-IX, in Moskou, ens.

Internet en ons dae

Konseptueel bestaan ​​die argitektuur van die moderne internet uit baie outonome stelsels (AS) en baie verbindings tussen hulle, beide fisies en logies, wat die pad van verkeer van een AS na 'n ander bepaal.

AS'e is gewoonlik telekommunikasie-operateurs, internetverskaffers, CDN's, datasentrums en ondernemingsegmentmaatskappye. AS'e organiseer logiese verbindings (peering) onder mekaar, gewoonlik deur die BGP-protokol te gebruik.

Hoe outonome stelsels hierdie verbindings organiseer, word deur 'n aantal faktore bepaal:

  • geografiese,
  • ekonomiese,
  • politiese,
  • ooreenkomste en gemeenskaplike belange tussen AS-eienaars,
  • ens.

Natuurlik het hierdie skema 'n sekere struktuur en hiërargie. Dus, operateurs word in vlak-1, vlak-2 en vlak-3 verdeel, en as die kliënte vir 'n plaaslike internetverskaffer (vlak-3) gewoonlik gewone gebruikers is, dan is dit byvoorbeeld vir vlak-1 vlak operateurs die kliënte is ander operateurs. Vlak-3-operateurs versamel die verkeer van hul intekenare, vlak-2-telekommunikasie-operateurs, op hul beurt, versamel die verkeer van vlak-3-operateurs, en vlak-1 – alle internetverkeer.

Skematies kan dit soos volg voorgestel word:

Verkeersuitruilpunt: van oorsprong tot die skep van jou eie IX
Hierdie prent wys dat verkeer van onder na bo saamgevoeg word, d.w.s. van eindgebruikers tot vlak-1-operateurs. Daar is ook 'n horisontale uitruil van verkeer tussen AS'e wat ongeveer gelykstaande is aan mekaar.

'n Integrale deel en terselfdertyd 'n nadeel van hierdie skema is 'n sekere verwarring van verbindings tussen outonome stelsels wat nader aan die eindgebruiker geleë is, binne 'n geografiese gebied. Oorweeg die prentjie hieronder:

Verkeersuitruilpunt: van oorsprong tot die skep van jou eie IX

Kom ons neem aan dat daar in 'n groot stad 5 telekommunikasie-operateurs is wat loer tussen wat, om een ​​of ander rede, georganiseer is soos hierbo getoon.

As die gebruiker Petya, gekoppel aan die Go ISP, toegang wil hê tot 'n bediener wat aan die ASM-verskaffer gekoppel is, sal die verkeer tussen hulle gedwing word om deur 5 outonome stelsels te gaan. Dit verhoog die vertraging omdat die aantal netwerktoestelle waardeur verkeer sal gaan, neem toe, sowel as die volume transitoverkeer op outonome stelsels tussen Go en ASM.

Hoe om die aantal transito-AS'e te verminder waardeur verkeer gedwing word? Dis reg – verkeersruilpunt.

Vandag word die opkoms van nuwe IXP's gedryf deur dieselfde behoeftes as in die vroeë 90's-2000's, slegs op 'n kleiner skaal, in reaksie op die toenemende aantal telekommunikasie-operateurs, gebruikers en verkeer, die groeiende hoeveelheid inhoud wat deur CDN-netwerke gegenereer word. en datasentrums.

Wat is 'n uitruilpunt?

'n Verkeersuitruilpunt is 'n plek met 'n spesiale netwerkinfrastruktuur waar deelnemers wat in wedersydse verkeersuitruiling belangstel, onderlinge loer reël. Die hoofdeelnemers van verkeersuitruilpunte: telekommunikasie-operateurs, internetverskaffers, inhoudverskaffers en datasentrums. By verkeersuitruilpunte verbind deelnemers direk met mekaar. Dit laat jou toe om die volgende probleme op te los:

  • verminder latensie,
  • verminder die hoeveelheid publieke vervoer,
  • optimaliseer roetering tussen AS.

As in ag geneem word dat IXP's teenwoordig is in baie groot stede regoor die wêreld, het dit alles 'n voordelige uitwerking op die internet as geheel.

As die situasie hierbo met Petya met IXP opgelos word, sal dit iets soos volg uitdraai:

Verkeersuitruilpunt: van oorsprong tot die skep van jou eie IX

Hoe werk 'n verkeersuitruilpunt?

As 'n reël is 'n IXP 'n aparte AS met sy eie blok publieke IPv4/IPv6-adresse.

Die IXP-netwerk bestaan ​​meestal uit 'n deurlopende L2-domein. Soms is dit bloot 'n VLAN wat al die IXP-kliënte huisves. Wanneer dit by groter, geografies verspreide IXP's kom, kan tegnologieë soos MPLS, VXLAN, ens. gebruik word om 'n L2-domein te organiseer.

IXP elemente

  • SKS. Daar is niks ongewoon hier nie: rakke, optiese kruisverbindings, pleisterpanele.
  • Skakelaars – die basis van IXP. Die skakelpoort is die toegangspunt tot die IXP-netwerk. Die skakelaars voer ook 'n deel van die sekuriteitsfunksies uit - hulle filter rommelverkeer wat nie op die IXP-netwerk moet wees nie. As 'n reël word skakelaars gekies op grond van funksionele vereistes - betroubaarheid, ondersteunde poortsnelhede, sekuriteitskenmerke, sFlow-ondersteuning, ens.
  • Roetebediener (RS) – 'n integrale en noodsaaklike deel van enige moderne verkeersuitruilpunt. Die werkingsbeginsel is baie soortgelyk aan die roetereflektor in iBGP of die aangewese router in OSPF en los dieselfde probleme op. Soos die aantal deelnemers aan 'n verkeersuitruilpunt groei, neem die aantal BGP-sessies toe wat elke deelnemer moet ondersteun, m.a.w. dit herinner aan die klassieke volmaas-topologie in iBGP. RS los die probleem op die volgende manier op: dit vestig 'n BGP-sessie met elke belangstellende IXP-deelnemer, en daardie deelnemer word 'n RS-kliënt. Deur 'n BGP-opdatering van een van sy kliënte te ontvang, stuur RS hierdie opdatering natuurlik aan al sy ander kliënte, met die uitsondering van die een waarvandaan hierdie opdatering ontvang is. Dus elimineer RS ​​die behoefte om 'n volmaas tussen alle IXP-lede te vestig en los die skaalbaarheidsprobleem elegant op. Dit is opmerklik dat die roetebediener roetes deursigtig van een AS na 'n ander oordra sonder om veranderinge aan te bring aan die eienskappe wat deur BGP versend word, dit voeg byvoorbeeld nie die nommer in sy AS by die AS-pad by nie. Ook op RS is daar basiese filtering van roetes: RS aanvaar byvoorbeeld nie Mars-netwerke en die voorvoegsels van die IXP self nie.

    'n Oopbronsagteware-roeteerder, BIRD (bird internet routing daemon), word dikwels as 'n roetebedieneroplossing gebruik. Die goeie ding daarvan is dat dit gratis is, vinnig op die meeste Linux-verspreidings ontplooi word, 'n buigsame meganisme het vir die opstel van roete-/filtreerbeleide en nie veeleisend is vir rekenaarhulpbronne nie. Ook 'n hardeware/virtuele router van Cisco, Juniper, ens. kan as 'n RS gekies word.

  • Sekuriteit. Aangesien 'n IXP-netwerk 'n konsentrasie van 'n groot aantal AS'e is, moet die sekuriteitsbeleid wat alle deelnemers moet volg goed geskryf wees. Oor die algemeen geld al dieselfde meganismes wat van toepassing is wanneer 'n BGP-aangrensing tussen twee afsonderlike BGP-eweknieë buite 'n IXP gevestig word, hier, plus 'n paar bykomende sekuriteitskenmerke.

    Dit is byvoorbeeld goeie praktyk om verkeer slegs vanaf 'n spesifieke Mac-adres van die IXP-deelnemer toe te laat, wat vooraf onderhandel word. Ontkenning van verkeer met ander etertipe velde as 0x0800(IPv4), 0x08dd(IPv6), 0x0806(ARP); dit word gedoen om verkeer wat nie in BGP-peering hoort nie, uit te filter. Meganismes soos GTSM, RPKI, ens. kan ook gebruik word.

Miskien is bogenoemde die hoofkomponente van enige IXP, ongeag die skaal. Natuurlik kan groter IXP's bykomende tegnologieë en oplossings in plek hê.
Dit gebeur dat IXP ook addisionele dienste aan sy deelnemers verskaf:

  • geplaas op die IXP TLD DNS-bediener,
  • installeer hardeware NTP-bedieners, sodat deelnemers tyd akkuraat kan sinchroniseer,
  • bied beskerming teen DDoS-aanvalle, ens.

Beginsel van werking

Kom ons kyk na die werkingsbeginsel van 'n verkeersuitruilpunt deur die voorbeeld van 'n eenvoudige IXP te gebruik, gemodelleer met behulp van EVE-NG, en oorweeg dan die basiese opstelling van 'n BIRD-sagteware-roeteerder. Om die diagram te vereenvoudig, sal ons belangrike dinge soos oortolligheid en fouttoleransie weglaat.

Die netwerktopologie word in die onderstaande figuur getoon.

Verkeersuitruilpunt: van oorsprong tot die skep van jou eie IX

Kom ons neem aan dat ons 'n klein uitruilpunt administreer en die volgende peering-opsies verskaf:

  • publieke loer,
  • privaat loer,
  • loer via roetebediener.

Ons AS-nommer is 555, ons besit 'n blok IPv4-adresse – 50.50.50.0/24, waaruit ons IP-adresse uitreik vir diegene wat aan ons netwerk wil koppel.

50.50.50.254 – IP-adres gekonfigureer op die roete-bediener-koppelvlak, met hierdie IP-kliënte sal 'n BGP-sessie vestig in die geval van loer via RS.

Ons het ook 'n eenvoudige roeteerbeleid ontwikkel wat gebaseer is op die BGP-gemeenskap, wat IXP-deelnemers toelaat om te reguleer na wie en watter roetes om te stuur:

BGP gemeenskap
Beskrywing

LOCAL_AS:PEER_AS
Stuur voorvoegsels slegs na PEER_AS

LOCAL_AS:IXP_AS
Dra voorvoegsels oor na alle IXP-deelnemers

3 kliënte wil aan ons IXP koppel en verkeer uitruil; Kom ons sê dit is internetverskaffers. Hulle wil almal loer deur 'n roetebediener organiseer. Hieronder is 'n diagram met kliëntverbindingparameters:

kliënt
Kliënt AS-nommer
Kliënt geadverteerde voorvoegsels
IP-adres uitgereik aan die kliënt om aan die IXP te koppel

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

Basiese BGP-opstelling op die kliëntrouter:

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

Dit is die moeite werd om te let op die geen bgp afdwing-eerste-as-instelling hier. By verstek vereis BGP dat die as-pad van 'n ontvangde BGP-opdatering die as bgp-nommer van die eweknie van wie die opdatering ontvang is, bevat. Maar aangesien die roetebediener nie veranderinge aan die as-pad maak nie, sal sy nommer nie in die as-pad wees nie en die opdatering sal weggegooi word. Hierdie instelling word gebruik om die router hierdie reël te laat ignoreer.

Ons sien ook dat die kliënt bgp gemeenskap 555:555 op hierdie voorvoegsel gestel het, wat volgens ons beleid beteken dat die kliënt hierdie voorvoegsel aan alle ander deelnemers wil adverteer.

Vir ander kliënte se routers sal die instellings soortgelyk wees, met die uitsondering van hul unieke parameters.

Voorbeeld BIRD-konfigurasie:

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

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

Die volgende beskryf 'n filter wat nie martian-voorvoegsels aanvaar nie, sowel as die voorvoegsels van die IXP self:

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

Hierdie funksie implementeer die roetebeleid wat ons vroeër beskryf het.

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;


}

Ons stel peering op, pas toepaslike filters en beleide toe.

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

Dit is opmerklik dat dit op 'n roetebediener goeie praktyk is om roetes van verskillende eweknieë in verskillende RIB's te plaas. BIRD laat jou toe om dit te doen. In ons voorbeeld, vir eenvoud, word alle opdaterings wat van alle kliënte ontvang word, in een gemeenskaplike RIB gevoeg.

So, kom ons kyk wat ons het.

Op die roetebediener sien ons dat 'n BGP-sessie met al drie kliënte gevestig is:

Verkeersuitruilpunt: van oorsprong tot die skep van jou eie IX

Ons sien dat ons voorvoegsels van alle kliënte ontvang:

Verkeersuitruilpunt: van oorsprong tot die skep van jou eie IX

Op die as 100-roeteerder sien ons dat as daar net een BGP-sessie met die roetebediener is, ons voorvoegsels van beide as 200 en as 300 ontvang, terwyl die BGP-kenmerke nie verander het nie, asof loer tussen kliënte direk uitgevoer is:

Verkeersuitruilpunt: van oorsprong tot die skep van jou eie IX

Ons sien dus dat die teenwoordigheid van 'n roetebediener die organisasie van loer op die IXP aansienlik vereenvoudig.

Ek hoop dat hierdie demonstrasie jou gehelp het om beter te verstaan ​​hoe IXP's werk en hoe die roetebediener op 'n IXP werk.

Linxdatacenter IX

By Linxdatacenter het ons ons eie IXP gebou gebaseer op 'n foutverdraagsame infrastruktuur van 2 skakelaars en 2 roetebedieners. Ons IXP loop nou in toetsmodus, en ons nooi almal uit om aan Linxdatacenter IX te koppel en aan toetsing deel te neem. Wanneer u gekoppel is, sal u voorsien word van 'n poort met 'n bandwydte van 1 Gbit/s, die vermoë om deur ons roetebedieners te loer, sowel as toegang tot u persoonlike rekening van die IX-portaal, beskikbaar by ix.linxdatacenter.com.

Skryf opmerkings of privaat boodskappe in om toegang tot toetse te kry.

Output

Verkeersuitruilpunte het met die aanbreek van die internet ontstaan ​​as 'n instrument om die kwessie van suboptimale verkeersvloei tussen telekommunikasie-operateurs op te los. Nou, met die koms van nuwe globale dienste en 'n toename in die hoeveelheid CDN-verkeer, gaan uitruilpunte voort om die werking van die globale netwerk te optimaliseer. Die toename in die aantal IXP's in die wêreld bevoordeel beide die eindgebruiker van die diens en telekommunikasie-operateurs, inhoudoperateurs, ens. Vir IXP-deelnemers word die voordeel uitgedruk in die vermindering van die koste van die organisering van eksterne peering, die vermindering van die hoeveelheid verkeer waarvoor hoërvlak-operateurs moet betaal, die optimalisering van roetes en die vermoë om 'n direkte koppelvlak met inhoudoperateurs te hê.

nuttige skakels

Bron: will.com

Voeg 'n opmerking