Punto de intercambio de tráfico: desde el comienzo hasta la creación de su propio IX



"Establecimos una conexión telefónica entre nosotros y los muchachos del SRI ...", dijo Kleinrock ... en una entrevista:
"Escribimos la L y le preguntamos por teléfono:" ¿Ves la L? "
"Sí, vemos la L", fue la respuesta.
"Escribimos la O y preguntamos:" ¿Ves la O? ".
"Sí, vemos la O."
"Luego tecleamos la G y el sistema se bloqueó" ...

Sin embargo, una revolución había comenzado ...

El comienzo de internet.

Hola a todos!

Mi nombre es Alexander, soy ingeniero de redes en Linxdatacenter. En el artículo de hoy, hablaremos sobre los puntos de intercambio de tráfico (Internet Exchange Point, IXP): qué precedió a su aparición, qué tareas resuelven y cómo se construyen. También en este artículo demostraré cómo funciona IXP utilizando la plataforma EVE-NG y el enrutador de software BIRD, para que pueda entender cómo funciona "bajo el capó".

Un poco de historia


Si mira aquí , puede ver que el rápido crecimiento en el número de puntos de intercambio de tráfico comenzó en 1993. Esto se debe al hecho de que la mayor parte del tráfico de los operadores de telecomunicaciones existentes en ese momento pasaba por la red troncal de los EE. UU. Entonces, por ejemplo, cuando el tráfico pasó del operador en Francia al operador en Alemania, primero vino de Francia a los EE. UU., Y solo luego de los EE. UU. A Alemania. La red troncal en este caso actuó como un tránsito entre Francia y Alemania. Incluso el tráfico dentro de un país a menudo pasaba no directamente, sino a través de las redes centrales de los operadores estadounidenses.

Este estado de cosas afectó no solo el costo de entrega del tráfico de tránsito, sino también la calidad de los canales y el retraso. El número de usuarios de Internet aumentó, aparecieron nuevos operadores, el volumen de tráfico aumentó, Internet creció. Los operadores de todo el mundo comenzaron a darse cuenta de que se necesitaba un enfoque más racional para la organización de la interacción entre operadores. "¿Por qué debería yo, operador A, pagar el tránsito a través de otro país para entregar el tráfico al operador B, que se encuentra en una calle vecina?" Algo así fue preguntado por los operadores de telecomunicaciones en ese momento. Entonces, en diferentes partes del mundo, los puntos de intercambio de tráfico comenzaron a aparecer en los puntos de concentración del operador:

  • 1994 - LINX en Londres,
  • 1995 - DE-CIX en Frankfurt,
  • 1995 - MSK-IX, en Moscú, etc.

Internet y hoy


Conceptualmente, la arquitectura de Internet moderna es un conjunto de sistemas autónomos (sistemas autónomos, AS) y muchas conexiones entre ellos, tanto físicas como lógicas, que determinan la ruta del tráfico de un AS a otro.

Los AS suelen ser operadores de telecomunicaciones, proveedores de Internet, CDN, centros de datos, empresas del segmento empresarial. Los AS organizan el intercambio entre ellos, por regla general, utilizando el protocolo BGP.

La forma en que los sistemas autónomos organizan estas relaciones está determinada por varios factores:

  • geográfico
  • economico
  • politico
  • arreglos e intereses comunes entre los propietarios de AS,
  • etc.

Por supuesto, en este esquema hay una cierta estructura y jerarquía. Por lo tanto, los operadores se dividen en nivel 1, nivel 2 y nivel 3, y si los clientes del proveedor local de Internet (nivel 3) suelen ser usuarios normales, entonces, por ejemplo, los operadores de nivel 1 otros operadores Los operadores de nivel 3 agregan el tráfico de sus suscriptores en sí mismos, los operadores de telecomunicaciones de nivel 2, a su vez, agregan el tráfico de los operadores de nivel 3 y el nivel 1: todo el tráfico de Internet.

