Role of DNS in Coda
From Codawiki
You may feel tempted to tweak client configuration to adjust a client's behaviour to a certain Coda realm. Don't do that. (Even clog configuration belongs to a user rather than to a host)
Every Coda client is capable of accessing every properly configured Coda realm in the world, out of the box.
The configuration burden is to be placed at the servers, which makes all the clients magically just work.
Any client is perfectly capable of figuring out which authentication- and file servers it has to talk to in each case.
A client uses the "realm" part of the file names: /coda/realm/some/thing and makes lookups based on this string.
The most important lookup is done via the global DNS service. Any reliance on client-side files like "realms", "/etc/hosts" or a custom "/etc/resolv.conf" is incompatible with globality, avoid it. The Web is usable because each web browser is capable of talking to any web site instantly. Coda has the same quality, don't cripple it.
This means:
- register a domain (or subdomain) name for your realm
- use DNS SRV-records to point to the realm's file- and authentication servers, for each service and server host:
- _codaauth2._udp.your.realm => your.server.host 370
- _codaauth2._tcp.your.realm => your.server.host 370
- _codasrv._udp.your.realm => your.server.host 2432
- use an authoritative name server, not a local add-on, to place the corresponding records' data
Then all clients (both the ones set up by you and by others as well) will work with your realm without any additional administration.
A poor-man-alternative for a test realm with a single server may be:
- use an existing DNS A-record to your realm's only server as the realm name, make sure your server will stay at that ip number and have the same DNS name as long as your realm will exist
Such setup based on a singe A-record may even work if you add more servers to the realm, but availability of the whole realm will depend on the first server being online.
Note1: always use the same, one and only name to access a realm. Using its servers' names or addresses may seem to work - as Coda accepts A-records as a substitution for SRV-records - however it will heavily (and possibly deadly) confuse the clients.
Note2: there is very little point in having "local" Coda realms. Coda does not rely on data being available to a certain set of client hosts, access is instead granted to identities - on any host.
