fnat46 - IPv4/IPv6 协议转换网关


MIT
跨平台
Google Go

软件简介

IPv4/IPv6 协议转换网关,用于在当前 IPv4 单栈局域网内,客户端访问外部 IPv6 单栈网络资源。

整体思路

局域网内终端接入协议转换网关,通过 DNS46 完成域名解析,对访问 IPv6 资源的网络请求通过 NAT46
协议转换设备完成协议转换(请求、响应),以完成全程网络会话。

流程时序

  1. Pv4 客户端向域名服务器 DNS46 发起资源服务网络请求(A记录);
  2. DNS46 通过递归查询公网该服务域名的 A 记录。如果得到 A 记录,则返回给客户端,客户端继续使用 A 记录的 IPv4 完成网络请求;
  3. 如果 DNS46 查询到该域名只有 AAAA 记录,则表示该域名服务只提供了 IPv6 单栈服务,需要 NAT46 的转换服务;
  4. DNS46 从可用 IPv4 资源池中选择一个 IP,注册该 IPv4 与服务域名 IPv6 的映射,将该映射同步至 NAT46 网关,然后将该 IPv4 返回给客户端;
  5. 客户端向该 IPv4 发起网络会话请求,该请求通过路由到达 DNS46 网关;
  6. DNS46 网关以报头目的 IP 查询映射,得到真实的 IPv6 目的地址,将 IPv4 协议报头替换为 IPv6 报头,通过 NAT46 网关的 IPv6 出口以 IPv6 协议向服务域名发起请求;
  7. NAT46 网关收到响应后,通过查询映射表,将 IPv6 报头转换为 IPv4 报头,返回给 IPv4 客户端,会话完成。