Vai ai contenuti

Vita Da Zazu

Pensieri, idee strampalate, accrocchi e pazzie

Archivio

Tag: Linux

utf-8 errorNel corso del mio lavoro è capitato alcune volte di dover “rinnovare” dei server di dominio,

nello svolgere questo tipo di operazione normalmente è necessario migrare i file contenuti nelle varie cartelle condivise dal vecchio al nuovo server, in alcuni casi per un problema di codifica dei caratteri (locales) succede un macello,

tutti i nomi dei file contenenti lettere accentate e simboli particolari apparentemente si corrompono;
se andiamo a verificare dal terminale saltano fuori degli strani simboli o punti interrogativi al posto di queste lettere:

questo comporta anche l’inaccessibilità, per quei pc che accedono alle condivisioni in rete, di questi file e cartelle “corrotti”,

in realtà questi file non si sono corrotti, è solo un problema di mappatura dei caratteri, il nome è scritto correttamente ma viene interpretato in maniera errata:

nei vecchi server SAMBA, alcuni “tecnici” (per così dire) per ovviare ai problemi di compatibilità in maniera sbrigativa, spesso impostavano la locale di Windows (ISO-8859-15) a livello di sistema,

io sono solito mantenere le mie macchine tutte standard in UTF-8.

Trasferendo i file dai vecchi dischi con file scritti in ISO-8859-15, portiamo dentro dei nomi che non sono del tutto compatibili con la nostra codifica dei caratteri.

per risolvere esiste un tool:

convmv

per installarlo su server debian e derivate:

apt-get install convmv

su macchine openSUSE:

zypper in convmv

adesso che abbiamo il nostro tool, non ci rimane che usarlo:

convmv -r -f ISO-8859-15 -t it_IT.UTF-8 /percorso/file/problematici/

questo comando analizza in maniera ricorsiva tutti i file e le sottocartelle a partire dal path specificato, cercando file con codifica ISO-8859-15 e convertendoli in it_IT.UTF-8;

lanciandolo ci mostrerà tutti i file trovati con codifica errata e come li correggerà, in questa fase non effettua nessuna modifica, ci mostra solo i cambiamenti da apportare.

Se ciò che vediamo ci soddisfa, non rimane che applicare il tutto aggiungendo il parametro

--notest
convmv --notest -r -f ISO-8859-15 -t it_IT.UTF-8 /percorso/file/problematici/

ovviamente, conoscere in anticipo la codifica di partenza aiuta parecchio a risolvere rapidamente il problema,

se non la conosciamo bisogna andare un po’ per tentativi, il comando

convmv --list

ci mostrerà tutte le possibili codifiche e provare ad usarne alcune come codifica di partenza

se i file trovati non corrispondono alla codifica selezionata il tool darà errore quindi procediamo a provare con un’altra.

iFolder iconTutti conosciamo DropBox, il servizio gratuito che ci permette di condividere e sincronizzare i nostri documenti su più dispositivi anche con differenti sistemi operativi, il servizio è eccellente, ma se vogliamo trovare il pelo nell’uovo, DropBox è un servizio e per usarlo occorre registrarsi e usare lo spazio che ci mettono a disposizione, col risultato che non abbiamo nessun controllo  sul server, quindi, usando DropBox occorre fare un atto di fede e consegnare i nostri documenti importanti in mano altrui, ecco, da bravo informatico che ci tiene la sicurezza e perché no, un pochino paranoico, questa cosa non la trovo particolarmente simpatica, fortunatamente, esiste un’alternativa:

Novell iFolder

iFolder è una soluzione di sincronia file (basata su DeltaSync) semplice e sicura che può aumentare la produttività, consentendo di eseguire la sincronia dei documenti (e intrinsecamente il backup), garantendo la possibilità di accedere e gestire i file personali da qualsiasi luogo, in qualsiasi momento. Una volta installato, è sufficiente salvare i file localmente nella cartella iFolder, come avete sempre fatto e iFolder sincronizzerà i documenti automaticamente sul server di rete che li riconsegna agli altri pc collegati, inoltre, è possibile accedere ai propri documenti via web sfruttando il protocollo https.

