Raspberry Pi – konfiguracja multicast DNS

Często instalując świeży system na karcie pamięci Raspberry musimy zaraz po uruchomieniu przeskanować siec w poszukiwaniu adresu IP, który został przydzielony do naszej malinki. Nie wszyscy o tym wiedzą, ale nowe raspbiany (nawet wersja lite) mają już zainstalowane specjalne daemony które sprawiają, że nie trzeba już sprawdzać adresów IP przydzielonych przez DHCP albo ustawiać stałego adresu. W dzisiejszym artykule pokażę Wam w jaki sposób skonfigurować swój komputer oraz malinkę do obsługi mDNS.

Instalacja daemona na starszych systemach

Jeżeli od dawna nie aktualizowaliśmy naszego raspbiana to możliwe, że nie mamy w systeme zainstalowanej odpowiedniej paczki do obsługi mDNS. W celu jej instalacji należy wpisać do konsoli

sudo apt-get update
sudo apt-get upgrade

sudo apt-get install avahi-daemon

Od teraz malinka (jak i dowolny linux) powinna wspierać mDNS (nie jest wymagany restart systemu).

Połączenie z malinką

Domyślnym hostem w raspbianie jest raspberrypi. Aby połączyć się z malinką przez mDNS wystarczy wpisać zamiast adresu IP nazwę raspberrypi.local

Niestety Windows nie ogarnie

O ile większość nowoczesnych systemów operacyjnych wspiera obsługę mDNS out-of-box to w przypadku Windowsa nawet najnowszy konsumencki build Windowsa 10 nie daje rady. W tym celu musimy mu nieco pomóc, a mianowicie zainstalować odpowiedni serwis do odkrywania hostów mDNS. Świetnie nada się do tego Bonjour. Jest to serwis stworzony przez Apple do obsługi tzw. zero-configuration networking, w którym to pojęciu zawiera się również obsługa mDNS.

Wystarczy pobrać instalator ze strony Apple, zainstalować Bonjour i uruchomić ponownie komputer. Od teraz możemy pingować adres raspberrypi.local (zostanie nam zwrócony prawdopodobnie adres IPv6).

Zmiana nazwy hosta

Co jeżeli chcemy postawić kilka malinek? Przecież wszystkie nie mogą mieć adresu raspberrypi.local. Tak się składa, że adres .local jest tworzony na podstawie nazwy hosta, dlatego żeby ją zmienić wystarczy zmienić nazwę malinki.

W tym celu musimy edytować dwa pliki. Pierwszy z nich to /etc/hosts, w którym musimy znaleźć linijkę o takiej treści:

127.0.1.1       raspberrypi

Aby edytować ten plik wpisujemy w konsoli

sudo nano /etc/hosts

Ja zmienię swoją nazwę na krupsonpi, dlatego też przerabiam powyższą linijkę na

127.0.1.1       krupsonpi

Edycja tego pliku zasadniczo nie jest wymagana, ale niektóre programy, które odwołują się po nazwie hosta mogłyby przestać działać poprawnie.

Teraz edytujemy właściwy plik hostname:

sudo nano /etc/hostname

Cała jego zawartość to nazwa hosta, dlatego ja wpisuję tam krupsonpi zamiast raspberrypi i zapisuję.

Teraz można zrestartować system:

sudo reboot

Koniec

Po wykonaniu tych kroków możemy bez problemu łączyć się malinką po nazwie hosta. W moim przypadku wystarczy np. w przeglądarkę wpisać http://krupsonpi.local/, aby dobrać się do zasobów serwera Apache postawionego na malinie.

Taka nazwa jest bardzo przydatna jeżeli często przełączamy malinkę do różnych sieci. Mi np. czasem zdarza się podłączyć ją u dziewczyny, która ma adres sieci 192.168.55.0 podczas gdy u mnie jest to  192.168.1.0. Stały adres IP nie wchodzi tu w grę bez kombinowania z routingami, dlatego też postanowiłem pozostać przy dynamicznie przydzielanym z DHCP ukrytym pod łatwym do zapamiętania adresem .local :)