禁用或重新计算 `docker0` 接口上的 tcp 校验和验证

禁用或重新计算 `docker0` 接口上的 tcp 校验和验证

因为我需要在 docker 容器的传输层中使用 esp,所以我想禁用 docker 容器中的 tcp 校验和验证。有什么办法可以实现吗?

如果没有,我是否可以在软件包被丢弃之前将其交给自定义 netfilter 模块以更正校验和?例如,为了更正传出的软件包,我使用了:

sudo iptables -t mangle -A POSTROUTING -p tcp -j NFQUEUE

然后在 esp 加密发生之前简单地编写一个自定义钩子来纠正校验和。

但是,我对收到的包裹也进行了同样的尝试:

sudo iptables -t mangle -A PREROUTING -p tcp -j NFQUEUE

并且从未看到任何包到达 NFQUEUE,因此我推测它们在到达队列之前就被丢弃了,因为校验和不正确。有什么方法可以防止这种情况发生吗?

相关内容