erlug
[Top] [All Lists]

Re: [Erlug] Firewall con due ADSL - load balancing

To: ERlug - Lista Pubblica <erlug@xxxxxxxxxxxxxx>
Subject: Re: [Erlug] Firewall con due ADSL - load balancing
From: Davide Bolcioni <db_erlug@xxxxxxxx>
Date: Wed, 7 Feb 2007 11:30:19 +0100
On Tuesday 06 February 2007 10:15:38 pm Riccardo Riva wrote:
> ----- Original Message -----
> From: "Fabio Muzzi" <kurgan@xxxxxxxxxx>
>
> > Veramente  devo  ancora pensare quale possa essere, algoritmicamente e
> > non
> > "a  naso" un metodo per capire se una delle due linee e` giu`
> > (escluso, si
> > intende,  il semplice ping al primo hop di la` dalla ATM, che non e`
> > detto
> > che sia la soluzione migliore).

Potresti provare questa cosa qui (MOLTO UNTESTED) che usa ip(8):

# Link 1
Iface1=eth1
IP1=
Mask1=
Gateway1=

# Link 2
Iface2=eth2
IP2=
Mask2=
Gateway2=

# Qui si toglie il default gateway da main e la si mette prima
ip rule add prio 50 table main
ip route del default table main

ip rule add prio 201 from $IP1/$Mask1 table 201
ip rule add prio 202 from $IP2/$Mask2 table 202

# link 1
route add default via $GW1 dev $Iface1 src $IP1 proto static table 201
route append prohibit default table 201 metric 1 proto static

# link 2
route add default via $GW2 dev $Iface2 src $IP2 proto static table 202
route append prohibit default table 202 metric 1 proto static

# Multipath
ip rule add prio 221 table 221
route add default table 221 proto static \
  nexthop via $GW1 dev $Iface1 weight 2 \
  nexthop via $GW2 dev $Iface2 weight 3

route flush cache

L'idea è che metto la main table prima a 50, di solito è a 32766 ma la metto 
prima senza default gateway in modo che il resto del routing compreso il NAT 
continui a funzionare; scrivo due tabelle per il routing diretto tramite 
ciascun link; poi aggiungo una multipath con due alternative pesate (mi 
piacerebbe, per amor di simmetria, poter specificare due pesi UGUALI ma pare 
che non funzioni).

Messo su il gioco, se si vuole essere avvisati bisogna lanciare

  ip monitor all

filtrare l'output (in alternativa si può essere più fini indicando appositi 
parametri invece di all) e notificare a piacimento. Se qualche furbone 
ammazza gli ICMP, che so, pensando che DESTINATION_UNREACHABLE non serva, 
lungo il percorso di andata e ritorno, ho paura che questo gioco  vada a 
pallino. Ribadisco: MAI PROVATO. Mi piacerebbe sapere se e come funziona.

P.S. Se qualcuno ritrova l'articolo originale gli sarei molto grato, l'ho 
preso da vecchi appunti e non ritrovo la fonte.

Davide Bolcioni
-- 
There is no place like /home.

<Prev in Thread] Current Thread [Next in Thread>