GNU/Linux >> Linux Esercitazione >  >> Linux

Linux - Tabella di routing "220" nel kernel Linux 3.2.0-23 generico?

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.


Linux
  1. Linux – Kernel:supporto per gli spazi dei nomi?

  2. Linux:un kernel contaminato in Linux?

  3. Linux – Routing tramite Iptables?

  4. Linux – Discarica il layout della tabella delle pagine (configurazione del kernel)?

  5. Tabella delle partizioni non riconosciuta dal kernel Linux

Comando Sysctl in Linux

Linux è un sistema operativo o un kernel?

Kernel Linux vs. Kernel Mac

Kernel Linux e le sue funzioni

Cosa fare in caso di panico del kernel Linux

Guida completa alla registrazione di Linux