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 :)