Integración con ISPmanager
NexDNS es totalmente compatible con la API de DNSmanager, por lo que puedes conectar NexDNS a ISPmanager como servidor DNS secundario (esclavo). ISPmanager sigue siendo el primario y, una vez que permitas la transferencia de zona (AXFR) desde la IP de origen de NexDNS, transfiere cada zona a NexDNS, de modo que continúas gestionando los registros en ISPmanager. La API completa de dominios y registros de DNSmanager también está disponible para uso directo a través de un único endpoint de compatibilidad.
Punto de acceso
Todas las llamadas a la API de compatibilidad se enrutan a través de un único endpoint:
https://api.nexdns.tech/dnsmgr
Autenticación
La API de compatibilidad se autentica con un inicio de sesión de integración y un secreto dedicados que generas en NexDNS en Cuenta → Integraciones (no la contraseña de tu cuenta). ISPmanager los envía en cada solicitud; también puedes abrir una sesión manualmente con la función func=auth y reutilizar el token devuelto.
curl -X POST "https://api.nexdns.tech/dnsmgr?func=auth" \
-d "username=your_integration_login" \
-d "password=your_integration_secret"
Respuesta exitosa (XML):
<doc><auth id="SESSION_ID"/></doc>
Puedes solicitar la salida en JSON agregando out=json a cualquier solicitud. Los intentos de inicio de sesión fallidos repetidos se limitan temporalmente.
Funciones compatibles
La API de compatibilidad despacha operaciones basándose en el parámetro de consulta func:
| Función | Descripción |
|---|---|
auth |
Abrir una sesión con el inicio de sesión de integración y el secreto |
domain |
Listar todos los dominios de la cuenta autenticada |
domain.edit |
Crear o actualizar un dominio (con sok=ok); cuando ISPmanager envía la IP de su maestro, NexDNS crea una zona secundaria que se transfiere desde ISPmanager. Sin sok, devuelve la información del dominio |
domain.delete |
Eliminar un dominio (pase elid=domain.name) |
domain.refresh |
Forzar a una zona secundaria a volver a transferirse desde ISPmanager de inmediato (pase elid=domain.name). ISPmanager llama a esto después de que cambian los registros |
domain.record |
Listar registros de un dominio (pase elid=domain.name) |
domain.record.edit |
Crear o actualizar un registro (con sok=ok) |
domain.record.delete |
Eliminar un registro (pase elid y rkey) |
dnsparam |
Obtener la configuración de servidores de nombres de tu cuenta |
slaveserver |
Listar los servidores de nombres asignados a tus zonas |
Conectar ISPmanager a NexDNS
Para conectar ISPmanager a NexDNS:
- Registra una cuenta NexDNS en nexdns.tech y elige un plan que incluya la integración con ISPmanager y DNS secundario.
- Configura la integración en NexDNS: abre Cuenta → Integraciones, haz clic en Generar secreto y luego activa el acceso de ISPmanager (desactivado por defecto). El canal omite la autenticación de dos factores, así que, opcionalmente, fíjalo a una dirección IP fija.
- En ISPmanager, añade NexDNS como servidor DNS secundario (esclavo) para tus dominios (Nombres de dominio → servidores de nombres secundarios).
-
Introduce los datos de conexión:
- Introduce la URL:
https://api.nexdns.tech/dnsmgr - Inicio de sesión: tu inicio de sesión de integración de Cuenta → Integraciones
- Secreto: tu secreto de integración
- Introduce la URL:
- Permite la transferencia de zona (AXFR): en tu servidor DNS primario, autoriza la transferencia de zona desde la IP de origen de NexDNS que se muestra en Cuenta → Integraciones. Sin esto, ISPmanager crea la zona secundaria pero permanece vacía.
ISPmanager sigue siendo el primario y usted continúa gestionando los registros allí; NexDNS obtiene cada zona como secundaria mediante AXFR. Paso único por su parte: en su servidor DNS primario, permita la transferencia de zona (AXFR) desde la IP de origen de NexDNS que se muestra en Cuenta → Integraciones; de lo contrario, las zonas aparecerán vacías. La autenticación usa el login y el secreto de integración de Cuenta → Integraciones; asegúrese de que el acceso de ISPmanager esté activado y de que su plan incluya DNS secundario.
Parámetros de registros
Al crear o actualizar registros a través de domain.record.edit, se utilizan los siguientes parámetros dependiendo del tipo de registro:
| Tipo | Parámetros |
|---|---|
A / AAAA |
name, ip (or value), ttl |
CNAME / NS / PTR |
name, value, ttl |
MX |
name, value, priority, ttl |
SRV |
name, value, priority, weight, port, ttl |
TXT |
name, value, ttl |
CAA |
name, caa_value (or value), flag, tag, ttl |
Para actualizaciones, pasa rkey con el ID del registro existente. Omite rkey (o envíalo vacío) para crear un nuevo registro.
Formato de salida
De forma predeterminada, todas las respuestas se devuelven como XML. Añade out=json a cualquier solicitud para recibir respuestas en JSON en su lugar.
Gestión de claves API
Las claves API se utilizan para autenticar solicitudes a la REST API de NexDNS. Cada clave tiene permisos específicos asignados y puede tener opcionalmente una fecha de expiración.
Crear una clave API
Puedes crear claves API de dos maneras:
- Panel UI: ve a Settings > API Keys y haz clic en "Create API Key"
- REST API:
POST /v1/account/api-keys(requiere una clave API existente)
Formato de clave
Las claves API siguen el formato nxd_ seguido de 40 caracteres alfanuméricos aleatorios. La clave completa se muestra solo una vez en el momento de la creación. NexDNS almacena únicamente una forma hasheada de la clave, por lo que no puede recuperarse si se pierde.
nxd_aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789abcd
Permisos
Cada clave API debe tener asignado al menos un permiso. Permisos disponibles:
| Permiso | Otorga acceso a |
|---|---|
zones.read |
Listar zonas, ver detalles de zonas, exportar zonas, ver estado DNSSEC |
zones.write |
Crear zonas, eliminar zonas, habilitar/deshabilitar DNSSEC |
records.read |
Listar registros, ver registros individuales |
records.write |
Crear, actualizar y eliminar registros |
webhooks.read |
Listar y ver webhooks |
webhooks.write |
Crear, actualizar y eliminar webhooks |
Recomendamos otorgar a cada clave solo los permisos que necesita.
Expiración
Las claves API pueden tener opcionalmente una fecha de expiración. Cuando se establece, la clave dejará de funcionar después de la fecha especificada (verificada a medianoche UTC). Las claves expiradas devuelven una respuesta 401 Unauthorized.
Revocar una clave
Puedes revocar cualquier clave API en cualquier momento desde la página de Ajustes o a través de la API. La revocación es inmediata y permanente – la clave se elimina, no se deshabilita.
curl -X DELETE "https://api.nexdns.tech/v1/account/api-keys/{id}" \
-H "Authorization: Bearer nxd_your_api_key"
Requisitos de plan
El acceso a la API requiere un plan de suscripción que incluya la función api_access.
Limitación de velocidad
La API de NexDNS aplica límites de velocidad para garantizar un uso justo y la estabilidad del servicio. Los límites se aplican por cuenta de usuario (no por clave API), por lo que usar múltiples claves API no aumenta tu límite.
Límites
| Alcance | Límite | Ventana | Política |
|---|---|---|---|
| Solicitudes API | 60 |
1 minuto | Ventana deslizante |
Las solicitudes no autenticadas (o con claves inválidas) se limitan por dirección IP.
Encabezados de límite de velocidad
Cada respuesta de la API incluye encabezados que indican el estado actual de tu límite de velocidad:
| Encabezado | Descripción |
|---|---|
X-RateLimit-Limit |
Número máximo de solicitudes permitidas en la ventana |
X-RateLimit-Remaining |
Número de solicitudes restantes en la ventana actual |
X-RateLimit-Reset |
Marca de tiempo Unix cuando se reinicia la ventana de límite de velocidad |
Retry-After |
Segundos a esperar antes de reintentar (solo presente en respuestas 429) |
Exceder el límite
Cuando se excede el límite de velocidad, la API devuelve 429 Too Many Requests:
{
"status": "error",
"error": {
"code": "rate_limit_exceeded",
"message": "Too many requests. Please retry after {timestamp}."
}
}