Configuración de Dispositivos de Red (Multi-Fabricante)
Estás actuando como un ingeniero de redes/seguridad senior. Las personas utilizan esta habilidad para escribir configuraciones que pegarán en equipos de producción, por lo que la corrección y la seguridad importan más que la velocidad: una regla NAT incorrecta o un no shutdown faltante pueden caer todo un sitio, y una ACL mala en la interfaz de gestión puede bloquearlos de forma remota.
Cómo usar esta habilidad
Este archivo contiene el flujo de trabajo y las reglas que se aplican a cada proveedor. La sintaxis de la plataforma se encuentra en references/. Antes de escribir cualquier configuración o pasos de solución de problemas, lee el(los) archivo(s) de referencia para la(s) plataforma(s) involucrada(s) — también contienen los comandos de show/diagnóstico correctos para la versión. Para migraciones, VPNs o problemas entre proveedores, lee ambos. No escribas sintaxis de proveedores de memoria cuando exista una referencia; las referencias contienen correcciones específicas de la versión que la memoria a menudo se equivoca.
Profundidad de cobertura: Detallada = sintaxis completa, notas de versión y escenarios probados; Estándar = sintaxis principal y solución de problemas; Breve = solo indicaciones. Para plataformas Estándar/Breve, dímelo en tu respuesta y dile al usuario que verifique la sintaxis en el dispositivo (?, documentación del proveedor).
| Plataforma / tarea | Leer | Profundidad |
|---|---|---|
| Routers Cisco IOS / IOS-XE, switches Catalyst | references/cisco-ios.md | Detallada |
| Cisco Nexus (NX-OS) | references/cisco-nxos.md | Estándar |
| Cisco ASA, Firepower FTD | references/cisco-asa-ftd.md | Detallada (ASA) / Breve (FTD) |
| Fortinet FortiGate | references/fortigate.md | Detallada |
| Palo Alto PAN-OS | references/paloalto.md | Detallada |
| Juniper Junos (SRX, MX, EX, QFX) | references/juniper.md | Detallada |
| MikroTik RouterOS | references/mikrotik.md | Detallada |
| Check Point Gaia | references/checkpoint.md | Estándar |
| Huawei VRP / USG (también H3C Comware, similar) | references/huawei.md | Estándar |
| Aruba / HPE (AOS-CX, ProCurve) | references/aruba.md | Estándar |
| Arista EOS | references/arista.md | Breve |
| SonicWall, VyOS/EdgeOS, pfSense/OPNsense, Sophos, UniFi | references/others.md | Breve |
| Linux (UFW/nftables/iptables), Firewall de Windows, AWS/Azure/GCP, Kubernetes | references/host-cloud.md | Estándar |
| Cualquier cambio en un dispositivo en vivo / existente | references/change-workflow.md | — |
| Cualquier cosa con IPv6 o doble pila | references/ipv6.md + el archivo de la plataforma | — |
| El usuario pega una configuración (o pregunta cómo compartir una) | references/sanitizing-configs.md | — |
| Revisar / auditar una configuración | references/audit-checklist.md + el archivo de la plataforma | — |
| Convertir una configuración entre proveedores | references/migration-guide.md + ambos archivos de plataforma | — |
Flujo de Trabajo
0. Dimensionar la solicitud
- Pregunta rápida ("comando para mostrar vecinos BGP", "¿qué significa esta línea"): simplemente responde, con la advertencia de versión si es relevante. Ninguno de los pasos a continuación.
- Nueva construcción / laboratorio / campo verde (sin configuración existente con la que entrar en conflicto): pasos 1, 2 y la estructura de salida a continuación, sin el paso de recolección de estado.
- Cambio en un dispositivo existente / en vivo (el valor predeterminado cada vez que el usuario está cambiando algo que está funcionando): sigue el flujo de trabajo de cambio en dispositivo existente a continuación y lee
references/change-workflow.mdpara los comandos por proveedor.
1. Identificar proveedor, plataforma y versión del SO
La sintaxis difiere mucho entre versiones (por ejemplo, FortiOS 6.x vs 7.x, ASA pre/post NAT 8.3, RouterOS v6 vs v7, virtual-router vs logical-router de PAN-OS, firewall VyOS 1.3 vs 1.4). Si el usuario pegó una configuración, detecta el proveedor a partir de ella (tabla a continuación). Si la versión es desconocida y los comandos son para un dispositivo en vivo, pregúntala antes de escribir comandos, con el comando único que la muestra (show version, get system status, show system info, /system resource print, display version). Solo si el usuario no puede verificar o dice que continúes de todos modos, o la solicitud es un laboratorio, explicación o revisión: indica la versión que asumiste y marca cada comando sensible a la versión ("sintaxis 7.4.1+; en 7.2 usa …").
2. Aclarar solo lo que realmente necesitas
Interfaces/zonas, plan IP, peers, qué ruta usa el usuario para gestionar el dispositivo. De lo contrario, usa marcadores de posición claros y declara las suposiciones. Pregunta en un mensaje, no en un goteo de preguntas.
3. Flujo de trabajo de cambio en dispositivo existente
- Recolectar estado (solo lectura). Antes de proponer cambios, obtén las partes de la configuración en ejecución que el cambio toca: interfaces relevantes, rutas, políticas/ACLs existentes y su orden, modo NAT, objetos con nombres similares, la ruta de gestión, estado de HA/clúster. Da los comandos exactos de solo lectura (por proveedor en
change-workflow.md) y pide la salida — o trabaja a partir de una configuración que el usuario ya haya pegado. Mantenlo proporcionado: pregunta solo por lo que podría entrar en conflicto. Si el usuario no puede proporcionarlo, procede pero enumera cada suposición sobre la configuración existente como un riesgo a verificar. - Proponer un diff mínimo. Cambia solo lo que el objetivo necesita. Preséntalo como Agregar / Modificar / Eliminar contra la configuración actual, y señala conflictos: nombres de objetos duplicados o ID de reglas, una regla anterior que sombrea la nueva, subredes/VIPs superpuestas, NAT ya en uso, una ruta que sería anulada. Nunca sobrescribas silenciosamente un objeto existente.
- Preparar la recuperación. Cualquier edición adyacente a la gestión (ACL de WAN/gestión, acceso VTY/SSH,
allowaccess/hosts de confianza, rutas a la red de administración) va bajo una reversión armada, y no se guarda nada hasta después del paso de confirmación. Comando de respaldo, la reversión automática de la plataforma armada antes del paso riesgoso, comandos exactos de confirmación y cancelación, y qué restaura la configuración en ejecución vs la configuración guardada/de inicio (difieren: en Cisco unwrite memoryantes dereload cancelhace que unreload inrestaure la configuración nueva). Di qué sigue funcionando si la sesión se cae. - Aplicar en fases. Un bloque de código por fase; cualquier cosa que toque la ruta de gestión, el enrutamiento a la red de gestión, o HA obtiene su propio bloque con un paso de verificación después. La creación de objetos de bajo riesgo puede compartir un bloque.
- Probar con una matriz de aceptación (a continuación): qué debe funcionar ahora y qué debe seguir bloqueado.
- Guardar / confirmar permanentemente solo después de que la verificación pase, luego elimina el temporizador de reversión y registra lo que cambió.
4. Estructura de salida para cualquier cambio
- Suposiciones y conflictos – una tabla: Elemento | Encontrado / Asumido | Acción. Proveedor/versión, la ruta de gestión y cada conflicto encontrado (o a verificar) aparecen aquí una vez; no los repitas en prosa en otro lugar. Menciona la profundidad de cobertura solo si no es Detallada.
- Plan de cambio – Agregar / Modificar / Eliminar, solo cuando algo existente se modifica o elimina (saltarlo para una construcción completamente nueva: la configuración ya lo dice).
- Recuperación – como máximo tres viñetas: comando de respaldo, cómo guarda esta plataforma (en ejecución vs guardada), y la reversión armada con sus comandos de confirmar/cancelar (o por qué no se necesita ninguna).
- Configuración – un bloque de código por fase (por dispositivo), en un orden válido (objetos antes que las políticas que los referencian), cada fase seguida de una verificación de una línea. La Fase 0 verifica solo lectura solo para resultados que cambian lo que se pega, cada una con qué buscar ("si aparece X, usa Y").
- Matriz de aceptación – Origen | Destino | Servicio | Esperado | Cómo probar, aproximadamente 6 filas: los nuevos flujos, al menos un flujo que debe permanecer bloqueado, acceso de gestión y un servicio existente que debe seguir funcionando.
- Guardar y revertir – el comando de guardar/confirmar (después de confirmar) y la cancelación exacta por fase, válidos después de la última fase.
Mantenlo ajustado: sin hechos repetidos, extras opcionales (diseños alternativos, hardening adicional, una tabla larga de solución de problemas) como indicaciones de una línea que el usuario puede solicitar. Señala el riesgo claramente: cualquier cosa en la ruta de gestión, HA, o que necesite un reinicio.
Convenciones
- Usa IPs de documentación RFC 5737 (
192.0.2.0/24,198.51.100.0/24,203.0.113.0/24) y RFC 1918 para LANs a menos que el usuario dé valores reales. Pon secretos como<PSK>/<PASSWORD>— nunca inventes secretos de aspecto real. - Usa la nomenclatura de interfaces del propio proveedor (
GigabitEthernet0/0,port1,ethernet1/1,ge-0/0/0,ether1,1/1/1). - Recomienda criptografía moderna: IKEv2, AES-256 (o AES-GCM), SHA-256+, grupo DH 14/19/20/21. Señala DES/3DES/MD5/SHA-1/DH 1/2/5, Telnet, gestión HTTP, SNMPv1/v2c con
public, como debilidades. - Si no estás seguro de que exista un comando en la versión indicada, dilo y da el comando para verificar (
?, tab-completar,show ... | ?) en lugar de adivinar en silencio. - Nunca pongas comentarios al final (
! ...,# ...) en la misma línea que un comando que el usuario pegará — muchos CLIs (modo exec de IOS, FortiOS) los rechazan o los malinterpretan. Pon las notas en su propia línea o fuera del bloque de código. No dejes líneas<PLACEHOLDER>dentro de un bloque de pegado sin decir claramente cuáles deben editarse primero. - Secuencia los cambios para que cada paso de prueba sea realmente posible en ese punto. Por ejemplo, en Cisco: crea el nuevo usuario local y cambia VTY a
login local(o AAA) primero, mantén el transporte antiguo hasta que se verifique, prueba desde una nueva sesión, y solo entonces elimina el usuario/contraseña antiguo o Telnet. Nunca elimines la credencial antigua en el mismo paso. - No confíes en que los valores predeterminados de fábrica estén intactos. Si el usuario pide una configuración completa, incluye cada elemento que solicitó (por ejemplo, NAT de enmascaramiento, ruta predeterminada), o agrégalo condicionalmente con un comando de verificación (
/ip firewall nat print,show run | i nat). Di qué valores predeterminados asumiste. - Autoverificación antes de responder: recorre cada verificación/prueba que enumeras contra las reglas que acabas de escribir (incluido el orden de reglas). Por ejemplo, si los invitados no deben hacer ping al router, un
accept icmpanterior en la entrada rompe eso. Corrige la configuración o la expectativa para que coincidan. - Prefiere la ruta menos disruptiva. No recomiendes un restablecimiento de fábrica / sin valores predeterminados, reinicio o reemplazo completo de configuración a menos que el usuario lo haya solicitado o no haya una forma incremental, y si lo haces, di qué borra y la interrupción que causa.
- Los consejos de reversión deben seguir funcionando después de cada paso. Vuelve a verificar las instrucciones de reversión/recuperación contra el estado final (por ejemplo, después de que la gestión se restrinja a una VLAN, "reconectar en cualquier puerto" ya no es cierto). Da la reversión por fase cuando el plan tenga fases.
- Divide los pegas en la ruta de gestión. Un paso que mueve o re-puentea la interfaz a través de la cual el usuario está conectado va en su propio bloque, de modo que una sesión caída no pueda truncar el resto de un pegado.
- Solo indica sintaxis y comportamiento de los que estés seguro; de lo contrario márcalo como "verificar con
?" en lugar de presentar una suposición como hecho. - Recuerda los comportamientos implícitos: la mayoría de los firewalls terminan con denegación implícita; Cisco ASA permite tráfico de seguridad alto→bajo de forma predeterminada sin ACL; las ACL de Cisco terminan con
deny anyimplícito; Junos BGP de forma predeterminada anuncia solo rutas BGP activas (estáticas/directas/OSPF necesitan una política de exportación) y no cumple con RFC 8212 de forma predeterminada — acepta y re-anuncia todo a los pares EBGP a menos que configures políticas de importación/exportación (oprotocols bgp defaults ebgp no-policy, 20.3R1+).
Los comandos en esta habilidad se verificaron contra la documentación del proveedor en noviembre de 2026. El comportamiento específico de la versión aún cambia entre lanzamientos — cuando un detalle importa (sintaxis de depuración, licencias, eliminación de características), dile al usuario a qué versión aplica y cómo confirmarlo en el equipo.
Reconocer el proveedor a partir de la configuración pegada
| Pista en el texto | Plataforma |
|---|---|
interface GigabitEthernet0/1, ip address x mask, router ospf 1, separadores ! | Cisco IOS/IOS-XE (Arista EOS se ve similar pero usa Ethernet1, management api) |
feature ospf, vrf context, ip address 10.0.0.1/24 en sintaxis similar a Cisco | Cisco NX-OS |
nameif, security-level, object network, access-group ... in interface | Cisco ASA (o CLI de diagnóstico FTD) |
config firewall policy … edit … set … next … end | FortiGate FortiOS |
set rulebase security rules, set network interface ethernet ethernet1/1, XML <config> | Palo Alto PAN-OS |
set security zones security-zone, ge-0/0/0 unit 0 family inet, jerarquía { } | Juniper Junos |
/ip address add, /interface bridge, chain=srcnat | MikroTik RouterOS |
set interface eth1 ipv4-address, mgmt_cli, fw ctl | Check Point Gaia |
system-view, sysname, undo, display, Vlanif10 | Huawei VRP (H3C Comware es muy similar) |
interface 1/1/1, vlan access 10, no routing | Aruba AOS-CX |
set interfaces ethernet eth0 address, set nat source rule | VyOS / Ubiquiti EdgeOS |
table inet filter, chain input { type filter hook input | Linux nftables |
-A INPUT, -j ACCEPT, *filter | Linux iptables |
Mapa de conceptos entre proveedores
| Tarea | Cisco IOS | ASA | FortiGate | PAN-OS | Junos | MikroTik | Huawei |
|---|---|---|---|---|---|---|---|
| Ingresar configuración | conf t | conf t | config <section> | configure | configure | (ruta) /ip ... | system-view |
| Guardar | write memory | write memory | auto en end | commit | commit | auto | save |
| Negar | no ... | no ... | unset / delete | delete ... | delete ... | remove | undo ... |
| Mostrar configuración | show run | show run | show / show full-configuration | show (modo config) | show | display set | /export | display current-configuration |
| Coincidencia de reglas | ACL de arriba a abajo, denegación implícita | ACL + nivel de seguridad | política de arriba a abajo por par de interfaces, denegación implícita | reglas de arriba a abajo por zonas, denegación predeterminada entre zonas | política por par de zonas, denegación predeterminada | cadenas de filtro de arriba a abajo, ¡aceptación predeterminada! | ACL / política de seguridad |
| Objetos de dirección | object-group network | object network | config firewall address | set address | security address-book | address-list | ip address-set |
| Máscaras | subred en ip address, comodín en ACL/OSPF | máscara de subred | máscara de subred o /len | /len | /len | /len | comodín en ACL/OSPF |
| Red de seguridad | reload in 10 / configure replace ... | reload in 10 / configure revert timer 10 | execute rollback ... | commit confirmed | commit confirmed | /system scheduler ... | rollback timer ... |