DNS传递真实客户端网段ECS的应用
2021-06-27 02:27:59
王亚军
BIG-IP DNS v14.0 开始支持 edns-client-subnet (ECS) 来响应客户端请求 (GSLB) 或转发客户端请求。
以下是使用此功能的快速入门。
传统 DNS 请求
首先,简单了解一下传统 DNS 请求时,客户端会向本地DNS 服务器 (LDNS) 发出请求,然后将该请求转发到该域的权威 DNS 服务器。当使用Topology或传统DNS解析规则时,是根据LDNS的IP作为源地址来做DNS解析响应。如下传统DNS请求示意图:
但是,现在互联网场景(国内目前受到ISP的LDNS功能限制)或内网域名场景中,越来越多的需求是希望能够从 LDNS 服务器转发更精确的、更真实的客户端源地址信息。实现这样的需求,可以借助EDNS-Client-Subnet (ECS)机制。
什么是 EDNS-Client-Subnet (ECS)
对于HTTP协议RFC标准中, HTTP 请求报文中的 X-Forwarded-For 标头就是用于传递请求客户端的真实IP地址信息,而ECS 就是在DNS请求过程中实现了类似功能。
ECS DNS 工作机制
使用 ECS功能,LDNS 服务器或者F5 BIG-IP DNS可以注入有关请求的额外数据,其中包括有关客户端源 IP 地址的信息。
在以下示意图中,就是将客户端子网(Client Subnet):192.0.2.0/24 注入到DNS请求扩展报文中,从而在BIG-IP DNS 上实现基于ECS扩展信息来转发响应DNS请求:
在BIG-IP DNS 上实现ECS
F5 BIG-IP DNS 可以通过两种方式使用 ECS:
- 1. 处理BIG-IP DNS的Topology请求时使用 ECS
- 2. 注入ECS
1. 将 ECS 与 BIG-IP DNS 的Topology结合使用
有两种配置 BIG-IP DNS 以使用 ECS 的方法:
- <a>. 在Wide IP 层面
- <b>. 全局性
在DNS -> GSLB -> Wdie IPs下新建或修改,在高级选项Advanced中,勾选Prefer Client Subnet
在DNS -> Setting -> GSLB -> Load Balancing下,勾选Prefer Client Subnet
2. 注入 ECS 记录
BIG-IP DNS 还可以将请求代理到其他 DNS 服务器(BIG-IP DNS 或其他供应商)。通过修改 DNS 的Profile配置来注入 ECS 记录。
在DNS -> Delivery ->Profiles:DNS下,新建或者修改已新建好的DNS Profile配置,勾选并启用Insert Source Address into Client Subnet Option 选项
写在最后:
在DNS的不同场景中,DNS请求的真实源IP的传递相信会越来越广泛使用,完备的DNS解决方案至关重要,希望本文在您需要的时候可以起到帮助!
发布评论 加入社群
相关文章

DNS工作机制
王亚军
2021-06-25 01:59:13 1399

DNS工作机制
王亚军
2021-06-25 01:54:38 1447

一图掌握GSLB(BIG-IP DNS)最佳配置实践
王亚军
2019-12-06 02:55:18 3974

回复评论
发布评论