Raspberry Pi – dynamiczny DNS

Cześć, kiedyś pisałem artykuło tym, jak postawić serwer OpenVPN na malince. W przypadku, kiedy mieliśmy zmienny IP wymagało to od nas skonfigurowania usługi tzw. dynamicznego DNSu. W artykule pokazałem jak to zrobić na przykładzie routera firmy TP-Link. Co jednak, jeżeli nasz router nie udostępnia takiej opcji? Dziś pokażę Wam jak malinka może nam w tym pomóc :)

Po co mi dynamiczny DNS?

Jeżeli mamy stały adres IP i chcemy uruchomić w swojej sieci jakiś serwer widoczny z sieci Internet to wystarczy odpowiednio przekierować porty w routerze, sprawdzić adres IP i voila! Gotowe – nasza usługa zawsze będzie widoczna pod tym samym adresem. Jeżeli jednak mamy zamienny adres IP (co w przypadku, kiedy nie jesteśmy klientami biznesowymi jest prawie pewne) i chcemy zrobić coś podobnego to pojawia się problem. Adres IP może się zmienić i znów będziemy musieli sprawdzać jaki adres ma nasz serwer zanim się z nim połączymy. Ratunkiem na to jest właśnie dynamiczny DNS. Usługa ta polega na tym, że dostawca dynamicznego DNSu daje nam domenę, która po wykonaniu odpowiednich czynności będzie zawsze wskazywała na aktualny adres naszej sieci. Aby było to możliwe musimy postawić na którymś ze swoich komputerów klienta, który będzie co jakiś czas informował dostawcę usługi o aktualnym adresie IP na któy wskazywać ma dana domena. Idealnym komputerem do tego celu będzie Raspberry Pi.

Wybór usługodawcy, utworzenie domeny

Najpopularniejszym (a zarazem darmowym) dostawcą usługi dynamicznego DNSu jest no-ip. W artykule opisuję konfigurację właśnie ich klienta.

Po rejestracji w serwisie wchodzimy w link „My account”, następnie dodajemy nowy „No-IP hostname”

Instalacja klienta na RPi

Pobieramy paczkę z programem za pomocą polecenia wget:

wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz

po ściągnięciu rozpakowujemy jej zawartość:

tar xzf noip-duc-linux.tar.gz

przechodzimy do katalogu, który się wypakował. U mnie jest to noip-2.1.9-1

cd noip-2.1.9-1

Możemy wpisać sam początek, czyli cd no, a następnie wcisnąć klawisz Tab. System powinien sam dopełnić ścieżkę.

Teraz kompilujemy i instalujemy program:

sudo make
sudo make install

Konfiguracja

Po instalacji zostaniemy zapytani o dane logowania oraz jakie domeny chcemy, aby były odświeżane przez tego klienta.

Auto configuration for Linux client of no-ip.com.

Please enter the login/email string for no-ip.com  nasze_konto
Please enter the password for user 'nasze_konto'  *************

Only one host [krupson-rpi.ddns.net] is registered to this account.
It will be used.
Please enter an update interval:[30]
Do you wish to run something at successful update?[N] (y/N)

Dodajemy serwis

Aby klient uruchamiał się automatycznie z systemem musimy dodać odpowiedni skrypt. W tym celu wpisujemy w konsoli

sudo cp debian.noip2.sh /etc/init.d/noip2.sh
sudo nano /etc/init.d/noip2.sh

i na początek pliku noip2.sh zamiast komentarzy, które tam są doklejamy następującą treść:

#!/bin/sh
#
### BEGIN INIT INFO
# Provides:          noip2.sh
# Required-Start:    $remote_fs $local_fs
# Required-Stop:     $remote_fs $local_fs
# Should-Start:
# Should-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: No-IP client
# Description:
### END INIT INFO

U mnie wygląda to tak:

Więcej o tym co tu się właśnie stało można przeczytać w tym artykule.

Następnie zapisujemy plik i wychodzimy z edytora. Teraz musimy nadać uprawnienia do wykonywania dla tego pliku:

sudo chmod +x /etc/init.d/noip2.sh

Ostatnim krokiem jest dodanie serwisu do auto-startu poprzez polecenie

sudo update-rc.d noip2.sh defaults

Serwis uruchomi się automatycznie po reboocie malinki. Możemy zrobić to też manualnie poprzez wpisanie komendy

sudo service noip2 start

Od teraz adres naszego serwera ukryty pod domeną no-ip powinien być automatycznie aktualizowany przez malinkę :)

2 myśli nt. „Raspberry Pi – dynamiczny DNS

  1. pm7

    No-ip może jest darmowe, ale z tego co pamiętam agresywnie reklamowali płatną wersję i wymagali logowania się co kilka miesięcy pod groźbą usunięcia subdomeny. Sugerowałbym zobaczyć innych dostawców, ja np. przeszedłem do afraid.org.

    Fajne jest sobie skonfigurować ddns bezpośrednio na routerze z openwrt, wtedy po zmianie IP router może zareagować dużo szybciej niż malina.

    „dostawca dynamicznego DNSu daje nam domenę” – według mnie „subdomenę”.

    Odpowiedz
    1. Kamil Autor wpisu

      Owszem, na routerze dużo szybciej to pójdzie, ale tak jak na wstępnie napisałem nie wszyscy mają dostęp do panelu administracyjnego routera / router, który ma funkcję DDNS. Co do innych dostawców to chodzi mi po głowie pomysł, żeby opisać jak samemu sobie coś takiego ogarnąć na wynajętej infrastrukturze (np. na mydevilu jest fajna opcja zarządzania całym kontem w tym rekordami DNS via SSH)

      PS. subdomena tez jest domeną :)

      Odpowiedz

Dodaj komentarz

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.