Punt d'intercanvi de trànsit: des dels orígens fins a la creació del teu propi IX

Punt d'intercanvi de trànsit: des dels orígens fins a la creació del teu propi IX

"Vam establir una connexió telefònica entre nosaltres i els nois de SRI...", va dir Kleinrock... en una entrevista:
"Vam escriure la L i vam preguntar per telèfon:" Veus la L?"
"Sí, veiem la L", va ser la resposta.
"Vam escriure la O i vam preguntar:" Veus la O?"
"Sí, veiem la O".
"Llavors vam escriure la G i el sistema es va estavellar"...

No obstant això, una revolució havia començat...

L'inici d'internet.


Hola a tots!

Em dic Alexander, sóc enginyer de xarxes a Linxdatacenter. En l'article d'avui parlarem dels punts d'intercanvi de trànsit (Internet Exchange Points, IXP): què va precedir la seva aparició, quines tasques resolen i com es construeixen. També en aquest article demostraré el principi de funcionament de l'IXP mitjançant la plataforma EVE-NG i l'encaminador de programari BIRD, perquè entengueu com funciona "sota el capó".

Una mica d'història

Si mires aquí, llavors podeu veure que el ràpid creixement del nombre de punts d'intercanvi de trànsit va començar el 1993. Això es deu al fet que la major part del trànsit dels operadors de telecomunicacions que hi havia en aquell moment passava per la xarxa troncal dels EUA. Així, per exemple, quan el trànsit anava d'un operador a França a un operador a Alemanya, primer anava de França als EUA, i només després dels EUA a Alemanya. La xarxa troncal en aquest cas va actuar com a trànsit entre França i Alemanya. Fins i tot el trànsit dins d'un país sovint passava no directament, sinó a través de les xarxes troncals dels operadors nord-americans.

Aquest estat de coses va afectar no només el cost de lliurament del trànsit de trànsit, sinó també la qualitat dels canals i els retards. El nombre d'usuaris d'Internet va augmentar, van aparèixer nous operadors, va augmentar el volum de trànsit i Internet va madurar. Els operadors de tot el món van començar a adonar-se que calia un enfocament més racional per organitzar la interacció entre operadors. "Per què jo, l'operador A, hauria de pagar el trànsit per un altre país per lliurar trànsit a l'operador B, que es troba al carrer següent?" Aquesta és aproximadament la pregunta que els operadors de telecomunicacions es van fer en aquell moment. Així, els punts d'intercanvi de trànsit van començar a aparèixer a diferents parts del món als punts de concentració d'operadors:

  • 1994 - LINX a Londres,
  • 1995 – DE-CIX a Frankfurt,
  • 1995 – MSK-IX, a Moscou, etc.

Internet i els nostres dies

Conceptualment, l'arquitectura d'Internet moderna consta de molts sistemes autònoms (AS) i moltes connexions entre ells, tant físiques com lògiques, que determinen el camí del trànsit d'un AS a un altre.

Els AS solen ser operadors de telecomunicacions, proveïdors d'Internet, CDN, centres de dades i empreses del segment empresarial. Els AS organitzen connexions lògiques (peering) entre ells, normalment utilitzant el protocol BGP.

La manera com els sistemes autònoms organitzen aquestes connexions està determinada per una sèrie de factors:

  • geogràfic,
  • econòmic,
  • polític,
  • acords i interessos comuns entre propietaris d'AS,
  • etcètera

Per descomptat, aquest esquema té una certa estructura i jerarquia. Així, els operadors es divideixen en nivell 1, nivell 2 i nivell 3, i si els clients d'un proveïdor d'Internet local (nivell 3) són, per regla general, usuaris normals, llavors, per exemple, per al nivell 1 operadors de nivell els clients són altres operadors. Els operadors de nivell 3 agreguen el trànsit dels seus subscriptors, els operadors de telecomunicacions de nivell 2, al seu torn, agreguen el trànsit dels operadors de nivell 3 i el nivell 1, tot el trànsit d'Internet.

Esquemàticament es pot representar així:

