Newsgroup: it.comp.os.linux.sys
Titolo: Router/Firewall su macchine diskless: vyatta?

Ho la necessità di creare diversi router/firewall diskless (in questo caso
virtuali, ma il concetto è identico se anche fossero fisici) ciascuno con
una propria configurazione.
Quello che vorrei è che ogni macchina facesse boot tramite pxe e che il dhcp
indicasse alla macchina dove prendere la propria configurazione.
Non ho problemi a fare funzionare il sistema con delle normali Debian, ma
vorrei evitare il carico amministrativo che ciò comporta.
Ho visto che Vyatta è disponibile in formato live, quindi facilmente
adattabile ad un boot anche via pxe, ha di bello che tutto è gestito da un
unico file di configurazione, ed inoltre già consente di caricare la
configurazione da tftp.
L'unica cosa che non sono riuscito a trovare da nessuna parte è se supporta
la funzionalità di determinare il server tftp e il nome del file di
configurazione da caricare tramite opzioni del dhcp.
Se così fosse sarebbe molto comodo gestire il tutto perché basterebbe creare
un server dhcp configurato opportunamente con un tftp server contenente
tutte le configurazioni per poter attivare dei router in brevissimo tempo e
tutto gestito centralmente.
Qualcuno sa se ciò è possibile e può indirizzarmi alla relativa doc?
-- 
Flavio Visentin
Ubuntu in Zulu significa "Non so usare Debian". (cit. CtRiX)

 configurazione da caricare tramite opzioni del dhcp.
Può operare come server dhcp ed annunciare il file di configurazione,
ma non so se può fare da client.
Non dovresti aver problemi, però, a realizzare qualche piccolo script
che carichi la configurazione via tftp indipendentemente dal supporto
di vyatta. Ricreare la ISO è un gioco da ragazzi, l'ho fatto più volte
per inserire alcune customizzazioni. (uso vyatta praticamente ovunque,
non ho router hardware salvo casi particolari)
Prova a scrivere sul forum, solitamente rispondono in fretta, inoltre
essendoci una appliance virtuale sia per xen che per vmware, la tua
richiesta non dovrebbe nemmeno essere troppo strana.
Io stesso devo realizzare una ventina di ABR virtuali nei prossimi
mesi e caricare tutto via PXE potrebbe farmi comodo.
Di certo viatta permette di caricare e salvare la configurazione su
un server tftp remoto, quindi si tratterebbe solo di automatizzare
l'operazione in fase di boot. Così ad occhio, potrebbero essere
necessarie solo poche righe di script bash messo subito sopra il
parse della configurazione fatta da vyatta.
A mano, riesci a leggere il valore del parametro dhcp? Io non l'ho
mai fatto, quindi non ti saprei dire.

 configurazione da caricare tramite opzioni del dhcp.
Non credo d'aver capito *esattamente* la domanda..
cmq il supporto è dato dal PXE e dal DHCP, basta inserire il parametro
option tftp-server-name string;
«This  option  is used to identify a TFTP server and, if
supported by the client, should have the same effect as
the   server-name   declaration.    BOOTP  clients  are
unlikely to support this  option.   Some  DHCP  clients
will support it, and others actually require it.»
quindi inserisci qualcosa tipo
host firewall01 {
   hardware ethernet   00:16:06:E8:0e:B1;
   fixed-address       192.168.0.1;
   filename            "/path/file_da_bootare";


 }
Lui deve fare l'opposto.
Quello che hai suggerito serve a far diventare vyatta
un server pxe/dhcp che annuncia il boot file, mentre invece
lui cerca di far bootare vyatta leggendo il boot file da
un server remoto. In pratica, vuol fare da client, non da server.

Il 16/07/10 09:49, Gandalf Corvotempesta ha scritto:

????
Quello ovviamente và inserito nel /etc/dcpd.conf del server e dice a 
firewall01 (che avrà ovviamente una entry in /etc/hosts) riconosciuto 
tramite il mac address "00:16:06:E8:0e:B1" di prendersi l'IP 
"192.168.0.1" assegnato staticamente per comodità di caricare il file 
"/path/file_da_bootare" che sarà ovviamente l'immagine bootabile fornita 
attraverso il server tftp identificato dal parametro "option 
tftp-server-name"
Al ché PXE ottiene dal server IP ed immagine da mettere in ram, monta il 
kernel che deve contenere i moduli per NFS ovviamente, legge il parametro
option root-path "192.168.1.254:/opt/diskless";
che ho scordato di inserire..
dove 192.168.1.254 è l'IP del server NFS e /opt/diskless la root 
contenente i file del vyatta esportata via NFS
ed ecco che vyatta viene sù come client diskless..
Giusto?

 Giusto?
