Dynamic DNS na MyDevil.net

Kiedyś przedstawiałem prosty sposób na przekierowywanie ruchu HTTP na adres IP, który jest zmienny. Jednak gdy hosting umożliwia zmianę rekordów DNS z poziomu shella, poszerza to znacznie możliwości. Można to zrobić na MyDevil.net
Powód do zmiany? Dorobiłem się w końcu routera, który ma trochę szersze możliwości konfiguracji (o czym jeszcze napiszę). Chodzi oczywiście o sprzęt kompatybilny z openwrt, czyli dystrybucją Linuxa na routery. Do tego cuda można doinstalować paczkę ddns-scripts i mieć wsparcie dla wielu serwisów Dynamic DNS, na przykład dla swojego 🙂

Działa to w ten sposób, że skrypt na routerze sprawdza swoje IP i porównuje go z rekordem A w zapisanej domenie. Jeśli się zgadza, to usypia się na parę minut. Jeśli nie, to wysyła Request HTTP z odpowiednimi parametrami.
Oczywiście nie jesteśmy ograniczeni tylko do routera, podobny skrypt możemy uklecić z pomocą curl i cron.

Przechodząc do szczegółów. Potrzebujemy czegoś po stronie klienta (routera), co wyśle nowy adres IP, oraz coś po stronie serwera, co przyjmie, zweryfikuje i zapisze nowy rekord w domenie.

Po stronie routera konfiguracja to dodanie paczki ddns-scripts i poniższy plik

Jak widać, potrzebujemy wygenerować hasło i skonfigurować właściwie domeny. Doradzam stworzenie nowej strefy DNS dla dynamicznej domeny, mniej można sobie naszkodzić w razie pomyłki. Potrzebujemy też jakiegoś adresu, pod który podepniemy skrypt po stronie serwera. Tutaj jest to switchdomain.nazwadomeny.com. Lepiej, by był to adres ze strefy, która nakierowuje na hosting, nie na dynamiczny adres.

Po stronie serwera skrypt wygląda tak. Jest napisany w NodeJS, ale może być w czymkolwiek innym. W MyDevil tworzy się nową stronę o typie NodeJS, wrzuca się skrypt do switchdomain.nazwadomeny.com/public_nodejs/app.js.

Jego działanie to sprawdzenie hasła (hardcoded), tego czy parametry IP i domain mają sens. Oraz oczywiście wywołanie prawdziwego skryptu, który zmienia rekord w domenie (dns_change). Tutaj już klasycznie bash.

Pierwszy parametr, to nazwa domeny, drugi to IP (opcjonalny). Skrypt zakłada, że nazwa strefy jest tożsama z nazwą domeny, choć tak być nie musi.

Na MyDevil.net mamy dostępny program o nazwie devil, którym możemy zmieniać parametry domeny. W tym przypadku są pobierane rekordy typu A (jednolinijkowiec Perl), a następnie kasowane. Na końcu dodawany jest nowy rekord z nowym adresem IP. Czas jego trwania to minuta (TTL 60). Jaki jest optymalny? Niezbyt długi, by skrócić czas propagacji do minimum.


 

Na koniec, dodatek reklamowy. MyDevil jest na tyle ciekawym hostingiem, że z czystym sumieniem mogę go polecać. W przypadku opłacania tam konta, można podać czyjś kod referencyjny, na przykład mój 🙂 Obniża to cenę kupującemu (o 10%), a mi daje parę groszy na przedłużanie usług.

Kod: BOMSZMOAID

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *