Chaosnet wiki

The global Chaosnet site

User Tools

Site Tools


chaos-dns

Chaosnet DNS

Psilocybe.Update.UU.SE (130.238.19.25, also known as DNS.Chaosnet.NET) acts as a root DNS server for the CHaosnet class. It currently hosts the following domains:

  • CH-ADDR.NET, which contains Chaosnet address mappings (similar to “IN-ADDR.ARPA”).
  • Chaosnet.NET with Chaosnet infrastructure stuff and “homeless” hosts
  • Update.UU.SE for Update Computer Club, Uppsala
  • Victor.SE for Björn Victor
  • NoCrew.ORG for Lars Brinkhoff
  • Swenson.ORG for Eric Swenson
  • Bogodyne.COM for Bogodyne Metatechnics LLC
  • Cosmic.COM for Craig Lennox
  • GEWT.NET for gewt

In the Chaosnet bridge program, there is support for a DNS server over Chaosnet (using a “simple” connectionless protocol and forwarding/recursion over UDP) so Chaos-only hosts can make use of it. See cbridge documentation for a protocol description.

At DNS.Chaosnet.NET, there is also a server for the DOMAIN contact name which allows DNS queries over a stream connection, lifting the response size limit of the simple protocol (488 bytes). This contact is more standard, used by Symbolics lisp machines, and (soon) by the Bogodyne lisp system.

These are useful e.g. for Chaosnet-only hosts such as CADR systems to make use of DNS, at some point.

1. How to run your own DNS server

Chaosnet DNS info is just like the regular (except when it comes to addresses and nameservers).

1.1 Configuring your DNS server

To use the Chaos class in bind9, you need two things as a minimum: a zone declaration in your named.conf file, and the zone file itself. Unfortunately there is another complication: bind9 enforces separation of classes1), which forces you to keep IN and CH data for the same host in different files, and to wrap your Chaos zone in a view declaration.

If you do not host your own Chaosnet data, but want your local bind9 to be able to answer queries about CHaosnet data, the simplest way would be

view "chaos" CH {
  match-clients { any; };
  zone "." CH {
       type static-stub;
       server-addresses { 130.238.19.25; };
  };
};

:NOTE: This is not the perfect solution, because bind9 has a bug (2020-09-15) which causes it to crash occasionally when using this configuration (again, caused by confusion between DNS classes). You might want to configure your bind9 service to restart automatically on a crash, see https://ma.ttias.be/auto-restart-crashed-service-systemd/.

If you do host your own Chaosnet data, here is an example (but see below about secondary name servers):

view "chaos" CH {
      match-clients { any; };
      zone "my.do.ma.in" CH {
    	  type master;
    	  file "mydomain.zone";
      };
};

:NOTE: Once you add the view for CH, you have to add one for the IN zones too. Wrap them all in, e.g.,

view "default" IN {
   match-clients { internalnets; };
   include "named.conf.default-zones";
};

1.2 Addresses

Address records have both an octal address and an address domain. This allows separate Chaosnets to use the same octal addresses, which could be a good idea since there are relatively few addresses (only 16 bits).

Example (NOTE that the address is in octal, and that the class is typically redundant):

name class type & domain address
UP.Update.UU.SE. CH A CH-ADDR.NET. 3143

The address domain contains pointer records, just like IN-ADDR.ARPA does.

Example:

name class type value
3143.CH-ADDR.NET CH PTR UP.Update.UU.SE.

Network names also appear in CH-ADDR.NET, in the spirit of RFC 1101. They are at labels corresponding to the subnet address with zero host part, e.g. 400.CH-ADDR.NET for subnet 1, 3000.CH-ADDR.NET for subnet 6, etc.

1.3 Secondary name servers

Normally you would just add NS records for secondary servers to your zone data and bind9 would take care of updating them automagically.

However, since the zone data is now in the CHaosnet class, also the NS records are in the CHaosnet class, and bind9 looks up their addresses in the CHaosnet class. However, bind9 does not know how to use a Chaosnet address to transfer DNS data, so the updates don't happen. (It's still a good idea to have the NS records.)

The remedy is to give the IP addresses of the secondary servers in the zone declaration in the named.conf file.

Example:

// Chaos address map
zone "CH-ADDR.NET" CH {
  type master;
  file "ch-addr.zone";
  notify explicit;
  also-notify { 130.238.19.215; };
};

:NOTE: If you have a stable server machine with a static IP address and can open port 53, maybe you want to be secondary nameserver for the Chaosnet zones? Let me know!

1)
Differently from the example in RFC 1034, end of Section 3.6.1.
chaos-dns.txt · Last modified: 2020-10-02 09:27 by victor