Punt d'intercanvi de trànsit: des dels orígens fins a la creació del teu propi IX
Aquesta imatge mostra que el trànsit s'agrega de baix a dalt, és a dir. des dels usuaris finals als operadors de nivell 1. També hi ha un intercanvi horitzontal de trànsit entre AS que són aproximadament equivalents entre si.

Una part integral i alhora un inconvenient d'aquest esquema és una certa confusió de connexions entre sistemes autònoms situats més a prop de l'usuari final, dins d'una àrea geogràfica. Considereu la imatge següent:

Punt d'intercanvi de trànsit: des dels orígens fins a la creació del teu propi IX

Suposem que en una gran ciutat hi ha 5 operadors de telecomunicacions, el peering entre els quals, per una raó o una altra, s'organitza com es mostra més amunt.

Si l'usuari Petya, connectat al Go ISP, vol accedir a un servidor connectat al proveïdor ASM, el trànsit entre ells es veurà obligat a passar per 5 sistemes autònoms. Això augmenta el retard perquè augmenta el nombre de dispositius de xarxa pels quals passarà el trànsit, així com el volum de trànsit de trànsit en sistemes autònoms entre Go i ASM.

Com reduir el nombre d'AS de trànsit pels quals el trànsit està obligat a passar? Així és: punt d'intercanvi de trànsit.

Avui dia, l'aparició de nous IXP està impulsat per les mateixes necessitats que a principis dels anys 90-2000, només a menor escala, com a resposta a l'augment del nombre d'operadors de telecomunicacions, usuaris i trànsit, la creixent quantitat de contingut generat per les xarxes CDN. i centres de dades.

Què és un punt d'intercanvi?

Un punt d'intercanvi de trànsit és un lloc amb una infraestructura de xarxa especial on els participants interessats en l'intercanvi de trànsit mutu organitzen el peering mutu. Els principals participants dels punts d'intercanvi de trànsit: operadors de telecomunicacions, proveïdors d'Internet, proveïdors de continguts i centres de dades. Als punts d'intercanvi de trànsit, els participants es connecten directament entre ells. Això us permet resoldre els problemes següents:

  • reduir la latència,
  • reduir la quantitat de trànsit de trànsit,
  • optimitzar l'encaminament entre AS.

Tenint en compte que les IXP estan presents a moltes grans ciutats del món, tot això té un efecte beneficiós en el conjunt d'Internet.

Si la situació anterior amb Petya es resol amb IXP, sortirà alguna cosa com això:

Punt d'intercanvi de trànsit: des dels orígens fins a la creació del teu propi IX

Com funciona un punt d'intercanvi de trànsit?

Per regla general, un IXP és un AS independent amb el seu propi bloc d'adreces públiques IPv4/IPv6.

La xarxa IXP consta més sovint d'un domini L2 continu. De vegades, això és simplement una VLAN que allotja tots els clients IXP. Quan es tracta d'IXP més grans i distribuïts geogràficament, es poden utilitzar tecnologies com MPLS, VXLAN, etc. per organitzar un domini L2.

