Introducción
recepción de multidifusión es posible utilizando un recurso compartido de la cuenta de red de Deribit, que actualmente solo funciona en la región eu-west-2 de Europa (Londres) o en la región ap-northeast-1 de Asia Pacífico (Tokio). En este documento se incluyen las instrucciones sobre cómo configurar y probar la configuración de multidifusión
Configuración de AWS para recibir multidifusión
Antes de poder acceder a las transmisiones de multidifusión, debe solicitar un recurso compartido, envíe un correo electrónico a 'aws-support@sentillia.com'siguiendo las siguientes directrices:
-
Incluye lo siguiente en el asunto del correo:
-
#Multicast acceptance - <your company name> - <UID>
-
-
Incluye lo siguiente en el cuerpo del correo electrónico:
-
Su ID de cuenta de AWS (no su ID de punto de enlace de VPC)
-
la región de AWS (eu-west-2 o ap-northeast-1)
-
Aceptar recursos compartidos
Asegúrese de seleccionar la región eu-west-2 de Europa (Londres) o la región ap-northeast-1 de Asia Pacífico (Tokio). Ve al Gestor de acceso a los recursos y selecciona Compartir conmigo →
Haga clic en el nombre de la acción pendiente y, a continuación, haga clic en Aceptar
Cree un adjunto de puerta de enlace de tránsito a la puerta de enlace de tránsito compartida y adjunte las subredes de su propia VPC donde desee poder recibir tráfico de multidifusión.
Vaya a la multidifusión de Transit Gateway en el panel de control de la VPC, seleccione la pestaña: Asociaciones y haga clic en Crear asociación.
Seleccione el adjunto y las subredes.
Asegúrate de usar una instancia habilitada para nitro: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html (Consulte Instancias integradas en el sistema Nitro). Además, las reglas de entrada se deben establecer en el grupo de seguridad:
-
Puertos utilizados para las pruebas:
6200-6201 -
Puerto utilizado para la producción:
6100-6101 -
Rango de IP en la región de Londres:
172.20.13.0/24 -
Rango de IP región de Tokio:
172.20.14.0/24 -
Se debe permitir la entrada del protocolo IGMPv2 desde cualquier lugar: 0.0.0.0/0
En el siguiente ejemplo, se permite la transmisión de prueba desde la región de Londres: puertos UDP personalizados 6200-6201 para la fuente 172.20.13.0/24 e IGMPv2 desde cualquier lugar
Socat se usa para enviar un comando de unión IGMP a la dirección de multidifusión. Instalación mediante sudo yum install socat Tcpdump se utiliza para recibir los mensajes y la sesión de pantalla se utiliza para cambiar entre tcpdump y
Asegúrese de usar la versión 2 de IGMP (la 3 es la predeterminada y actualmente no es compatible). Copia y pega el siguiente código para forzar el uso de IGMP v2
cat >/etc/sysctl.d/99-igmpv2.conf <<EOF # Force kernel to use IGMP v2 rather than default to v3 net.ipv4.conf.all.force_igmp_version=2 EOF sysctl -p /etc/sysctl.d/99-igmpv2.conf
Iniciar sesión en pantalla: screen -DR mysession
Inicie socat: socat -u UDP-RECVFROM:6200,reuseaddr,ip-add-membership=239.222.222.2:eth0,ip-pktinfo,fork SYSTEM:export
Crea una nueva ventana de pantalla usando Ctrl+a n y corre tcpdump -v multicast and not broadcast
La salida debería tener un aspecto parecido al siguiente:
11:00:26.960914 IP (tos 0x0, ttl 4, id 53434, offset 0, flags [DF], proto UDP (17), length 248) ip-172-20-13-55.eu-west-2.compute.internal.33552 > 239.222.222.2.lm-x: UDP, length 220 11:00:26.961512 IP (tos 0x0, ttl 4, id 53435, offset 0, flags [DF], proto UDP (17), length 103) ip-172-20-13-55.eu-west-2.compute.internal.33552 > 239.222.222.2.lm-x: UDP, length 75 11:00:26.962211 IP (tos 0x0, ttl 4, id 53436, offset 0, flags [DF], proto UDP (17), length 248) ip-172-20-13-55.eu-west-2.compute.internal.33552 > 239.222.222.2.lm-x: UDP, length 220 11:00:27.059313 IP (tos 0x0, ttl 4, id 53438, offset 0, flags [DF], proto UDP (17), length 121) ip-172-20-13-55.eu-west-2.compute.internal.33552 > 239.222.222.2.lm-x: UDP, length 93 11:00:27.066568 IP (tos 0x0, ttl 4, id 53440, offset 0, flags [DF], proto UDP (17), length 121) ip-172-20-13-55.eu-west-2.compute.internal.33552 > 239.222.222.2.lm-x: UDP, length 93 11:00:27.185705 IP (tos 0x0, ttl 4, id 53458, offset 0, flags [DF], proto UDP (17), length 85) ip-172-20-13-55.eu-west-2.compute.internal.33552 > 239.222.222.2.lm-x: UDP, length 57 11:00:27.241053 IP (tos 0x0, ttl 4, id 53466, offset 0, flags [DF], proto UDP (17), length 85) ip-172-20-13-55.eu-west-2.compute.internal.33552 > 239.222.222.2.lm-x: UDP, length 57 11:00:27.510470 IP (tos 0x0, ttl 4, id 53504, offset 0, flags [DF], proto UDP (17), length 181) ip-172-20-13-55.eu-west-2.compute.internal.33552 > 239.222.222.2.lm-x: UDP, length 153 11:00:27.511022 IP (tos 0x0, ttl 4, id 53505, offset 0, flags [DF], proto UDP (17), length 181) ip-172-20-13-55.eu-west-2.compute.internal.33552 > 239.222.222.2.lm-x: UDP, length 153 11:00:27.511022 IP (tos 0x0, ttl 4, id 53506, offset 0, flags [DF], proto UDP (17), length 181) ip-172-20-13-55.eu-west-2.compute.internal.33552 > 239.222.222.2.lm-x: UDP, length 153 11:00:27.511022 IP (tos 0x0, ttl 4, id 53507, offset 0, flags [DF], proto UDP (17), length 181) ip-172-20-13-55.eu-west-2.compute.internal.33552 > 239.222.222.2.lm-x: UDP, length 153 11:00:27.511607 IP (tos 0x0, ttl 4, id 53508, offset 0, flags [DF], proto UDP (17), length 181) ip-172-20-13-55.eu-west-2.compute.internal.33552 > 239.222.222.2.lm-x: UDP, length 153 11:00:27.595607 IP (tos 0x0, ttl 4, id 53523, offset 0, flags [DF], proto UDP (17), length 103) ip-172-20-13-55.eu-west-2.compute.internal.33552 > 239.222.222.2.lm-x: UDP, length 75 11:00:27.596188 IP (tos 0x0, ttl 4, id 53524, offset 0, flags [DF], proto UDP (17), length 103) ip-172-20-13-55.eu-west-2.compute.internal.33552 > 239.222.222.2.lm-x: UDP, length 75 11:00:27.596188 IP (tos 0x0, ttl 4, id 53525, offset 0, flags [DF], proto UDP (17), length 85) ip-172-20-13-55.eu-west-2.compute.internal.33552 > 239.222.222.2.lm-x: UDP, length 57 11:00:27.596947 IP (tos 0x0, ttl 4, id 53526, offset 0, flags [DF], proto UDP (17), length 103)
La salida debería producirse con bastante frecuencia (normalmente varias veces por segundo), esto verifica que la multidifusión esté funcionando.
Con la pantalla puedes cambiar entre varias pantallas usando Ctrl-a n o Ctrl-a p, para cerrar una pantalla usa Ctrl-a K
Para ello necesitamos Wireshark https://www.wireshark.org/ y el complemento Wireshark proporcionado por Deribit, el complemento se encuentra en el paquete de desarrollo de clientes (ZIP) de MC en la página: https://insights.deribit.com/exchange-updates/launch-of-our-new-multicast-service/
Dentro del archivo zip encontrará el archivo deribit_sbe.lua que debe copiarse en la carpeta de complementos de Wireshark. En los sistemas Windows con la instalación predeterminada de Wireshark, esta carpeta es C:\Program Files\Wireshark\plugins
se puede cargar un archivo.pcap en Wireshark, este archivo se puede crear usando tcpdump:
We can capture the tcpdump to a file when we add -s 65535 -w <file> to the tcpdump command: tcpdump -v multicast and not broadcast -s 65535 -w multidump.pcap
Cuando se abre en Wireshark con el complemento activado, el protocolo debería mostrar: Deribit SBE como se muestra a continuación
Haga doble clic en un elemento para recuperar los detalles:
Esto debería verificar que los datos de multidifusión se hayan recibido correctamente.
La información más reciente sobre los canales de multidifusión se puede encontrar descargando el paquete de desarrollo de clientes de MC Zip desde aquí.
La creación de adjuntos de Transitgateway falla
Si un usuario no tiene permisos suficientes, el adjunto de la pasarela de tránsito creado de acuerdo con el paso 1.2 podría entrar en un estado fallido.
Para crear un adjunto de VPC a una puerta de enlace de tránsito compartida de RAM, el usuario de IAM necesitará los siguientes permisos:
-
RAM:CreateResourceShare: permiso para compartir la pasarela de tránsito entre cuentas.
-
EC2:CreateTransitGatewayVPCattachachment: permiso para crear el adjunto de la VPC a la puerta de enlace de tránsito compartida.
-
permiso ec2:DescribeTransitGateways para ver la puerta de enlace de tránsito compartida.
No se reciben datos al ejecutar el comando socat en una sesión de pantalla y tcpdump en otra sesión de pantalla.
Si los datos no se reciben a pesar de la ejecución del comando socat en una sesión de pantalla y tcpdump en otra, puede que sea necesario verificar las reglas del grupo de seguridad configuradas para la instancia. Configure el SG de la siguiente manera
Concretamente, podría ser necesaria la segunda línea que permita el tráfico IGMP desde cualquier fuente.
¿Por qué recibo un error de respuesta 404?
Compruebe lo siguiente:
-
Tu VPCE está en la zona correcta, ya sea Londres o Tokio, según la región que hayas solicitado.
-
Confirme que el paso número 3 de la guía de configuración esté configurado correctamente y que el DNS apunte a gateway.deribit.com
Lista blanca de IP: deseo incluir mi IP en la lista blanca
Esto se puede hacer directamente a través de la propia API sin que intervengamos. ¿Quiere estar seguro de la dirección IP? Simplemente envía una solicitud e indícanos tu UID junto con la ventana de tiempo exacta para que podamos rastrearla a partir de los registros
¿IGMPv2 0.0.0.0/0 es lo suficientemente seguro?
La regla para 0.0.0.0 en los grupos de seguridad es, de hecho, segura. Esto se debe a que permite exclusivamente el tráfico IGMP (Protocolo de administración de grupos de Internet). El IGMP es un protocolo local y está diseñado para no acceder a tu nube privada virtual (VPC) desde fuentes externas, excepto a través del adjunto de la pasarela de tránsito compartida, que es donde recibes los ficheros de prueba y de producción. Por lo tanto, la implementación de esta regla no debería suponer ningún riesgo de seguridad adicional. Tenga en cuenta que se trata de un paso crucial del proceso de configuración y, si se omite, generará errores.