Oczywiście, wspomniałem o tym wyżej zanim zrodziło się pytanie
Biorąc pod lupę zaproponowane rozwiązanie, wdrożyłem je u siebie i przetestowałem.lesny8 pisze: ↑ndz gru 09, 2018 11:08 am Myślę bardziej nad tym czy nie utworzyć na malinie jakiegoś serwera DNS i na nim statyczny wpis i rozdawać adres malinki jako pierwszy serwer DNS przez DHCP. Wtedy obeszło by się bez konfigurowania statycznych wpisów w plikach hosts na maszynach, które łączą się po domenie.
Poniżej instrukcja jak to prosto uruchomić.
Mamy RPI z zainstalowanym dockerem, więc dlaczego by tego nie wykorzystać? Znalazłem ciekawy obraz z wbudowanym panelem do zarządzania, który idealnie nada się dla ostatecznego rozwiązania problemu z ograniczeniami jakie stawia FunBox i podobne routery.
Nie wystarczy pobrać obrazu i odpalić kontenera, bo ten obraz nie trawi architektury i kontener się restartuje, zbudujemy zatem sobie obraz sami.
Logujemy się na malinę i klonujemy git-a
Kod: Zaznacz cały
git clone https://github.com/sameersbn/docker-bind
Edytujemy
Kod: Zaznacz cały
cd docker-bind
nano Dockerfile
Kod: Zaznacz cały
WEBMIN_VERSION=1.9 \
Kod: Zaznacz cały
docker build -t sameersbn/bind .
Po pomyślnym zbudowaniu obrazu, możemy uruchomić kontener. Moglibyśmy skorzystać z docker-compose, ale tak też jak najbardziej można
Kod: Zaznacz cały
docker run -d --name=bind --restart always --dns=8.8.8.8 \
-p 53:53/udp -p 10000:10000 \
--volume=/srv/docker/bind:/data \
--env='ROOT_PASSWORD=silnehaslo' \
sameersbn/bind:latest
--dns=8.8.8.8 DNS do którego odpytywać będzie nasz bind, możemy zmienić na jaki chcemy może być orangowy 194.204.152.34, który znajdziemy w konfiguracji routera, osobiście zostawiłbym DNS googla.
--volume=/srv/docker/bind:/data podmontowanie lokalnych zasobów, aby dane nie umarły razem z kontenerem
--env='ROOT_PASSWORD=silnehaslo' hasło dla użytkownika root do panelu webmin
Po uruchomieniu kontenera sprawdzamy sobie, czy działa kierując zapytanie na bramkę binda
Kod: Zaznacz cały
docker ps
docker logs bind
host www.google.pl 172.17.0.1
Kod: Zaznacz cały
Using domain server:
Name: 172.17.0.1
Address: 172.17.0.1#53
Aliases:
www.google.pl has address 172.217.20.195
www.google.pl has IPv6 address 2a00:1450:401b:806::2003
Przechodzimy do przeglądarki internetowej i logujemy się poprzez https do webmina przy użyciu silnego hasła przekazanego wcześniej w zmiennej podczas uruchamiania kontenera
https://192.168.0.2:10000
Teraz miało być kilka obrazków, ale post ma ograniczenie w załącznikach do 3 więc musiałem spakować. 01. Wybieramy BIND DNS Server,
02. Przechodzimy do ustawień dostępu,
03. Ustawiamy dostęp do naszego serwera dla naszej klasy adresowej i lokalnych sieci na malinie,
04. Przechodzimy do ustawień domyślnych strefy,
05. Włączamy dostęp dla zdefiniowanej listy,
06. Tworzymy naszą główną strefę,
07. Podajemy nazwę domeny, nameserver i adres mail, tworzymy wpis,
08. Przechodzimy do dodawania adresów w strefie,
09. Wprowadzamy namserver, adres IP naszego RPI i tworzymy wpis,
10. Wracamy do edycji strefy,
11. Przechodzimy do dodawania subdomen,
12. Podajemy nazwy subdomen i wskazujemy na nameserver, i na końcu kropka,
13. j.w.
14. Zatwierdzamy konfigurację,
Możemy teraz sprawdzić czy na RPI dostaniemy rozwiązanie naszych subdomen kierując tym razem zapytanie na interfejs maliny
Kod: Zaznacz cały
host cloud.noip.pl 192.168.0.2
Kod: Zaznacz cały
Using domain server:
Name: 192.168.0.2
Address: 192.168.0.2#53
Aliases:
cloud.noip.pl is an alias for ns.noip.pl.
ns.noip.pl has address 192.168.0.2
Kod: Zaznacz cały
host scripts.noip.pl 192.168.0.2
Kod: Zaznacz cały
Using domain server:
Name: 192.168.0.2
Address: 192.168.0.2#53
Aliases:
scripts.noip.pl is an alias for ns.noip.pl.
ns.noip.pl has address 192.168.0.2
Kod: Zaznacz cały
host www.google.com 192.168.0.2
Using domain server:
Name: 192.168.0.2
Address: 192.168.0.2#53
Aliases:
www.google.com has address 216.58.215.68
www.google.com has IPv6 address 2a00:1450:401b:806::2004
Będąc poza domem uruchamiając na czymkolwiek cloud.noip.pl i scripts.noip.pl, DNS operatora rozwiąże nam nazwę i trafimy przez przekierowane porty do proxy i tam do odpowiedniego kontenera. Będąc w domu natomiast w sieci LAN te same domeny będzie rozwiązywać nam nasz bind, dzięki czemu można ostatecznie stwierdzić, że NAT Loopback nie jest nam w routerach już taki niezbędny
P.S.
1. Wcześniejsze zmiany w plikach hosts można śmiało wycofać.
2. Trzeba mieć świadomość, że po zgaszeniu maliny braknie nam internetu