Table of Contents
Chaosnet DNS
MX12.Victor.SE (158.174.114.186, 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 (corresponding to “IN-ADDR.ARPA”).
- Chaosnet.NET with Chaosnet infrastructure stuff and “homeless” hosts
- Update.UU.SE and dfUpdate.SE for Update Computer Club, Uppsala
- Victor.SE for Björn Victor
- PDP10.ORG for Lars Brinkhoff
- Swenson.ORG for Eric Swenson
- Bogodyne.COM for Bogodyne Metatechnics LLC
- STUPI.COM for Peter Löthberg
- Sanyal.ORG for Supratim Sanyal
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.
At HOSTAB.Chaosnet.NET, there is also a server for the HOSTAB
contact name, which is higher-level (see here) and used by Lisp machines such as CADR and Lambda.
1. How to use the DNS server
TBD: configuration descriptions.
2. How to run your own DNS server
Chaosnet DNS info is just like the regular (except when it comes to addresses and nameservers).
2.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 { 158.174.114.186; }; }; };
This causes (2021-03-30) bind9 to crash occasionally (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"; }; };
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"; };
2.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 | addr domain | address |
---|---|---|---|---|
UP.dfUPDATE.SE. | CH | A | CH-ADDR.NET. | 3443 |
The address domain contains pointer records, just like IN-ADDR.ARPA does.
Example:
name | class | type | value |
---|---|---|---|
3143.CH-ADDR.NET. | CH | PTR | UP.dfUPDATE.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.
2.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 { 158.174.114.186; }; };
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!