DNS 服务器得到的 IP 是客户端 IP 还是客户端 DNS 出口 IP? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yitd
V2EX    DNS

DNS 服务器得到的 IP 是客户端 IP 还是客户端 DNS 出口 IP?

  •  
  •   yitd 2019-11-18 19:13:42 +08:00 10057 次点击
    这是一个创建于 2161 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我感觉我瞎折腾了两天
    Dnspod 告诉我:
    什么是自定义解析?

    自定义解析,就是可以自己定义某 IP 段去访问指定的主机服务器。
    注:定义的是上网客户 DNS 的出口 IP,即后端 IP ;
    后端 DNS 段的获取需要自己收集的;
    单个 IP,必须定义上网 DNS 的出口 IP。


    就是说 DNS 服务器是获取不到用户 IP 的吧
    12 条回复    2019-11-22 09:30:39 +08:00
    Fading2276
        1
    Fading2276  
       2019-11-18 19:36:06 +08:00
    dns 服务器取不到用户 ip 的话怎么把解析结果告诉用户呢?
    GM
        2
    GM  
       2019-11-18 19:40:25 +08:00
    当然是出口 IP。
    排除法就知道了,假设我客户端 IP 是 192.168.0.2,DNS 服务器怎么把解析结果发给我?
    eastpiger
        3
    eastpiger  
       2019-11-18 19:50:31 +08:00   1
    需要分类讨论,核心问题是你自己到 DNS 服务器之间的通路上是否支持 RFC2671 eDNS ( Extension Mechanisms for DNS )和 RFC7871 edns-client-subnet。

    如果不支持上述协议,则 DNS 拿到的是直接沟通他的机器的 ip 地址,即你所说的出口 ip ;
    如果均支持上述协议,则 DNS 拿到的是你的 ip ;
    如果部分支持上述协议(一般内网内是无需支持的),则 DNS 拿到的是从他开始(一路支持这个协议回溯)的最早那台设备的前一个设备的 ip。

    ===========

    RFC7871 edns-client-subnet 是扩展自 RFC2671 eDNS 的一个协议,允许在 DNS 扩展字段内传输源主机的客户端信息,包括 ip 信息。当一个主机支持 eDNS 时,他会将请求包内的扩展字段传递到下一个节点,当 edns-client-subnet 启用且上游没有相关信息时,该节点将上一个节点试作源,并打包形成客户端信息传递到下一节点。

    目前大多数商业路由器均支持上述协议,至少国内联通电信大部分区域都可以用这种方法拿到源地址 ip,这也是为什么很多 DNS 解析服务支持私有线路指定解析,并且可以根据 ip 区分地区和运营商。但是这并不 100%普及,比如教育网内主干节点几乎全都不支持该协议。所以对教育网的定位基本上只能定位到运营商却定位不到地区。
    eastpiger
        4
    eastpiger  
       2019-11-18 19:51:02 +08:00
    另,前面的经验是我两年前查相关问题学习的,未必 100%准确。
    eastpiger
        5
    eastpiger  
       2019-11-18 19:52:04 +08:00
    再另,使用内网 ip 的路由器几乎都不会将内网 ip 作为源 ip 传出去,所以 dns 得到的一般至少是个公网 ip 才对。
    lc7029
        6
    lc7029  
       2019-11-18 19:54:58 +08:00
    dna 服务器一般是拿到出口的 IP,因为现在的网络几乎都是经过 nat 出去的。
    ipv6 拿到的是客户端的 IP
    eastpiger
        7
    eastpiger  
       2019-11-18 19:56:44 +08:00   1
    emmm 我觉得我还是要补充一下,前面说的这两个协议只需要主干网路由器支持就可以,不需要你的家用路由器支持,不需要内网的机器支持,一般企业的路由器也不需要支持。这里只需要公网内,你联网出口的上游路由器,传递你的公司 /家庭的出口 ip 即可。

    这种效果在教育网很显著。教育网内的主干网都不支持该协议(也可能是某些节点不支持导致没传递好),所以 DNS 解析服务对教育网基本上只能拿到清华的教育网出口 ip 了(教育网出口之后进入商业骨干网接入,就正常多了)。对其内部很难追踪,当然最近几年有没有变化我就不知道了。
    tomychen
        8
    tomychen  
       2019-11-19 12:28:14 +08:00
    协议的问题,看一下 RFC 不就很明了了吗
    johnjiang85
        9
    johnjiang85  
       2019-11-20 18:16:11 +08:00
    一般来说权威 DNS 拿到的都是客户端设置的 DNS 的后端出口 IP,除非你使用的递归 DNS 支持 ECS,然而目前绝大部分递归 DNS 都是不支持(少数支持的有 Google 的 8.8.8.8,OpenDNS、我们的 119.29.29.29 等)。

    使用以下命令可以获取 DNS 的后端出口 IP 地址

    `for i in {1..20};do dig @119.29.29.29 $i.ip.dnspod.net txt +short;done`

    如果结果只有一列,则表示指定 DNS 的后端出口 IP 地址;
    如果结果有两列,则第一列表示 DNS 的后端出口 IP 地址,第二列表示递归 DNS 向权威 DNS 请求时携带的 ECS IP.
    HalloCQ
        10
    HalloCQ  
       2019-11-21 09:46:31 +08:00
    @johnjiang85 按照你说的方法 发现 oneDNS 117.50.11.11 也是支持 ecs 的?
    johnjiang85
        11
    johnjiang85  
       2019-11-21 12:00:40 +08:00
    @HalloCQ 不是的,oneDNS 是转发到我们的 119.29.29.29 了
    HalloCQ
        12
    HalloCQ  
       2019-11-22 09:30:39 +08:00
    @johnjiang85 嗯,感觉 one 不是很准确,有些域名 020 电信解析到了联通 cdn
    style type="text/css">.wwads-cn { border-radius: 3px !important; } .wwads-text { color: var(--link-color) !important; }
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1531 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 16:38 PVG 00:38 LAX 09:38 JFK 12:38
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86