Newsgroup: it.comp.os.linux.sys
Titolo: Doppio Gateway sotto Linux, si puo'?

Domanda forse assurda, quindi spiego bene la situazione...
Al momento (fino al 13 settembre) ho un abbonamento adsl con
Infostrada...
Dal momento che la suddetta linea cede abbastanza spesso, mi sono presa
un router ZyXEL Prestige 100WH per poter evitare di smanettare troppo
sulle configurazioni e avere lo stesso la LAN che esce via internet (allo
zyxel collego un modem e sono a posto :P).
Il problema e' il seguente:
Sotto windows posso settare due gateway, uno il router adsl, l'altro lo
zyxel e non ci sono problemi.
Ho anche due linux, e' possibile senza dover installare roba aggiuntiva
fare in modo di settare due gateway (il cisco e lo zyxel, con il cisco
come default e lo zyxel come "backup")?
Possibilmente ovviamente senza ricompilare il kernel oppure aggiungere
software esterni (non ne varrebbe la pena, uso il comando route a mano
piuttosto)...
So che e' una domanda strana, pero' per un mese non me la sento di
ricompilare il kernel :P
-- 
           ~~ ICQ#: 8761263 ~~ 
http://www.delymyth.net/
 ~~
            E-Mail Addy: DElyMyth [at] delymyth [dot] net
           => FREE! Hardware Anti-Virus!!! - /dev/brain <=
GnuPG Fingerprint: F6D3 E002 C55A 0B58 7BD4  70CE A69B CCFC 741D 3099

 come default e lo zyxel come "backup")?
Una idea rudimentale potrebbe essere questa (scopiazzo da un mio programma
che diagnostica lo stato di una certa linea):
#!/bin/bash
# un paio di host remoti per verificare la connessione:
host1=1.1.1.1
host2=2.2.2.2
# i due gw interni:
gw1=11.11.11.11
gw2=22.22.22.22
# se almeno uno dei due host risponde, il gw e' ok:
if ping $host1 -q -c 1 -w 5 > /dev/null 2>&1 \
    || ping $host2 -q -c 1 -w 5 > /dev/null 2>&1; then
	# gw corrente up
	exit 0
fi
echo "collegamento Inet DOWN"
gw=$( route -n | grep ^0.0.0.0 | (read x gw x; echo $gw) )
gw=$( head -1 $gw_corrente )
echo "gw precedente: $gw"
if [ "$gw" = "$gw1" ]; then
	route del default gw $gw1
	route add default gw $gw2
	echo "gw impostato: $gw2"
else
	route del default gw $gw2
	route add default gw $gw1
	echo "gw impostato: $gw1"
fi
exit 0
Metti questo script nella crontab di root dei PC Linux e lo fai girare
ogni 5 minuti:
...
5 *  * * *  /root/scriptino
Non l'ho provato, ma serve solo come suggerimento!
Ciao,
         Umberto

Puoi aggiungerlo, con metric più alta, ma personalmente non l'ho mai visto
funzionare per come la pensavo.
Diverso è un semplice script, che pinga un target ogni  tot e se non
risponde, fà il cambio di route.
Semplice, pulito e veloce.

La soluzione ottimale é mettere come default gw la macchina linux su cui
installi un software come Zebra o similari; quest'ultimo prevede, in caso di
failure, di tirare su un link di backup.
Ciao

 caso di failure, di tirare su un link di backup.  Ciao
Il problema e' che la cosa mi servira' solo da qui al 13 settembre, dopo
adsl mi scade, quindi il problema non si pone piu'...
Per quello volevo evitare di installare software aggiuntivi (meno di un
mese, capitera' una volta, mi sembra quantomeno eccessivo :P)
L'idea dello script non e' male, trovassi host pingabili (ma quelli prima
o poi li scovo, non tutti filtrano i pacchetti icmp :P)
PS:
Comunque le linux sono 2 :P


 programma che diagnostica lo stato di una certa linea):      
Casomai ti offendi se scopiazzo vilemente? :)
Trovando host che rispondono al ping (senza dns che i dns di infostrada
ogni tanto collassano di loro, quindi devo beccare ip puri :P) dovrebbe
funzionare...


 writes:
