找不到模块 nf_nat_proto_gre

找不到模块 nf_nat_proto_gre

启动 Xubuntu 19.04 时,在 boot.log 中获取以下内容:

[[0;1;31mFAILED[0m] Failed to start [0;1;39mLoad Kernel Modules[0m.
See 'systemctl status systemd-modules-load.service' for details.

我运行 systemctl status systemd-modules-load.service 会产生:

Failed to find module 'nf_nat_proto_gre'

sudo modprobe nf_nat_proto_gre得到:

modprobe: FATAL: Module nf_nat_proto_gre not found in directory /lib/modules/5.0.0-16-generic

问题是什么?我应该如何解决?

答案1

首先:明显的问题应该是:需要这个模块吗?这是为了支持在 NAT 后面使用(可能是多个而不是一个)GRE 隧道。如果不使用 GRE 隧道,这个问题就没有意义了。

现在发生了什么? Ubuntu 19.04 似乎正在使用内核 5.0,并且从该内核开始进行了一些 netfilter 重新设计,以将一些单独的 netfilter 模块分解回核心(即:不作为模块),以整体增加大小或帮助进一步实现 netfilter 功能。作为此次返工的一部分,该模块被“砍掉”。

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/net/ipv4/netfilter/nf_nat_proto_gre.c?h=v5.0

path: root/net/ipv4/netfilter/nf_nat_proto_gre.c
Age   Commit message (Expand) Author  Files   Lines
2018-12-17    netfilter: nat: remove nf_nat_l4proto struct    Florian Westphal    1   -61/+0
2018-12-17    netfilter: nat: remove l4proto->manip_pkt   Florian Westphal    1   -41/+0
2018-12-17    netfilter: nat: remove l4proto->nlattr_to_range Florian Westphal    1   -3/+0
2018-12-17    netfilter: nat: remove l4proto->in_range    Florian Westphal    1   -1/+0
2018-12-17    netfilter: nat: remove l4proto->unique_tuple

当然功能还是有的。最后提交评论,强调我的:

netfilter: nat: 删除 nf_nat_l4proto 结构

这将删除(现在为空)nf_nat_l4proto 结构、其所有实例
以及所有不再需要的运行时(取消)注册功能。

nf_nat_need_gre() 也可以被砍掉:调用它的模块(以
加载不再存在的 nat_gre 模块)还会调用其他 nat 核心
函数。如果使用 GRE nat 构建内核,GRE nat 现在始终可用

[...]

因此,如果 Ubuntu 有一些要加载的硬编码的帮助程序模块列表,则该列表不会更新以在同一情况下删除此模块和其他一些模块。您应该安全地忽略该错误,或​​报告小错误。

相关内容