Esquemáticamente, esto se puede representar de la siguiente manera:


En esta imagen, puede ver que el tráfico se agrega de abajo hacia arriba, es decir, desde usuarios finales hasta operadores de nivel 1. También hay un intercambio de tráfico horizontal entre los AS aproximadamente equivalentes entre sí.

Una parte integral y, al mismo tiempo, un inconveniente de este esquema es un cierto desorden de conexiones entre sistemas autónomos ubicados más cerca del usuario final, dentro de la zona geográfica. Considere la imagen a continuación:



Suponga que en una gran ciudad hay 5 operadores de comunicación, que se fijan entre sí, por una razón u otra, se organiza como se muestra arriba.
Si el usuario Petya, conectado al proveedor de Internet Go, desea obtener acceso al servidor conectado al proveedor de ASM, entonces el tráfico entre ellos se verá obligado a pasar por 5 sistemas autónomos. Esto aumenta el retraso, porque aumentando la cantidad de dispositivos de red a través de los cuales pasará el tráfico, así como la cantidad de tráfico de tránsito en sistemas autónomos entre Go y ASM.
¿Cómo reducir el número de AS de tránsito que se ven obligados a pasar el tráfico? Así es, un punto de intercambio de tráfico.

Hoy en día, la aparición de nuevos IXP se debe a las mismas necesidades que a principios de los años 90 y 2000, solo en menor escala, en respuesta al creciente número de operadores de telecomunicaciones, usuarios y tráfico, la creciente cantidad de contenido generado por las redes CDN y centros de datos.

¿Qué es un punto de intercambio de tráfico?


Un punto de intercambio de tráfico es un lugar con una infraestructura de red especial donde los participantes interesados ​​en el intercambio de tráfico mutuo organizan el intercambio mutuo. Los principales participantes en los puntos de intercambio de tráfico: operadores de telecomunicaciones, proveedores de Internet, proveedores de contenido y centros de datos. En los puntos de intercambio de tráfico, los participantes están conectados directamente entre sí. Esto le permite resolver los siguientes problemas:

  • reducir el retraso
  • reducir la cantidad de tráfico de tránsito,
  • Optimizar el enrutamiento entre AS.

Teniendo en cuenta que los IXP están presentes en muchas grandes ciudades del mundo, todo esto afecta favorablemente a Internet en su conjunto.

Si la situación descrita anteriormente con Petya se resuelve con la ayuda de IXP, resultará algo como esto:



¿Cómo se organiza el punto de intercambio de tráfico?


Como regla, IXP es un AS separado con su propio bloque de direcciones IPv4 / IPv6 públicas.

La red IXP con mayor frecuencia es un dominio continuo L2. A veces es solo una VLAN que aloja a todos los clientes IXP. Cuando se trata de IXP más grandes y distribuidos geográficamente, se pueden utilizar tecnologías como MPLS, VXLAN, etc. para organizar el dominio L2.

