首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能删除GRE隧道

不能删除GRE隧道
EN

Server Fault用户
提问于 2011-03-15 19:01:11
回答 3查看 28.8K关注 0票数 16

我正在Linux2.6.26中配置一个GRE隧道,我一直面临一个非常奇怪的问题,我找不到任何解决方案。

我已经创建了一个名为gre0的GRE隧道,但是无论我做什么,我都无法删除这个隧道。命令ip tunnel del gre0在响应ioctl: Operation not permitted中失败。任何更改隧道地址的尝试也会失败。

以下命令说明了这个问题:

代码语言:javascript
复制
# 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的信息,但这适用于我可能甚至不知道的任何其他设置)存储在哪里?

如果需要任何其他信息,请告诉我。

非常感谢你的帮助。

EN

回答 3

Server Fault用户

回答已采纳

发布于 2019-07-18 06:56:22

gre0隧道接口被命名为后备接口,具有特殊的意义。它是由ip_gre内核模块在模块初始化时创建的。不能禁用此功能。

当主机接收到未找到合适的隧道接口的gre数据包时,将使用此回退接口。不幸的是,它实际上是没有文档的特性。只在源代码中对此进行了描述。

在其他类型的隧道中使用相同的逻辑。

所以你不能完全移除它而不丢失其他的格瑞隧道。但是您可以用命令ip link set dev gre0 name gre_fallback重命名它。然后,您可以使用gre0名称创建另一个gre隧道。

票数 6
EN

Server Fault用户

发布于 2011-03-15 20:27:05

我相信我已经找到了这个问题的答案。

经过一段时间的修补后,我决定在一个干净的安装中重现这个问题。

在安装Debian之后,默认情况下不会在内核中插入ip_gre模块。ip tunnel show不显示任何隧道。插入ip_gre模块后,但没有创建任何隧道,gre0就会出现,并且是不可删除的,并且是不可更改的。因此,gre0似乎是ip_gre模块默认创建的虚拟隧道。

令人沮丧的是,这个“特性”是完全没有文档的,甚至是一个意想不到的特性,因为尝试创建一个gre0隧道作为系统中的第一个(也是唯一的) GRE隧道是很自然的。

票数 25
EN

Server Fault用户

发布于 2019-07-18 03:12:35

您需要验证gre模块是否已完全删除。跑

代码语言:javascript
复制
sudo lsmod | grep gre

若要检查模块是否在列表中,请执行以下操作。如果是的话,就跑

代码语言:javascript
复制
sudo rmmod ip_gre
sudo rmmod gre

将它们从内核中移除。

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/247767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档