09
2025
04
17:07:38

记一次nat64 的使用过程



目录

    • dns64

      • nslookup 举例

        • 使用 dns.google

        • 指定 dns64 为解析服务器

    • nat64

      • 使用 curl 测试

        • 默认

        • 指定解析地址以使用nat64

    • 注意

    • 参考


今天搞了个只有ipv6的机子,遇到了一个问题。我想访问ipv4的服务要怎办呢?
比较简单的是自己用双栈的服务器搭建一个代理socks,监听ipv6地址,然后从ipv4地址发出。
不过发现了一个有趣的东西:公共nat64,这里简单记录下,主要是https://nat64.net/ 。

dns64

https://nat64.net/ 需要使用以下dns 服务器地址。其作用是在解析的时候添加一个 ipv6 地址,而通过这个ipv6地址,我们可以访问到对应的ipv4。

2a01:4f8:c2c:123f::1
2a00:1098:2c::1
2a00:1098:2b::1

虽然文档是让我们把dns地址配置到机器上,达到全局自动配置,但也可以在程序中指定dns解析,实现一样的目的,后面我使用nslookup 和curl 举例。

nslookup 举例

这里用 nslookup 举例,该命令用于查询解析记录,并且可以指定解析服务器

使用 dns.google

nslookup bjun.tech
服务器:  dns.google
Address:  2001:4860:4860::8844

非权威应答:
名称:    bjun.tech
Address:  42.194.183.26

指定 dns64 为解析服务器

nslookup bjun.tech 2a00:1098:2b::1
服务器:  UnKnown
Address:  2a00:1098:2b::1

非权威应答:
名称:    bjun.tech
Addresses:  2a01:4f8:c2c:123f:64:5:2ac2:b71a
          2a00:1098:2c::5:2ac2:b71a
          2a00:1098:2b::1:2ac2:b71a
          42.194.183.26

返回的结果多了3个ipv6地址。

nat64

wiki/NAT64

NAT64是一种通过网络地址转换的形式促成IPv6与IPv4主机间通信的IPv6过渡机制。NAT64网关是IPv4与IPv6协议间的转换器,它需要至少一个IPv4地址和一个包含32位地址空间的IPv6网段。为此服务保留的“已知前缀”是 64:ff9b::/96。
IPv6 客户端使用 IPv6 网段的主机部分嵌入它希望与之通信的 IPv4 地址,从而生成嵌入 IPv4 的 IPv6 地址(因此 IPv6 网段中的 32 位地址空间),并将数据包发送到生成的地址。NAT64 网关在 IPv6 和 IPv4 地址之间创建映射,可以手动配置或自动确定。

公共的nat64服务会帮我们实现以上过程,我们不用自己搭建。

使用 curl 测试

curl 有个配置参数 --resolve,可以指定解析记录。格式是: --resolve bjun.tech:443:[地址]

默认

curl https://bjun.tech/ip.php
string(15) "xxx.xxx.xxx.xxx"
....

指定解析地址以使用nat64

其中的[2a00:1098:2c::5:2ac2:b71a] 为上一步中nslookup 查询到的地址。

curl --resolve bjun.tech:443:[2a00:1098:2c::5:2ac2:b71a] https://bjun.tech/ip.php
string(14) "46.235.230.124"
string(14) "46.235.230.124"
array(5) {
  ["city"]=>
  string(8) "英国--"
  ["registered_country"]=>
  string(6) "英国"
  ["network"]=>
  string(15) "46.235.224.0/21"
  ["location"]=>
  array(2) {
    ["timeZone"]=>
    string(13) "Europe/London"
    ["accuracyRadius"]=>
    int(200)
  }
  ["asn"]=>
  array(3) {
    ["asn"]=>
    int(44684)
    ["org"]=>
    string(17) "Mythic Beasts Ltd"
    ["network"]=>
    string(15) "46.235.224.0/21"
  }
}

到此,我们成功用上了公共的nat64,实现了在存ipv6的机子访问ipv4服务

注意

使用公共nat64时,不建议有大流量的请求,并且由于机器内存等因素,有可能不稳定,有长时间稳定性需求的不建议使用。

参考

https://v6tools.kasperd.dk/nat64handoff/service
https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-nat64-dns64.html
https://developers.google.com/speed/public-dns/docs/dns64?hl=zh-cn

更多的公共dns64项目




推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://hqyman.cn/post/10271.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: