<div dir="ltr"><div>Thanks Otto,</div><div><br></div><div>"
It is not 100% clear what you are trying to achieve"</div><div><br></div><div>We simply want to use ecs to direct endpoints to their nearest pop for CDN services, specifically Microsoft-related services like Teams, Sharepoint, etc.</div><div><br></div><div>The CDN services work correctly when a branch uses the ISP-assigned DNS for that specific branch/link. But as mentioned, it's difficult to manage these DNS entries when you have many branches across the world (180 sites with 2 different ISP links at each site). It would be much easier if we had a central recursor that could use ecs to determine geo-located services for each branch.</div><div><br></div><div>"
As for the recursor: by default private addresses will not be used for outgoing ECS (as governed by ecs-add-for).

"<br></div><div><br></div><div>Understood.</div><div><br></div><div>"
If the clients use private addresses from multiple locations via VPNs and all client traffic goes through the VPN as well, it makes sense for a recursor to use for an outgoing ECS the public gateway address used by the VPN clients, as the queries *and* traffic are then coming the same source.  You can use ecs-scope-zero-address to achieve that.

"</div><div><br></div><div>This is not our scenario but I'll check on the indicated option in any case.</div><div><br></div><div>"
You might take a look into proxy mapping:

"<br></div><div><br></div><div>I'll look into this option.</div><div><br></div><div>We will probably look to use an SNAT firewall entry (with a private-to-public mapping) for our VPN policies to fool the recursor into thinking the client is coming from a public IP address. This will entail some work as we'll have to create specific mappings for each branch. But it's the only option I can see for the moment.<br></div><div><br></div><div>Thank you very much for your replies.</div><div><br></div><div>Regards, Robby<br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, 8 Nov 2022 at 09:24, Otto Moerbeek <<a href="mailto:otto@drijf.net">otto@drijf.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Tue, Nov 08, 2022 at 08:35:33AM +0200, Robby Pedrica via Pdns-users wrote:<br>
<br>
> Hi all,<br>
> <br>
> I've searched pdns docs as well as threads here but can find nothing about<br>
> how to deploy ecs or more specifically, under which circumstance ecs can be<br>
> used.<br>
> <br>
> From what I understand of ecs, the recursor will forward the client's IP<br>
> with the request to the auth (or intermediate) servers so that the auth<br>
> server can respond with a result that is local (if possible) to the client.<br>
> I'm going to assume then that a public address is needed from the client as<br>
> you can't determine location info from an rfc1918 address.<br>
> <br>
> Consider the following setup:<br>
> <br>
> branch1 (client with private address) -> firewall/NAT+VPN (branch) -><br>
> internet -> firewall/NAT+VPN (head office) -> recursor -> auth query ...<br>
> branch2 (client with private address) -> firewall/NAT+VPN (branch) |<br>
> etc.<br>
> <br>
> In this scenario, clients at branches have their queries forwarded over<br>
> site-to-site VPN tunnels to the recursor at a head office. The client IP the<br>
> recursor sees is the client's private IP address.<br>
> <br>
> Is there any possibility of getting a design like this to work with ecs? If<br>
> not, any alternatives?<br>
> <br>
> Notes:<br>
> <br>
> The specific pdns-recursor settings I'm looking at are:<br>
> <br>
> ends-subnet-allow-list<br>
> ecs-add-for<br>
> use-incoming-edns-subnet<br>
> <br>
> Regards, Robby<br>
<br>
It is not 100% clear what you are trying to achieve,. But here's some<br>
general info.<br>
<br>
Auths use incoming ECS data to hand out IPs matched to the query<br>
source by some rules. The assumptionm is that the actual (often https)<br>
traffic comes from the same source.<br>
<br>
As for the recursor: by default private addresses will not be used<br>
for outgoing ECS (as governed by ecs-add-for).<br>
<br>
If the clients use private addresses from multiple locations via VPNs<br>
and all client traffic goes through the VPN as well, it makes sense<br>
for a recursor to use for an outgoing ECS the public gateway address<br>
used by the VPN clients, as the queries *and* traffic are then coming<br>
the same source.  You can use ecs-scope-zero-address to achieve that.<br>
<br>
If the actual client traffic goes on the net using a different public<br>
gateway than used by the recursor, e.g., the public address used by<br>
the remote office location, you want an outging ECS to use that. You<br>
might take a look into proxy mapping:<br>
<br>
<a href="https://docs.powerdns.com/recursor/lua-config/proxymapping.html" rel="noreferrer" target="_blank">https://docs.powerdns.com/recursor/lua-config/proxymapping.html</a><br>
<br>
On a general note: only if you observe actual inefficient CDN use I<br>
would bother with ECS, as it complicates your configuration, makes the<br>
recursor's cache less efficient, and is not guaranteed to proivide<br>
actual gain.<br>
<br>
        -Otto<br>
<br>
</blockquote></div><br clear="all"><br>-- <br><div dir="ltr" class="gmail_signature">Robby Pedrica<br>XStore<br>c: +27 82 416 8696<br>f: +27 86 538 5810<br>m: <a href="mailto:rpedrica@xstore.co.za" target="_blank">rpedrica@xstore.co.za</a><br>w: <a href="http://wwww.xstore.co.za/" target="_blank">http://wwww.xstore.co.za/</a></div>