Iproute2: differenze tra le versioni

m
(5 versioni intermedie di uno stesso utente non sono mostrate)
Riga 71: Riga 71:
Impostare ppp0 come gateway predefinito:
Impostare ppp0 come gateway predefinito:
<pre># ip route add default dev ppp0</pre>
<pre># ip route add default dev ppp0</pre>
Impostare l'IP 192.0.2.1 come gateway predefinito:
<pre># ip route add default via 192.0.2.1</pre>


=== Regole ===
=== Regole ===


Usa la tabella di routing "tab1" (invece di quella principale, vedere anche la sezione ''Aggiungere tabelle di routing'') quando un pacchetto arriva dall'IP <ode>101.13.15.179</code>:
Usa la tabella di routing "tab1" (invece di quella principale, vedere anche la sezione ''Aggiungere tabelle di routing'') quando un pacchetto arriva dall'IP <code>101.13.15.179</code>:


<pre># ip rule add from 101.13.15.179 table chiaro</pre>
<pre># ip rule add from 101.13.15.179 table chiaro</pre>


Usa la tabella di routing "tab1" (invece di quella principale) quando un pacchetto è diretto all'IP <ode>101.13.15.179</code>:
Usa la tabella di routing "tab1" (invece di quella principale) quando un pacchetto è diretto all'IP <code>101.13.15.179</code>:


<pre># ip rule add to 101.13.15.179 table chiaro</pre>
<pre># ip rule add to 101.13.15.179 table chiaro</pre>
Riga 86: Riga 88:
<pre># ip rule add from all fwmark 1 table 1</pre>
<pre># ip rule add from all fwmark 1 table 1</pre>


Si noti che è neceessario usare l'azione ''mark'' di iptables per contrassegnare i pacchetti e far quindi sì che la precedente regola funzioni. Considerare anche che l'abilitazione del ''reverse path filtering'' (si veda sezione più sotto).
Si noti che è neceessario usare l'azione ''mark'' di iptables per contrassegnare i pacchetti e far quindi sì che la precedente regola funzioni. Considerare anche che l'abilitazione del ''reverse path filtering'' (si veda sezione più sotto) congiuntamente alla presenza di regole per SNAT e/o masquerading può portare allo scarto indesiderato dei pacchetti che si sono contrassegnati.
 
Cancellare tutte le regole relative alla tabella "tab1":
 
<pre># while ip rule delete from 0/0 to 0/0 table tab1 2>/dev/null; do true; done</pre>


== Aggiungere tabelle di routing ==
== Aggiungere tabelle di routing ==
Riga 118: Riga 124:
net.ipv4.conf.all.rp_filter
net.ipv4.conf.all.rp_filter
</pre>
</pre>
Assegnando un valore di '''0''' il ''reverse path filtering'' viene disabilitato, mentre assegnando il valore '''1''' viene attivato. In teoria è anche possibile assegnare un valore di compromesso (almeno in Red Hat e derivate), cioè '''2''', che comporta l'accettazione del pacchetto se questo può essere instradato da almeno una delle interfacce della macchina che riceve il pacchetto.
Assegnando un valore di '''0''' il ''reverse path filtering'' viene disabilitato, mentre assegnando il valore '''1''' viene attivato. In teoria è anche possibile assegnare un valore di compromesso (almeno in Red Hat e derivate), cioè '''2''', che comporta l'accettazione del pacchetto se questo può essere instradato da almeno una delle interfacce della macchina che riceve il pacchetto. È anche possibile aggiungere/modificare la medesima direttiva in modo che questa si applichi ad un interfaccia specifica, ad esempio scrivendo <code>net.ipv4.conf.eth0.rp_filter</code> si finirebbe per modificare il comportamento della sola interfaccia '''eth0'''.
Val la pena rammentare che nel file <code>nano /etc/sysctl.conf</code> è anche possibile impostare la variabile per abilitare l'inoltro dei pacchetti, cioè <code>net.ipv4.ip_forward</code>.
Val la pena rammentare che nel file <code>nano /etc/sysctl.conf</code> è anche possibile impostare la variabile per abilitare l'inoltro dei pacchetti, cioè <code>net.ipv4.ip_forward</code>.
Il file <code>/etc/sysctl.conf</code> può anche essere modificato digitando i comandi in modo simile a quanto qui sotto scritto:
<pre>sysctl -w "net.ipv4.conf.all.rp_filter=1" net.ipv4.conf.all.rp_filter = 1</pre>


È anche possibile modificare i valori delle due suddette variabili modificando direttamente i relativi processi, ovvero editando i "file" <code>rp_filter</code> contenuti nelle opportune sottocartelle di <code>/proc/sys/net/ipv4/conf/</code> (ogni sottocartella corrisponde ad una diversa interfaccia). Volendo modificare tutti i processi è possibile eseguire il seguente comando:
È anche possibile modificare i valori delle due suddette variabili modificando direttamente i relativi processi, ovvero editando i "file" <code>rp_filter</code> contenuti nelle opportune sottocartelle di <code>/proc/sys/net/ipv4/conf/</code> (ogni sottocartella corrisponde ad una diversa interfaccia). Volendo modificare tutti i processi è possibile eseguire il seguente comando:
2 906

contributi