Ho una macchina Linux con kernel 3.2.0-23-generico e ha una regola con priorità 220 in RPDB che punta alla tabella di routing denominata "220":
T42:~# ip rule show
0: from all lookup local
220: from all lookup 220
220: from all lookup 220
32766: from all lookup main
32767: from all lookup default
T42:~# ip route show table 220
T42:~#
È possibile vedere Da dove viene questa regola? Qual è il punto della tabella di routing vuota? Ultimo ma non meno importante, come possono esserci più regole con la stessa priorità?
Risposta accettata:
È possibile vedere da dove viene questa regola?
Non nel senso "dove posso cercare la fonte di questa regola".
Esistono diversi modi per indagare sul problema:il più evidente è grep
tutti gli script di avvio sul tuo sistema per vedere quale utilizza ip rule
del tutto, e poi inizia a leggerli. Oppure potresti avviare il tuo sistema in modalità utente singolo e avviare i servizi uno per uno, dalla riga di comando, utilizzando strace
. Oppure potresti avviare il tuo sistema con bash
come init (riga di comando del kernel:init=/bin/bash
), e quindi puoi eseguire il vero /sbin/init
con strace
. Si tratta di modi piuttosto avanzati per tracciare le attività di avvio, potrebbe non essere banale sapere quali script eseguire…
Non c'è modo di sapere da dove provenga la regola specifica se è stato un amministratore o un hacker a immetterla manualmente e non uno script presente nel sistema.
Qual è il punto di una tabella di routing vuota?
Niente - finché qualcuno non inizia a popolare quella tabella. Potrebbe trattarsi di un demone, che inizialmente inserisce la regola per la propria tabella e quindi modifica dinamicamente il contenuto della propria tabella di routing.
come possono esserci più regole con la stessa priorità?
IPROUTE2 Utility Suite Howto
priorità PREFERENCE — priorità di questa regola. Ogni regola dovrebbe avere un valore di priorità univoco impostato in modo esplicito. La priorità è un numero a 32 bit senza segno, quindi abbiamo 4294967296 possibili regole.
ATTENZIONE!
Per ragioni storiche, la regola ip add non richiede alcun valore di priorità e consente al valore di priorità di non essere univoco. Se l'utente non aveva fornito un valore di priorità, allora uno è stato assegnato dal kernel. Se l'utente ha richiesto di creare una regola con un valore di priorità già esistente, il kernel non ha rifiutato la richiesta e ha aggiunto la nuova regola prima di tutte le vecchie regole del stessa priorità. Questo è un errore nel design attuale, niente di più. Dovrebbe essere risolto nel momento in cui leggi questo, quindi per favore non fare affidamento su questa funzione. Dovresti sempre utilizzare priorità esplicite durante la creazione delle regole.