Elementos IXP


  • SCS Aquí no hay nada inusual: bastidores, cross-country óptico, paneles de conexión.
  • Los interruptores son la base de IXP. El puerto del conmutador es el punto de entrada a la red IXP. Los conmutadores también realizan parte de las funciones de seguridad: filtran el tráfico basura que no debería estar presente en la red IXP. Como regla general, los conmutadores se seleccionan en función de los requisitos funcionales: confiabilidad, velocidad de puerto admitida, características de seguridad, compatibilidad con sFlow, etc.
  • El servidor de ruta (RS) es una parte integral y necesaria de cualquier punto de intercambio de tráfico moderno. Funciona de manera muy similar a un reflector de ruta en iBGP o un enrutador designado en OSPF y resuelve los mismos problemas. A medida que aumenta el número de participantes en un punto de intercambio de tráfico, aumenta el número de sesiones de BGP, que cada participante debe apoyar, es decir. se parece a la topología clásica de malla completa en iBGP. RS resuelve el problema de la siguiente manera: establece una sesión BGP con cada participante IXP interesado y se convierte en cliente de RS. Al aceptar una actualización de BGP de uno de sus clientes, RS envía esta actualización a todos sus otros clientes, por supuesto, excepto el que recibió dicha actualización. Por lo tanto, RS elimina la necesidad de instalar una malla completa entre todos los participantes de IXP y resuelve con elegancia el problema de escalabilidad. Vale la pena señalar que el servidor de ruta transfiere transparentes rutas de un AS a otro, sin realizar cambios en los atributos BGP transmitidos, por ejemplo, no agrega un número en su AS a la ruta AS. Además, el filtrado básico de rutas se produce en RS: por ejemplo, RS no acepta redes marcianas y prefijos IXP.

    Un enrutador de software de código abierto, BIRD (daemon de enrutamiento de Internet de aves), a menudo se usa como una solución de servidor de ruta. Es bueno porque es gratuito, se implementa rápidamente en la mayoría de las distribuciones de Linux, tiene un mecanismo flexible para establecer políticas de enrutamiento / filtrado y no exige recursos informáticos. Además, el enrutador de hardware / virtual de Cisco, Juniper, etc. se puede seleccionar como RS.
  • Seguridad Dado que la red IXP es una concentración de una gran cantidad de AS, la política de seguridad que todos los participantes deben seguir debe estar bien definida. Como regla general, aquí se aplican los mismos mecanismos que se utilizan para establecer una vecindad BGP entre dos pares BGP separados fuera de IXP, así como algunas características de seguridad adicionales.

    Por ejemplo, es una buena práctica permitir solo el tráfico de una dirección MAC IXP específica, que se negocia por adelantado. Denegar el tráfico con campos de otro tipo que no sean 0x0800 (IPv4), 0x08dd (IPv6), 0x0806 (ARP); Esto se hace para filtrar el tráfico que no tiene espacio para la interconexión BGP. También se pueden utilizar mecanismos como GTSM, RPKI, etc.

Quizás los anteriores son los componentes principales de cualquier IXP, independientemente de la escala. Por supuesto, los IXP grandes pueden usar tecnologías y soluciones adicionales.
Sucede que IXP también brinda a sus miembros servicios adicionales:

  • alojado en el servidor DNS IXP TLD,
  • Instale servidores NTP de hardware, lo que permite a los participantes sincronizar con precisión la hora,
  • proporcionar protección contra ataques DDoS, etc.

Principio de funcionamiento


Analizaremos el principio de funcionamiento del punto de intercambio de tráfico utilizando el IXP más simple simulado por EVE-NG como ejemplo, y luego consideraremos la configuración básica del enrutador de software BIRD. Para simplificar el esquema, omitimos cosas tan importantes como la redundancia y la tolerancia a fallas.

La topología de la red se muestra en la figura a continuación.



Supongamos que administramos un pequeño punto de intercambio de tráfico y proporcionamos las siguientes opciones de interconexión:

  • mirada pública
  • mirada privada
  • mirando a través del servidor de ruta.

Nuestro número AS es 555, poseemos un bloque de direcciones IPv4: 50.50.50.0/24, desde el cual emitimos direcciones IP, para aquellos que desean conectarse a nuestra red.

50.50.50.254: la dirección IP configurada en la interfaz del servidor de ruta, con esta IP, los clientes establecerán una sesión BGP en caso de emparejamiento a través de RS.

También para mirar a través de RS, hemos desarrollado la política de enrutamiento más simple basada en la comunidad BGP, que permite a los participantes de IXP regular a quién y qué rutas enviar:
Comunidad BGPDescripción
LOCAL_AS: PEER_ASPase prefijos solo PEER_AS
LOCAL_AS: IXP_ASPase prefijos a todos los miembros IXP

