No se puede eliminar el túnel GRE

15

Estoy configurando un túnel GRE en Linux 2.6.26 y me he enfrentado a un problema muy extraño para el que no pude encontrar ninguna solución.

He creado un túnel GRE llamado gre0, pero no importa lo que haga, simplemente no puedo eliminar este túnel. El comando ip tunnel del gre0falla con la respuesta ioctl: Operation not permitted. Cualquier intento de cambiar las direcciones del túnel también falla.

Los siguientes comandos ilustran el 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

Puedo crear, cambiar y eliminar otros túneles sin ningún problema, pero gre0simplemente permanece allí y no desaparece, incluso si reinicio o quito las interfaces.

Si elimino el ip_gremódulo, el túnel desaparece. Tan pronto como inserte el módulo nuevamente, gre0vuelve a aparecer y el problema continúa.

Tengo dos preguntas:

  1. ¿Qué puedo hacer para deshacerme de este molesto túnel? Sospecho que esto podría ser un kernel o un error de módulo.
  2. ¿Dónde gre0se almacenan tales datos persistentes (en este caso, la información para , pero esto se aplica a cualquier otra configuración que yo pueda desconocer)?

Si necesita otra información, hágamelo saber.

Muchas gracias por cualquier ayuda.

alecov
fuente

Respuestas:

2

La gre0interfaz del túnel se denomina interfaz de respaldo y tiene un significado especial. Es creado por el ip_gremódulo del núcleo en la inicialización del módulo. No puede deshabilitar esta función.

Cuando el host recibe paquetes gre para los que no se encuentra la interfaz de túnel adecuada, se utilizará esta interfaz alternativa. Desafortunadamente, es una característica realmente indocumentada. Solo en el código fuente se describe esto.

La misma lógica se usa para otros tipos de túneles.

Por lo tanto, no puede eliminarlo por completo sin perder otros túneles gre. Pero puedes cambiarle el nombre con el comando ip link set dev gre0 name gre_fallback. Y luego puedes crear el otro túnel gre con gre0nombre.

Anton Danilov
fuente
Después de ocho años, aparece la respuesta correcta. ¡Gracias!
alecov
23

Creo que me he encontrado una respuesta a este problema.

Después de jugar un rato, decidí reproducir el problema en una instalación limpia.

El ip_gremódulo no se inserta por defecto en el núcleo después de instalar Debian. ip tunnel showNo muestra ningún túnel. Después de insertar el ip_gremódulo, pero sin crear ningún túnel, gre0aparece y es indeleble e inmutable como se esperaba. Por lo tanto, gre0parece ser un túnel ficticio creado por defecto por el ip_gremódulo.

La parte frustrante es que esta 'característica' está totalmente indocumentada, e incluso es inesperada, ya que podría ser natural intentar crear un gre0túnel como el primer (y único) túnel GRE en un sistema.

alecov
fuente
77
Esto también es cierto para tunl0 y sit0.
Oliver Twist el
Y, para tunl0, es en su ipiplugar.
i336_
0

Debe verificar que el módulo gre se haya eliminado por completo. correr

sudo lsmod | grep gre

para verificar si el módulo está en la lista. Si es así, corre

sudo rmmod ip_gre
sudo rmmod gre

para eliminarlos del núcleo.

Tony
fuente