Programas de 15 minutos diarios en los que hablamos de hosting, redes y desarrollo.
En un switch Nexus, los puertos pueden configurarse como puertos de acceso o como puertos trunk, según lo que se requiera en la red.
Los puertos de acceso se utilizan para conectar dispositivos finales, como ordenadores, impresoras y otros dispositivos de usuario final, a la red. Cada puerto de acceso está asociado con una sola VLAN.
Configuración de un puerto de acceso:
interface Ethernet1/1 switchport mode access switchport access vlan 10En este ejemplo, configuramos el puerto Ethernet1/1 como un puerto de acceso y lo asignamos a la VLAN 10.
Los puertos trunk se usan para transportar tráfico de múltiples VLAN entre switches o entre un switch y un router. Los puertos trunk etiquetan las tramas Ethernet con un identificador de VLAN para asegurar que el tráfico se dirija a la VLAN correcta. Configuración de un puerto trunk:
interface Ethernet1/2 switchport mode trunk switchport trunk allowed vlan 10,20,30 switchport trunk native vlan 1En este ejemplo, configuraremos el puerto Ethernet1/2 como un puerto trunk para permitir el tráfico de las VLAN 10, 20 y 30, con la VLAN nativa configurada en 1. La VLAN nativa se utiliza para el tráfico no etiquetado.
Para proteger la red de problemas relacionados con el Spanning Tree Protocol (STP), hay que mantener la estabilidad y evitar bucles de red. Aquí os dejo las mejores prácticas y configuraciones de STP para un switch Cisco Nexus:
BPDU Guard se utiliza para proteger los puertos configurados como puertos de acceso (edge ports) que no deberían recibir Bridge Protocol Data Units (BPDUs). Si un puerto con BPDU Guard habilitado recibe un BPDU, el puerto se deshabilitará automáticamente para prevenir bucles de STP.
switch# configure terminal switch(config)# interface range Ethernet1/1 - 24 switch(config-if-range)# spanning-tree port type edge switch(config-if-range)# spanning-tree bpduguard enablespanning-tree port type edge: Configura el puerto como un puerto de acceso, lo que significa que se transicionará inmediatamente al estado forwarding.
spanning-tree bpduguard enable: Habilita BPDU Guard para deshabilitar el puerto si se recibe un BPDU.
Root Guard previene que dispositivos no autorizados se conviertan en el root bridge, lo cual podría alterar la topología STP de la red.
switch# configure terminal switch(config)# interface Ethernet1/25 switch(config-if)# spanning-tree guard rootspanning-tree guard root: Habilita Root Guard en el puerto para asegurarse de que no se pueda convertir en root port si se reciben BPDUs de un dispositivo no autorizado.
Loop Guard ayuda a prevenir bucles causados por un fallo en recibir BPDUs en puertos no-designados. Es útil en topologías redundantes donde los puertos pueden quedarse en estado «stuck in blocking».
switch# configure terminal switch(config)# interface Ethernet1/26 switch(config-if)# spanning-tree guard loopspanning-tree guard loop: Habilita Loop Guard en el puerto para evitar que se transicione a forwarding si deja de recibir BPDUs.
UDLD detecta enlaces unidireccionales causados por fallos físicos y puede deshabilitar el puerto afectado.
switch# configure terminal switch(config)# interface Ethernet1/27 switch(config-if)# udld port aggressiveudld port aggressive: Configura UDLD en modo agresivo para detectar y deshabilitar rápidamente enlaces unidireccionales.
PortFast se utiliza en puertos de acceso para que transicionen inmediatamente al estado forwarding, lo que es útil en puertos conectados a hosts.
switch# configure terminal switch(config)# interface range Ethernet1/1 - 24 switch(config-if-range)# spanning-tree port type edgespanning-tree port type edge: Habilita PortFast en los puertos de acceso para minimizar el tiempo de convergencia.
Configurar correctamente los puertos de un switch Cisco Nexus para protegernos de problemas con el Spanning Tree Protocol (STP) implica habilitar BPDU Guard, Root Guard, Loop Guard y PortFast en los puertos adecuados. Estas configuraciones previenen bucles de red, aseguran la estabilidad de la topología STP y mejoran la eficiencia de la red.
Configurar Port Security de manera efectiva en una red corporativa es esencial para prevenir accesos no autorizados y proteger la integridad de la red. Aquí están las mejores prácticas para lograrlo en switches Cisco Nexus:
Lo primero será habilitar el feature de port-security:
switch# configure terminal switch(config)# feature port-securityAntes de configurar Port Security, es crucial definir políticas claras que establezcan qué dispositivos están permitidos en la red y cuáles no. Estas políticas deben ser comunicadas y aplicadas consistentemente.
Comienza con una configuración básica de Port Security para restringir el número de direcciones MAC permitidas en cada puerto:
switch# configure terminal switch(config)# interface Ethernet1/1 switch(config-if)# switchport mode access switch(config-if)# switchport port-security switch(config-if)# switchport port-security maximum 2 switch(config-if)# switchport port-security violation restrictswitchport port-security maximum 2: Permite un máximo de dos direcciones MAC en el puerto.
switchport port-security violation restrict: En caso de una violación, el puerto restringirá el acceso en lugar de deshabilitarse completamente, permitiendo al administrador investigar sin una interrupción total.
Configura direcciones MAC «sticky» para que las direcciones aprendidas dinámicamente se guarden en la configuración de running, lo que facilita la administración:
switch(config-if)# switchport port-security mac-address stickyDefine qué acción tomar en caso de una violación de seguridad. Las opciones incluyen protect, restrict, y shutdown. La opción restrict es generalmente recomendada para evitar interrupciones totales:
switch(config-if)# switchport port-security violation restrictPara ver las macs sticky aprendidas:
switch#sh port-security addressPara borrar una mac sticky
switch(config-if)# no switchport port-security mac-address sticky 0011.2233.4455Configura alertas para ser notificado en caso de violaciones de seguridad. Utiliza Syslog o SNMP traps para recibir notificaciones:
Configura alertas para ser notificado en caso de violaciones de seguridad. Utiliza Syslog o SNMP traps para recibir notificaciones:
switch(config)# logging host <IP_del_servidor_syslog> switch(config)# snmp-server enable traps port-securityRealiza auditorías de las configuraciones de Port Security y las direcciones MAC asociadas a cada puerto. Utiliza comandos como:
switch# show port-security interface Ethernet1/1 switch# show port-security addressDocumenta todas las configuraciones y asegúrate de que el equipo de IT esté formado en cómo configurar y monitorizar Port Security. Incluye procedimientos para resolver violaciones y restaurar la normalidad.
Hoy vamos a hablar un poco sobre Proxmox, porque es la mejor opción que hay ahora mismo para tener una plataforma de virtualización.
En el audio de hoy hablo de:
Espero que os resulte interesante y recordad que si necesitáis algo con Proxmox en Tecnocrática es una de las cosas que hacemos.
En el audio de hoy os traigo la charla que di en el último EsNOG, os hablo desde los conceptos fundamentales de DMA (Acceso Directo a Memoria), que permite que ciertos componentes de hardware accedan a la memoria sin la intervención de la CPU, hasta tecnologías avanzadas como UltraEthernet, diseñadas para mejorar la eficiencia y el rendimiento en aplicaciones de Inteligencia Artificial (IA) y Computación de Alto Rendimiento (HPC).
La evolución hacia RDMA (Acceso Directo a Memoria Remota) es notable por su capacidad de eliminar copias de datos innecesarias, reduciendo la carga en la CPU y disminuyendo la latencia de la red. RDMA permite transferencias de memoria a memoria sin la intervención del sistema operativo, mejorando significativamente la eficiencia en la transferencia de datos entre sistemas remotos.
Una tecnología particularmente relevante mencionada en el documento es RoCE (RDMA over Converged Ethernet), que adapta RDMA para operar sobre redes Ethernet. RoCE mejora la eficiencia operativa al permitir transferencias de datos de alta velocidad sin sobrecargar el procesador central y es ideal para entornos como centros de datos y la nube, donde se requieren altas tasas de transferencia de datos y baja latencia.
RoCE viene en varias versiones, como RoCE v1, que opera en redes sin pérdidas utilizando Control de Flujo por Prioridad (PFC), y RoCE v2, que funciona sobre redes IP y utiliza UDP para encapsular paquetes RDMA, incluyendo mecanismos de control de congestión avanzados como ECN.
La culminación de estas tecnologías se presenta con UltraEthernet, que se describe como una evolución de RoCE diseñada específicamente para las necesidades de la IA y la HPC. Ofrece mejoras en escalabilidad, manejo de la congestión, rendimiento y seguridad, optimizando para operaciones rápidas necesarias en el procesamiento de grandes volúmenes de datos en tiempo real o tiempos de ejecución aceptables. También incorpora mecanismos de seguridad directamente en la capa de red para proteger datos críticos, como el cifrado de datos en tránsito y la autenticación de nodos.
En resumen, estas tecnologías no solo avanzan en la eficiencia y el rendimiento de las redes y los sistemas de procesamiento de datos, sino que también abordan desafíos críticos de seguridad y escalabilidad necesarios para el futuro de la computación en IA y HPC.
Descargar: ultraethernet_esnog_31.pdf
Para protegerse contra estos ataques, se recomienda emplear prácticas de seguridad como validación de entrada, cifrado de comunicaciones, educación en seguridad, actualizaciones regulares, copias de seguridad, y el uso de soluciones de seguridad avanzadas.
Un SOC es una unidad especializada dentro de una organización dedicada a la monitorización, análisis, detección y respuesta ante amenazas cibernéticas. Opera 24/7 para proteger los activos digitales mediante la monitorización continua, el análisis de eventos, la detección de amenazas, la respuesta a incidentes y la gestión de la seguridad. El equipo de un SOC incluye analistas de seguridad, ingenieros, expertos en respuesta a incidentes y gestores, todos trabajando con herramientas avanzadas como IDS, IPS, firewalls, y plataformas de inteligencia de amenazas.
Un SIEM centraliza la recopilación, almacenamiento, análisis y correlación de eventos de seguridad de diversas fuentes, ofreciendo una visión holística y en tiempo real del estado de seguridad. Esto facilita la detección temprana de amenazas y una respuesta eficaz ante incidentes. Los componentes clave incluyen la recopilación de datos, normalización, almacenamiento, análisis, generación de alertas y una consola de usuario para la interacción.
Un WAF protege las aplicaciones web filtrando y bloqueando el tráfico malicioso para prevenir ataques como inyección de SQL y XSS. Puede ser basado en la nube, on-premise o híbrido, ofreciendo protección contra ataques comunes, mejorando la seguridad web y reduciendo el tiempo de respuesta a incidentes.
Un IDS es una herramienta que monitoriza la red o sistemas informáticos en busca de actividades maliciosas o no autorizadas, generando alertas para una posible acción. Los IDS pueden ser basados en la red (NIDS), en el host (HIDS) o en aplicaciones (AIDS), y utilizan métodos de detección basados en firmas, anomalías y comportamientos.
Un IPS, al igual que un IDS, detecta actividades sospechosas pero también interviene activamente para prevenir daños, bloqueando tráfico malicioso o aislando dispositivos afectados. Los IPS pueden ser basados en la red (NIPS), en el host (HIPS) o en aplicaciones (AIPS), ofreciendo una capa adicional de seguridad.
Un SOAR mejora la eficiencia y eficacia de los equipos de seguridad mediante la orquestación y automatización de procesos y respuestas a incidentes. Integra diversas herramientas de seguridad y automatiza tareas rutinarias, proporcionando un marco de trabajo para respuestas rápidas y eficientes a las amenazas detectadas.
Mientras que ambos sistemas detectan actividades maliciosas, el IPS se diferencia por su capacidad para prevenir intrusiones activamente, siendo más complejo y costoso que un IDS, que se enfoca en la detección y generación de alertas.
OWASP es una organización sin fines de lucro dedicada a mejorar la seguridad del software.
Ofrece recursos gratuitos como guías, herramientas y proyectos para ayudar a los desarrolladores y organizaciones a proteger sus aplicaciones web.
Algunos de sus recursos más conocidos son:
OWASP también ofrece formación y eventos para la comunidad de seguridad.
La organización se actualiza constantemente para estar al día con las últimas amenazas y tecnologías.
OWASP es una comunidad global que trabaja por un futuro digital más seguro.
Puntos clave:
OWASP es un recurso invaluable para la seguridad de las aplicaciones web.
Es importante que los desarrolladores y organizaciones se familiaricen con los recursos de OWASP.
La participación en la comunidad de OWASP puede ayudar a mejorar la seguridad del software.
Enlaces útiles:
Página principal de OWASP: https://owasp.org/
OWASP Top Ten: https://owasp.org/www-project-top-ten/
Recursos educativos y eventos: https://owasp.org/www-community/
Conclusión:
OWASP es una organización líder en la seguridad de aplicaciones web. Sus recursos gratuitos son una herramienta esencial para cualquier persona que desarrolle o gestione aplicaciones web. La participación en la comunidad de OWASP puede ayudar a mejorar la seguridad del software para todos.
Prompt 1:
“Tengo en un servidor Linux un directorio que se llama /bk_datos. Quiero que de otro directorio de mi host llamado /datos_2024 se haga una copia de seguridad total los sábados a las 18:30pm y una copia incremental de Lunes a Viernes a las 22:00pm en el directorio /bk_datos Quiero que uses el comando tar y que comprimas con xz”.
Respuesta 1:
#!/bin/bash # Ruta del directorio de origen source_directory="/datos_2024" # Ruta del directorio de destino backup_directory="/bk_datos" # Nombre del archivo de copia de seguridad backup_file="$backup_directory/backup_$(date +\%Y-\%m-\%d_%H-\%M).tar.xz" # Verificar si es sábado if [ "$(date +\%u)" -eq 6 ]; then # Copia de seguridad total los sábados a las 18:30 tar --listed-incremental="$backup_directory/incremental.snar" -cJf "$backup_file" "$source_directory" echo "Copia de seguridad total realizada el $(date +\%Y-\%m-\%d_%H-\%M)." else # Copia de seguridad incremental de Lunes a Viernes a las 22:00 tar --listed-incremental="$backup_directory/incremental.snar" -cJf "$backup_file" "$source_directory" echo "Copia de seguridad incremental realizada el $(date +\%Y-\%m-\%d_%H-\%M)." fi ……………………………………… chmod +x backup_script.sh # Copia total los sábados a las 18:30 30 18 * * 6 /ruta/al/backup_script.sh # Copia incremental de lunes a viernes a las 22:00 0 22 * * 1-5 /ruta/al/backup_script.shReferencia: https://juncotic.com/tar-backups-incrementales-gnu-linux/
Solo me queda añadir la lógica para que el sábado “expulse” el snapshot y haga un backup total puro y duro creando el fichero de snapshot incremental .snar nuevecito para los subsiguientes incrementales de lunes a viernes.
Conclusión: ChatGPT Me ha ayudado mucho no, ¡muchísimo! pero hay veces que el remate lo tiene que hacer el “ser humano”.
Prompt 2:
“Tengo un partición montada en un directorio que se llama /proyecto_seal y tengo tres usuarios user01, user02 y user03. Quiero que los tres usuarios tengan acceso a este directorio. También quiero una política de cuotas con un soft limit de 2G y periodo de gracia de 3 dias y una hard limit de 5G. Otorga al directorio el permiso apropiado para que ningún usuario de esto tres pueda borrar lo que han creado los otros”
Respuesta 2:
# Asegúrate de que el grupo exista, si no, créalo sudo groupadd proyecto_seal # Añade usuarios al grupo sudo usermod -aG proyecto_seal user01 sudo usermod -aG proyecto_seal user02 sudo usermod -aG proyecto_seal user03 # Cambia el propietario y grupo del directorio sudo chown :proyecto_seal /proyecto_seal # Establece permisos para el propietario (dueño del directorio) sudo chmod 1770 /proyecto_seal # Permite que los miembros del grupo tengan acceso total sudo chmod g+rwx /proyecto_seal # Restringe el acceso a otros usuarios (no propietarios ni del grupo) sudo chmod o-rwx /proyecto_seal sudo apt-get install quota vi /etc/fstab UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /proyecto_seal ext4 defaults,usrquota,grpquota 0 2 sudo mount -o remount /proyecto_seal sudo quotacheck -cug /proyecto_seal sudo edquota -u user01 sudo edquota -u user02 sudo edquota -u user03Prompt 3:
Tengo un fichero de texto con paths completos de directorios, algunos caminos empiezan por /usr/bin/local/ y quiero en estos que empiezan por /usr/bin/local/ y solo en estos eliminar /usr/bin/local/ ¿Me creas un script para realizar esta tarea?
Respuesta 3:
#!/bin/bash # Verificar si se proporcionó un archivo como argumento if [ -z "$1" ]; then echo "Uso: $0 archivo" exit 1 fi archivo="$1" # Verificar si el archivo existe if [ ! -f "$archivo" ]; then echo "El archivo '$archivo' no existe." exit 1 fi # Crear un archivo temporal para almacenar los resultados archivo_temporal=$(mktemp) # Procesar el archivo línea por línea while IFS= read -r linea; do # Verificar si la línea comienza con /usr/bin/local/ if [[ "$linea" == "/usr/bin/local/"* ]]; then # Eliminar /usr/bin/local/ de la línea nueva_linea="${linea#/usr/bin/local/}" echo "$nueva_linea" >> "$archivo_temporal" else # Conservar la línea tal cual si no comienza con /usr/bin/local/ echo "$linea" >> "$archivo_temporal" fi done < "$archivo" # Sobrescribir el archivo original con los resultados mv "$archivo_temporal" "$archivo" echo "Proceso completado. Se ha modificado el archivo '$archivo'."sar es una herramienta de monitorización de recursos en sistemas basados en Unix, como Linux. El nombre «sar» proviene de «System Activity Reporter». Esta utilidad permite recopilar, informar y analizar datos sobre la actividad del sistema, incluyendo el uso de CPU, memoria, E/S (entrada/salida) y otros recursos.
El paquete sar generalmente viene incluido en el conjunto de herramientas de sysstat. Para utilizar sar en Linux, debes asegurarte de que sysstat esté instalado.
Con mucha seguridad el paquete systat estará instalado pero si no procedemos como siempre
Para Centos/Redhat sería algo como esto… yum o dnf
Pero ya que estamos con ChatGPT usamos este PROMPT para que nos diga cómo ponerlo en marcha. No obstante la instalación y puesta en marcha de sar/sysstat está francamente bien documentado en montones de sitios web que se encuentran con la oportuna búsqueda en google.
“¿Me explicas detalladamente cómo poner en marcha sar en Linux Centos a partir de la instalación de sysstat?”
Respuesta de ChatGPT:
Paso 1: Instalar sysstat sudo yum install sysstat Paso 2: Habilitar y configurar sysstat sudo nano /etc/sysconfig/sysstat Dentro de este archivo, asegúrate de que la variable ENABLED esté establecida en "true". Si no está configurada, cámbiala a: ENABLED="true" Paso 3: Iniciar y activar el servicio sysstat sudo systemctl start sysstat sudo systemctl enable sysstat Paso 4: Configurar la recopilación automática de datos La recopilación automática de datos se realiza mediante el cron. El archivo /etc/cron.d/sysstat configura la programación de las actividades de recopilación. Abre el archivo /etc/cron.d/sysstat en un editor de texto: sudo nano /etc/cron.d/sysstat Asegúrate de que la tarea cron esté descomentada y configurada según tus necesidades. Por defecto, la recopilación de datos se programa cada 10 minutos: */10 * * * * root /usr/lib64/sa/sa1 1 1 Puedes ajustar el intervalo según tus preferencias.Genial respuesta una vez puesto en marcha empezamos ejecutar comandos sar para indagar la carga del sistema en diferentes aspectos…
Esta utilidad permite recopilar, informar y analizar datos sobre la actividad del sistema, incluyendo el uso de CPU, memoria, E/S (entrada/salida), swap, disco, paginación, red, etc.
Vamos a crear prompts para que me genere informes sobre cada uno de estos aspectos.
“ChatGPT voy a arrancar un aplicación en Linux y quiero saber el impacto a nivel de consumo de CPU que va a tener. Créame el comando sar para esta prueba y poder observar el consumo de CPU por la ejecuc.ión de esta aplicación”
Respuesta de ChatGPT: Eso es en el presente.
sar -u 1 Este comando recopilará estadísticas de CPU cada segundo (-u 1) y mostrará el uso de CPU, carga promedio y más. Ejecuta tu aplicación: Inicia la aplicación que deseas probar. Mientras se ejecuta, sar continuará recopilando y mostrando estadísticas de CPU cada segundo. Detén la recopilación de datos de sar: Puedes detener la recopilación de datos presionando Ctrl + C. Después de esto, sar mostrará un resumen del uso de la CPU durante el período de recopilación. El comando y la salida se verán algo así: Esto en el presente:En esta salida, %user representa el porcentaje de tiempo de CPU gastado en el espacio de usuario (aplicaciones), y %system representa el porcentaje de tiempo de CPU gastado en el kernel del sistema.
Observa los valores de %user y %system para evaluar el impacto en el consumo de CPU de tu aplicación durante la ejecución. También puedes ajustar el intervalo de recopilación (1 en el comando -u 1) según tus necesidades para obtener más o menos granularidad en los datos recopilados.
ChatGPT dime cómo evolucionó el consumo de CPU entre las 01:00am y 4:00am del 12 de enero de 2024. Dame por favor el comando sar que debo ejecutar.
Salida de ChatGPT: Esto es una pregunta “hacia el pasado”.
Una vez visto cómo se construye el comando sar para ver el consumo de CPU a través del prompt de ChatGPT, os toca a vosotros extrapolarlo los siguientes aspectos del rendimiento del sistema
Listado de comandos básicos de sar para monitorear diferentes aspectos del sistema, con ejemplos sencillos: 1. Uso de CPU: Comando: sar -u 1 Ejemplo: sar -u 1 Descripción: Muestra estadísticas de uso de CPU cada segundo. 2. Uso de Memoria RAM: Comando: sar -r 1 Ejemplo: sar -r 1 Descripción: Muestra estadísticas de uso de memoria RAM cada segundo. 3. Uso de Swap: Comando: sar -S 1 Ejemplo: sar -S 1 Descripción: Muestra estadísticas de uso de swap cada segundo. 4. Uso de Disco: Comando: sar -b 1 Ejemplo: sar -b 1 Descripción: Muestra estadísticas de E/S de bloque (disco) cada segundo. 5. Paginación: Comando: sar -B 1 Ejemplo: sar -B 1 Descripción: Muestra estadísticas de paginación cada segundo. 6. Estadísticas de Red: Comando: sar -n DEV 1 nota DEV seria eth0, eth1, enp0s3, etc Ejemplo: sar -n DEV 1 Descripción: Muestra estadísticas de red para cada interfaz de red cada segundo. Estos comandos te proporcionarán información útil sobre el rendimiento del sistema en tiempo real. Puedes ajustar el intervalo (1 en los ejemplos) según tus necesidades. Recuerda que la disponibilidad de ciertas métricas puede variar según tu sistema operativo y configuración específica.Muy probablemente ya sar estará up & running en vuestro servidor. Yo personalmente tengo ya unos comandos sar preparados que los utilizo cuando hay una “crisis” las respuestas de ChartGPT complementan y refuerzan mi colección de comando sar para momentos en que el servidor esta impactado y quiero saber que pasó a nivel me memoria, cpu, swap, red, etc en el pasado.
Imagen generada con Bing:
Enlaces a las clases y los talleres:
Clase 1
https://growthhackingcourse.io/clases-chatgpt/
Clase 2
https://growthhackingcourse.io/clase-2-chatgpt-dominando-los-prompts/
Clase 3
https://growthhackingcourse.io/clase-3-chatgpt-automatizando-la-generacion-de-contenidos/
Taller1:
https://directo.growthhackingcourse.io/taller-chat-gpt-en-directo/
Taller2:
https://www.youtube.com/watch?v=-f2xdGwkO3k
InfiniBand es una arquitectura de red de alto rendimiento utilizada principalmente en entornos de computación de alto rendimiento (HPC). Se destaca por su baja latencia y alto ancho de banda, ideal para el transporte rápido y eficiente de grandes volúmenes de datos. Sus características clave incluyen:
La arquitectura de InfiniBand se caracteriza por componentes como Host Channel Adapters (HCA) y Target Channel Adapters (TCA), conmutadores para enrutamiento y conmutación eficiente, y soporte para virtualización de canal y protocolo de transporte propio. Su escalabilidad, gestión avanzada de QoS, y soporte para múltiples tipos de conexión, como enlaces de cobre y fibra óptica, la hacen ideal para aplicaciones que requieren un transporte rápido y eficiente de grandes cantidades de datos.
El ancho de banda y la latencia son aspectos cruciales de InfiniBand, con tasas de transferencia evolucionando de 2.5 Gbps (SDR) a 800 Gbps en las versiones futuras. La latencia extremadamente baja es fundamental para aplicaciones que requieren respuestas rápidas.
Tasas de datos del InfiniBand unidireccional, exxtraído de Wikipedia (https://es.wikipedia.org/wiki/InfiniBand)El protocolo de transporte de InfiniBand, orientado a mensajes y con soporte para RDMA, gestiona conexiones confiables y no confiables, y conexiones orientadas a datagramas. Incluye mecanismos sofisticados para la gestión de la congestión y QoS, y es escalable y de alto rendimiento.
La virtualización de canales mejora la flexibilidad y eficiencia de la red, permitiendo una mejor utilización del ancho de banda y una implementación eficiente de QoS. La Calidad de Servicio en InfiniBand gestiona el ancho de banda y prioriza el tráfico, crucial para mantener la eficiencia en redes de alto rendimiento.
El RDMA en InfiniBand permite accesos directos a la memoria de sistemas remotos, reduciendo la latencia y mejorando el rendimiento, especialmente útil en HPC y almacenamiento de datos.
InfiniBand es clave en clústeres y HPC por su bajo ancho de banda y latencia, soporte para RDMA, escalabilidad, y soporte para aplicaciones paralelas y de alto rendimiento. Su convergencia con Ethernet en centros de datos es una tendencia creciente, ofreciendo flexibilidad operativa y optimización de costos, aunque requiere gestión cuidadosa para garantizar rendimiento y priorización efectiva del tráfico.
El Protocolo de Gestión de Grupos de Internet (IGMP) y su variante avanzada, IGMP Snooping, son componentes cruciales en la gestión del tráfico de multicast en redes IP modernas. A lo largo de nuestra discusión, hemos explorado las diferentes versiones de IGMP, sus aplicaciones, y cómo IGMP Snooping mejora la eficiencia en switches. También hemos abordado cómo configurar IGMP versión 3 en un switch Nexus de Cisco.
IGMP Versión 1
IGMP Versión 2
IGMP Versión 3
IGMP es fundamental en aplicaciones que requieren la transmisión de datos a múltiples receptores de manera eficiente. Esto incluye:
Concepto
Funcionamiento
Aplicaciones
Pasos Básicos
En conclusión, IGMP y IGMP Snooping son tecnologías esenciales en la administración de redes modernas, proporcionando herramientas fundamentales para la gestión eficiente del tráfico de multicast. Sus aplicaciones van desde el streaming de medios hasta la colaboración en entornos corporativos y educativos, subrayando su importancia en la infraestructura de red
Foto de Fernando González
El otro día @eva_cb , una profesora de la URJC, hizó un tweet en el que incluía una serie de comandos que se utilizan en un entorno Linux para configurar y modificar el comportamiento del protocolo de control de transmisión (TCP).
To get a capture file of the basic behavior of TCP
sysctl -w net.ipv4.tcp_sack=0
sysctl -w net.ipv4.tcp_timestamps=0
sysctl -w net.ipv4.tcp_window_scaling=0
echo "4096 8192 8192" > /proc/sys/net/ipv4/tcp_rmem
ifconfig eth0 mtu 1040
tc qdisc add dev eth0 root netem loss 25% pic.twitter.com/rADFzuD1Qw
— eva (@eva_cb) December 1, 2023
La verdad es que el tweet me gustó mucho y me hizo pensar que no había hablado de control de congestión en el podcast todavía, así que le he robado vilmente la idea y hoy voy a hablar en el podcast un poco de control de control de congestión en TCP.
La verdad es que me tocó repasar porque, voy a ser sincero, no lo tenía nada fresco esto, hace mucho tiempo, hace unos 11 ó 12 porque en Tecnocrática tenemos los servidores web con un pequeño tuning para mejorar el rendimiento, pero eso es cosa para otro día.
El control de congestión en TCP (Protocolo de Control de Transmisión) es un mecanismo diseñado para regular la cantidad de datos que pueden ser enviados a la red sin confirmación. Su principal objetivo es evitar la sobrecarga de la red, que puede ocurrir cuando demasiados paquetes son enviados en un período corto, superando la capacidad de la red para manejarlos eficientemente. Esta regulación es crucial para mantener un rendimiento óptimo y la estabilidad de la red.
La congestión se produce cuando los nodos de la red (como routers y switches) están sobrecargados de datos, lo que lleva a un aumento en el tiempo de retardo y la probabilidad de pérdida de paquetes. El control de congestión busca equilibrar la carga en la red, ajustando dinámicamente la tasa de transmisión de los datos en función de las condiciones actuales de la red. Esto se logra mediante una serie de algoritmos y mecanismos que detectan, previenen y reaccionan ante los signos de congestión.
La congestión en una red de datos puede llevar a varios problemas serios, entre ellos:
Aunque a menudo se confunden, el control de congestión y el control de flujo en TCP son mecanismos distintos diseñados para resolver diferentes problemas:
En resumen, mientras que el control de flujo se asegura de que el receptor no se vea abrumado, el control de congestión se asegura de que la red en su conjunto no se vea sobrecargada. Ambos mecanismos trabajan en conjunto para garantizar una transmisión de datos eficiente y fiable en TCP.
El control de congestión en TCP emplea varios mecanismos fundamentales para gestionar y mitigar la congestión en las redes. Estos mecanismos trabajan juntos para ajustar la tasa de envío de datos, basándose en la percepción del estado actual de la red. Los más importantes son el Slow Start, Congestion Avoidance, Fast Retransmit y Fast Recovery.
En resumen, estos cuatro mecanismos son fundamentales para el eficiente control de congestión en TCP. El Slow Start permite a TCP iniciar la transmisión de datos de manera conservadora, aumentando exponencialmente el tamaño de la ventana hasta encontrar un límite sostenible. La Evitación de Congestión mantiene el crecimiento de la ventana en un ritmo lineal para evitar la saturación de la red. Fast Retransmit y Fast Recovery trabajan juntos para responder rápidamente a la pérdida de paquetes, permitiendo a TCP recuperar su tasa de transmisión de manera eficiente y minimizar la interrupción en la transferencia de datos.
Los algoritmos avanzados de control de congestión en TCP representan una evolución en la forma en que TCP gestiona la congestión y la pérdida de paquetes. Estos algoritmos incluyen Tahoe, Reno, NewReno, CUBIC y BBR, cada uno con características únicas adaptadas a diferentes escenarios de red.
CUBIC es diferente de los algoritmos basados en AIMD (Additive Increase/Multiplicative Decrease) como Tahoe, Reno y NewReno. Utiliza una función cúbica para aumentar la ventana de congestión, lo que permite un escalado más rápido de la ventana en redes con grandes capacidades de ancho de banda y alta latencia (redes de larga distancia). CUBIC es menos sensible a la pérdida de paquetes y más a los cambios en el retardo, lo que lo hace adecuado para redes modernas de alta capacidad.
BBR (Bottleneck Bandwidth and RTT): Desarrollado por Google, BBR es un algoritmo de control de congestión que se centra en maximizar la utilización del ancho de banda disponible y minimizar la latencia. BBR no se basa en la detección de pérdidas para ajustar la ventana de congestión. En su lugar, estima el ancho de banda del cuello de botella y el RTT mínimo para determinar el ritmo óptimo de envío de paquetes. Este enfoque permite que BBR gestione eficazmente la congestión, incluso en redes con altas tasas de pérdida de paquetes, ofreciendo mejoras significativas en el rendimiento en comparación con los algoritmos basados en pérdidas.
En resumen, estos algoritmos avanzados de control de congestión representan diferentes enfoques y estrategias para optimizar el rendimiento de la transmisión de datos en TCP. Tahoe, Reno, y NewReno se centran en mejorar la respuesta a la pérdida de paquetes, mientras que CUBIC y BBR se adaptan mejor a las redes modernas de alta capacidad, ofreciendo soluciones más eficientes para el control de la congestión en diversos entornos de red.
El control de congestión en TCP desempeña un papel vital en la gestión del tráfico de datos en diferentes tipos de redes. La eficacia y necesidad de los mecanismos de control de congestión pueden variar significativamente dependiendo de las características específicas de cada red, como la latencia, el ancho de banda disponible, y la probabilidad de pérdida de paquetes. Esto es particularmente evidente al comparar Redes de Área Local (LAN) con Redes de Área Amplia (WAN) y Redes Móviles.
En conclusión, el control de congestión en TCP varía considerablemente
La gestión eficaz del control de congestión en TCP es crucial para asegurar un rendimiento óptimo de la red. Esto incluye tanto el monitoreo continuo de la red para detectar signos de congestión como la configuración adecuada de los parámetros de control de congestión en los sistemas operativos. A continuación, se detallan algunas herramientas y técnicas clave en estas áreas.
En resumen, una combinación de herramientas de monitoreo y técnicas de configuración adecuadas es esencial para una gestión efectiva del control de congestión en TCP. Estas herramientas y técnicas permiten a los administradores de red identificar y responder a la congestión, optimizando así el rendimiento de la red y asegurando una entrega de datos eficiente y fiable.
El control de congestión de TCP es un aspecto fundamental de la gestión de redes, vital para asegurar la estabilidad y eficiencia de las comunicaciones de datos. A continuación, exploraremos casos de estudio donde este control ha sido crucial y ejemplos prácticos de cómo la implementación y ajuste de TCP puede mejorar significativamente el rendimiento de la red.
En resumen, los casos de estudio y aplicaciones prácticas demuestran la importancia crítica del control de congestión de TCP en una variedad de entornos de red. Desde redes corporativas hasta proveedores de servicios de Internet y servicios de streaming, una gestión efectiva de la congestión de TCP es clave para mantener un rendimiento de red óptimo y proporcionar una experiencia de usuario final satisfactoria. La implementación de ajustes y algoritmos adecuados de TCP según las necesidades específicas.
El control de congestión en TCP ha sido un área de investigación y desarrollo constante desde la creación del protocolo. Aunque los mecanismos actuales han demostrado ser eficaces en una amplia gama de escenarios de red, todavía enfrentan limitaciones significativas, especialmente en entornos de red en evolución. El futuro del control de congestión en TCP implica superar estos desafíos y adaptarse a las cambiantes demandas de las redes modernas.
En resumen, los desafíos actuales del control de congestión en TCP están impulsando una investigación significativa y el desarrollo de nuevas tecnologías y enfoques. El futuro del control de congestión en TCP se orienta hacia una mayor inteligencia, adaptabilidad y eficiencia, con el objetivo de satisfacer las necesidades de las redes cada vez más rápidas, complejas y diversas de hoy en día.
Volviendo al ejemplo de Eva:
sysctl -w net.ipv4.tcp_sack=0
sysctl -w net.ipv4.tcp_timestamps=0
sysctl -w net.ipv4.tcp_window_scaling=0
echo «4096 8192 8192» > /proc/sys/net/ipv4/tcp_rmem
ifconfig eth0 mtu 1040
tc qdisc add dev eth0 root netem loss 25%
La secuencia de comandos que Eva nos muestra incluye una serie de comandos en Linux que ajustan varios parámetros del kernel relacionados con el protocolo TCP (Protocolo de Control de Transmisión) y la configuración de la interfaz de red. Estos comandos afectan cómo se maneja el tráfico de red en el sistema. Aquí está una explicación detallada de cada comando:
Cada uno de estos comandos tiene aplicaciones específicas y debe ser utilizado con cuidado, ya que pueden tener un impacto significativo en el rendimiento y la fiabilidad de la red. Estos ajustes son a menudo específicos del escenario y deben ser probados y validados en un entorno controlado antes de ser implementados en un entorno de producción.
Your feedback is valuable to us. Should you encounter any bugs, glitches, lack of functionality or other problems, please email us on [email protected] or join Moon.FM Telegram Group where you can talk directly to the dev team who are happy to answer any queries.