FreeBSD Developer Summit: Roadmap for DNS Library and Tools
Wednesday May 14, 13:00-16:00
Overview
FreeBSD 10.0 now ships with DNSSEC validation enabled out of the box provided by a local unbound caching daemon. What do we want to do for FreeBSD 11?
If you would like to participate, contact the working group chairs below and CC devsummit@. You will be then added to this page. Please include a list of things you want to talk about or the areas you are interested in. This helps us in planning the session and to bring people together with common interests.
It is possible to bring in people who cannot attend in person via video conference or chat tools. Notes during the session will be published later on for the whole community to see what we discussed.
Goals
In particular, we would like to cover the following topics. This is not an exhaustive list and if you feel there is something missing that you want to talk about, contact one of the session chairs and we will include your topic here. Note that the numbering of the topics does not represent an ordering or importance indication of any kind, but rather a reference to the second table with the "topic of interest" column.
Topics
Part one 09:00 - 10:30 Future of package building
# |
Who |
Topic Description |
0 |
all |
Introductions |
1 |
? |
Status and evaluation of unbound in 10 |
1a |
? |
Plans for 10.1-RELEASE |
2 |
getdns-api |
|
3 |
? |
Capsicum/Casper |
4 |
? |
CLI: dig, ldns-dane, ... |
5 |
? |
FreeBSD 11.x |
6 |
plosher |
Client Subnet-ID privacy |
Break 10:30 - 11:00
Part two 11:00-12:00
# |
Who |
Topic Description |
14 |
* |
Brainstorm: common complaints and wantlist |
Note: General presentations about work you have done that does not require further discussions should be submitted for the FreeBSD Developer Summit track at BSDCan (see the general developer summit page).
Attending
In order to attend you need register for the developer summit as well as by email for the session and be confirmed by the working group organizer. Follow the guidelines described on the main page or what you received by email. For questions or if in doubt ask the session chairs.
Name |
Username / Affiliation |
Topics of Interest |
Notes |
mat |
* |
Session knitter (and BIND maintainer…) |
|
erwin |
* |
Session chair |
|
matthew |
* |
|
|
bz |
* |
|
|
brooks |
* |
|
|
McAfee |
* |
|
|
Sentex |
* |
|
|
peter |
* |
|
|
ISC |
* |
|
|
des |
* |
|
|
Verisign |
* |
|
|
zi |
* |
|
|
sson |
* |
|
|
brd |
* |
|
|
|
* |
|
|
jonathan |
* |
|
Notes
Results
DNS Session
Introductions
Finalize agenda -- guOttawa problems with DNSSEC, forces you to ignore signatures
plosh asked and had it confirmed that SSHFP records exist for all FreeBSD servers and are signed via DNSSEC
DES:
State of DNS pretty much the same as just before 10.0 release, due to DES' breavement. Is in 10.x and head.
- - LDNS in base - unbound in base as local-unbound to avoid conflict with ports.
- Exists to provide local caching resolver; nothing more. Not intended to provide DNS service for whole network. local-unbound not built with libevent, won't scale. wanted to be kept a bit hidden as plan is to remove it later.
- committing. Use of /usr/lib/private as solution. Control sockets are still an issue. unbound-control was not renamed: if you install from ports it may control the wrong instance. ilya has patch to use unix domain socket. NL Net rejected patch -- would have it in contrib, or might accept it if FreeBSD used it.
- reports of what config changes do or do not work. DES would prefer a code change to have an option to turn off built-in domains
- up for the next 10.x release.
- More patches are in the works. One patch to
- apparently completely fluent in C. Problems with const, static functions, public functions without prototypes. Mismatched prototypes in different compilation units (which didn't actually matter...) Code quality is not horrid, but not quite what DES would like.
- patches and just leaving them in contrib to rot. OTOH, if DES commits it in FreeBSD then NL Net might accept them.
- patches get tested by a large amount of users, which is useful from NL Net's pov..
- outreach? Other people have strong relations but
- sockets (BSD-ish just works, Solaris Sys-V was painful) Mostly a thing of the past. Doesn't work on Windows...
- key was DNSSEC signed. SSH key checking trains users to type 'YES [enter]' based on incomplete information. SSH code for verifying host keys is horrendous. They keep adding one measure after another, and there's no overarching vision.
- asking. Seems to have been accepted without complaint.
- and local-unbound. drill in base won't find ports version by default.
- find the root key in the port's unnbound location.
- unbound fetching the root anchor. This is a soft error in unbound, and there's a compiled-in copy in unbound. The port expects the rc-script to fetch the key. The key file doesn't have to be there: unbound installs it for the convenience of other apps. Should be included in the package. Port shouldn't fail even if the file is unavailable.
ERWIN:
- - Command-line tools. Erwin misses dig in base. - DES had a patch at one point but can't find it at the moment. - Bind 8.x dig easy enough to compile stand-alone but doesn't have
- the important DNSSEC bits.
- same options except for the +arguments stuff.
- generating entries to go into DNS. Would be good to import
- unix domain socket patch and the like.
- willing to accept. BZ has a DNS64 patch NL Net were reluctant to accept.
- local resolver? No -- validate lookups *before* translation on local machine.
- PW: should be on by default, improves usability but not so impervious to foot-shooting. Helps with the "Starbucks" problem.
- existing unbound.conf. We might have an included file we feel free to modify.
- Only if default version laying about.
- Do we know what RedHat are going to do by default? - Should we have config questions about this in sysinstall? - PW Turning permissive mode on is really snatching defeat from the
- jaws of victory.
- is possible and prompts user accordingly. Really of relevance to laptop uses (PC-BSD mostly, as they can do the ask user thing)?
- test on startup.
- would be desirable.
- internally for URL shortening.)
- each time it gets run? Should we have a foo.freebsd.org target specifically for checking validity? DoS-ing against that could DoS all FreeBSD machines that happen to be restarting at the time...
- the more paranoid amongst us.
- DNSes.
- to do a similar thing to find old bind versions, but ran into the same political problems.
- doable in time for 10.1. brooks: can we get this into head very soon? Needs testing before our usual late import to stable.
coffee break
- - Action for gjb -- knob in bsdinstall to disable unbound
plosher:
- - asked to bring topic up by his management.
coffee break, take 2
- * T-shirts! **
plosher
- - senior systems architect at ISC. Runs F-root: 55 sites all
- running FreeBSD. Write bind, dhcp
- definitely for the better. 2 year bumpy period. Painful changes -- bind 10 has been dropped. Will be transitioned to public Git repo. DHCP component will be the next-gen DHCP for ISC. Will be continuing with bind-9.
- FreeBSD.org). Plans in place for 9.11. Anything missing in BIND: plosh will be here all week and happy to answer questions.
- clientID support. Helps clients to connect to the nearest akami (etc) server. DNS Cookies -- ISC position is to lobby OS vendors to provide an opt-out. This is a layer of anonymisation that is going away: should be control over any addition information releases.
Michael
- - getDNS API - was asked to talk about this last night, but hasn't done anywork
- on it himself. Colleagues have.
- validation information right down at the client level.
- that exposes validation status to users is a wrapper around libunbound. Wasn't meant to be that way.
- function.
- be a system policy. "Casper: open me a /thing/, please" should be about the limit of it.
- ask for mechanism after the fact.
- the standards process? libval ?
- nsswitch stack. OpenSSH does direct DNS call for somethings, nsswitch for others. Causes problems when different routes generate different results.
- Only two Host -> IP lookup mechanisms in popular use: /etc/hosts
- and DNS. (NIS is gone, and most people don't put this stuff in LDAP). Should rip this stuff out of nsswitch ?
- work
- the hostname' and all the DNS etc. is hidden. Agnostic about the precise mechanism.
- multithreading etc.
- it is at all sensitive. Need socket interface (to casper)
- Both. either layer is a good place to impose additional restrictions on what will be accepted.
- shouldn't matter if local or on network
- lookups, it's relatively simple.
- API is different. libval very much like what we had before.
- influence on the rest of the world. Do we care about ease of conversion of exist apps.
- to validate a lookup, just decide whether you approve of what was done.
Aims for FreeBSD 11.0-Release:
- - Need wider conversation about do we want to shoot nsswitch in the
- head (or at least the bits related to host resolution)
- Why keep 50k of /stuff/ on the off chance that it will need to be revalidated.
- the scenes.
- eliminate the need to have an unbound service.