Tidak Dapat Menghapus GRE Tunnel

15

Saya mengkonfigurasi terowongan GRE di Linux 2.6.26 dan saya telah menghadapi masalah yang sangat aneh yang saya tidak dapat menemukan solusi apa pun.

Saya telah membuat terowongan GRE yang disebut gre0, tetapi apa pun yang saya lakukan, saya tidak dapat menghapus terowongan ini. Perintah ip tunnel del gre0gagal dengan respons ioctl: Operation not permitted. Upaya apa pun untuk mengubah alamat terowongan juga gagal.

Perintah berikut menggambarkan masalah:

# 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

Saya dapat membuat, mengubah, dan menghapus terowongan lain tanpa masalah, tetapi gre0tetap saja di sana dan tidak hilang, bahkan jika saya menyalakan ulang atau menurunkan antarmuka.

Jika saya menghapus ip_gremodul, terowongan menghilang. Segera setelah saya memasukkan modul lagi, gre0muncul kembali dan masalahnya berlanjut.

Saya punya dua pertanyaan:

  1. Apa yang bisa saya lakukan untuk menyingkirkan terowongan sial ini? Saya menduga ini mungkin bug atau modul bug.
  2. Di mana data persisten tersebut (dalam hal ini, informasi untuk gre0, tetapi ini berlaku untuk pengaturan lain yang bahkan tidak saya sadari) disimpan?

Jika ada informasi lain yang diperlukan, harap beri tahu saya.

Terima kasih banyak atas bantuannya.

alecov
sumber

Jawaban:

2

The gre0antarmuka terowongan disebut sebagai antarmuka mundur dan memiliki arti khusus. Itu dibuat oleh ip_gremodul kernel pada inisialisasi modul. Anda tidak dapat menonaktifkan fitur ini.

Ketika tuan rumah menerima paket gre dimana antarmuka terowongan yang cocok tidak ditemukan, antarmuka mundur ini akan digunakan. Sayangnya, ini fitur yang sangat tidak berdokumen. Hanya dalam kode sumber ini yang dijelaskan.

Logika yang sama digunakan untuk jenis tunneling lainnya.

Jadi Anda tidak dapat menghapusnya sepenuhnya tanpa kehilangan terowongan hijau lainnya. Tapi Anda bisa mengganti nama dengan perintah ip link set dev gre0 name gre_fallback. Dan kemudian Anda dapat membuat terowongan gre lainnya dengan gre0nama.

Anton Danilov
sumber
Setelah delapan tahun, jawaban yang benar muncul. Terima kasih!
alecov
23

Saya yakin saya telah menemukan jawaban untuk masalah ini.

Setelah bermain-main sebentar, saya memutuskan untuk mereproduksi masalah dalam instalasi yang bersih.

The ip_greModul tidak dimasukkan secara default di kernel setelah menginstal Debian. ip tunnel showtidak menampilkan terowongan apa pun. Setelah memasukkan ip_gremodul, tetapi tanpa membuat terowongan apa pun, gre0muncul dan tidak dapat dihapus dan tidak dapat diubah seperti yang diharapkan. Dengan demikian gre0tampaknya menjadi dummy tunnel yang dibuat secara default oleh ip_gremodul.

Bagian yang membuat frustrasi adalah bahwa 'fitur' ini benar-benar tidak berdokumen, dan bahkan tidak terduga, karena mungkin wajar untuk mencoba membuat gre0terowongan sebagai terowongan GRE pertama (dan satu-satunya) dalam suatu sistem.

alecov
sumber
7
Ini juga berlaku untuk tunl0 dan sit0.
Oliver Twist
Dan, untuk tunl0, ipipsebaliknya.
i336_
0

Anda perlu memverifikasi bahwa modul gre benar-benar dihapus. Lari

sudo lsmod | grep gre

untuk memeriksa apakah modul ada dalam daftar. Jika ya, jalankan

sudo rmmod ip_gre
sudo rmmod gre

untuk menghapusnya dari kernel.

Tony
sumber