D> Ho anche due linux, e' possibile senza dover installare roba aggiuntiva
D> fare in modo di settare due gateway (il cisco e lo zyxel, con il cisco
D> come default e lo zyxel come "backup")?
Ho qui la mia  sistemista di fiducia (non sono di parte  a dire che se
la cava assai  bene :) ) che mi  dice che, se puoi mettere  le mani su
ambedue i router puoi far si che il router ADSL quando trova linea giů
rediriga i  pacchetti sullo zyxel. Dipende  dal tipo di  Cisco e dalla
tua conoscenza o  meno della pwd del cisco. Le info  le trovi sul sito
della Cisco.
D> Possibilmente ovviamente senza ricompilare il kernel oppure aggiungere
D> software esterni (non ne varrebbe la pena, uso il comando route a mano
D> piuttosto)...
Il kernel lo ricompili se metti  la macchina Linux a fare da router ma
non mi pare che sia quello  che tu vuoi fare. E per esperienza (alcuni
anni)  ti dico  che avere  una macchina  che č  usata come  router _e_
qualcos'altro  č una piaga  se hai  un traffico  sostenuto. Se  č fare
routing per un'altra macchina e basta nema problema...
--
Gian Uberto| main(){printf(&unix["\021%six\012\0"],(unix)["have"]+"fun"-0x60);}
Lauri      |                        David Korn, 1987 ioccc best one liner 
(aka saint)|-------------------------------------------------------------------
em@ail: 
sa...@eng.it
 ( vedere X-nospam nello header - see X-nospam in header )

 routing per un'altra macchina e basta nema problema...  --
Non ci penso proprio a mettermi a fare *anche* da router...
Gia' faccio da server news, ci manca anche il mettere su il router :(
E poi non potrei gestirmi io il carico macchina come mi pare, non potrei
riavviare e spegnere quando voglio eccetera :P


 Casomai ti offendi se scopiazzo vilemente? :)
Puoi scopiazzare, avendo l'accortezza di eliminare la riga
gw=$( head -1 $gw_corrente )
che non c'entra nulla, e di scrivere correttamente la riga del crontab:
*/5  *  *  *  *  /root/scriptino
che ho messo per vedere se stavi attento :-P
Ciao,
         Umberto

, scrivendo:
D> Il cisco e' in comodato d'uso da infostrada, non ho accesso telnet e in
D> console (a parte che sulla mia linux la seriale e' impegnata dallo zyxel)
D> non saprei come entrare (non mi hanno detto la pass)...
:( :(
C'era un  mio amico che sapeva  come craccare i vecchi  Cisco (era uno
sporco trick HW basato sul reset del firmware). Non so se va anche coi
nuovi...
D> Non ci penso proprio a mettermi a fare *anche* da router...
Concordo.  Nei primi  anni '90  avevamo in  dipartimento i  server che
facevano anche  da router ed era  una piaga. Molti dei  maniaci di BBS
facevano prima una login su una  macchina sulla rete più esterna e poi
quella al BBS...


 nuovi...
lo puoi fare con tutti i cisco; non e` un bug, ma una feature (mica vorrai
buttare la macchina se perdi la password)... ovviamente lo puoi fare solo
dalla console seriale e le istruzioni si trovano direttamente su
www.cisco.com
, ma se il router non e` tuo non e` bello fare cio`
PS non sarei cosi` categorico a dire che lo zyxel non permetta una metrica
sulle sue routing (anzi, magari sbaglio, ma sarei propenso a dire che lo
puo` fare...)
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 dire che lo puo` fare...)
Crackare il router di infostrada non mi ispira (gia' li voglio citare per
danni, almeno cerco di rimanere nel giusto :P)
Per quanto riguarda lo zyxel, non c'e' modo di fargli usare un altro
router, lui esce solo via modem (e' fatto apposta per condividere
connessioni via modem senza dover configurare una macchina come router)


o poi li scovo, non tutti filtrano i pacchetti icmp :P)
Anche perche' gli ICMP del tipo che serve per il ping li filtrano solo gli
incompetenti.
-- 
BlueRaven
Prima di parlare, ricorda:
mount -t auto /dev/brain /mnt/mouth

 Gia' faccio da server news, ci manca anche il mettere su il router :(
Mmm... che dovrei dire io allora, dato che la mia macchina fa da server
mail, news, e proxy solo per se stessa? ;) 
Henryx
-- 
La vispa Teresa / avea su una fetta / di pane sorpresa /
gentile cornetta; / e tutta giuliva / a chiunque l'udiva / 
gridava a distesa: / - L'ho intesa, l'ho intesa! -

 writes:
x> lo puoi fare con tutti i cisco; non e` un bug, ma una feature (mica vorrai
x> buttare la macchina se perdi la password)... ovviamente lo puoi fare solo
x> dalla console seriale 
Beh, anche il sistema del  mio amico richiedeva prossimità fisica alla
macchina... Ma era più low level e brutale :)
x> e le istruzioni si trovano  direttamente su 
www.cisco.com
, ma se il
x> router non e` tuo non e` bello fare cio`
Dipende dalla situazione...
