Không thể xóa đường hầm GRE


15

Tôi đang cấu hình một đường hầm GRE trong Linux 2.6.26 và tôi đã phải đối mặt với một vấn đề rất lạ mà tôi không thể tìm thấy bất kỳ giải pháp nào.

Tôi đã tạo một đường hầm GRE được gọi gre0, nhưng bất kể tôi làm gì, tôi chỉ đơn giản là không thể xóa đường hầm này. Lệnh ip tunnel del gre0thất bại với phản ứng ioctl: Operation not permitted. Bất kỳ nỗ lực thay đổi địa chỉ của đường hầm cũng thất bại.

Các lệnh sau minh họa vấn đề:

# 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

Tôi có thể tạo, thay đổi và xóa các đường hầm khác mà không gặp vấn đề gì, nhưng gre0chỉ cần giữ ở đó và không biến mất, ngay cả khi tôi khởi động lại hoặc gỡ bỏ các giao diện.

Nếu tôi loại bỏ ip_gremô-đun, đường hầm biến mất. Ngay khi tôi chèn mô-đun lại, gre0xuất hiện lại và vấn đề vẫn tiếp tục.

Tôi có hai câu hỏi:

  1. Tôi có thể làm gì để thoát khỏi đường hầm phiền phức này? Tôi nghi ngờ đây có thể là một hạt nhân hoặc một lỗi mô-đun.
  2. Trường hợp dữ liệu liên tục như vậy (trong trường hợp này, thông tin cho gre0, nhưng điều này áp dụng cho bất kỳ thiết lập nào khác mà tôi có thể không biết) được lưu trữ?

Nếu cần bất kỳ thông tin nào khác, xin vui lòng cho tôi biết.

Cảm ơn rất nhiều vì sự giúp đỡ.

Câu trả lời:


2

Các gre0giao diện đường hầm được đặt tên như giao diện dự phòng và có ý nghĩa đặc biệt. Nó được tạo bởi ip_gremô-đun hạt nhân khi khởi tạo mô-đun. Bạn không thể tắt tính năng này.

Khi máy chủ nhận được các gói gre mà giao diện đường hầm phù hợp không được tìm thấy, giao diện dự phòng này sẽ được sử dụng. Thật không may, đó là tính năng thực sự không có giấy tờ. Chỉ trong mã nguồn này được mô tả.

Logic tương tự được sử dụng cho các loại đường hầm khác.

Vì vậy, bạn không thể loại bỏ nó hoàn toàn mà không bị mất các đường hầm khác. Nhưng bạn có thể đổi tên nó bằng lệnh ip link set dev gre0 name gre_fallback. Và sau đó bạn có thể tạo đường hầm gre khác với gre0tên.


Sau tám năm, câu trả lời đúng xuất hiện. Cảm ơn!
alecov

23

Tôi tin rằng tôi đã tìm thấy cho mình một câu trả lời cho vấn đề này.

Sau khi mày mò một lúc, tôi quyết định tái tạo vấn đề trong một bản cài đặt sạch.

Các ip_gremô-đun không được chèn bởi mặc định trong các hạt nhân sau khi cài đặt Debian. ip tunnel showkhông hiển thị bất kỳ đường hầm. Sau khi chèn ip_gremô-đun, nhưng không tạo ra bất kỳ đường hầm nào, gre0sẽ xuất hiện và không thể xóa được và không thể thay đổi như mong đợi. Do đó, gre0dường như là một đường hầm giả được tạo bởi mặc định bởi ip_gremô-đun.

Điều khó chịu là 'tính năng' này hoàn toàn không có giấy tờ, và thậm chí là một điều bất ngờ, vì có thể tự nhiên cố gắng tạo một gre0đường hầm là đường hầm GRE đầu tiên (và duy nhất) trong một hệ thống.


7
Điều này cũng đúng với tunl0 và sit0.
Oliver Twist

Và, thay vào đó tunl0, nó ipipthay vào đó.
i336_

0

Bạn cần xác minh rằng mô-đun gre đã được loại bỏ hoàn toàn. Chạy

sudo lsmod | grep gre

để kiểm tra xem mô-đun có trong danh sách không. Nếu có, hãy chạy

sudo rmmod ip_gre
sudo rmmod gre

để loại bỏ chúng khỏi kernel.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.