ไม่สามารถลบ GRE Tunnel


15

ฉันกำลังตั้งค่าอุโมงค์ GRE ใน Linux 2.6.26 และฉันประสบปัญหาแปลก ๆ ซึ่งฉันไม่สามารถหาวิธีแก้ปัญหาใด ๆ ได้

ฉันสร้างอุโมงค์ GRE ที่เรียกว่าgre0แต่ไม่ว่าฉันจะทำอะไรฉันก็ไม่สามารถลบอุโมงค์นี้ได้ คำสั่งล้มเหลวกับการตอบสนองip tunnel del gre0 ioctl: Operation not permittedความพยายามในการเปลี่ยนที่อยู่ของอุโมงค์ก็ล้มเหลวเช่นกัน

คำสั่งต่อไปนี้แสดงให้เห็นถึงปัญหา:

# 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

ฉันสามารถสร้างเปลี่ยนและลบอุโมงค์อื่น ๆ ได้โดยไม่มีปัญหาใด ๆ แต่gre0เพียงติดที่นั่นและไม่หายไปแม้ว่าฉันจะรีบูตหรือลดส่วนต่อประสาน

หากฉันลบip_greโมดูลอุโมงค์จะหายไป ทันทีที่ฉันแทรกโมดูลอีกครั้งgre0ปรากฏขึ้นอีกครั้งและปัญหายังคงอยู่

ฉันมีสองคำถาม:

  1. ฉันจะทำอย่างไรเพื่อกำจัดอุโมงค์ที่น่ารำคาญนี้? ฉันสงสัยว่านี่อาจเป็นเคอร์เนลหรือโมดูลบั๊ก
  2. ในกรณีที่ข้อมูลถาวรดังกล่าว (ในกรณีนี้ข้อมูลสำหรับgre0แต่สิ่งนี้ใช้กับการตั้งค่าอื่น ๆ ที่ฉันอาจไม่รู้) จะถูกเก็บไว้?

หากต้องการข้อมูลอื่นใดโปรดแจ้งให้เราทราบ

ขอบคุณมากสำหรับความช่วยเหลือ

คำตอบ:


2

gre0อินเตอร์เฟซอุโมงค์มีชื่อเป็นสำรองอินเตอร์เฟซและมีความหมายพิเศษ มันสร้างขึ้นโดยip_greโมดูลเคอร์เนลที่เริ่มต้นของโมดูล คุณไม่สามารถปิดการใช้งานคุณสมบัตินี้

เมื่อโฮสต์ได้รับ gre packets ซึ่งไม่พบอินเตอร์เฟสของ tunnel ที่เหมาะสมอินเตอร์เฟส fallback นี้จะถูกใช้ น่าเสียดายที่มันเป็นคุณสมบัติที่ไม่มีเอกสารจริงๆ มีการอธิบายไว้ในซอร์สโค้ดเท่านั้น

ตรรกะเดียวกันนี้ใช้สำหรับการขุดอุโมงค์ชนิดอื่น ๆ

ดังนั้นคุณจะไม่สามารถลบออกได้อย่างสมบูรณ์โดยไม่สูญเสียอุโมงค์สีเทาอื่น ๆ ip link set dev gre0 name gre_fallbackแต่คุณสามารถเปลี่ยนชื่อที่มีคำสั่ง จากนั้นคุณสามารถสร้างอุโมงค์ gre อื่น ๆ ด้วยgre0ชื่อ


หลังจากแปดปีคำตอบที่ถูกต้องจะปรากฏขึ้น ขอบคุณ!
alecov

23

ฉันเชื่อว่าฉันพบคำตอบสำหรับปัญหานี้แล้ว

หลังจากทำการแก้ไขไปครู่หนึ่งฉันตัดสินใจทำซ้ำปัญหาในการติดตั้งใหม่ทั้งหมด

ip_greโมดูลไม่ได้ใส่โดยเริ่มต้นในเคอร์เนลหลังจากติดตั้ง Debian ip tunnel showไม่แสดงอุโมงค์ใด ๆ หลังจากการแทรกip_greโมดูล แต่ไม่สร้างอุโมงค์ใด ๆgre0ปรากฏขึ้นและไม่สามารถลบได้และไม่สามารถเปลี่ยนได้ตามที่คาดไว้ ดังนั้นgre0ดูเหมือนว่าจะเป็นอุโมงค์จำลองที่สร้างขึ้นโดยค่าเริ่มต้นโดยip_greโมดูล

ส่วนที่น่าผิดหวังคือ 'ฟีเจอร์' นี้ไม่มีเอกสารทั้งหมดและเป็นสิ่งที่ไม่คาดคิดเนื่องจากอาจเป็นเรื่องธรรมดาที่จะพยายามสร้างgre0อุโมงค์เป็นอุโมงค์ GRE แรก (และเดียว) ในระบบ


7
นี่เป็นความจริงสำหรับ tunl0 และ sit0
Oliver Twist

และสำหรับtunl0มันipipแทน
i336_

0

คุณต้องตรวจสอบว่าโมดูล gre ถูกลบอย่างสมบูรณ์ วิ่ง

sudo lsmod | grep gre

เพื่อตรวจสอบว่าโมดูลอยู่ในรายการหรือไม่ หากเป็นเช่นนั้นให้เรียกใช้

sudo rmmod ip_gre
sudo rmmod gre

เพื่อลบออกจากเคอร์เนล

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.