首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
拉勾
V2EX  ›  奇思妙想

迫于 IPv6 接口标识足足有 64 位,可否用来做一个真正的 DNS 代理?

  •  
  •   Archeb · 137 天前 · 1816 次点击
    这是一个创建于 137 天前的主题,其中的信息可能已经有所发展或是发生改变。
    想法是这样的。
    1、客户端请求 DNS (例如查询 www.google.com
    2、DNS 服务器获得 www.google.com 的正确解析结果(如 216.58.219.132 ),记下来
    3、DNS 服务器返回一个代理服务器的地址给客户端(如 2001:DB8::1234 )
    4、DNS 服务器告诉代理服务器这个转发请求(如 发送到 2001:DB8::1234 这个地址的流量全部转发到 216.58.219.132 )
    5、实现代理效果

    因为 IPv4 的地址稀缺,而 v6 地址的丰富性使得这样的用法成为可能?

    不知道以上思路有什么缺点,或者其实已经存在这样的应用(感觉应该有),欢迎指出
    第 1 条附言  ·  137 天前
    我也发现了,这就是 DNS64+NAT64,23333
    只不过 不需要网关处理映射, 也支持 ipv6 nat
    21 回复  |  直到 2018-11-09 23:21:32 +08:00
        1
    squid157   137 天前
    NAT64 ?
        2
    noe132   137 天前 via Android
    dns 是有缓存的。
        3
    gy911201   137 天前
    如果是内网,其实 ipv4 都够用,随便找个内网的网段去做就是了……
    实话说,其实用不了多少个 IP ………
        4
    Archeb   137 天前
    @gy911201 就是公网情况下的...几百个吧要的
    @squid157 你这么一说感觉确实其实就是 DNS64 ( NAT64 )
    @noe132 缓存应该和这个不相影响吧...
        5
    jessynt   137 天前
    Surge for Mac 的 enhanced mode
        6
    jessynt   137 天前
        7
    gstqc   137 天前 via Android
    2. 直接返回那个 v6 地址
    5. 实现代理效果

    另外,DNS 不是只有 HTTP 在用,这种进不了 RFC 又涉及到基础设施的,改协议没什么价值,没人跟你玩,除非你把上下游都搞定
        8
    iceheart   137 天前 via Android   ♥ 1
    1.你对 IPV6 的认知是错的,IPV6 是 128 位的,不是 64 位
    2.你对 DNS 服务器一无所知。DNS 只负责解析名字,它不知道,也没法知道你拿解析到的地址去干啥,返回一个代理对它来说就是错误的解析。
    3.你对代理的认知也是错的,代理是指建立在某种协议之上的,不存在对所有协议的代理。我的私有协议就是不支持代理,dns 把我的域名解析到一个代理服务器上,这不是搞事情么
        9
    BOYPT   137 天前
    除了 #8 的纠错,类似的想法早已经是标准 RFC,俗称称作 DNS64+NAT64,是给纯 ipv6 用户访问只有 v4 地址的服务器的。

    草案中已经规定,64:ff9b::/96 地址段是用来映射 ipv4 所有地址成为 ipv6 地址,DNS64 服务器对于 AAAA 请求,发现上有的域名没有 AAAA 记录而只有 A 记录,就把 A 记录的地址转换成 64:ff9b::前缀的 v6 地址作为 AAAA 响应返回。网关上自然也是做好了 NAT64 的转换。
        10
    Archeb   137 天前 via Android
    @iceheart 看清楚 我说 64 位是接口标识 前 64 位是网络前缀
    返回的是代理服务器的 ip 地址
    好好看帖子
        11
    Archeb   137 天前 via Android
    @BOYPT 确实就是 NAT64 的思路,只不过我觉得一样可以代理 ipv6 和支持大部分协议
        12
    Archeb   137 天前 via Android
    @gstqc 不需要也不想其他人跟我配合,自己搭建 dns 和 代理服务器 即可
        13
    goofool   137 天前
    为啥不直接跟代理服务器连接
        14
    Archeb   137 天前 via Android
    @goofool 只要客户端支持 ipv6 支持修改 dns 就可以用 无需额外客户端软件
    未来 v6 普及了就好
        15
    oovveeaarr   137 天前
    不对呀,这根 NAT64 不是没差嘛,支持协议的事情不是应该代理服务器自己去做的么。
    IPv4 一共就 32 位,IPv6 128 位,所以拿出一个 96,就可以完整映射 IPv4 了,剩下的想怎么搞怎么搞。
        16
    gy911201   137 天前
    @Archeb 放到公网其实有一个问题,就是你鉴权很难去做……
    基本上相当于一个 RBQ 了…………
        17
    Tink   136 天前 via iPhone
    先不说 ipv6,这不就是自建 dns+sniproxy 实现翻墙的变通么?
        18
    missdeer   136 天前
    同意 17 楼,IPv4 就有机场这么搞了,自建 DNS+SNIProxy
        19
    Archeb   136 天前 via Android
    @missdeer
    @Tink

    最多说 dns 部分思路相同
    ipv6 下可以一一对应
        20
    Archeb   136 天前 via Android
    @gy911201
    同样利用 ipv6 地址足够的特点
    给每个用户分配单独的 dns 地址
    反正也没法批量扫描
        21
    Archeb   133 天前
    @Tink
    @missdeer
    TLS1.3 SNI 加密之后呢?(光速逃
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2336 人在线   最高记录 4385   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 20ms · UTC 12:52 · PVG 20:52 · LAX 05:52 · JFK 08:52
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1