Skip to content

Adding capabilities for views #2038

Description

@Apachez-

Is there a way today to serve different zones (well content) based on the srcip of the DNS-client?

For example when 192.0.2.1 asks about www.example.com they will get one answer while if 192.0.2.2 asks the same DNS-query they will get a different result?

If not then I would like to file this as a feature request.

With views you define an ACL regarding which srcip will see the content of which view.

Preferly there should be a default view which if not matching any ACL this is where the query ends up at.

The workaround today is to use different technitium/dns-server installations.

Example:

Understanding views in BIND 9, with examples
https://kb.isc.org/docs/aa-00851

Views are also not only about which zones are presented to which client but will include the caching/recursive lookups and blocklists aswell.

This way you can use the same installation to serve both lab, staging and prod (perhaps not advisable but still) where for example you might have recursive for lab and staging but not prod and perhaps one set of blocklists for lab and another set for staging.

You can today add ACL for caching and blocklist but it will still be a single cache and blocklist being used.

To make life easier a single zone should be able to be tagged for 1 or more views.

Things to resolve:

  1. Perhaps add a new tab for "Views" (between "Dashboard" and "Zones"?) where you define custom views except for "Default" that will always exist. Here you will also define the ACLs.

Things to figure out is if the ACL's should be top down or longest prefix match and if so how to deal if two views have the same ACL (lets say both have 192.0.2.0/24 as ACL)?

  1. The webgui part of Zones. Perhaps add another column (in the list of "Zones") to show which views a particular zone belongs to. This includes to be able to have example.com as two (or more) different zones which belongs to different views.

  2. How to deal with zonetransfers - how will the recepient know which zone belongs to which view?

  3. Add view-capaiblities to cache, allowed and blocked. Along with if shared cache, blocklist or allowlist should be used or not (configurable).

  4. Something else I forgot about which adding view-capabilities would need to alter/change?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions