Impossibile eliminare il tunnel GRE


15

Sto configurando un tunnel GRE in Linux 2.6.26 e ho riscontrato un problema molto strano per il quale non sono riuscito a trovare alcuna soluzione.

Ho creato un tunnel GRE chiamato gre0, ma non importa quello che faccio, non sono semplicemente in grado di eliminare questo tunnel. Il comando ha ip tunnel del gre0esito negativo con la risposta ioctl: Operation not permitted. Anche qualsiasi tentativo di cambiare gli indirizzi del tunnel fallisce.

I seguenti comandi illustrano il problema:

# ip tunnel del gre0
ioctl: Operation not permitted
# ip tunnel change gre0
# ip tunnel change gre0 remote <some address> local <some address>
ioctl: No such file or directory

Sono in grado di creare, modificare ed eliminare altri tunnel senza alcun problema, ma gre0resta semplicemente lì e non scompare, anche se riavvio o abbasso le interfacce.

Se rimuovo il ip_gremodulo, il tunnel scompare. Non appena inserisco nuovamente il modulo, gre0riappare e il problema persiste.

Ho due domande:

  1. Cosa posso fare per sbarazzarmi di questo fastidioso tunnel? Ho il sospetto che questo potrebbe essere un kernel o un errore del modulo.
  2. Dove sono memorizzati tali dati persistenti (in questo caso, le informazioni per gre0, ma questo vale per qualsiasi altra configurazione di cui potrei anche non essere a conoscenza)?

Se sono necessarie altre informazioni, per favore fatemelo sapere.

Grazie mille per qualsiasi aiuto.

Risposte:


2

L' gre0interfaccia del tunnel è denominata come interfaccia di fallback e ha un significato speciale. È creato dal ip_gremodulo del kernel all'inizializzazione del modulo. Non è possibile disabilitare questa funzione.

Quando l'host riceve pacchetti gre per i quali non viene trovata l'interfaccia tunnel appropriata, verrà utilizzata questa interfaccia di fallback. Sfortunatamente, è una funzionalità davvero non documentata. Questo è descritto solo nel codice sorgente .

La stessa logica viene utilizzata per altri tipi di tunneling.

Quindi non puoi rimuoverlo completamente senza perdere altri tunnel gre. Ma puoi rinominarlo con il comando ip link set dev gre0 name gre_fallback. E poi puoi creare l'altro tunnel gre con il gre0nome.


Dopo otto anni, appare la risposta corretta. Grazie!
alecov,

23

Credo di essermi trovato una risposta a questo problema.

Dopo aver armeggiato per un po ', ho deciso di riprodurre il problema in un'installazione pulita.

Il ip_gremodulo non è inserito di default nel kernel dopo aver installato Debian. ip tunnel shownon visualizza alcun tunnel. Dopo aver inserito il ip_gremodulo, ma senza creare alcun tunnel, gre0appare ed è indistruttibile e immutabile come previsto. Così gre0sembra essere un tunnel fittizio creato per impostazione predefinita dal ip_gremodulo.

La parte frustrante è che questa "caratteristica" è totalmente priva di documenti ed è persino inaspettata, dal momento che potrebbe essere naturale tentare di creare un gre0tunnel come il primo (e unico) tunnel GRE in un sistema.


7
Questo vale anche per tunl0 e sit0.
Oliver Twist,

E, invece tunl0, lo è ipip.
i336_

0

Devi verificare che il modulo gre sia stato completamente rimosso. Correre

sudo lsmod | grep gre

per verificare se il modulo è nell'elenco. Se lo è, corri

sudo rmmod ip_gre
sudo rmmod gre

per rimuoverli dal kernel.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.