我的 linux 机器上有两个接口,比如说 eth0 和 eth1。eth0 是具有 IPv6 地址的公共 IP,而 eth1 具有私有 IPv4 地址。如果我尝试将在 eth1 接口上接收到的数据包转换为 IPv6 地址,Linux 内核中的 NAT 模块需要在发送之前将 IPv4 数据包转换为 IPv6 数据包。一旦从另一端收到响应,它会将 IPv6 数据包转换回 IPv4,然后再提供给 eth1 接口。我想了解这种转换机制。示例:您有一部具有 LTE 移动数据连接的手机,并且您想通过在手机中创建热点来与他人共享互联网。现在,大多数 LTE 提供商都提供 IPv6 地址。连接到热点的手机将获得 IPv4 地址。但是,手机连接的热点能够浏览互联网。来自移动热点客户端的所有请求都是 IPv4 数据包,LTE 从互联网收到的响应都是 IPv6 数据包。这意味着,在移动 linux 堆栈中会发生从 ipv4 到 ipv6 的转换,反之亦然。
如果有人可以向我指出 linux 代码或解释为此所需的转换,那就太好了。提前致谢。