Integracja z ISPmanager
NexDNS jest w pełni kompatybilny z API DNSmanager, dzięki czemu możesz podłączyć NexDNS do ISPmanager jako pomocniczy (slave) serwer DNS. ISPmanager pozostaje serwerem podstawowym i, gdy zezwolisz na transfer strefy (AXFR) z adresu IP źródłowego NexDNS, przesyła każdą strefę do NexDNS, więc nadal zarządzasz rekordami w ISPmanager. Pełne API domen i rekordów DNSmanager jest również dostępne do bezpośredniego użycia przez pojedynczy endpoint kompatybilności.
Punkt końcowy (endpoint)
Wszystkie wywołania API kompatybilności są kierowane przez pojedynczy endpoint:
https://api.nexdns.tech/dnsmgr
Autoryzacja
API kompatybilności uwierzytelnia się za pomocą dedykowanego loginu i sekretu integracji, które generujesz w NexDNS w sekcji Konto → Integracje (a nie hasłem do konta). ISPmanager wysyła je przy każdym zapytaniu; możesz też otworzyć sesję ręcznie funkcją func=auth i ponownie użyć zwróconego tokenu.
curl -X POST "https://api.nexdns.tech/dnsmgr?func=auth" \
-d "username=your_integration_login" \
-d "password=your_integration_secret"
Pomyślna odpowiedź (XML):
<doc><auth id="SESSION_ID"/></doc>
Możesz zażądać formatu wyjściowego JSON, dodając out=json do dowolnego zapytania. Powtarzające się nieudane próby logowania są tymczasowo ograniczane.
Obsługiwane funkcje
API kompatybilności kieruje operacje na podstawie parametru zapytania func:
| Funkcja | Opis |
|---|---|
auth |
Otwórz sesję za pomocą loginu i sekretu integracji |
domain |
Wyświetl wszystkie domeny uwierzytelnionego konta |
domain.edit |
Utwórz lub zaktualizuj domenę (z sok=ok); gdy ISPmanager wyśle adres IP swojego serwera podstawowego, NexDNS tworzy strefę pomocniczą przesyłaną z ISPmanager. Bez sok zwraca informacje o domenie |
domain.delete |
Usuń domenę (przekaż elid=nazwa.domeny) |
domain.refresh |
Wymuś natychmiastowe ponowne przesłanie strefy pomocniczej z ISPmanager (przekaż elid=nazwa.domeny). ISPmanager wywołuje to po zmianie rekordów |
domain.record |
Wyświetl rekordy domeny (przekaż elid=nazwa.domeny) |
domain.record.edit |
Utwórz lub zaktualizuj rekord (z sok=ok) |
domain.record.delete |
Usuń rekord (przekaż elid i rkey) |
dnsparam |
Pobierz konfigurację serwerów nazw dla Twojego konta |
slaveserver |
Wyświetl serwery nazw przypisane do Twoich stref |
Podłączanie ISPmanager do NexDNS
Aby połączyć ISPmanager z NexDNS:
- Zarejestruj konto NexDNS na nexdns.tech i wybierz plan obejmujący integrację z ISPmanager oraz pomocniczy DNS.
- Skonfiguruj integrację w NexDNS: otwórz Konto → Integracje, kliknij Wygeneruj sekret, a następnie włącz dostęp ISPmanager (domyślnie wyłączony). Ten kanał pomija uwierzytelnianie dwuskładnikowe, więc opcjonalnie ogranicz go do stałego adresu IP.
- W ISPmanager dodaj NexDNS jako pomocniczy (slave) serwer DNS dla swoich domen (Nazwy domen → pomocnicze serwery nazw).
-
Wprowadź dane połączenia:
- Adres URL:
https://api.nexdns.tech/dnsmgr - Login: Twój login integracji z sekcji Konto → Integracje
- Sekret: Twój sekret integracji
- Adres URL:
- Zezwól na transfer strefy (AXFR): na swoim podstawowym serwerze DNS zezwól na transfer strefy z adresu IP źródłowego NexDNS pokazanego w sekcji Konto → Integracje. Bez tego ISPmanager utworzy strefę podrzędną, ale pozostanie ona pusta.
ISPmanager pozostaje serwerem podstawowym i nadal zarządzasz rekordami w nim; NexDNS pobiera każdą strefę jako podrzędną przez AXFR. Jednorazowy krok po Twojej stronie: na swoim podstawowym serwerze DNS zezwól na transfer strefy (AXFR) z adresu IP źródłowego NexDNS pokazanego w sekcji Konto → Integracje, w przeciwnym razie strefy pozostaną puste. Uwierzytelnianie używa loginu i sekretu integracji z Konto → Integracje; upewnij się, że dostęp ISPmanager jest włączony, a Twój plan obejmuje DNS podrzędny.
Parametry rekordów
Podczas tworzenia lub aktualizacji rekordów za pomocą domain.record.edit używane są następujące parametry w zależności od typu rekordu:
| Typ | Parametry |
|---|---|
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 |
Przy aktualizacji przekaż rkey z istniejącym ID rekordu. Pomiń rkey (lub wyślij pusty), aby utworzyć nowy rekord.
Format wyjściowy
Domyślnie wszystkie odpowiedzi są zwracane jako XML. Dodaj out=json do dowolnego zapytania, aby otrzymać odpowiedzi JSON.
Zarządzanie kluczami API
Klucze API służą do autoryzacji zapytań do REST API NexDNS. Każdy klucz ma określony zakres uprawnień i może opcjonalnie mieć datę wygaśnięcia.
Tworzenie klucza API
Klucze API można tworzyć na dwa sposoby:
- Interfejs panelu: Przejdź do Ustawienia > Klucze API i kliknij „Utwórz klucz API"
- REST API:
POST /v1/account/api-keys(wymaga istniejącego klucza API)
Format klucza
Klucze API mają format nxd_ po którym następuje 40 losowych znaków alfanumerycznych. Pełny klucz jest wyświetlany tylko raz podczas tworzenia. NexDNS przechowuje wyłącznie zahaszowaną postać klucza, więc nie można go odzyskać w razie utraty.
nxd_aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789abcd
Uprawnienia
Każdy klucz API musi mieć przypisane co najmniej jedno uprawnienie. Dostępne uprawnienia:
| Uprawnienie | Zapewnia dostęp do |
|---|---|
zones.read |
Wyświetlanie stref, szczegółów stref, eksport stref, status DNSSEC |
zones.write |
Tworzenie stref, usuwanie stref, włączanie/wyłączanie DNSSEC |
records.read |
Wyświetlanie rekordów, podgląd poszczególnych rekordów |
records.write |
Tworzenie, aktualizowanie i usuwanie rekordów |
webhooks.read |
Wyświetlanie i podgląd webhooków |
webhooks.write |
Tworzenie, aktualizowanie i usuwanie webhooków |
Zalecamy nadawanie każdemu kluczowi tylko tych uprawnień, których potrzebuje.
Wygaśnięcie
Klucze API mogą opcjonalnie mieć datę wygaśnięcia. Po ustawionej dacie klucz przestanie działać (sprawdzane o północy UTC). Wygasłe klucze zwracają odpowiedź 401 Unauthorized.
Unieważnianie klucza
Możesz unieważnić dowolny klucz API w dowolnym momencie ze strony Ustawień lub za pomocą API. Unieważnienie jest natychmiastowe i trwałe – klucz jest usuwany, a nie dezaktywowany.
curl -X DELETE "https://api.nexdns.tech/v1/account/api-keys/{id}" \
-H "Authorization: Bearer nxd_your_api_key"
Wymagania planu
Dostęp do API wymaga planu subskrypcji zawierającego funkcję api_access.
Limit zapytań
API NexDNS egzekwuje limity zapytań, aby zapewnić sprawiedliwe użytkowanie i stabilność usługi. Limity zapytań są stosowane na konto użytkownika (nie na klucz API), więc używanie wielu kluczy API nie zwiększa limitu.
Limity
| Zakres | Wartość limitu | Okno | Polityka |
|---|---|---|---|
| Zapytania API | 60 |
1 minuta | Okno przesuwne |
Nieuwierzytelnione zapytania (lub zapytania z nieprawidłowymi kluczami) mają limit zapytań oparty na adresie IP.
Nagłówki limitów zapytań
Każda odpowiedź API zawiera nagłówki wskazujące bieżący status limitów zapytań:
| Nagłówek | Opis |
|---|---|
X-RateLimit-Limit |
Maksymalna liczba zapytań dozwolonych w oknie |
X-RateLimit-Remaining |
Liczba pozostałych zapytań w bieżącym oknie |
X-RateLimit-Reset |
Znacznik czasu Unix, kiedy okno limitu zapytań zostanie zresetowane |
Retry-After |
Sekundy do odczekania przed ponowną próbą (obecny tylko w odpowiedziach 429) |
Przekroczenie limitu
Po przekroczeniu limitu zapytań API zwraca 429 Too Many Requests:
{
"status": "error",
"error": {
"code": "rate_limit_exceeded",
"message": "Too many requests. Please retry after {timestamp}."
}
}