No, perchè vyatta poi non caga la configurazione via tftp.
Non mi pare ci sia un check che legga la presenza o meno del flag
inerente il boot per far caricare la config dal di li.
Quindi faresti partire un vyatta senza configurazione.
-- 
Non tocca a noi dominare tutte le maree del mondo,
il nostro compito è di fare il possibile per la
salvezza degli anni nei quali viviamo,
sradicando il male dai campi che conosciamo.

 Giusto?
Nono proprio. Non voglio avere root su NFS. Voglio che vyatta nella versione
live caricata via PXE (e fin qui non è un problema farlo) si arrangi a
caricare la configurazione da un tftp server passandogli l'informazione di
cosa caricare tramite un'opzione dhcp.
Stessa cosa per intenderci che si può fare per configurare ThinStation
http://www.thinstation.org/


 cosa caricare tramite un'opzione dhcp.
Premessa: non ho mai fatto questa modifica.
Riesci ad avere il valore della opzione dhcp una volta avviato il 
sistema? Se si, da dove si legge il nome del file?
Perchè dovrebbe bastare modificare una riga in /etc/init.d/vyatta-ofr


 Perchè dovrebbe bastare modificare una riga in /etc/init.d/vyatta-ofr
Forse una riga proprio no, ma non penso sia molto di più.


 Forse una riga proprio no, ma non penso sia molto di più.
un hack rapidissimo sarebbe quello di settare (vado a memoria)
BOOTFILE dentro /etc/init.d/vyatta-ovr
è nelle primissime righe, e se non erro setta il valore di
default.
Basterebbe mettere un IF, se sei via tftp, scarichi e setti
altrimenti lasci stare.
Vyatta ha anche il "copy" che ti scarica via ftp


 
http://www.thinstation.org/
Forse non ci capiamo..
per root non intendo /root/ del FS.. intendo il parametro
option root-path "192.168.1.254:/opt/diskless";
da inserire sempre nel DHCP per caricare i file della live che andranno 
infilati in /opt/diskless senno come la carichi?
Come avviene per LTSP, una volta bootato il sistema puoi fare quel che 
ti pare con un semplice script.

 ti pare con un semplice script.
Il mio obbiettivo è ridurre a zero la manutenzione. Voglio che
l'aggiornamento delle appliance consista semplicemente nello scaricare la
nuova versione live di vyatta sul server, creare un link simbolico e
riavviare l'appliance.


 riavviare l'appliance.
Io credo che con la modifica di cui si parlava prima
tu possa ottenere quello che chiedi.
Al massimo, scrivi sul loro forum, sezione Hackers.
Magari ti danno una dritta.


 Magari ti danno una dritta.
Farobbilo :-)


Il 16/07/10 17:07, THe_ZiPMaN ha scritto:

L'avevo capita diversamente in effetti..
pensavo che si trattasse di una VM che fatto il boot via PXE caricassse 
l'immagine della live nella VM..
Cmq.. sicuro sia una bona idea mettere in produzione un appliance che 
boota via PXE? Ti ritroveresti con gli stessi problemi di sicurezza di 
LTSP (ammeno ché server ed appliance non siano connessi tramite un 
apposita LAN sconnessa dal resto del mondo)

 apposita LAN sconnessa dal resto del mondo)
Sono tutte appliance virtuali che fanno il boot da una lan isolata su cui ci
sono solo loro e il server tftp. Già adesso ho tutto in piedi funzionante
con altri sistemi (delle Debian ad-hoc), ma lo scopo della mia ricerca è di
valutare una soluzione che anche il primo cretino che sappia appena usare un
browser possa aggiornare e di cui vi sia un supporto valido e buona
documentazione.



Possibile soluzione:
metti il file di configurazione per la singola appliance chiamandolo per 
esempio con l'IP dell'appliance 192.168.1.50
quindi crei uno script da infilare in /etc/rc.local tipo:
#!/bin/bash
SERVER_TFTP="192.168.1.2";
IP=`ifconfig  | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | 
awk '{ print $1}'`;
curl tftp://$SERVER_TFTP/$IP -o "$IP"
Quindi l'appliance avendo l'IP assegnato via DHCP non deve far altro che 
leggere il proprio IP e scaricarsi il file $IP via tftp, copincolli e 
riavvi i servizi

 esempio con l'IP dell'appliance 192.168.1.50
Difatti era + o - quel che pensavo, ma non so se qualcosa di simile è già
previsto o se devo farlo io a manina. In quest'ultimo caso la cosa mi
scoccia perché significa dover personalizzare l'immagine ISO e quindi come
diretta conseguenza mi perdo tutto il discorso del far far gli aggiornamenti
ad una scimmia ammaestrata.
Al limite vedo se è possibile far passare il sistema in upstream, nel qual
caso sarebbe ottimo.


 caso sarebbe ottimo.
Spara una patch su bugzilla.