Le differenze principali tra iFolder e Dropbox sono molto poche ma secondo me vale la pena indicarle:

  • Utilizzando iFolder il server centrale che gestisce la sincronia sarà il nostro
  • La crittografia di iFolder NON E’ REVERSIBILE.

Diversamente da dropbox , che, su richiesta delle autorità (e solo di quelle?) può decrittare i file dei propri utenti.

Installazione del server iFolder

la mia base di lavoro è openSUSE 11.4, ipotizziamo che il nostro server abbia l’ip 192.168.1.35 e pubblicamente il nostro dns sia acme.com

prima di tutto aggiungiamo il repository per il server iFolder

# zypper ar http://download.opensuse.org/repositories/home:/rkumar1:/branches:/network:/ifolder:/server_stable/openSUSE_11.4 ”iFolder-Server”

# zypper ref

ricordiamoci di accettare la chiave del repository premendo ‘a’ quando ce lo chiede.

adesso andiamo ad installare i pacchetti richiesti:

# zypper install apache2 ifolder3-enterprise novell-ifolder-enterprise-plugins yast2-http-server mono-wcf

Per il funzionamento di iFolder è necessario attivare l’SSL su Apache e ovviamente dobbiamo generare dei certificati:

a meno che non abbiamo a disposizione un certificato rilasciato da un ente certificatore, dobbiamo creare dei certificati casarecci, certo è che i browser non li riconosceranno come certificati validi, ma il loro lavoro di cifratura lo svolgeranno ugualmente, la strada semplice consiste nel lanciare un semplice comando:

# gensslcert



Adesso, per abilitare apache all’uso dell’SSL possiamo comodamente utilizzare YaST > Servizi di rete > Server HTTP
dobbiamo seguire una procedura in tre passaggi:
– Al primo avvio della procedura, installiamo quanto ci vuol fare installare, accettiamo tutti i settaggi di default, è molto importante abilitare l’autostart del servizio, clicchiamo Fine, non ci curiamo di un eventuale messaggio di errore.
– Lanciamo di nuovo YaST > Servizi di rete > Server HTTP, spostiamoci subito nel tab “Moduli Server” , selezioniamo il modulo “ssl” e clicchiamo il bottone “Cambia Stato” così “ssl” sarà abilitato, clicchiamo fine per applicare la modifica.
– Copiamo il template per il virtualhost con l’ssl abilitato al posto della configurazione standard. questo template ha tutte le impostazioni necessarie ad abilitare l’https sull’host di default.
# cp /etc/apache2/vhosts.d/vhost-ssl.template /etc/apache2/vhosts.d/vhost-ssl.conf
Riavviare Apache per attivare le modifiche
# rcapache2 restart
adesso possiamo verificare che l’SSL funzioni puntando in https al nostro server:
https://[ip server]
Un access forbidden in https:// ovviamente dopo aver accettato il nostro certificato fasullo, è normale paerché non abbiamo inserito alcuna pagina web al suo interno.
Adesso passiamo alla configurazione di iFolder.
lanciamo lo script di configurazione, ci sono poche modifiche da apportare:
# simias-server-setup

SIMIAS SERVER SETUP

This script configures a server installation of Simias to setup a new Simias system.


—– SERVER’S DATA PATH —–
Path to the server’s data files


Server’s Data Path? [/var/simias/data]: invio

—– SERVER NAME —–
The name of this server


Server Name? [iFolder]: invio

—– SSL —–
Select SSL/NONSSL communication for this server. Options
are  SSL, NONSSL or BOTH


SSL? [SSL]: invio

—– PUBLIC URL —–
Public URL of this Simias Server

