我正在Linux2.6.26中配置一个GRE隧道,我一直面临一个非常奇怪的问题,我找不到任何解决方案。
我已经创建了一个名为gre0的GRE隧道,但是无论我做什么,我都无法删除这个隧道。命令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就会重新出现,问题还会继续。
我有两个问题:
gre0的信息,但这适用于我可能甚至不知道的任何其他设置)存储在哪里?如果需要任何其他信息,请告诉我。
非常感谢你的帮助。
发布于 2019-07-18 06:56:22
gre0隧道接口被命名为后备接口,具有特殊的意义。它是由ip_gre内核模块在模块初始化时创建的。不能禁用此功能。
当主机接收到未找到合适的隧道接口的gre数据包时,将使用此回退接口。不幸的是,它实际上是没有文档的特性。只在源代码中对此进行了描述。
在其他类型的隧道中使用相同的逻辑。
所以你不能完全移除它而不丢失其他的格瑞隧道。但是您可以用命令ip link set dev gre0 name gre_fallback重命名它。然后,您可以使用gre0名称创建另一个gre隧道。
发布于 2011-03-15 20:27:05
我相信我已经找到了这个问题的答案。
经过一段时间的修补后,我决定在一个干净的安装中重现这个问题。
在安装Debian之后,默认情况下不会在内核中插入ip_gre模块。ip tunnel show不显示任何隧道。插入ip_gre模块后,但没有创建任何隧道,gre0就会出现,并且是不可删除的,并且是不可更改的。因此,gre0似乎是ip_gre模块默认创建的虚拟隧道。
令人沮丧的是,这个“特性”是完全没有文档的,甚至是一个意想不到的特性,因为尝试创建一个gre0隧道作为系统中的第一个(也是唯一的) GRE隧道是很自然的。
发布于 2019-07-18 03:12:35
您需要验证gre模块是否已完全删除。跑
sudo lsmod | grep gre若要检查模块是否在列表中,请执行以下操作。如果是的话,就跑
sudo rmmod ip_gre
sudo rmmod gre将它们从内核中移除。
https://serverfault.com/questions/247767
复制相似问题