3 clientes desean conectarse e intercambiar tráfico con nuestro IXP; Digamos que estos son proveedores de internet. Todos quieren organizar el peering a través del servidor de ruta. A continuación se muestra un diagrama con los parámetros de conexión del cliente:
ClienteNúmero de cliente ASPrefijos anunciados por el clientedirección IP emitida al cliente para conectarse a IXP
ISP # 1AS 1001.1.0.0/1650.50.50.10/24
ISP # 2AS 2002.2.0.0/1650.50.50.20/24
ISP # 3AS 3003.3.0.0/1650.50.50.30/24

Configuración básica de BGP en un enrutador cliente:


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 

La configuración aquí no es bgp enforce-first-as. De forma predeterminada, BGP requiere que el número como bgp del par desde el que se recibió esta actualización esté presente en la ruta de acceso de la actualización BGP recibida. Pero dado que el servidor de ruta no realiza cambios en as-path, su número estará ausente de as-path y la actualización se descartará. Esta configuración se usa para hacer que el enrutador ignore esta regla.

También vemos que el cliente instaló bgp community 555: 555 en este prefijo, lo que de acuerdo con nuestra política significa que el cliente quiere anunciar este prefijo a todos los demás participantes.

Para los enrutadores de otros clientes, la configuración será similar, excepto por sus parámetros únicos.

Ejemplo de configuración de 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ón se describe un filtro que no acepta prefijos marcianos, así como prefijos de IXP en sí:

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

Esta función implementa la política de enrutamiento que describimos anteriormente.

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

Configuramos el emparejamiento, aplicamos filtros y políticas adecuados.

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

Vale la pena señalar que en el servidor de rutas es una buena forma de agregar rutas de diferentes pares a diferentes RIB. BIRD te permite hacer esto. En nuestro ejemplo, por simplicidad, todas las actualizaciones recibidas de todos los clientes se agregan a un RIB común.

Entonces, verifiquemos lo que tenemos.

En el servidor de ruta vemos que con los tres clientes se instala una sesión BGP:



Vemos que recibimos prefijos de todos los clientes:



En el enrutador como 100, vemos que si solo hay una sesión BGP con el servidor de ruta, obtenemos prefijos de 200 y 300, mientras que los atributos BGP no cambiaron, como si la interconexión entre los clientes se realizara directamente:



Por lo tanto, vemos que la presencia de un servidor de ruta simplifica enormemente la organización del emparejamiento en IXP.

Espero que esta demostración le haya ayudado a comprender mejor cómo se organizan los puntos de intercambio de tráfico y cómo se implementa el servidor de ruta en IXP.

Linxdatacenter ix


En Linxdatacenter, creamos nuestro propio IXP basado en una infraestructura tolerante a fallas de 2 conmutadores y 2 servidores de ruta. Ahora nuestro IXP se lanza en modo de prueba, e invitamos a todos a conectarse a Linxdatacenter IX y participar en las pruebas. Al conectarse, se le proporcionará un puerto con un ancho de banda de 1 Gbit / s, la capacidad de mirar a través de nuestros servidores de ruta, así como el acceso a la cuenta personal del portal IX, disponible en ix.linxdatacenter.com .

Escriba comentarios o mensajes privados para obtener acceso a las pruebas.

Conclusión


Los puntos de intercambio de tráfico surgieron en los albores de Internet como una herramienta para abordar el problema del flujo de tráfico no óptimo entre los operadores de telecomunicaciones. Ahora, con la llegada de nuevos servicios globales y un aumento en el número de tráfico CDN, los puntos de intercambio también continúan optimizando el funcionamiento de la red global. El aumento en el número de IXP en el mundo es beneficioso tanto para el usuario final del servicio como para los operadores de telecomunicaciones, operadores de contenido, etc. Para los participantes de IXP, el beneficio se expresa en una reducción en el costo de organizar servicios externos peer-to-peer, una reducción en la cantidad de tráfico que cuesta a los operadores más altos, la optimización del enrutamiento y la capacidad de tener una interfaz directa con los operadores de contenido.

Enlaces utiles


Source: https://habr.com/ru/post/478832/


All Articles