[Ninux-Wireless] Ninux Policy Routing Versione 2 RFC

Alessandro Gnagni enterprise.nx a gmail.com
Mar 9 Apr 2013 00:50:30 CEST


Per fare una cosa più pulita non conviene dare la possibilità di scegliere
la tabella in cui inserirle come con rttable e rttabledefault?
Più probabile che accettino un merge in questo modo.
 Il giorno 09/apr/2013 00:42, "Saverio Proto" <zioproto a gmail.com> ha
scritto:

> Ciao a tutti,
>
> ieri facendo un po' prove sulla rete Ninux di Roma abbiamo trovato un
> difetto nell'attuale Policy Routing:
>
> https://github.com/ninuxorg/SDK.UBNT.v5.5/blob/d559e65713d64fee6c3f28f1d9d180a26756ecf3/package/ubnt-base-files/files/ninux#L36
>
> il problema è che una volta annunciate le due /1, le regole di
> blackhole non vengono mai valutate e quindi sono inutili. Design bug,
> nonostante le tante eyeballs nessuno se ne è accorto fino a che non
> abbiamo messo in campo la configurazione, ed abbiamo iniziato ad
> annunciare le /1. Badate, tutto funziona, ma se spariamo un pacchetto
> verso una destinazione che non esiste questo segue la /1 fino al
> router BGP e li muore.
> devo dire che il più sveglio è stato Fabio Capriati perché lui se ne è
> accorto sulla carta senza vedere il problema :)
>
> Per gestire meglio la cosa ho scritto una patch di olsrd che permette
> di mettere le due /1 in una tabella di routing separata:
>
>
> https://github.com/ninuxorg/ninux-openwrt-packages/blob/barra1testing/olsrd-ninux/patches/001-put-prefix1-ipv4-networks-to-table-113.patch
>
> Con questa tabella 113 propongo quindi il seguente policy routing:
>
> #110 Local routes
> #111 RtTable
> #112 RtTableDefault
> #113 Special Table for /1
> #114 blackholes table
>
> #Copy local routes only from table main 254 to table 110
> ip route show table 254 | grep -Ev ^default | grep -Ev ^blackhole |
> grep -v ath0 | while read ROUTE ; do
> ip route add table 110 $ROUTE
> done
>
> #First evaluate local routes
> ip rule add from all lookup 110 pref 3
>
> #Private routes to OLSR table
> ip rule add to 10.0.0.0/8 table 111 pref 4
> ip rule add to 172.16.0.0/12 table 111 pref 4
> ip rule add to 192.168.0.0/16 table 111 pref 4
>
> #Ninux IP Addresses to OLSR table
> ip rule add to 176.62.53.0/24 table 111 pref 4
>
> #Evaluate blackholes
> ip rule add from all table 114 pref 5
>
> #Send traffic of public addresses to BGP border routers
> ip rule add from 176.62.53.0/24 table 113 pref 6
>
> #Lookup default route first from user and then from OLSR
> ip rule add from all lookup 254 pref 7
> ip rule add from all lookup 112 pref 8
>
> #Blackhole private aggregates
> ip route add blackhole 10.0.0.0/8 table 114
> ip route add blackhole 172.16.0.0/12 table 114
> ip route add blackhole 192.168.0.0/16 table 114
>
> #Blackhole Ninux aggregate
> ip route add blackhole 176.62.53.0/24 table 114
>
>
> Questo risolve il problema, quindi ora i blackhole funzionano (a meno
> di mie sviste).
>
> Inoltre mitiga il problema dell'aspirapolvere delle /1 (detto alla
> Fish). Ovvero andando la /1 in una differente tabella, se uno ha il
> policy routing configurato male, dovrebbe matchare più difficilmente
> la /1 a meno di farlo proprio di proposito.
>
> ho già compilato una RC5 di Sburratone che ho flashato sul nodo Gallia
> e tutto funziona correttamente.
>
> se la soluzione "piace" allora faccio la patch di olsrd più elegante e
> cerco di farla mergiare upstream, in modo da non avere un firmware che
> dipende da patches specifice di olsrd.
>
> attendo feedback.
>
> ciao,
>
> Saverio
>
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://ml.ninux.org/pipermail/wireless/attachments/20130409/29ee4b95/attachment-0001.html>


Maggiori informazioni sulla lista Wireless