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 _______________________________________________ Wireless mailing list Wireless@ml.ninux.org http://ml.ninux.org/mailman/listinfo/wireless