我写信给你是因为我构建了一个带有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的视图,你有解决方案吗? 提前谢谢!
答案 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能够满足您的需求。