Domain στο τοπικό σας δίκτυο σε Debian Linux.

Έστηνα έναν Thin client σαν lightweight server, το οποίο τρέχει κάποια cron scripts.
'Ομως επειδή το στήνω για non tech-savvy άτομα ήθελα να είναι εύκολο στην διαχείρηση. Εφεξής θα το αναφέρω σαν server.

Έτσι είδα την λύση του avahi. Το avahi είναι μια mdns λύση που πρακτικά δημοσιεύει ένα domain στο τοπικό δίκτυό του και όσοι έχουν mdns client μπορούν να κάνουν resolve την ip αυτού. Δε η αρχική υλοποίηση ήταν το προτόκολλο Bonjour της Apple (άρα its a given ότι παίζει και σε MAC).

Υποστίριξη στην παρούσα φάση

Τα windows 10 το υποστιρίζουν (με τελευταίο update) και καθώς και ουκ ολίγα linux distros (Ubuntu, debian, Mint στανταρτ).

Αν δεν είστε σίγουροι ελέγξτε ότι στο linux μηχάνημα το οποίο θα έχει access στον server έχει την παρακάτω έγγραφή mdns4_minimal (μαζί με τις υπόλοιπες) στην ρύθμιση hosts στο αρχείο /etc/nsswitch.conf.

Ένα default config είναι:

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         files systemd
group:          files systemd
shadow:         files
gshadow:        files

hosts:          files mdns4_minimal [NOTFOUND=return] resolve dns myhostname
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

Παρατηρείστε το:

hosts:          files mdns4_minimal [NOTFOUND=return] resolve dns myhostname

Κατά 99% ΔΕΝ θα χρειαστεί να πειράξετε το /etc/nsswitch.conf .

Εγκατάσταση και Ρύθμιση στον server

Σε debian έτρεξα:

sudo apt-get install avahi-daemon libnss-mdns

Ίσως, να υπάρχει πρόβλημα αν συνυπάρχει το systemd-resolved επειδή ΚΑΙ αυτό υποστιρίζει mDNS. Στην περίπτωσή μου το αφαίρεσα (αν και δεν ήταν εγκατεστημένο). Ακόμα ΔΕΝ δοκίμασα περαιτέρω ρύθμιση του systemd-resolved ώστε να συνυπάρχει με το avahi.

sudo apt-get purge systemd-resolved
sudo service networking restart

Ενδεχομένως αν ρυθμιστεί να μην διαχερίζετε το mDNS το systemd-resolved να μην έχει θεμα απλά δεν το δοκίμασα.

Ρύθμιση του Avahi

Άνοιξα με έναν text editor το αρχείο /etc/avahi/avahi-daemon.conf. Σε αυτό ρύθμισα τα εξής:

Στο setting host-name= όρισα το domain το οποίο θα είναι διαθέσιμο το μηχάνημα μου στο τοπικό δίκτυο. Το όνονμα αυτό είναι σε μικρά λατινικά χωρίς . (τελεία) και , κόμματα. πχ.

host-name=webserver

Μετέπειτα κάνουμε uncomment την ρύθμιση:

publish-domain=yes

Και επανεκκινούμε τον Avahi Daemon:

sudo service avahi-daemon restart

Παράδειγμα ρύθμισης

Μια ολοκληρωμένη ρύθμιση είναι:

[server]
host-name=test
#domain-name=local
#browse-domains=0pointer.de, zeroconf.org
use-ipv4=yes
use-ipv6=yes
#allow-interfaces=eth0
#deny-interfaces=eth1
#check-response-ttl=no
#use-iff-running=no
#enable-dbus=yes
#disallow-other-stacks=no
#allow-point-to-point=no
#cache-entries-max=4096
#clients-max=4096
#objects-per-client-max=1024
#entries-per-entry-group-max=32
ratelimit-interval-usec=1000000
ratelimit-burst=1000

[wide-area]
enable-wide-area=yes

[publish]
#disable-publishing=no
#disable-user-service-publishing=no
#add-service-cookie=no
#publish-addresses=yes
publish-hinfo=no
publish-workstation=no
publish-domain=yes
#publish-dns-servers=192.168.50.1, 192.168.50.2
#publish-resolv-conf-dns-servers=yes
#publish-aaaa-on-ipv4=yes
#publish-a-on-ipv6=no

[reflector]
#enable-reflector=no
#reflect-ipv=no
#reflect-filters=_airplay._tcp.local,_raop._tcp.local

[rlimits]
#rlimit-as=
#rlimit-core=0
#rlimit-data=8388608
#rlimit-fsize=0
#rlimit-nofile=768
#rlimit-stack=8388608
#rlimit-nproc=3

Βάση αυτής το μηχάνημά μας είναι διαθέσιμο στο test.local domain.

Έλεγχος ρυθμίσεών μας

Στην περίπτωσή μου αρκούσε ένα ping. Ας υποθέσουμε ότι το ρυθμίσαμε σαν test.local

ping test.local

H εντολή αυτή είναι διαθέσιμη ΚΑΙ από windows cmd και από powershell πέραν από windows και MAC.

Οφέλη στην περίπτωσή μου

Το έκανα αυτό επειδή δεν ήξερα τι είδους δικτύωση θα έχει εκεί που θα εγκαταστήσω τον server. Έχοντας μια κοινή διεύθυνση έστω και μη-ip ήταν εύκολο στο να αναπτύξω εγχειρίδια χρήσης. Άλλο να λέω στον χρήστη επισκέψου το test.local και άλλο το να λες βρες την ip του μηχανήματος και συνδέσου μετά.

Διευκολύνει κατά πολύ την χρήση αυτού.

8 «Μου αρέσει»

Eνδιαφέρον ευχαριστούμε.
Ο χρήστης μπορεί να συνδεθεί και με wifi;

Ναι δεν ειναι κάτι. και το wi-fi lan εστί

Nαι μεμπέρδεψε εκεί που λέει
allow-interfaces=eth0 γιατί περίμενα να δω και wlan0

Αν δεις ειναι commented. Αν θες να το περιορίσεις θα πρέπει να το κάνεις uncomment και να το τροποποιήσεις.

1 «Μου αρέσει»

Τόσο το avahi όσο και το systemd καθώς και το PulseAudio έχουν γραφτεί από το ίδιο άτομο :innocent:

Έχω γράψει κάποια κείμενα

1 «Μου αρέσει»