PowerDNS-Recursor传输客户端的IP(而不是它的)

时间:2018-04-18 22:04:27

标签: dns bind powerdns

我写信给你是因为我构建了一个带有Bind服务器的基础设施和一个将请求发送到Bind服务器的PowerDNS recursor。我想要做的是recursor传输客户端的ip而不是它的。所以我尝试使用EDNS(0)来做。 这是一个总结我想要做的事情的图表:

Client : 10.0.0.1/24
|
| “test.com”
|
Server with PDNS-RECURSOR : 192.168.1.1/24
|
| “test.com”  with ip_source=10.0.0.1/24
|
Server with BIND : 192.168.1.2/24

以及不同的配置文件:

•BIND Conf:3次观看

View recursor {} #Return specific IP for the recursor machine
View localhost {} #Return specific IP for the localhost machine.
View external {} #Return specific IP for the external machines.

•Pdns-Recursor Conf(4.1):

edns-outgoing-bufsize=1680
edns-subnet-whitelist=0.0.0.0/0.
forward-zones=192.168.1.2
use-incoming-edns-subnet=yes

不幸的是,它总是返回recursor的视图,你有解决方案吗? 提前谢谢!

1 个答案:

答案 0 :(得分:0)

您无法传输IP,但可以传输子网。这需要一个名为Client-Subnet的EDNS选项,如RFC7871

中所述

对于PowerDNS,可以通过ecs-开头的各种选项控制配置,请参阅https://doc.powerdns.com/recursor/settings.html#ecs-add-for

您可以尝试ecs-ipv4-bits: 32尝试发送整个IP(该选项更多是关于发送子网,以解决隐私问题)。

有关此选项的绑定配置在https://www.isc.org/wp-content/uploads/2017/04/ecs.pages.pdf

中有所描述

你应该嗅出两者之间的流量,以确保PowerDNS正确发送要绑定的信息。

您也可以尝试使用dig查询直接绑定相应的客户端子网选项(+subnet=),以确保bind能够满足您的需求。