1

我写信给你是因为我用一个绑定服务器和一个 PowerDNS 递归器构建了一个基础设施,它将请求传输到绑定服务器。我想要做的是递归器传输客户端的 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

不幸的是,它总是返回递归器的视图,你有解决方案吗?先感谢您 !

4

1 回答 1

1

您不能传输 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=) 直接查询绑定,以确保绑定满足您的需求。

于 2018-04-18T22:53:30.337 回答