Elements IXP

  • SKS. Aquí no hi ha res inusual: bastidors, connexions creuades òptiques, panells de connexió.
  • Interruptors – la base de l'IXP. El port del commutador és el punt d'entrada a la xarxa IXP. Els commutadors també realitzen part de les funcions de seguretat: filtren el trànsit brossa que no hauria d'estar present a la xarxa IXP. Com a regla general, els commutadors es seleccionen en funció dels requisits funcionals: fiabilitat, velocitats de port compatibles, funcions de seguretat, suport sFlow, etc.
  • Servidor de ruta (RS) – una part integrant i necessària de qualsevol punt d'intercanvi de trànsit modern. El principi de funcionament és molt semblant al reflector de ruta a iBGP o al router designat a OSPF i resol els mateixos problemes. A mesura que creix el nombre de participants en un punt d'intercanvi de trànsit, augmenta el nombre de sessions BGP que cada participant necessita suportar, és a dir. això recorda la clàssica topologia de malla completa a iBGP. RS resol el problema de la següent manera: estableix una sessió BGP amb cada participant IXP interessat, i aquest participant es converteix en un client RS. En rebre una actualització BGP d'un dels seus clients, RS envia aquesta actualització a tots els seus clients, per descomptat, amb l'excepció d'aquell des del qual es va rebre aquesta actualització. Així, RS elimina la necessitat d'establir una malla completa entre tots els membres de l'IXP i resol amb elegància el problema d'escalabilitat. Val la pena assenyalar que el servidor de rutes transmet de manera transparent les rutes d'un AS a un altre sense fer canvis als atributs transmesos per BGP, per exemple, no afegeix el número del seu AS a la ruta AS. També a RS hi ha un filtratge bàsic de rutes: per exemple, RS no accepta xarxes marcianes i els prefixos de la pròpia IXP.

    Sovint s'utilitza un encaminador de programari de codi obert, BIRD (bird internet routing daemon), com a solució de servidor de rutes. El millor és que és gratuït, s'implementa ràpidament a la majoria de distribucions de Linux, té un mecanisme flexible per configurar polítiques d'encaminament/filtratge i no exigeix ​​recursos informàtics. A més, es pot seleccionar un maquinari/encaminador virtual de Cisco, Juniper, etc. com a RS.

  • Seguretat. Com que una xarxa IXP és una concentració d'un gran nombre d'AS, la política de seguretat que han de seguir tots els participants ha d'estar ben escrita. En general, aquí s'apliquen tots els mateixos mecanismes que s'apliquen quan s'estableix una adjacència BGP entre dos iguals BGP separats fora d'un IXP, a més d'algunes funcions de seguretat addicionals.

    Per exemple, és una bona pràctica permetre el trànsit només des d'una adreça Mac específica del participant IXP, que es negocia amb antelació. Denegació de trànsit amb camps de tipus ether que no siguin 0x0800(IPv4), 0x08dd(IPv6), 0x0806(ARP); això es fa per tal de filtrar el trànsit que no pertany al peering BGP. També es poden utilitzar mecanismes com GTSM, RPKI, etc.

Potser els anteriors són els components principals de qualsevol IXP, independentment de l'escala. Per descomptat, els IXP més grans poden disposar de tecnologies i solucions addicionals.
Succeeix que IXP també ofereix als seus participants serveis addicionals:

  • col·locat al servidor DNS del TLD IXP,
  • instal·lar servidors NTP de maquinari, que permeten als participants sincronitzar l'hora amb precisió,
  • proporcionar protecció contra atacs DDoS, etc.

Com funciona?

Vegem el principi de funcionament d'un punt d'intercanvi de trànsit utilitzant l'exemple d'un IXP senzill, modelat amb EVE-NG, i després considerem la configuració bàsica d'un encaminador de programari BIRD. Per simplificar el diagrama, ometrem coses tan importants com la redundància i la tolerància a errors.

La topologia de la xarxa es mostra a la figura següent.

Punt d'intercanvi de trànsit: des dels orígens fins a la creació del teu propi IX

Suposem que administrem un petit punt d'intercanvi i proporcionem les opcions de peering següents:

  • peering públic,
  • peering privat,
  • peering mitjançant el servidor de ruta.

El nostre número d'AS és 555, tenim un bloc d'adreces IPv4 - 50.50.50.0/24, des del qual emetem adreces IP per a aquells que es volen connectar a la nostra xarxa.

50.50.50.254 – Adreça IP configurada a la interfície del servidor de ruta, amb aquesta IP els clients establiran una sessió BGP en cas de peering via RS.

A més, per al peering mitjançant RS, hem desenvolupat una política d'encaminament senzilla basada en la comunitat BGP, que permet als participants de l'IXP regular a qui i quines rutes enviar:

comunitat BGP
Descripció

LOCAL_AS:PEER_AS
Envieu prefixos només a PEER_AS

LOCAL_AS:IXP_AS
Transfereix els prefixos a tots els participants de l'IXP

3 clients volen connectar-se al nostre IXP i intercanviar trànsit; Diguem que aquests són proveïdors d'Internet. Tots volen organitzar el peering a través d'un servidor de ruta. A continuació es mostra un diagrama amb els paràmetres de connexió del client:

