<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Aptos;
        panose-1:2 11 0 4 2 2 2 2 2 4;}
@font-face
        {font-family:-webkit-standard;
        panose-1:2 11 6 4 2 2 2 2 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:10.0pt;
        font-family:"Aptos",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Aptos",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;
        mso-ligatures:none;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body lang="EN-IE" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:12.0pt;mso-fareast-language:EN-US">Running critical infrastructure isn�t �easy� so if a relatively short document scares people off then that�s probably not the worst thing.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;mso-fareast-language:EN-US">I don�t mean to be dismissive of your comments, but providing a DNS resolver to users while not super complicated in many respects is a serious undertaking.
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;mso-fareast-language:EN-US">Regards<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;mso-fareast-language:EN-US">Michele<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:-webkit-standard;color:black">--<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:-webkit-standard;color:black">Mr Michele Neylon<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:-webkit-standard;color:black">Blacknight Solutions<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:-webkit-standard;color:black">Hosting, Colocation & Domains<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:-webkit-standard;color:black"><a href="https://www.blacknight.com/"><span style="color:#0563C1">https://www.blacknight.com/</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:-webkit-standard;color:black"><a href="https://blacknight.blog/"><span style="color:#0563C1">https://blacknight.blog/</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:-webkit-standard;color:black">Intl. +353 (0) 59  9183072<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:-webkit-standard;color:black">Direct Dial: +353 (0)59 9183090<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:-webkit-standard;color:black">Personal blog: <a href="https://michele.blog/"><span style="color:#0563C1">https://michele.blog/</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:-webkit-standard;color:black">Some thoughts: <a href="https://ceo.hosting/"><span style="color:#0563C1">https://ceo.hosting/</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:-webkit-standard;color:black">-------------------------------<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:-webkit-standard;color:black">Blacknight Internet Solutions Ltd, Unit 12A,Barrowside Business Park,Sleaty Road,Graiguecullen,Carlow,R93 X265,Ireland  Company No.: 370845<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:-webkit-standard;color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:-webkit-standard;color:black">I have sent this email at a time that is convenient for me. I do not expect you to respond to it outside of your usual working hours.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<div id="mail-editor-reference-message-container">
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:36.0pt">
<b><span style="font-size:12.0pt;color:black">From: </span></b><span style="font-size:12.0pt;color:black">dns-wg <dns-wg-bounces@ripe.net> on behalf of Moritz M�ller via dns-wg <dns-wg@ripe.net><br>
<b>Date: </b>Monday, 27 November 2023 at 17:47<br>
<b>To: </b>Shane Kerr <shane@time-travellers.org><br>
<b>Cc: </b>dns-wg@ripe.net <dns-wg@ripe.net><br>
<b>Subject: </b>Re: [dns-wg] Draft of RIPE DNS Resolver Best Common Practices<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:36.0pt"><span style="font-size:11.0pt">[EXTERNAL EMAIL] Please use caution when opening attachments from unrecognised sources.<br>
<br>
If I recall correctly, someone just mentioned at the mic during the BCOP BOF session that such a long list of recommendations might actually scare people off from running their own resolver.<br>
Maybe adding a short paragraph in the introduction like the one below might address this:<br>
<br>
"Operators interested in running their own resolver might find the number of recommendations overwhelming. These operators could prioritise the recommendations in this document depending on their own requirements and start by implementing recommendations based
 on their priority. �<br>
<br>
-<br>
Moritz<br>
<br>
<br>
> On 26 Nov 2023, at 18:01, Shane Kerr <shane@time-travellers.org> wrote:<br>
><br>
> Colleagues,<br>
><br>
> Here is a draft of the RIPE DNS Resolver Best Common Practices document<br>
> that the task force of that name has been working on.<br>
><br>
> The intention is to collect feedback during the RIPE 87 meeting and<br>
> afterwards, and either publish a RIPE document or another draft based on<br>
> that.<br>
><br>
> Cheers,<br>
><br>
> --<br>
> Shane Kerr<br>
> Chair, RIPE DNS Resolver BCP Task Force<br>
><br>
><br>
> # DNS Resolver Recommendations<br>
><br>
> About the DNS Resolver Best Common Practice Task Force<br>
>  <a href="https://www.ripe.net/participate/ripe/tf/dns-resolver-best-common-practice-task-force">
https://www.ripe.net/participate/ripe/tf/dns-resolver-best-common-practice-task-force</a><br>
><br>
> ## Terminology<br>
><br>
> * Open Resolver: A DNS resolver that accepts queries from any client.<br>
>  Often the result of misconfiguration.<br>
><br>
> * Public Resolver: A resolver intentionally configured to be an open<br>
>  resolver.<br>
><br>
> ## Introduction<br>
><br>
> ### What Is This Document? Who Is It For?<br>
><br>
> This document presents recommendations and best current practices for<br>
> operating DNS resolvers, both public and non-public ones. It covers<br>
> technical aspects of operations and provides best practice<br>
> recommendations for data management, with a particular focus on user<br>
> privacy, security, and resilience.<br>
><br>
> The document serves as guidance for the wider Internet community,<br>
> offering input to:<br>
><br>
> * Those running public DNS resolver services, and<br>
> * Those who want to make informed choices between such services.<br>
><br>
> Its purpose is to provide clear guidance and promote effective<br>
> practices in DNS resolver operation.<br>
><br>
> The intended audience is not the entire DNS community. Advice here is<br>
> probably not useful for operators of authoritative servers, domain<br>
> registrars, and so on. It is also not meant to be an introductory or<br>
> educational document. There are many documents which cover the basics<br>
> of DNS and the roles of organizations in it; a good overview is:<br>
><br>
> Addressing the challenges of modern DNS - a comprehensive tutorial<br>
> by van der Toorn et al.<br>
>  <a href="https://ris.utwente.nl/ws/files/282427879/1_s2.0_S1574013722000132_main.pdf">
https://ris.utwente.nl/ws/files/282427879/1_s2.0_S1574013722000132_main.pdf</a><br>
><br>
> The document does not consider how to measure adherence to these<br>
> recommendations. So it is not intended to be used for certification,<br>
> although certification created based on the principles here is<br>
> possible.<br>
><br>
> ### How Is This Document Organized?<br>
><br>
> This document has a number of sections, and specific recommendations<br>
> in each section. The intent is for each recommendations to have clear<br>
> guidance at the top, and then background and discussion related to the<br>
> recommendation afterwards. Each recommendation indicates whether it is<br>
> mostly for operators of public resolvers or for operators of any<br>
> resolver.<br>
><br>
> ## System and Network Hardening<br>
><br>
> ### Infrastructure considerations<br>
><br>
> Running any Internet service requires attention to the infrastructure<br>
> used to operate it. This section discusses various approaches that can<br>
> be used to run a DNS resolver. Everything applies to both public and<br>
> non-public DNS resolvers.<br>
><br>
> #### Bare metal or public cloud<br>
><br>
> All DNS resolver software can run either on dedicated servers (rented<br>
> or colocated), or in virtualized clouds, or in a combination of those.<br>
> Every approach has pros and cons. Most of these are not specific to<br>
> running DNS resolvers, however, some of them are.<br>
><br>
> **Running DNS resolver instances as OS level daemons on bare metal<br>
> hosts:**<br>
><br>
> Pros:<br>
><br>
>  - Performance: Bare metal servers have direct access to the<br>
>    underlying hardware, and can offer superior performance/cost<br>
>    balance by avoiding the overhead associated with virtualization.<br>
>    Moreover, you have full control over the server's configurations,<br>
>    down to the hardware level, which can be beneficial for<br>
>    performance and cost optimization once you get the understanding<br>
>    of your typical work load during peak hours.<br>
><br>
>  - Data Security: Since you are in control of the physical servers,<br>
>    there is no risk of data leakage that can occur due to<br>
>    vulnerabilities in multi-tenant virtualization platforms,<br>
>    including CPU cache-based side-channel vulnerabilities. It could<br>
>    be argued that attacks targeting such issues are rare, and their<br>
>    impact on a DNS resolver service is low, but potential breaches<br>
>    may have significant privacy impact. It is advised to evaluate<br>
>    this against your organisation's risk model, or to discuss this<br>
>    with your information security compliance experts.<br>
><br>
>  - Predictability: Because there is no virtualization layer and no<br>
>    "noisy neighbours" on the host, the performance of your servers is<br>
>    more predictable.<br>
><br>
> Cons:<br>
><br>
>  - Cost of failure: If you pick hardware configuration that is not<br>
>    optimal for the workload of your DNS resolver, you may need to<br>
>    upgrade and replace hardware components afterwards. Ways to reduce<br>
>    this risk include renting servers instead of buying them, carrying<br>
>    load testing with data similar to production workloads, and<br>
>    providing limited beta access to the service before it fully<br>
>    enters the production phase.<br>
><br>
>  - Scalability: Scaling up with physical servers means acquiring or<br>
>    renting, installing, and configuring new hardware, which will take<br>
>    more time than provisioning new virtual servers in a cloud<br>
>    environment. Moreover, most cloud environments will provide you<br>
>    with cluster autoscaling features, which could barely be achieved<br>
>    in bare metal.<br>
><br>
>  - Maintenance: You will be responsible for all server maintenance<br>
>    tasks, including hardware issues, which can require significant<br>
>    effort and specific expertise.<br>
><br>
>  - Redundancy: Setting up high availability and disaster recovery<br>
>    strategies can be more complex and time consuming compared to the<br>
>    cloud, where these features are often provided as value added<br>
>    products. See the Redundancy section for more details.<br>
><br>
> **Running DNS resolver instances in containers in a public cloud:**<br>
><br>
> Pros:<br>
><br>
>  - Scalability: Clouds excel at scaling applications. You can scale<br>
>    up and down rapidly based on load, which is important for a DNS<br>
>    resolver that needs to handle variable query loads. In case of<br>
>    regional or geographically distributed resolvers, in every region<br>
>    where the resolver would be deployed, daily periodicity is likely<br>
>    to be observed, for example peak hour is likely to occur around<br>
>    19:00 local time, and off-peak hours may begin at around<br>
>    01:00-03:00. In a situation like that, using cluster autoscaling<br>
>    features and tools, you can run less instances in the night and<br>
>    more instances throughout the day, which may help to optimize your<br>
>    cloud hosting costs.<br>
><br>
>  - Fault Tolerance and High Availability: Most clouds have built-in<br>
>    strategies, features, and products for handling node failures,<br>
>    which can increase your service's availability.<br>
><br>
>  - Deployment and Management: Cloud providers offer built-in methods<br>
>    to deploy and manage applications, which can simplify operations<br>
>    and reduce the likelihood of human errors if your infrastructure<br>
>    management department is already familiar with these tools.<br>
><br>
>  - Cost: While this largely depends on your specific usage, cloud<br>
>    services can sometimes be more cost-effective than managing your<br>
>    own physical servers, especially when you consider the total cost<br>
>    of ownership, including power, cooling, and maintenance.<br>
><br>
> Cons:<br>
><br>
>  - Performance: The virtualization layer of public clouds can impact<br>
>    performance. While this certainly could be mitigated through<br>
>    scaling the number of virtual hosts, the cost would also increase<br>
>    accordingly.<br>
><br>
>  - Complexity: Advanced cloud technologies are complex systems which<br>
>    come with a steep learning curve. Without prior experience,<br>
>    properly configuring and managing a cloud-based compute cluster<br>
>    can be challenging.<br>
><br>
>  - Cost Variability: While the cloud can be cheaper, it can also be<br>
>    more expensive if not properly managed. Costs can rise<br>
>    unexpectedly based on traffic. Make sure to always set some limits<br>
>    on how much may be spent on hosting in the cloud control panel,<br>
>    and to set up notifications to be sent to you when these<br>
>    thresholds are about to be triggered.<br>
><br>
>  - Multi-tenancy Risks: In a public cloud environment, the "noisy<br>
>    neighbour" problem could potentially affect your service's<br>
>    performance. Additionally, even though cloud providers take steps<br>
>    to isolate tenant environments, vulnerabilities could potentially<br>
>    expose sensitive data (see the previous section for a detailed<br>
>    explanation).<br>
><br>
> **Additional considerations**<br>
><br>
>  - In today's environments, Kubernetes and Terraform are sometimes<br>
>    used as a substitute for cloud APIs when it comes to production<br>
>    services' management. When running a DNS resolver in a Kubernetes<br>
>    cluster on top of a public cloud environment, all the pros and<br>
>    cons of the public cloud apply; basically, Kubernetes becomes your<br>
>    public cloud provider. If you have significant prior experience<br>
>    running services in Kubernetes in production, you may successfully<br>
>    replicate your experience with the DNS resolver software.<br>
>    Otherwise, we would advise against Kubernetes in this case.<br>
><br>
>  - The only reason we may find to run a DNS resolver in a Kubernetes<br>
>    cluster on top of self-hosted dedicated servers is when you have<br>
>    significant hands-on experience with Kubernetes and it is natural<br>
>    for you to manage applications this way. Otherwise, running DNS<br>
>    resolver daemons in containers brings little, if any, benefit.<br>
>    Autoscaling features are not available to you in this case, and<br>
>    neither horizontal nor vertical pod autoscaling is of any use,<br>
>    because DNS resolver software typically scales in-host by itself<br>
>    just fine.<br>
><br>
>  - When designing a cluster of resolvers for autoscaling, keep in<br>
>    mind that newly spawned resolver machines would need to populate<br>
>    resolver cache first before they are fully useful. Your DNS<br>
>    resolver software may provide cache replication mechanisms.<br>
>    Otherwise, it is safe to overprovision clusters somewhat under<br>
>    heavy load, and discarding excessive instances once all the caches<br>
>    are populated and the average load of a compute instance<br>
>    decreases. In addition, it may be worthwhile to consider sharing<br>
>    cache data between instances.<br>
><br>
>  - It is always advised to prefer environments your infrastructure<br>
>    management team is familiar with.<br>
><br>
> ### Software considerations<br>
><br>
> #### Open Source<br>
><br>
> **Recommendation**: Choose any well-maintained DNS software you are<br>
> comfortable using. Regardless of which software you choose, ensure you<br>
> have somewhere to go for support. In the case of open source software,<br>
> consider providing financial support to ensure continued development.<br>
> Some open source maintainers take donations, while others offer<br>
> support contracts.<br>
><br>
> There are both open source and proprietary implementations of DNS<br>
> resolver software. Mixing these is also possible, for example, by<br>
> using proprietary extensions with open source software or deploying<br>
> open source software modified in-house.<br>
><br>
> General observations:<br>
>  - Software licensing is orthogonal to software security. Neither is<br>
>    proprietary software less secure on principle nor are<br>
>    contributions by "unknown" developers more of a risk in open<br>
>    source.<br>
><br>
> Benefits of open source:<br>
>  - Open source allows for inspection, independent auditing, and<br>
> troubleshooting.<br>
>  - Open source can avoid vendor lock-in.<br>
>  - Open source can aid internet standards development.<br>
>    Widely-deployed open source implementations allow proponents of<br>
>    standards drafts to contribute proof of concept implementations<br>
>    without permission or cooperation of vendors.<br>
><br>
> Drawbacks of open source<br>
>  - Both open source and proprietary software require skilled<br>
>    maintenance, which has costs. Proprietary licensed software or<br>
>    appliances typically come with license fees to cover these. In<br>
>    contrast, open source licenses decouple usage by operators from<br>
>    monetary compensation to developers. It is up to operators to<br>
>    consider the financial sustainability of continued maintenance of<br>
>    the open source DNS software they depend upon.<br>
><br>
> Please also consider deploying different software implementations to<br>
> ensure diversity, as discussed in the diversity section below.<br>
><br>
> ### Networking considerations<br>
><br>
> #### IPv4 and IPv6<br>
><br>
> **If available, both IPv4 and IPv6 must be deployed.**<br>
><br>
> Large parts of the authoritative DNS are only accessible via IPv4, so<br>
> the resolver must be able to originate IPv4 queries. Authoritative DNS<br>
> that is only accessible via IPv6 is very rare.<br>
><br>
> Depending on the connectivity of clients, a resolver may be IPv4-only,<br>
> IPv6-only, or support IPv4 and IPv6.<br>
><br>
> #### Addressing<br>
><br>
> **Using multiple IP addresses for the service address should be<br>
> considered.**<br>
><br>
> Using 2 or more IPv4 addresses and 2 or more IPv6 addresses from<br>
> different RIR will allow resilience in failure at an RIR, either<br>
> governance, security, or technical. Note that support for multiple<br>
> addresses for recursive resolvers varies and some clients perform<br>
> poorly if any address does not respond normally.<br>
><br>
> There is no need to pick an IPv4 address with all octets the same,<br>
> like 2.2.2.2 or 11.11.11.11.<br>
><br>
> **Publishing a list of back-end addresses used for resolving should be<br>
> considered.**<br>
><br>
> Publishing a list of back-end addresses used for resolving can be<br>
> useful for other network & DNS operators (for example, geo-IP<br>
> location, making sure data is getting to correct places, and so on).<br>
><br>
> #### Anycasting<br>
><br>
> **Anycasting may be considered**<br>
><br>
> Anycasting means routing the same IP prefix to more than one location.<br>
> As mentioned above for addressing, client support for multiple<br>
> addresses is not always good; with anycasting you can use a single IP<br>
> address and have redundancy from different sites. This will often<br>
> allow you to place sites close to the user - although it is tricky to<br>
> get optimal routing with BGP.<br>
><br>
> For a resolver service with a single site there is no benefit. For a<br>
> resolver service with multiple sites, it may be better to configure<br>
> clients with different IP addresses rather than use anycasting.<br>
><br>
> [RFC7094](https://www.rfc-editor.org/rfc/rfc7094.html) discusses<br>
> anycast in detail, including references to various other RFC which<br>
> discuss anycasting in general and to DNS in particular.<br>
><br>
> If a separate prefix is to be used for anycasting, usually this means<br>
> a /24 in IPv4 and a /48 in IPv6, as those are the smallest sizes that<br>
> will be widely propagated in BGP. A common practice is to use a<br>
> covering prefix (/23 in IPv4 or /47 in IPv6) for fallback, and a<br>
> more-specific prefix (/24 or /48) for the traffic. The more-specific<br>
> prefix can then be withdrawn to send traffic to a backup site; this<br>
> will happen automatically if the site is disconnected from routing.<br>
><br>
> #### Ingress Filtering<br>
><br>
> **Ingress Filtering to follow BCP 38 should be deployed.**<br>
><br>
> DNS normally uses UDP traffic, which makes it a common vector of both<br>
> [reflection](https://en.wikipedia.org/wiki/Reflection_attack) and<br>
> [amplification](https://www.cisa.gov/news-events/alerts/2014/01/17/udp-based-amplification-attacks)<br>
> attacks. To minimize the amount of spoofed traffic that a resolver<br>
> responds to, the network should be configured as recommended in<br>
> [BCP 38](<a href="https://www.rfc-editor.org/rfc/rfc2827.html">https://www.rfc-editor.org/rfc/rfc2827.html</a>).<br>
><br>
> #### RPKI Sign Advertised Routes<br>
><br>
> **Route Advertisements should be signed using RPKI**<br>
><br>
> Using RPKI to sign any route advertisements - either toward<br>
> authoritative servers or toward DNS clients - is straightforward to do<br>
> and will reduce the impact of BGP misconfigurations and some BGP<br>
> hijacking attempts.<br>
><br>
> RPKI validation is also possible, although the effort is greater. It<br>
> is possible that the hosting provider or the transit provider for your<br>
> service validates BGP; asking and making this part of your selection<br>
> criteria is reasonable.<br>
><br>
> #### (D)DoS measures<br>
><br>
> Denial-of-Service (DoS) attacks, both distributed (DDoS) and not are a<br>
> threat to any Internet service. Network operators for a service<br>
> providing any DNS service must be prepared for large amounts of attack<br>
> traffic.<br>
><br>
> In addition to attacks on the service itself, a resolver may be used<br>
> both as an attack reflector and as an attack amplifier.<br>
><br>
> Active monitoring of network and service usage, careful logging, and a<br>
> security team that is able to respond to problem reports is necessary.<br>
> Mitigation techniques will include filtering or rate-limiting traffic,<br>
> both on the authoritative and client side of the resolver.<br>
><br>
> ### Capacity planning<br>
><br>
> #### Server capacity<br>
><br>
> If using a model that is easy to scale (cloud based, or Kubernetes<br>
> based, or similar), then getting server capacity correct is largely a<br>
> question of budgeting. If using a less-flexible model (bare metal for<br>
> example), then under-estimating will mean problems delivering service.<br>
><br>
> Hardware performance varies widely, as does operating system and<br>
> resolver performance. Some lab testing will be necessary to estimate<br>
> the number of systems needed.<br>
><br>
> #### Network capacity<br>
><br>
> Since DNS is mostly UDP-based, it is often easy to generate large<br>
> amounts of spoofed traffic to and from DNS servers. DNS traffic is<br>
> small compared to application traffic (videos and other content), but<br>
> still significant. Authoritative server operators often build their<br>
> networks and servers to handle 10 times their normal load. Recursive<br>
> server operators may need to do the same, although the service only<br>
> accepts traffic from IP addresses that cannot be spoofed (for example<br>
> users within a network that operated by the same company) then this<br>
> can be reduced, for example to 3 times normal load. To estimate<br>
> expected load, the best approach is to examine historical usage for<br>
> the actual expected users of the system.<br>
><br>
> ### Resilience<br>
><br>
> #### System Diversity<br>
><br>
> In addition to the software considerations above, operators should<br>
> consider whether to use different server implementations to provide<br>
> service. This allows continued operation if a critical vulnerability<br>
> is found in one implementation, by shifting traffic to other<br>
> implementations.<br>
><br>
> Placing resolvers and control systems in different physical locations<br>
> will allow continued operation in the event of a disaster or other<br>
> problem that impacts a single location. In addition, ensuring diverse<br>
> connectivity to other networks will prevent single points of failure<br>
> on the network side. Ensuring network diversity may take some care, as<br>
> it is not always obvious what fate is shared between any given path;<br>
> this may be physical, virtual, or organizational, and my sometimes be<br>
> hidden.<br>
><br>
> #### Security<br>
><br>
> In addition to the DNS-specific security considerations, normal<br>
> security best practices for any Internet service should be followed,<br>
> including updating software updated regularly, patching software as<br>
> soon as possible for any known security vulnerabilities, following<br>
> CERT announcements and so on.<br>
><br>
> #### Certification<br>
><br>
> It may be useful or required for an organization to follow specific<br>
> certifications, such as ISO or ITIL. These can be government-defined<br>
> or industry-defined. For end users there is typically not much direct<br>
> value, but business customers will often look for services that are<br>
> operated by organizations meeting such standards.<br>
><br>
> ## DNS configuration knobs<br>
><br>
> The DNS is an old protocol that has a lot of settings that can be<br>
> tweaked. This section reviews these and provides recommendations on<br>
> which should be used for a resolver.<br>
><br>
> ### DNSSEC validation<br>
><br>
> **DNSSEC validation should be enabled.**<br>
><br>
> For: All DNS resolver operators.<br>
><br>
> DNSSEC validation is the best way to ensure that the answers from the<br>
> owner of domain name being queried are returned.<br>
><br>
> The root KSK must be updated when it changes. While<br>
> [RFC5011](https://www.rfc-editor.org/rfc/rfc5011.html) defines an<br>
> automated way to do this, a resolver operator will probably either<br>
> manage this trust anchor directly or have it updated via OS updates.<br>
><br>
> [RFC9364](https://www.rfc-editor.org/rfc/rfc9364.html) provides a lot<br>
> of useful information, and links to further documents about DNSSEC.<br>
> However, operators usually do not need to know the details, and can<br>
> simply ensure that DNSSEC validation is enabled in their software;<br>
> this is usually enabled by default.<br>
><br>
> Resolver software that does not support DNSSEC validation should be<br>
> avoided.<br>
><br>
> ### DNS Transport Protocols<br>
><br>
> **UDP and TCP must be supported.**<br>
><br>
> For: ALL DNS resolver operators.<br>
><br>
> UDP is what most clients use, and TCP is necessary for DNS answers<br>
> that are too large for a single UDP packet.<br>
><br>
> [RFC7766](https://www.rfc-editor.org/rfc/rfc7766.html) explains why<br>
> TCP is necessary in more detail.<br>
><br>
> ### Packet Fragmentation Avoidance<br>
><br>
> **Servers should be configured to avoid fragmentation.**<br>
><br>
> For: ALL DNS resolver operators.<br>
><br>
> Packet fragmentation can cause issues with DNS over UDP, especially<br>
> over IPv6. These issues can be minimized by choosing implementations<br>
> that set IP options to avoid this, and by taking care with EDNS0<br>
> message sizes.<br>
><br>
> Recommendations are available in<br>
> [draft-ietf-dnsop-avoid-fragmentation](https://datatracker.ietf.org/doc/draft-ietf-dnsop-avoid-fragmentation/).<br>
><br>
> ### Encrypted DNS<br>
><br>
> **DNS-over-TLS (DoT), DNS-over-HTTPS (DoH), and DNS-over-QUIC (DoQ)<br>
> should be supported.**<br>
><br>
> For: All DNS resolver operators.<br>
><br>
> DoT, DoH, and DoQ are different technologies that all provide an<br>
> encrypted channel between the resolver and the authoritative server.<br>
> DoT is the oldest, and provides encrypted DNS using TLS. DoH uses HTTP<br>
> over TLS as a way to transmit queries and answers, and is widely<br>
> supported by web browsers. DoQ is the newest, and provides advanced<br>
> features such as separate streams for each query, avoiding the "head<br>
> of line" blocking problem common with all protocols layered on top of<br>
> TCP (such as DoT and DoH).<br>
><br>
> - DoT<br>
>  - [RFC7858](https://www.rfc-editor.org/rfc/rfc7858.html)<br>
> - DoH<br>
>  - [RFC8484](https://www.rfc-editor.org/rfc/rfc8484.html)<br>
> - DoQ<br>
>  - [RFC9250](https://www.rfc-editor.org/rfc/rfc9250.html)<br>
><br>
> **Discovery of DNS Designated Resolvers**<br>
><br>
> There are new mechanisms that allow DNS clients to use DNS records to<br>
> discover encrypted DNS configurations.  Resolvers should publish DNS<br>
> records to assist clients finding encrypted resolvers.<br>
><br>
> - Discovery of Designated Resolvers<br>
>  - [RFC9462](https://www.rfc-editor.org/rfc/rfc9462.html)<br>
><br>
> QUESTION: Do we need to publish certificate in other ways that via the<br>
> DDR mechanisms?<br>
><br>
> ### QNAME Minimization<br>
><br>
> **QNAME minimization should be enabled.**<br>
><br>
> For: All DNS resolver operators.<br>
><br>
> Using QNAME minimization, a resolver does not send the full name that<br>
> it is trying to resolver to authoritative servers higher in the DNS<br>
> hierarchy. So, for example, when querying "atlas.ripe.net" the servers<br>
> for ".net" would only be asked for "ripe.net". This improves privacy<br>
> for the end user querying the name.<br>
><br>
> [RFC7816](https://www.rfc-editor.org/rfc/rfc7816.html) covers QNAME<br>
> minimization.<br>
><br>
> ### Aggressive NSEC caching<br>
><br>
> **Aggressive NSEC caching should be enabled.**<br>
><br>
> For: Public resolver operators.<br>
><br>
> "Aggressive NSEC caching", meaning negative caching based on NSEC and<br>
> NSEC3 values, can reduce traffic greatly. It is important to protect<br>
> against random subdomain attacks.<br>
><br>
> This style of caching takes advantage of the way that NSEC and NSEC3<br>
> records cover a range of names in a zone. A resolver can know that a<br>
> query falls within such a range without sending any further queries,<br>
> by remembering the NSEC or NSEC3 redords that is has seen as answers<br>
> to earlier queries.<br>
><br>
> Aggressive NSEC caching is almost always a good idea. However enabling<br>
> this is less important for DNS resolver operators who have a close<br>
> relationship with users, since they can stop attacks by blocking users<br>
> or otherwise directly dealing with the source of abusive queries.<br>
><br>
> [RFC8189](https://www.rfc-editor.org/rfc/rfc8189.html) describes<br>
> negative caching in detail.<br>
><br>
> ### Local Root<br>
><br>
> **Local root should be used.**<br>
><br>
> For: Public resolver operators.<br>
><br>
> Since the root zone is DNSSEC signed,<br>
><br>
> Running a local root has several benefits, but it is an additional<br>
> component to maintain. For public resolver operators this is<br>
> definitely worth the cost, but other resolver operators may choose to<br>
> simply send all queries to the well-distributed root name servers.<br>
><br>
> [RFC8806](https://www.rfc-editor.org/rfc/rfc8806.html) describes local<br>
> root, including several example configurations.<br>
><br>
> In the future it will be possible to use ZONEMD to validate the copy<br>
> of the root zone obtained before using it. This is currently being<br>
> deployed for the root zone, but not yet available.<br>
><br>
> [RFC8976](https://www.rfc-editor.org/rfc/rfc8976.html) describes ZONEMD.<br>
><br>
> ### DNS Cookies<br>
><br>
> **Interoperable DNS Cookies should be supported.**<br>
><br>
> For: Public resolver operators.<br>
><br>
> DNS cookies provide some improved security over plain UDP, and are<br>
> designed to be more lightweight than TCP. If more than one server is<br>
> responding for a given IP address, then the Server Secret must be<br>
> shared by all servers, and the answer must be constructed in a<br>
> consistent manner by all server implementations.<br>
><br>
> Since client-side support for DNS cookies is not very widespread, and<br>
> since managing server-side secrets involves some work, the costs may<br>
> outweigh the benefits for some non-public resolver operators.<br>
><br>
> [RFC7873](https://www.rfc-editor.org/rfc/rfc7873.html) describes DNS<br>
> cookies, and [RFC9018](https://www.rfc-editor.org/rfc/rfc9018.html)<br>
> standardizes shared DNS cookies.<br>
><br>
> ### TTL Recommendations<br>
><br>
> **TTL limits may be adjusted.**<br>
><br>
> For: All DNS resolver operators.<br>
><br>
> Software typically defaults to a maximum stored TTL of 1 or 2 days.<br>
> This may be lowered to reduce the cache size. A lower TTL will mean<br>
> removing rarely-used records that have long TTL, and should not have<br>
> much operational impact from a CPU or network point of view, but may<br>
> save memory.<br>
><br>
> It is possible to set a minimum TTL in many implementations. This is a<br>
> violation of the DNS protocol, although may be useful to reduce load<br>
> from records with very low TTL (less than 5 seconds).<br>
><br>
> Note that software may set different maximum and minimum TTL<br>
> independent of the results that the resolver returns. That may have a<br>
> significant impact on queries as well, but resolver operators cannot<br>
> influence that.<br>
><br>
> ### TTL-based Record Pre-Fetch<br>
><br>
> **TTL record pre-fetch should be enabled when available.**<br>
><br>
> For: All DNS resolver operators.<br>
><br>
> Some resolvers have the ability to look up a record before it has<br>
> expired from cache, in order to refresh the value and extend the TTL.<br>
> This way there is never a time when the records are missing from the<br>
> cache. This is not currently standardized, but a form of this was<br>
> proposed in the IETF as<br>
> [DNS<br>
> Hammer](<a href="https://datatracker.ietf.org/doc/html/draft-wkumari-dnsop-hammer-03">https://datatracker.ietf.org/doc/html/draft-wkumari-dnsop-hammer-03</a>).<br>
> We recommend turning this feature on if available.<br>
><br>
> ### EDNS Client Subnet (ECS)<br>
><br>
> **ECS may be enabled.**<br>
><br>
> For: All DNS resolver operators.<br>
><br>
> EDNS Client Subnet (ECS) allows the resolver to include information<br>
> about the IP address of the client querying it when sending messages<br>
> to authoritative servers. This may allow authoritative servers to<br>
> provide different answers which are more appropriate for the client.<br>
> However, ECS will increase the amount of cache space required by<br>
> resolvers, may reduce DNS performance, and may have privacy<br>
> implications.<br>
><br>
> A resolver operator that has clients that are limited to a specific<br>
> region may see no benefit. A resolver operator that has a widely<br>
> distributed anycast network may not have much benefit from ECS, since<br>
> the locations that initiate the query will be close to the client. But<br>
> a resolver operator that answers client queries only from a few<br>
> locations, and expects clients to come from a wide area, may provide<br>
> better service for end-users by supporting ECS.<br>
><br>
> EDNS client subnet is described in<br>
> [RFC7871](https://www.rfc-editor.org/rfc/rfc7871.html), an<br>
> informational RFC.<br>
><br>
> ### Extended DNS Errors<br>
><br>
> **Extended DNS errors should be enabled.**<br>
><br>
> For: All DNS resolver operators.<br>
><br>
> DNS traditionally provides very broad error reporting, SERVFAIL being<br>
> the most common. This makes diagnosing and fixing problems difficult.<br>
> Extended DNS errors provide extra information about failures, for<br>
> example expired DNSSEC signatures. They also allow resolver operators<br>
> to report administrative reasons for DNS failures, such as blocks due<br>
> to legal requirements.<br>
><br>
> [RFC8914](https://www.rfc-editor.org/rfc/rfc8914.html) defines<br>
> extended DNS errors.<br>
><br>
> ### Negative Trust Anchors<br>
><br>
> **Negative trust anchors may be deployed.**<br>
><br>
> For: All DNS resolver operators.<br>
><br>
> Negative trust anchors (NTA) allow a resolver operator to handle a<br>
> case where an authoritative server has a DNSSEC problem and becomes<br>
> inaccessible. They basically disable DNSSEC checking for a domain.<br>
> When this is warranted is difficult to know with certainty, and will<br>
> usually requires some manual checking. Since DNSSEC validation is now<br>
> widespread, DNSSEC failures on the authoritative side will impact many<br>
> resolvers.<br>
><br>
> Because of these reasons this document does not recommend NTA, but<br>
> also does not recommend that a deployment avoid NTA if it makes sense<br>
> for that environment.<br>
><br>
> Negative trust anchors are documented in<br>
> [RFC7646](https://www.rfc-editor.org/rfc/rfc7646.html).<br>
><br>
> ### DNS Error Reporting<br>
><br>
> **DNS error reporting may be enabled.**<br>
><br>
> For: All DNS resolver operators.<br>
><br>
> DNS error reporting is a way for resolver operators to let<br>
> authoritative operators know about problems in authoritative servers<br>
> or zones. It provides little direct value for the resolver operators,<br>
> but over time should improve the overall quality of the DNS ecosystem.<br>
> It is neither widely deployed nor standardized, but hopefully will be<br>
> both soon. Resolver operators are encouraged to enable DNS error<br>
> reporting when it is available.<br>
><br>
> DNS error reporting is proposed in<br>
> [draft-ietf-dnsop-dns-error-reporting](https://datatracker.ietf.org/doc/draft-ietf-dnsop-dns-error-reporting).<br>
><br>
> ### Trust Anchor Reporting<br>
><br>
> **Trust anchor reporting may be enabled.**<br>
><br>
> For: All DNS resolver operators.<br>
><br>
> Trust anchor reporting is a way for resolver operators to convey their<br>
> DNSSEC trust anchor configuration to the operator of the zone that it<br>
> is for. For most resolvers this is only the root zone. This<br>
> information is intended to be used during a root KSK rollover to<br>
> ensure that it is safe to proceed. In the future ICANN is planning an<br>
> algorithm roll for the root KSK, and this information could be<br>
> helpful. Resolver operators are encouraged to enable trust anchor<br>
> reporting.<br>
><br>
> [RFC8145](https://www.rfc-editor.org/rfc/rfc8145.html) covers trust<br>
> anchor reporting, in both possibilities available.<br>
><br>
> ## Privacy, Filtering, Transparency<br>
><br>
> ### Privacy & anonymity<br>
><br>
> Operators are advised to apply<br>
> [RFC8932](https://www.rfc-editor.org/rfc/rfc8932.html)<br>
><br>
> "Recommendations for DNS Privacy Service Operators" as follows:<br>
><br>
>  1. its operational and policy guidance related to DNS encrypted<br>
>  transports and data handling, by applying all "Threat mitigations"<br>
>  (thereby by meeting its level of "minimally compliant") and<br>
>  additionally by applying the "Optimizations" on EDNS Client Subnet<br>
>  listed in section 5.3.1.<br>
><br>
>  2. its framework on a Recursive operator Privacy Statement, by<br>
>  publishing a privacy statement on their website that is compliant<br>
>  with Section 6.<br>
><br>
> #### Logging considerations<br>
><br>
> 1. Public privacy policy: DNS resolvers are recommended to publish<br>
>   their privacy policies transparently on their website. It can be a<br>
>   brief privacy commitment as well or be more elaborate on how the<br>
>   privacy policy was made. (See for example<br>
>   [Cloudflare's<br>
> statement](<a href="https://developers.cloudflare.com/1.1.1.1/privacy/public-dns-resolver">https://developers.cloudflare.com/1.1.1.1/privacy/public-dns-resolver</a>)<br>
> or [Quad9's privacy page](<a href="https://www.quad9.net/service/privacy/).">https://www.quad9.net/service/privacy/).</a>)<br>
><br>
> 2. Third party access to personal data: it seems that the only<br>
>   critical personal data that DNS resolvers collect are IP addresses<br>
>   and the queries that are resolved. The other meta data collected<br>
>   can be used to have an understanding of for example which user<br>
>   accessed which website which can reveal information about a<br>
>   person�s health, lifestyle and other personal preferences (we call<br>
>   this profiling). For example, resolving the website for alcoholics<br>
>   anonymous may tell you something about the health of a person<br>
>   behind an IP address. IP addresses are personally identifiable<br>
>   information. Follow the applicable privacy laws or privacy<br>
>   principles when receiving third party requests to access. Resolvers<br>
>   should only comply with such requests when balancing legitimate<br>
>   third party interest with other fundamental rights.<br>
><br>
> 3. Access to data for researchers: how it is done, who has access and<br>
>   who can request access, how the resolver makes a decision to give<br>
>   access (validated and credible researchers, what they can access<br>
>   and other issues)<br>
><br>
> 4. Data minimization: do not collect personal information not needed<br>
>   for critical operations.  Only retain or use what is being asked<br>
>   (the query). If collecting data to make the service more private<br>
>   and secure, explain the rationale for each piece of data (data<br>
>   collection purpose)<br>
><br>
> 5. Ad policy and encryption: explain the ad policy and how it can<br>
>   potentially affect the users privacy. If data is encrypted, explain<br>
>   how it has been encrypted (DoH, DoT, or so on).<br>
><br>
> 6. Data security and retention: when to delete the data and how it is<br>
>   stored<br>
><br>
> ### Filtering and blocking<br>
><br>
> #### Legal blocking:<br>
> **Legal requests and blocking and filtering laws:** DNS resolvers<br>
> should not filter content and block access to web-services. When the<br>
> local law requires blocking, and the law applies to the resolver, the<br>
> resolver should transparently disclose a list of blocked websites and<br>
> services.<br>
><br>
> **Community governance of blocklists:** blocklists, if mandatory, have<br>
> to be audited and assessed by third parties and there should be a<br>
> right to appeal for those blocked. The Internet community can vet the<br>
> blocklists from time to time to avoid blocking access to websites that<br>
> are mistakenly blocked. During crisis - when mistakes can have drastic<br>
> effects on accessing a critical service - preferably filtering and<br>
> blocking should not be used.<br>
><br>
> #### RPZ-based filtering<br>
><br>
> Response Policy Zone (RPZ) allows a way to both document specific<br>
> modifications that resolvers will make to DNS answers, and send the<br>
> rules to resolvers. Resolvers can be directed to block or modify<br>
> answers in various ways. Blocklists may be provided by governments,<br>
> communities, or other parties (for example security firms) using RPZ.<br>
> This allows updates to occur very quickly. These source must be highly<br>
> trusted, as changes to blocklists will usually immediately impact user<br>
> queries.<br>
><br>
> RPZ is not standardized, but there is an IETF draft,<br>
> [draft-vixie-dnsop-dns-rpz](https://datatracker.ietf.org/doc/draft-vixie-dnsop-dns-rpz/00/).<br>
><br>
> #### Opt-in/Opt-out Mechanisms<br>
><br>
> End users may choose to use a DNS resolver that filters specific kinds<br>
> of traffic. For example, they may wish to avoid potential malware web<br>
> sites. Or resolver operators may be required to default to filtering<br>
> but allowed for to provide an unfiltered DNS resolver service.<br>
><br>
> Depending on the specific requirements, a resolver service may publish<br>
> different IP addresses and what type of filtering applies to each<br>
> address. It is also possible to perform client authentication and<br>
> authorization, using IP-based authentication, TSIG keys, or<br>
> client-side TLS certificates.<br>
><br>
> ### Transparency<br>
><br>
> DNS resolvers usually provide transparency reports once a year. The<br>
> reports inform the public about disclosure of user information and<br>
> removal of content required by law enforcement and other government<br>
> agencies.<br>
><br>
> Transparency reports should (to the extent that the law allows)<br>
> indicate which government agencies and law enforcement agencies<br>
> request access on what basis.<br>
><br>
> It should also be clear from the transparency reports what kind of<br>
> data has been requested and if content removal and content blocking<br>
> have been requested. Categories of data include: Content Data, Basic<br>
> Subscriber Data, Other Non-Content Data and Content Blocking.<br>
><br>
> #### Voluntary certificates and standards<br>
><br>
> Some DNS resolvers opt for obtaining certificates in security and<br>
> privacy. Some also undertake audits on their privacy practices. See<br>
> for example:https://www.cloudflare.com/trust-hub/compliance-resources/<br>
><br>
> #### Human rights considerations<br>
><br>
> DNS resolvers can opt for declaring their understanding of their<br>
> responsibilities regarding human rights from the Universal Declaration<br>
> of Human Rights. Specifically, Quad9 mentions rights to freedoms<br>
> without distinction made on the basis of country, no interference with<br>
> privacy, the right to freedom of opinion and expression, the right to<br>
> peaceful assembly, and the right to freely participate in the cultural<br>
> life of the community.<br>
><br>
> See<br>
> [Quad9's Human Rights<br>
> Considerations](<a href="https://www.quad9.net/privacy/human-rights-considerations/">https://www.quad9.net/privacy/human-rights-considerations/</a>)<br>
> for the full statement.<br>
><br>
> It also invokes other human rights related solutions other than<br>
> [UDHR](https://www.un.org/en/universal-declaration-human-rights/) such<br>
> as Articles 8 and 9 of Resolution 42/15 of the United Nations Human<br>
> Rights Council on the right to privacy in the digital age of 26<br>
> September 2019 more directly define the responsibilities of the<br>
> private sector toward the furtherance of human rights in modern terms.<br>
> They also follow the Guidelines for Human Rights Protocol and<br>
> Architecture Consideration of the Human Rights Protocol Considerations<br>
> Research Group at Internet Research Task Force.<br>
><br>
> The latest version of the IRTF<br>
> [Guidelines for<br>
> HRPC](<a href="https://tools.ietf.org/html/draft-irtf-hrpc-guidelines">https://tools.ietf.org/html/draft-irtf-hrpc-guidelines</a>) may be<br>
> considered for all network operators.<br>
><br>
> ## Appendix A: Why Did RIPE Write This Document?<br>
><br>
> There is increasing concern that large open DNS resolvers will become<br>
> centralised points of DNS operations on the Internet. In order to<br>
> address this, the European Commission issued the<br>
> [DNS4EU](https://hadea.ec.europa.eu/calls-proposals/equipping-backbone-networks-high-performance-and-secure-dns-resolution-infrastructures-works_en)<br>
> proposal. However, such an initiative could lead to centralised<br>
> guidance or regulation which might interfere with the decentralised<br>
> way the Internet infrastructure works - including the DNS. See for<br>
> reference the<br>
> [RIPE NCC Open House<br>
> discussion](<a href="https://labs.ripe.net/author/chrisb/dns4eu-ripe-ncc-open-house-discussion/">https://labs.ripe.net/author/chrisb/dns4eu-ripe-ncc-open-house-discussion/</a>)<br>
> on this topic.<br>
><br>
> Rather than attempting to respond to the EC proposal or organize<br>
> specific DNS resolver deployments, the RIPE community has decided that<br>
> it is best able to provide advice and guidance. The RIPE Community is<br>
> well positioned to provide a set of Best Current Practices that<br>
> operators of Open DNS Resolvers will be encouraged to subscribe to.<br>
><br>
> --<br>
><br>
> To unsubscribe from this mailing list, get a password reminder, or change your subscription options, please visit:
<a href="https://mailman.ripe.net/">https://mailman.ripe.net/</a><br>
<br>
--<br>
<br>
To unsubscribe from this mailing list, get a password reminder, or change your subscription options, please visit:
<a href="https://mailman.ripe.net/">https://mailman.ripe.net/</a><o:p></o:p></span></p>
</div>
</div>
</div>
</div>
</body>
</html>