searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

DNS扩展协议之edns-client-subnet简析

2023-06-26 06:41:58
1530
0
       edns-client-subnet是一种扩展DNS(DNS Extensions,简称EDNS)的选项,它允许DNS服务器了解查询的客户端的IP地址范围,以便提供更快和更准确的响应。EDNS客户端子网选项通常可以被用于两种情况:
  • 帮助DNS服务器提供对特定地理区域更准确的解析

       当客户端需要域名解析时,通常是向本地递归服务器或是配置的递归服务器去查询,递归服务器再去向权威DNS服务器发送查询请求时,权威DNS服务器只能递归服务器的IP地址,而没法准确的知道客户端所在的网络。因此,如果客户端使用CDN(内容分发网络)或者在某个大型网络的背后,那么请求将被发送到距离递归服务器最近的节点,而不是最接近用户的节点。这样会导致一些响应时间的延迟,用户可能会不满意。为了解决这个问题,EDNS(扩展DNS)引入了edns-client-subnet选项。

       简单举一个例子,比如一个客户端在中国,配置了位于欧洲的递归服务器,它查询了位于欧洲的权威dns服务器,权威dns服务器根据递归服务器的地理位置,将返回一个同位于欧洲的最近的IP地址,这时如果位于中国的客户端去访问这个欧洲的ip,势必会有一定的网络延迟,从而影响了用户的体验。但是,如果该客户端使用了edns-client-subnet选项,将自己的客户端ip携带到dns请求包中,则权威DNS服务器就会知道该客户端位于中国区域,因此它将返回一个离客户端地址最近的位于中国数据中心的CDN地址,这样就可以尽可能的减少网络传输上带来的延迟,提高用户的体验。

  •  防止DDoS攻击

       DDoS攻击,攻击者通常会使用大量虚假请求来淹没服务器,以使其无法响应正常用户的请求。当服务器接收到具有edns-client-subnet选项的请求时,它可以看到客户端所在的IP地址子网掩码,这有助于服务器区分正常请求和被攻击的请求。服务器可以拒绝来自没有正确客户端子网信息的请求。这有助于减轻DDoS攻击对DNS服务器的影响。

       edns-client-subnet在DNS消息报文中的位置是EDNS资源记录中的选项数据部分,edns-client-subnet选项由一个OPT(选项)记录组成。OPT的请求的TCP标志设置后,会将OPT记录的类设置为0,并将它的请求数据设置为一个或多个选项数据。edns-client-subnet的选项代码为0x08,选项数据格式为:
+--------------+-----------------+----------------+
|      family       | source netmask | scope netmask |
+--------------+-----------------+----------------+
 1 octet            1 octet              1 octet
 
         其中,family字段指示IP地址类型,仅支持IPv4和IPv6,IPv4为1,IPv6为2。source netmask字段为源IP地址的子网掩码的长度,范围为0-32(IPv4)或0-128(IPv6)。scope netmask字段为查询的作用域的子网掩码的长度,可选的,通常未使用,如果要使用,则将该字段设置为0;如果忽略该字段,则将其设置为family字段的默认长度。

0条评论
0 / 1000
林詹健
2文章数
0粉丝数
林詹健
2 文章 | 0 粉丝
林詹健
2文章数
0粉丝数
林詹健
2 文章 | 0 粉丝
原创

DNS扩展协议之edns-client-subnet简析

2023-06-26 06:41:58
1530
0
       edns-client-subnet是一种扩展DNS(DNS Extensions,简称EDNS)的选项,它允许DNS服务器了解查询的客户端的IP地址范围,以便提供更快和更准确的响应。EDNS客户端子网选项通常可以被用于两种情况:
  • 帮助DNS服务器提供对特定地理区域更准确的解析

       当客户端需要域名解析时,通常是向本地递归服务器或是配置的递归服务器去查询,递归服务器再去向权威DNS服务器发送查询请求时,权威DNS服务器只能递归服务器的IP地址,而没法准确的知道客户端所在的网络。因此,如果客户端使用CDN(内容分发网络)或者在某个大型网络的背后,那么请求将被发送到距离递归服务器最近的节点,而不是最接近用户的节点。这样会导致一些响应时间的延迟,用户可能会不满意。为了解决这个问题,EDNS(扩展DNS)引入了edns-client-subnet选项。

       简单举一个例子,比如一个客户端在中国,配置了位于欧洲的递归服务器,它查询了位于欧洲的权威dns服务器,权威dns服务器根据递归服务器的地理位置,将返回一个同位于欧洲的最近的IP地址,这时如果位于中国的客户端去访问这个欧洲的ip,势必会有一定的网络延迟,从而影响了用户的体验。但是,如果该客户端使用了edns-client-subnet选项,将自己的客户端ip携带到dns请求包中,则权威DNS服务器就会知道该客户端位于中国区域,因此它将返回一个离客户端地址最近的位于中国数据中心的CDN地址,这样就可以尽可能的减少网络传输上带来的延迟,提高用户的体验。

  •  防止DDoS攻击

       DDoS攻击,攻击者通常会使用大量虚假请求来淹没服务器,以使其无法响应正常用户的请求。当服务器接收到具有edns-client-subnet选项的请求时,它可以看到客户端所在的IP地址子网掩码,这有助于服务器区分正常请求和被攻击的请求。服务器可以拒绝来自没有正确客户端子网信息的请求。这有助于减轻DDoS攻击对DNS服务器的影响。

       edns-client-subnet在DNS消息报文中的位置是EDNS资源记录中的选项数据部分,edns-client-subnet选项由一个OPT(选项)记录组成。OPT的请求的TCP标志设置后,会将OPT记录的类设置为0,并将它的请求数据设置为一个或多个选项数据。edns-client-subnet的选项代码为0x08,选项数据格式为:
+--------------+-----------------+----------------+
|      family       | source netmask | scope netmask |
+--------------+-----------------+----------------+
 1 octet            1 octet              1 octet
 
         其中,family字段指示IP地址类型,仅支持IPv4和IPv6,IPv4为1,IPv6为2。source netmask字段为源IP地址的子网掩码的长度,范围为0-32(IPv4)或0-128(IPv6)。scope netmask字段为查询的作用域的子网掩码的长度,可选的,通常未使用,如果要使用,则将该字段设置为0;如果忽略该字段,则将其设置为family字段的默认长度。

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0