Client
Número AS del client
Prefixos anunciats pel client
Adreça IP emesa al client per connectar-se a l'IXP

ISP número 1
AS 100
1.1.0.0/16
50.50.50.10/24

ISP número 2
AS 200
2.2.0.0/16
50.50.50.20/24

ISP número 3
AS 300
3.3.0.0/16
50.50.50.30/24

Configuració bàsica de BGP al router client:

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

Val la pena assenyalar la configuració no bgp enforce-first-as aquí. De manera predeterminada, BGP requereix que el camí d'accés d'una actualització BGP rebuda contingui el número as bgp del parell des del qual s'ha rebut l'actualització. Però com que el servidor de ruta no fa canvis a la ruta as-path, el seu número no estarà a l'as-path i l'actualització es descartarà. Aquesta configuració s'utilitza per fer que l'encaminador ignori aquesta regla.

També veiem que el client ha establert bgp community 555:555 amb aquest prefix, la qual cosa, segons la nostra política, vol dir que el client vol anunciar aquest prefix a la resta de participants.

Per als encaminadors d'altres clients, la configuració serà similar, amb l'excepció dels seus paràmetres únics.

Exemple de configuració BIRD:

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

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

A continuació es descriu un filtre que no accepta prefixos marcians, així com els prefixos del propi 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;
}

Aquesta funció implementa la política d'encaminament que hem descrit anteriorment.

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;


}

Configuram el peering, apliquem filtres i polítiques adequades.

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

Val la pena assenyalar que en un servidor de rutes és una bona pràctica posar rutes de diferents iguals en diferents RIB. BIRD us permet fer-ho. En el nostre exemple, per simplificar, totes les actualitzacions rebudes de tots els clients s'afegeixen a un RIB comú.

Per tant, comprovem què tenim.

Al servidor de ruta veiem que s'ha establert una sessió BGP amb els tres clients:

Punt d'intercanvi de trànsit: des dels orígens fins a la creació del teu propi IX

Veiem que rebem prefixos de tots els clients:

Punt d'intercanvi de trànsit: des dels orígens fins a la creació del teu propi IX

A l'encaminador as 100, veiem que si només hi ha una sessió BGP amb el servidor de ruta, rebem prefixos tant com a 200 com a 300, mentre que els atributs BGP no han canviat, com si el peering entre clients es fes directament:

Punt d'intercanvi de trànsit: des dels orígens fins a la creació del teu propi IX

Així, veiem que la presència d'un servidor de ruta simplifica molt l'organització del peering a l'IXP.

Espero que aquesta demostració us hagi ajudat a entendre millor com funcionen els IXP i com funciona el servidor de rutes en un IXP.

Linxdatacenter IX

A Linxdatacenter, hem creat el nostre propi IXP basat en una infraestructura tolerant a errors de 2 commutadors i 2 servidors de ruta. El nostre IXP s'està executant en mode de prova i convidem a tothom a connectar-se a Linxdatacenter IX i participar en les proves. Quan estigui connectat, se us proporcionarà un port amb una amplada de banda d'1 Gbit/s, la possibilitat de mirar a través dels nostres servidors de ruta, així com l'accés al vostre compte personal del portal IX, disponible a ix.linxdatacenter.com.

Escriu comentaris o missatges privats per accedir a les proves.

Sortida

Els punts d'intercanvi de trànsit van sorgir als albors d'Internet com una eina per resoldre el problema del flux de trànsit subòptim entre operadors de telecomunicacions. Ara, amb l'arribada de nous serveis globals i un augment de la quantitat de trànsit CDN, els punts d'intercanvi continuen optimitzant el funcionament de la xarxa global. L'augment del nombre d'IXP al món beneficia tant a l'usuari final del servei com als operadors de telecomunicacions, operadors de continguts, etc. Per als participants de l'IXP, el benefici s'expressa en la reducció dels costos d'organització del peering extern, la reducció de la quantitat de trànsit pel qual els operadors de nivell superior han de pagar, l'optimització de l'encaminament i la possibilitat de tenir una interfície directa amb els operadors de contingut.

links útils

Font: www.habr.com

Afegeix comentari