DNS-Resolver-BCP-TF / Resolver-Recommendations

DNS Resolver Recommendations
Creative Commons Zero v1.0 Universal
7 stars 5 forks source link

breaking out the systems and networks section #21

Open moonshiner opened 1 year ago

moonshiner commented 1 year ago

We should attempt to seperate the network portions from the system portions where we can

For example:

Care should be taken to allocate the IP Networks used for public resolvers.

Both IPv4 and IPv6 MUST be deployed.

Egress Filtering should be done to follow BCP38

Additionally, sign route advertisements using RPKI

To be robust, using anycast to announce network routes should be used.

Not deploying some solution to announce networks in multiple locations will incur system performance. (what is this?)

To add further resiliency, multiple network allocations in different RIRs should be considered; especially if you have global operations.

moonshiner commented 1 year ago

discuss BGP fallback issues - announcing a /23 via BGP and as a fallback statically pin up a /24 as fallbacks

shane-ns1 commented 1 year ago

Should have 2 (or maybe more) IP addresses per address family.

Ideally addresses from different RIRs. The threat is dealing with failures at an RIR, either governance, security, or technical.

moonshiner commented 1 year ago

Can comment on some HA design stuff with L4 balancers

shane-ns1 commented 1 year ago

Note to TF: figure out how to recommend a number that sticks in people's heads (1.1.1.1 is an example, but we don't want to recommend everyone fight over every /8-based address)

shane-ns1 commented 1 year ago

Publishing a list of back-end addresses used for resolving can be useful for other network & DNS operators (for example, geo-IP location, making sure data is getting to correct places, and so on).

moonshiner commented 1 year ago

Sign RPKI routes, validating is more optional discuss cost / benefit of validating (less spoofed traffic but cost of router cycles)

moonshiner commented 1 year ago

Capacity is definitely network depeendent. Considerations to run you servers at 30% capacity.

Capacity

CPU/network Multi-layer caching How to estimate Resilience

Diversity of software, geography, toplogy. Bare metal vs. VM vs. containers, self-hosted vs. hosted vs. cloud

moonshiner commented 1 year ago

build your base as a percentage of usage.
Gather baseline by throughput of resolvers

gather performance numbers from vendors. (Knot resolver performance numbers)

multi-layer resolver - caching at resolver ; then gateway consider operational considerations

moonshiner commented 1 year ago

Will need to about Bare metal vs. VM vs. containers, self-hosted vs. hosted vs. cloud

how things are built/topology

Running Containers on bare metals Bottleneck of the network scaling Can cloud providers autoscale relatively well cost around running in containers newly built instances would have empty DNS caches

BAre Metal vs VMs vs Containers

Bottom Line - guidance needed on running DNS in containers, but recommendations would be bare metal, and/or appliance

use of network appliances for dns load balancing with slow back end servers

moonshiner commented 1 year ago

If hardware limited performance wise (Ie, vms), use network appliances to assist in caching, otherwise bare metal servers better performance

Diversity of software - use 2 different vendors. familiar with other vendors, have plans to work out migrations in case of emergency.,

With s/w vendors, care with updates across the platform. Should have plans on software updates are deployed slowly at first to watch for issues, and have roll back plans in place. Ideas around operational best practices.

Also of geography/topology - closer to user base as possible.

ximaera commented 1 year ago

Some candidate text on what we discussed today:

Infrastructure considerations

Bare metal or public cloud

All DNS resolver software can run either on dedicated servers (rented or colocated), or in virtualized clouds, or in a combination of those. Every approach has pros and cons. Most of these are not specific to running DNS resolvers, however, some of them are.

Running DNS resolver instances as OS level daemons on bare metal hosts:

Pros:

Cons:

Running DNS resolver instances in containers in a public cloud:

Pros:

Cons:

Additional considerations