Vés al contingut
26-04-2023

LANRecentment, vaig adquirir un Raspberry i vaig configurar un petit servidor a casa amb el servidor Ubuntu. També vaig comprar un nom de domini, vaig contractar una IP fixa amb el meu proveïdor, vaig obrir un port ssh i vaig començar a poder accedir al meu servidor domèstic des de qualsevol lloc.

Però em vaig adonar que no podia accedir al meu servidor mitjançant el nom de domini quan estava connectat a la meva xarxa local. Per exemple, des d'una tauleta, un telèfon mòbil o un altre ordinador connectat mitjançant Wifi a la meva xarxa local. Crec que això és així perquè l'encaminador de xarxa local assigna una adreça IP al servidor que és diferent de l'adreça IP fixa associada al nom de domini.

Això es podria resoldre fàcilment assignant noms de domini a IP locals a la configuració de l'encaminador, però va resultar que el meu proveïdor d'Internet ho bloqueja als encaminadors que instal·len. El motiu és evitar que la gent canviï el seu DNS (servidor de noms de domini) i creï problemes per resoldre. Així que vaig haver de pensar en una manera de crear un DNS alternatiu a la meva xarxa local.

Una possibilitat és definir el nom a cada dispositiu que es vulgui connectar. Això no és massa pràctic, i si apareix un dispositiu nou, s'haurà de pensar de configurar-lo. A més segons quin dispositiu es tracti, no és trivial fer-ho (per exemple a dispositius Android). L'alternativa és tenir un servidor DHCP separat del router, i assignar els DNS de forma centralitzada en aquest servidor DHCP. Per tant vaig decidir instalar-ho a la Raspberry.

Primer vaig provar d'utilitzar isc-dhcp-server i vaig aconseguir que distribuís les IP a la LAN, però no vaig trobar una manera de definir noms de domini als dispositius de la LAN. Així que ho vaig provar amb dnsmasq. Així doncs, aquí teniu els passos que s'han de fer.

El meu servidor està protegit amb un tallafoc proporcionat per ufw, amb només dos ports oberts, un per a ssh i l'altre per a html. Així que vaig haver d'obrir els ports per als servidors DHCP i DNS:

sudo ufw allow bootps

sudo ufw allow 53/udp

sudo ufw allow 53/tcp

sudo ufw allow 67/udp

sudo ufw allow 67/tcp

El següent pas és deixar de gestionar la resolució de noms de systemd, ja que utilitza el mateix port (53) que utilitzarà el nou servidor DHCP/DNS:

sudo systemctl disable systemd-resolved 

sudo systemctl stop systemd-resolved 

sudo unlink /etc/resolv.conf

L'últim pas elimina un enllaç simbòlic amb el fitxer resolv.conf generat per systemd. Per tant, s'ha de crear un fitxer nou:

echo nameserver 8.8.8.8 | sudo tee /etc/resolv.conf

Aquí el servidor de noms que s'utilitza és el servidor de noms de Google, però podeu utilitzar qualsevol altre servidor de noms que vulgueu.

L'últim pas consisteix a instal·lar i configurar el paquet dnsmasq:

sudo apt install dnsmasq

Per configurar-lo, heu d'editar el seu fitxer de configuració /etc/dnsmasq.conf. Aquestes primeres són les línies que s'han de deixar de comentar i/o canviar:

domain-name

bogus-priv

strict-order

expand-hosts

Podeu definir un nom de domini general a la vostra LAN, de manera que identifiqueu els vostres dispositius amb un subdomini:

local=/mylan.eu/

domain=mylan.eu

El meu Raspberry s'assigna 192.168.1.18 per l'encaminador d'Internet, de manera que aquesta línia indicarà on ha d'escoltar el trànsit de xarxa d'Internet:

listen-address=::1,127.0.0.1,192.168.1.18

La línia següent defineix l'interval d'IP que assignarà el nou servidor DHCP, així com el temps d'arrendament per a la IP assignada:

dhcp-range=192.168.1.150,192.168.1.250,255.255.255.0,12h

Aquestes IP són diferents de les que assigna l'encaminador d'Internet (de 192.168.1.1 a 192.168.1.149). El servidor DCHP de l'encaminador d'Internet es podria desactivar un cop s'executa el nou servidor DHCP, però en el meu cas, si el desactivo i reinicio el Raspberry, no se li assigna una IP i perd la connexió a Internet. He d'investigar-ho més perquè és possible solucionar-ho. Per tant, mantinc els dos servidors DHCP en funcionament i la línia següent indica a la LAN que s'ha de donar prioritat al servidor DHCP de Raspberry:

dhcp-authoritative

Això és tot per a la configuració de dnsmasq. L'últim pas consisteix a establir les assignacions IP. Això es fa al fitxer /etc/hosts. Tinc una instància nextcloud al Raspberry. Així que he afegit la línia següent en aquest fitxer:

192.168.1.18 mydomain.eu nextcloud.mydomain.eu

I ja està. Després d'iniciar el servei dnsmasq al servidor Raspberry, aquest servidor DHCP comença a assignar IPs per a tots els dispositius de la meva LAN, i el domini "mydomain.eu" funciona per identificar dispositius dins de la xarxa d'àrea local.

Funciona amb el Drupal

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer