********************************************************************* FTSC FIDONET TECHNICAL STANDARDS COMMITTEE ********************************************************************* Publication: FSP-1035 Revision: 1 Title: DNS Distributed Nodelist Author(s): Alexey Vissarionov, 2:5020/545 Issue Date: 03 Nov 2008 ===================================================================== Contents: 0. Introduction 1. Translation of a Fidonet address into a host name 2. Flag indicating root internet domain 3. Service port location 0. Introduction Abstract: This document describes the method of distributing Fidonet nodelist data through the DNS infrastructure for use by IP-capable Fidonet mailers. Status: This document is a Fidonet Standards Proposal (FSP) - it specifies the best current practices for the Fidonet community, and requests discussion and suggestions for improvements. It is released to the public domain, and may be used, copied or modified for any purpose whatever. 1. Translation of a Fidonet address into a host name. The format of Fidonet address is: Z:N/F.P@W Where the fields are: Z - Zone Number: The zone the node is part of. N - Net Number: The network the node is a member of. F - Node Number: The actual node number. P - Point Number: If the system is a point rather than a node then this is their point number at that node. Optional. If ".P" is missing then assume 0 (node itself). W - Network name: The name of the "Fidonet Technology Network". Optional. Fidonet address should be translated into host name as: [pP.]fF.nN.zZ.RD. where the fields refer to... P - Point Number, as in Fidonet address (FA) If "pP." is missing then assume 0 (node itself). F - Node Number, as in FA Must be present. N - Net Number, as in FA Must be present. Z - Zone Number, as in FA Must be present. RD - Root Domain, as specified in nodelist. Must be present. Please note the trailing dot - it should exist in "host name" parameter when making the DNS query to avoid resolving hosts like "f545.n5020.z2.fidonet.net.corp.example.com." 2. Flag indicating root internet domain. To indicate the root internet domain which should be used for translation of a Fidonet address into internet domain name there is a need to introduce the special nodelist flag. This flag is not inherited: if it is specified for a zone, it affects only the administrative nodes, and if it is specified for a region, it affects only independent nodes of that region. The format for this flag is: IRD:domain.name This flag is valid only for Zone, Region and Host entries. The following is valid example: Zone,2, ... ,IRD:fidonet.org, ... ; "f0.n2.z2.fidonet.org." is the Z2C's (2:2/0) host address Region,50, ... ; no IRD means no DNS capability for independent nodes in the region Host,5020, ... ,IRD:fidonet.net, ... ; "f545.n5020.z2.fidonet.net." is the host address for 2:5020/545 3. Service port location. If a node accepts connections on a non-standard port, NS zone should contain SRV record for it. Format of SRV record is: _service._proto.name IN SRV priority weight port host Where the fields are: service: service name - "binkp" or "ifcico"; other names may be added in the future proto: protocol family - only "tcp" used for now name: record name priority: host priority, lower value means more preferred; if record contains only one host, this value should be set to zero weight: relative weight for records with the same priority, used for load-balancing; if no load-balancing is performed, this value should be set to zero port: decimal number of the TCP or UDP port host: the hostname of the machine providing the service * If no SRV record exists, then default port must be used. * If A or CNAME record exists, then it must be used. * If no A or CNAME record exists for a node, then host name should be taken from "host" field of SRV record. * CNAME targets must not be queried for SRV records. Examples: ; standard port f1111 IN CNAME fido.example.net. ; non-standard port, A record _binkp._tcp.f2222 IN SRV 0 0 12345 f2222 f2222 IN A 10.20.30.40 ; non-standard port, CNAME record _binkp._tcp.f3333 IN SRV 0 0 12345 f3333 f3333 IN CNAME fido.example.net. ; everything is in the SRV record _ifcico._tcp.f4444 IN SRV 0 0 54321 fido.example.net. History ======= Rev 1: First release *********************************************************************