qui dobbiamo inserire l’hostname pubblico da cui raggiungere il nostro server
Public URL? [https://192.168.1.35/simias10]: https://acme.com/simias10



—– PRIVATE URL —–
Private URL of this Simias Server

qui dobbiamo inserire l’IP interno da cui raggiungere il nostro server
Private URL? [https://acme.com/simias10]: https://192.168.1.35/simias10

—– SLAVE SERVER —–
Install into existing Simias Domain


Slave Server? [N]: invio

—– SYSTEM NAME —–
A name used to identify the Simias system to users.


System Name? [iFolder]: invio

—– SYSTEM DESCRIPTION —–
A detailed description of the Simias system for users.


System Description? [iFolder server]: invio

—– USE KEY RECOVERY AGENT —–
Use Key Recovery Agents to recovery the encryption
key if the user forgets the pass-phrase used for encryption?


Use Key Recovery Agent? [Y]: invio

—– RECOVERY AGENT CERTIFICATE PATH —–
Path to the Recovery agent certificate’s.


Recovery Agent Certificate Path? [/var/simias/data]: invio

—– USE LDAP —–
Use LDAP to provision and authenticate users?


Use LDAP? [Y]: N

—– SYSTEM ADMIN —–
The Simias default administrator.  If the system is
configured to use an external identity source, the
distinguished name (dn) should be used.


System Admin? [admin]:
System Admin Password? [novell]: ******

—– CONFIGURE APACHE —–
Configure Simias to run behind Apache


Configure Apache? [N]: Y

Ora, serve un nuovo restart di Apache per caricare la configurazione di simias appena effettuata:

# rcapache2 restart

Andiamo a verificare che la pagina Simias funzioni:
con il browser andiamo all’url ‘https://192.168.1.35/simias10′, facciamo l’accesso ocne le credenziali di admin specificate nel setup – verrà fuori una pagina di errore “The resource cannot be found.” è perfettamente normale, simias10 sta funzionando.

Per completare l’installazione rimane solo l’attivazione delle reali pagine web: “admin” e “ifolder”, il tutto è fattibile lanciando i rispettivi script di configurazione automatizzata:

# ifolder-admin-setup

IFOLDER WEB ADMIN SETUP

This script configures a server installation of iFolder Web Admin application. The script is intended for testing purposes only.

—– WEB ALIAS —–

Web Alias for iFolder Web Admin

Web Alias? [/admin]: invio

—– REQUIRE SSL —–

Require a secure connection between the browsers and

the iFolder Web Admin application

Require SSL? [Y]: invio

—– REQUIRE SERVER SSL —–

Require a secure connection between the iFolder Server

and the iFolder Web Admin application

Require Server SSL? [Y]: invio

—– IFOLDER URL —–

The host or ip address of the iFolder server that will

be used by the iFolder Web Admin application

iFolder URL? [https://localhost:443/]: https://192.168.1.35:443/

—– REDIRECT URL —–

Redirect URL for iChain / AccessGateway

Redirect URL? []: invio

Working…

Configuring /usr/lib/simias/admin/Web.config…Done

Server DATA PATH is set to :  /var/simias/data/simias

Configuring /etc/apache2/conf.d/ifolder_admin.conf…Done

Installing certificate…

—– ACCEPT IFOLDER SERVER CERTIFICATE —–

[Subject]

E=webmaster@ifolder.site, CN=ifolder.site,

OU=web server, O=SuSE Linux Web Server, L=unknown,

S=unknown, C=XY

[Issuer]

E=webmaster@ifolder.site, CN=ifolder.site,

OU=CA, O=SuSE Linux Web Server, L=unknown, S=unknown,

C=XY

[Not Before]

13/06/2011 8.20.51

[Not After]

12/06/2013 8.20.51

[Thumbprint]

365E7D1CF63C37C9C8B4FC13A01F72A5B934D3E5F6

Accept iFolder Server Certificate? [Y]: invio

Done

SUCCESS

e a segure:

# ifolder-web-setup

IFOLDER WEB ACCESS SETUP

This script configures a server installation of iFolder Web Access application. The script is intended for testing purposes only.

—– WEB ALIAS —–

Web Alias for iFolder Web Access

Web Alias? [/ifolder]: invio

—– REQUIRE SSL —–

Require a secure connection between the browsers and

the iFolder Web Access application

Require SSL? [Y]: invio

—– REQUIRE SERVER SSL —–

Require a secure connection between the iFolder Server

and the iFolder Web Access application

Require Server SSL? [Y]: invio

—– IFOLDER URL —–

The host or ip address of the iFolder server that will

be used by the iFolder Web Access application

iFolder URL? [https://localhost:443/]: https://192.168.1.35:443/

—– REDIRECT URL —–

Redirect URL for iChain / AccessGateway

Redirect URL? []: invio

Working…

Configuring /usr/lib/simias/webaccess/Web.config…Done

Server DATA PATH is set to :  /var/simias/data/simias

Configuring /etc/apache2/conf.d/ifolder_web.conf…Done

Installing certificate…

—– ACCEPT IFOLDER SERVER CERTIFICATE —–

[Subject]

E=webmaster@ifolder.site, CN=ifolder.site,

OU=web server, O=SuSE Linux Web Server, L=unknown,

S=unknown, C=XY

[Issuer]

E=webmaster@ifolder.site, CN=ifolder.site,

OU=CA, O=SuSE Linux Web Server, L=unknown, S=unknown,

C=XY

[Not Before]

13/06/2011 8.20.51

[Not After]

12/06/2013 8.20.51

[Thumbprint]

365E7D1CF63C37C9C8B4FC13A01F72A5B9B4E4D4

Accept iFolder Server Certificate? [Y]: invio

Done

SUCCESS

Un ultimo riavvio di Apache ed il server è pronto:

# rcapache2 restart

da browser adesso saranno accessibili la pagina “admin” e la pagina “ifolder”:

1) https://192.168.1.35/admin (dall’esterno sarebbe https://acme.com/admin)

Ci permette l’accesso di amministrazione per settare le opzioni del server, creare gli utenti iFolder e configurare gli eventuali report.

2) https://192.168.1.35/ifolder (dall’esterno sarebbe https://acme.com/ifolder)

Questo è il portale dell’utente, a questo link l’utente può avere accesso web ai files, usando un client, basta puntarlo a questa pagina per sincronizzarlo con il server.

e questo è tutto.

Installazione del client iFolder

l’installazione del client su opensuse è molto più semplice, e può essere effettuata senza aggiungere alcun repository.

# zypper in ifolder3 novell-ifolder-client-plugins mono-wcf

terminata l’installazione, dal menù del nostro desktop grafico basterà lanciare “iFolder 3″ e partirà il wizard di configurazione

all’indirizzo del server basterà inserire la url che punta alla pagina utente “https://acme.com/ifolder”, accettare il certificato, inserire nome utente e password ed il gioco è fatto.

Il client per altri sistemi operativi è scaricabile al sito ufficiale:

http://ifolder.com/ifolder

Esiste anche l’app per iPhone reperibile nell’Apple Store.

e buona sincronia a tutti. 😮

Lavorando col nuovo Xen 3.4 su Debian Lenny e su openSUSE 11.2, mi sono imbattuto in una problematica che personalmente ho dovuto affrontare molto ma molto di rado:

Assegnare un device fisico ad una macchina virtuale (domU).

Seguendo le vecchie procedure per il vecchio Xen, apparentemente al boot della dom0 la risorsa fisica veniva riservata, ma poi non funzionava nulla, ovvero, la macchina virtuale non partiva restituendo il seguente errore:

Error: pci: 0000:0d:08.0: non-page-aligned MMIO BAR found.

ho cercato soluzioni in lungo e in largo, senza giungere a nulla, finché non mi sono imbattuto in una patch del sorgente di Xen 3.4….
ebbene, leggendo il codice sorgente della patch è saltato fuori che con il nuovo Xen la sintassi per assegnare una risorsa è cambiata e nessuno lo sa!

Vengo quindi ad illustrare la procedura corretta:

per prima cosa, nella dom0 rifare l’initrd includendo il modulo “pciback“;

adesso con lspci andiamo a trovare l’ID della nostra scheda fisica:

# lspci
08:00.0 Ethernet controller: Intel Corporation 82571EB Gigabit Ethernet Controller (rev 06)
08:00.1 Ethernet controller: Intel Corporation 82571EB Gigabit Ethernet Controller (rev 06)
0a:00.0 Ethernet controller: Intel Corporation 82571EB Gigabit Ethernet Controller (rev 06)
0a:00.1 Ethernet controller: Intel Corporation 82571EB Gigabit Ethernet Controller (rev 06)
0d:08.0 Communication controller: Digium, Inc. Wildcard TE220 dual-span T1/E1/J1 card 3.3V
0f:0d.0 VGA compatible controller: ATI Technologies Inc ES1000 (rev 02)

come parametro aggiuntivo del kernel xen, al grub si deve inserire questo:

guestdev=0000:0d:08.0 reassign_resources

nel file di configurazione della macchina virtuale basta aggiungere questa riga:

pci = [ ‘0d:08.0′ ]

fatto 😮 adesso basta riavviare la nostra dom0 e la pci verrà riservata per la macchina virtuale…

Happy Xen

Sto provando Pardus 2009.2 sul mio eee-PC 900

Pardus è un mio vecchio amore a prima vista e dato che l’ho sempre ricordata come distribuzione piuttosto leggera, ho deciso di testarla sul mio eee-PC

il problema dell’eee-PC è che essendo un po’ limitato di risorse, con firefox va a fatica; siccome ho notato che ChromePlus comunque ci funziona bene, mi interessava poterlo usare anche su questa distro che nei repository non lo prevede… detto fatto, mi sono messo all’opera,

sono andato sul sito di ChromePlus e dato che Pardus è a 32 bit ho scaricato quanto disponibile per linux a 32 bit:

la versione “Debian/Ubuntu” e quella “Suse/Fedora”, vi dico subito di lasciar stare la versione per Debian che mi ha dato problemi, scaricate la versione “Suse/Fedora”

appena finito di scaricare, sono andato nella cartella “Scaricati” e con ark ho scompattato il tar.gz in una sottocartella;
fatto ciò, sono andato semplicemente di terminale:

$ su
# cd /home/zazu/Scaricati/chromeplus-1.3.3.3_suse_fedora_i686
# mkdir /opt/chromeplus
# cp -a * /opt/chromeplus
# cd /opt/chromeplus
# chown -R root:root *

con questi comandi sovrastanti ho copiato ChromePlus dentro opt e gli ho conferito i giusti permessi; opt è la cartella linux in cui si può mettere tutto ciò che è opzionale, per evitare problemi e conflitti col software pacchettizzato è sempre bene che quel che viene installato a mano, venga messo dentro opt.
Adesso andiamo a creare un link simbolico per l’eseguibile di Chromeplus:

# cd /usr/bin
# ln -s /opt/chromeplus/chrome-wrapper chromeplus

ora, manca un lanciatore per il menù di avvio e per il desktop:

# touch /usr/share/applications/chromeplus.desktop

dentro questo file appena creato dobbiamo metterci questo testo:

[Desktop Entry]
Name=ChromePlus
Exec=chromeplus %u
Icon=/opt/chromeplus/product_logo_48.png
Categories=Network;WebBrowser;
GenericName=Browser Web
Terminal=false
Type=Application
StartupNotify=true

io ho editato il file con vim:

# vi /usr/share/applications/chromeplus.desktop

ciò non toglie che se non si è capaci, lo si possa fare con l’editor che si preferisce (nano, kwrite, o altri);
per sempio, si potrebbe usare kwrite lanciandolo da utente normale (come root non si avvia):

$ xhost + && sudo kwrite /usr/share/applications/chromeplus.desktop

comunque, l’importante è creare, quel file, una volta salvato, tempo qualche secondo e nel menù di kde apparirà ChromePlus 😎

Ultimo passaggio, i plugin:

siccome il pacchetto installato è pensato per openSUSE / Fedora, questo va a cercare i plugin nel percorso di default di uno dei due sistemi

Pardus usa una struttura differente, quindi i plugin non sembrano funzionare;

la soluzione è creare un link simbolico alla cartella dei plugin in modo da creare una posizione fittizia come se fosse la struttura di opensSUSE:

# cd /usr/lib
# ln -s nsbrowser/plugins/ browser-plugins

ora, abbiamo creato un percorso simbolico “usr/lib/browser-plugins” che punta a “usr/lib/nsbrowser/plugins” la cartella reale è la seconda, ma è raggiungibile anche dal link, questo basta a ChromePlus per ritrovare i necessari plugin e funzionare correttamente :)

Chromeplus Screenshot

Qlogic controllerMi è capitato di dover connettere ad un server con openSUSE 11.2 un’AX150, il collegamento avviane via fibra ottica e ho un controller Qlogic a doppia porta

quindi, dato che anche lAX ha due porte in fibra, ho ben pensato di mettere in piedi una configurazione in failover cosicché il collegamento col server è ridondato….

ma veniamo al sodo:

nell’AX dall’interfaccia web Navisphere abilitiamo le connessioni dal nostro server, poi dentro opensuse occorre creare e “farcire” il file /etc/multipath.conf

ecco cosa inserire:

##
## This is a template multipath-tools configuration file
## Uncomment the lines relevent to your environment
##
defaults {

udev_dir              /dev
polling_interval      10
selector              “round-robin 0″
path_grouping_policy  multibus
getuid_callout        “/lib/udev/scsi_id –whitelisted –device=/dev/%n”
prio_callout          “mpath_prio_emc /dev/%n”
path_checker          emc_clariion
path_grouping_policy  failover
failback              immediate
user_friendly_names   yes

}
blacklist {

# ho aggiunto sda alla blacklist in quanto il disco di sistema
devnode “^(sda|ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*”
devnode “^hd[a-z][[0-9]*]”

}
multipaths {
multipath {

wwid                  600601608B861C00BC43DC9DC74BEF11
alias                 SambaShare
}

multipath {

wwid                  600601608B861C00BC43DC9DC74BEF11
alias                 Backup
}

}

una volta fatto ciò, occorre mettere in avvio il demone del multipath (anche da yast) col seguente comando:

# chkconfig multipathd on

riavviando poi il demone del multipath dovremmo poter vedere  i device nella nostra macchina:

# rcmultipathd restart

# multipath -l
mpathc (3600601608b861c002ab72276714cef11) dm-1 DGC,RAID 5
size=652G features=’1 queue_if_no_path’ hwhandler=’1 emc’ wp=rw
`-+- policy=’round-robin 0′ prio=-2 status=active
|- 1:0:0:1 sdc 8:32 active undef running
`- 2:0:0:1 sde 8:64 active undef running
mpatha (3600601608b861c00bc43dc9dc74bef11) dm-0 DGC,RAID 5
size=690G features=’1 queue_if_no_path’ hwhandler=’1 emc’ wp=rw
`-+- policy=’round-robin 0′ prio=-2 status=active
|- 1:0:0:0 sdb 8:16 active undef running
`- 2:0:0:0 sdd 8:48 active undef running

quando nel sistema vedremo una situazione del genere, dentro /dev/mapper troveremo i nostri device:

# ls -la /dev/mapper/
totale 0
drwxr-xr-x  2 root root     100 21 apr 18:23 .
drwxr-xr-x 15 root root    4520 21 apr 18:23 ..
crw-rw—-  1 root root  10, 58 21 apr 15:18 control
brw-r—–  1 root disk 253,  0 21 apr 15:18 mpatha
brw-r—–  1 root disk 253,  1 21 apr 15:18 mpathc

NB

se abbiamo appena creato i virtual disk dentro l’AX, nel sistema i device non appariranno MAI finché l’AX non ha finito al 100% l’operazione

finché il virtual disk starà nello stato di inizializzazione non viene passato alcun device alla macchina (questo, anche se potrebbe far pensare che il multipath non funzioni, è del tutto normale c’è solo da attendere

quando l’AX avrà finito il suo lavoro, allora riavviando il server, dentro di esso magicamente appariranno i nuovi device



Quando ci serve?

Se si hanno nella stessa rete due tipologie di apparati che si vuol tenere “separati”… diciamo così.

la situazione si è verificata passando dalla telefonia analogica al voip;

questo ha comportato l’introduzione di tanti telefoni IP, e per più motivi è bene che stiano su una classe a sé.

Si dovranno quindi gestire due tipologie di apparati:

i PC e i telefoni Grandstream, impossibile gestire i telefoni con ip fisso, sono troppi, per ogni eventuale modifica servirebbe uno schiavo per editarli tutti, quindi, dato che gli schiavi sono proibiti, bisogna fare tutto con DHCP :D.

La configurazione è più semplice del previsto:

DHCPD3 che già veniva usato per gestire la rete, prevede la possibilità di analizzare alcune informazioni fornite dai client quando richiedono un IP, nello specifico io ho focalizzato il mio interesse sul “vendor class identifier” che generalmente identifica il produttore/modello dell’apparecchio

tutti i telefoni Grandstream hanno come vendor class identifier una stringa del genere:  Grandstream [MODEL NAME]

da questa quindi si può facilmente operare una “discriminazione” rispetto ad un qualunque PC

nel file /etc/dhcp3/dhcpd.conf andranno definiti i pattern di controllo che a seconda del caso assegneranno un IP di pool differenti, in questo modo:

dhcpd.conf

ddns-update-style none;
authoritative;
log-facility local7;
option ntp-servers it.pool.ntp.org;

#matching classes
class “ip_phones” {

match if substring (option vendor-class-identifier, 0, 11) = “Grandstream”;
}

class “computers” {

match if not (substring (option vendor-class-identifier, 0, 11) = “Grandstream”);
}

shared-network exemple.local {

subnet 172.16.150.0 netmask 255.255.254.0

{
pool {

allow members of “ip_phones”;
option domain-name “phones.exemple.it”;
option domain-name-servers 208.67.222.222, 208.67.220.220;
range 172.16.150.21 172.16.150.200;
option subnet-mask 255.255.254.0;
option broadcast-address 172.16.151.255;
option routers 172.16.151.254;
default-lease-time 1440;
max-lease-time 7200;
}

}

subnet 10.10.20.0 netmask 255.255.255.0

{
pool {

allow members of “computers”;
option domain-name “computers.exemple.it”;
option domain-name-servers 208.67.222.222, 208.67.220.220;
range 10.10.20.21 10.10.20.190;
option subnet-mask 255.255.255.0;
option broadcast-address 10.10.20.255;
option routers 10.10.20.254;
default-lease-time 1440;
max-lease-time 7200;
}

}

}

Con la direttiva “allow members” possiamo gestire perfettamente tutto il traffico, questo ci permette di avere anche più di due pool, possiamo inoltre definire più pattern di verifica e accettare in un pool più tipologie:

se un giorno verranno introdotti dei telefoni Snom, potranno essere comunque assegnati alla LAN telefonica verificando sempre il loro vendor class identifier :)

WordPress SEO fine-tune by Meta SEO Pack from Poradnik Webmastera