Commit 2d623439 authored by Simone Piccardi's avatar Simone Piccardi
Browse files

Documentazione della soluzione dei problemi di DHCP/DNS per macchine

reinstallate.
parent ebb1b1f9
...@@ -183,7 +183,7 @@ illustrato nella tabella seguente. ...@@ -183,7 +183,7 @@ illustrato nella tabella seguente.
- Contenuto - Contenuto
- Default - Default
* - ``dans_maxchild`` * - ``dans_maxchild``
- Numero massimo di processi figli di Dansguardian. - Numero massimo di processi figli di e2guardian.
- Intero - Intero
- 600 - 600
* - ``proxy_win_exclude`` * - ``proxy_win_exclude``
...@@ -191,7 +191,7 @@ illustrato nella tabella seguente. ...@@ -191,7 +191,7 @@ illustrato nella tabella seguente.
- Stringa - Stringa
- yes - yes
* - ``dans_exclude_localnet`` * - ``dans_exclude_localnet``
- Esclude la rete locale dal filtraggio di dansguardian. - Esclude la rete locale dal filtraggio di e2guardian.
- Stringa - Stringa
- yes - yes
* - ``dhcp_default_lease_time`` * - ``dhcp_default_lease_time``
...@@ -219,14 +219,14 @@ pacchetto e le modifiche fatte verranno mantenute. ...@@ -219,14 +219,14 @@ pacchetto e le modifiche fatte verranno mantenute.
.. _file-configurazione-dansguardian: .. _file-configurazione-dansguardian:
Dansguardian E2guardian
------------ ------------
Nel file ``/etc/fuss-server/content-filter-allowed-sites`` viene mantenuta una Nel file ``/etc/fuss-server/content-filter-allowed-sites`` viene mantenuta una
lista dei siti cui viene comunque garantito accesso da Dansguardian. Questa lista dei siti cui viene comunque garantito accesso da e2guardian (successore
lista può essere gestita anche dall'interfaccia web di *OctoNet* dal menu di Dansguardian). Questa lista può essere gestita anche dall'interfaccia web
*Filtro web*, che consente anche di configurare altri file di configurazione di *OctoNet* dal menu *Filtro web*, che consente anche di configurare altri
sotto ``/etc/dansguardian/lists/``. file di configurazione sotto ``/etc/dansguardian/lists/``.
Server DHCP Server DHCP
----------- -----------
...@@ -978,6 +978,133 @@ riga, e quindi usare il comando:: ...@@ -978,6 +978,133 @@ riga, e quindi usare il comando::
for utente in $(cat docenti.txt); do smbldap-usermod -H U $utente; done for utente in $(cat docenti.txt); do smbldap-usermod -H U $utente; done
Troubleshooting DNS
-------------------
Mancata risoluzione di macchine reinstallate con lo stesso nome
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Il fuss-server utilizza il DNS dinamico per creare automaticante delle voci
con i nomi delle macchine all'interno della zona locale della scuola, con la
direttiva ``ddns-update-style standard`` in ``/etc/dhcp/dhcpd.conf``. Il
meccanismo prevede che ogni volta che un client ottiene un indirizzo dinamico
dal DHCP venga inserita una voce con il suo nome (che viene invitato dal
client stesso, e corrisponde al suo hostname) all'interno della zona locale e
della zona inversa del DNS in modo da potercisi riferire direttamente per
nome.
I dati vengono inseriti nel file ``/var/cache/bind/db.local`` che contiene i
dati della zona DNS usata per la rete interna della scuola (quelli della
risoluzione interna in ``/var/cache/bind/db.192.168.XX.YY`` che dipende dal
range di indirizzi assegnati), dove compariranno delle voci nella forma::
test-client A 192.168.13.57
DHCID ( AAIBP7QJ7mJsQfNKCJli4K991QOr0lDOCeqRUWvz1A1U
SUE= ) ; 2 1 32
La voce è composta dall'IP assegnato e da un campo ``DHCID`` che è un hash
identificativo del client (in genere hostname e MAC address, ma dipende dal
client stesso) che serve ad evitare che un altra macchina possa tentare di
intrufolarsi nel DNS assumendo lo stesso nome e che due macchine cui si è
assegnato (erroneamente) lo stesso nome si sovrascrivano reciprocamente la
voce sul DNS.
Questi record vengono in genere cancellati automaticamente al rilascio dell'IP
da parte del client, ma può capitare, quando questo non avviene correttamente
(ad esempio perché viene spento senza shutdown), che restino nel file. Di
norma non costituiscono un problema fintanto che non si reinstalla un client
con lo stesso nome, che avrà un DHCID diverso per cui non sarà in grado di
riutilizzare il nome, né di rimuovere la voce.
Una soluzione di emergenza può essere quella di aggiungere a
``/etc/dhcp/dhcpd.conf`` la direttiva ``update-conflict-detection no``
immediatamente sotto la precedente ``ddns-update-style standard``, questo
consente la riscrittura, ma comporta che i controlli di conflitti non ci sono
più, e si potranno ottenere situazioni in cui i problemi, manifestandosi in
forma casuale, sono molto più difficili da diagnosticare e
riconoscere. Pertanto è una soluzione di emergenza da non usare mai per più
dello stretto tempo necessario a risolvere un problema immediato, la soluzione
corretta è quella di rimuovere i record che danno il problema, con la
procedura illustrata di seguito.
Per la rimozione occorre modificare manualmente i file di zona citati in
precedenza (``/var/cache/bind/db.local`` e
``/var/cache/bind/db.192.168.XX.00``), ma dato che l'assegnazione è dinamica,
il contenuto di questi file non è detto sia aggiornato alla situazione
corrente (i dati temporanei sono mantenuti in forma binaria in corrispondenti
file ``.jnl``), ed inoltre i dati potrebbero ulteriormente aggiornati durante
la modifica, per cui prima di iniziare occorre "congelare" la situazione con
il comando::
rndc freeze
che salva tutti i dati temporanei e blocca gli aggiornamenti del DNS da parte
del DHCP.
Si potranno a quel punto cercare dentro ``/var/cache/bind/db.local`` le voci
dinamiche da rimuovere analoghe a quella illustrata. Si tenga presente che in
alcuni casi queste sono introdotte da una riga del tipo::
$TTL 3600 ; 1 hour
che indica il tempo di vita delle voci elencate di seguito (il valore indicato
può esser diverso a seconda delle impostazioni date al server DHCP). Questo
valore viene impostato, tutte le volte che varia, all'inizio di un blocco di
voci e si applica fino alla successiva reimpostazione, per questo può aiutare
a identificare le voci dinamiche rispetto a quelle statiche impostate in fase
di creazione del file con l'installazione del fuss server, che hanno un valore
di ``604800``.
Quando si rimuove una voce si abbia cura di toglierlo solo quando risulta
inutilmente replicato. Se si decide di fare una pulizia completa di tutte le
voci dinamiche va tolto evitando che vada ad applicarsi alle restanti voci
statiche. In generale cancellare tutte le voci relative ad assegnazioni
dinamiche non è un problema (verranno ricreate al rinnovo o alla richiesta
successiva) ma la risoluzione dei nomi cancellati ovviamente diventerà
indisponibile fino ad allora. Per questo si consiglia di cancellare solo le
voci che contengono i nomi che danno problemi.
Si faccia inoltre attenzione a non cancellare o modificare invece le voci
"fisse" del file, come i nomi ``ns``, ``proxy``, ``octofuss`` ecc. ed in
generale tutti quelli che si sono inseriti manualmente nel file per le
assegnazioni statiche.
Una volta rimosse le voci da ``/var/cache/bind/db.local`` si cancellino le
voci corripondenti con la risoluzione inversa in
``/var/cache/bind/db.192.168.XX.00``, che nel caso dell'esempio precedente
saranno qualcosa del tipo::
57 PTR test-client.fusslab.blz.
Una volta completate le modifiche occorre aggiornare il seriale dei file di
zona (entrambi), per questo occorre cercare la riga identificata dal commento
``; serial`` nel record ``SOA`` che è all'inzio del file, ed aumentare di uno
il valore in essa indicata; se ad esempio 811 era il valore in
``/var/cache/bind/db.local`` precedente alle modifiche, si dovrà indicare al
suo posto 812, con qualcosa del tipo::
$ORIGIN .
$TTL 604800 ; 1 week
fusslab.blz IN SOA ns.fusslab.blz. root.marcela.fusslab.blz. (
812 ; serial
604800 ; refresh (1 week)
86400 ; retry (1 day)
2419200 ; expire (4 weeks)
604800 ; minimum (1 week)
)
Fatto questo si potrà "scongelare" la zona con il comando::
rndc thaw
e l'aggiornamento dinamico riprenderà a funzionare.
.. LocalWords: octofuss Fuss ansible variable separation yaml fuss upgrade .. LocalWords: octofuss Fuss ansible variable separation yaml fuss upgrade
.. LocalWords: configure defaults Dansguardian OctoNet DHCP client dhcp DNS .. LocalWords: configure defaults Dansguardian OctoNet DHCP client dhcp DNS
.. LocalWords: conf reservation host nomeclient ethernet fixed address eth .. LocalWords: conf reservation host nomeclient ethernet fixed address eth
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment