Text 4710, 242 rader
Skriven 2011-09-30 00:05:00 av Alexey Vissarionov (2:5020/545)
Ärende: FSP-1035.002 draft 20110922 (repost)
============================================
Good ${greeting_time}, All!
Once again: comments and suggestions are accepted only at FTSC or via netmail.
As Z1 people could miss this, they are especially welcome to look at it - even
including grammar check :-)
*********************************************************************
FTSC FIDONET TECHNICAL STANDARDS COMMITTEE
*********************************************************************
Publication: FSP-1035
Revision: 2
Title: DNS Distributed Nodelist
Author(s): Alexey Vissarionov, 2:5020/545
Issue Date: 22 Sep 2011
=====================================================================
Contents:
0. Introduction
1. Translation of a Fidonet address into a host name
2. Service port location
3. Resolving algorithm
4. NS zone generation
5. Examples
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)
Optional.
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 assigned to DDN.
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.org.ru.office.example.com."
As points normally don't accept incoming connections, the rest
of this document uses node addresses for any and all examples.
However, the techniques described here may be used for points
as well.
2. Service port location.
If a node accepts connections on a non-standard port, NS zone
should contain a SRV record for every protocol flag.
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" is 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 one
port: decimal number of the TCP or UDP port
host: the hostname of the machine providing the service.
3. Resolving algorithm.
* Query DDN for SRV record. If it exists - perform connection using
resolved hostname:port pair.
* Query DDN for AAAA and A records. On success, perform connection
using resolved address and default port.
* If both failed, return the "server not found" error.
Note: CNAME targets MUST NOT be queried for SRV records.
4. NS zone generation.
The only valid source for DDN records is FTS-5000 world nodelist.
Data from partial (network etc.) segments SHOULD NOT appear in
DDN until they get into world nodelist. Data from any sources
other than nodelist MUST NOT appear in DDN NS zones.
To be published in DDN, the node MUST have at least one Internet
address published in nodelist. INA flag SHOULD be used for that
purpose, but IP protocol flags MAY be used instead.
Multiple INA flags MAY be used if they carry different addresses.
Multiple IP protocol flags MAY be used for different port
numbers; if the default port is listed among others, the SRV
record for it MUST be added to resulting NS zone.
If any node of the network (or regional independent node, or zone
special node) carries DDN-style host name in the INA flag (or any of
the protocol flags), that node MUST be skipped and MUST NOT appear
in resulting NS zone (to prevent a deadloop like "x IN CNAME x").
5. Examples.
This section contains some examples of valid records which may
appear in DDN.
; INA:fido.example.net,IBN
; no SRV record required
f9999 IN CNAME fido.example.net.
; INA:10.20.30.40,INA:[fe80::2:5020:9999],IBN
; both A and AAAA records are created
_binkp._tcp.f9999 IN SRV 0 1 24554 f9999
f9999 IN A 10.20.30.40
IN AAAA fe80::2:5020:9999
; INA:fido.example.net,IBN:12345
; not supported by old mailers
_binkp._tcp.f9999 IN SRV 0 1 12345 fido.example.net.
; INA:10.20.30.40,IBN:12345
; not supported by old mailers
_binkp._tcp.f9999 IN SRV 0 1 12345 f9999
f9999 IN A 10.20.30.40
; INA:fido.example.net,IBN,IBN:12345
; here the default port is supported, so we use CNAME to provide
; backward compatibility for old mailers
; also, some sort of (equal) load-balancing is performed here
_binkp._tcp.f9999 IN SRV 0 1 24554 fido.example.net.
IN SRV 0 1 12345 fido.example.net.
f9999 IN CNAME fido.example.net.
; IBN:10.20.30.40,IBN:fido.example.net:12345
; only first record (numeric IP) will be available to old mailers
_binkp._tcp.f9999 IN SRV 0 1 12345 fido.example.net.
IN SRV 0 1 24554 f9999
f9999 IN A 10.20.30.40
; INA:fido.example.net,IBN:fido.example.com,IFC:12345
; both mailers listen at fido.example.net, but only binkp-capable
; mailer listens at fido.example.com
; ifcico-capable mailer uses non-standard port
; also, CNAME record is created to provide backward compatibility
; for old binkp-capable mailers
_binkp._tcp.f9999 IN SRV 0 1 24554 fido.example.net.
IN SRV 0 1 24554 fido.example.com.
_ifcico._tcp.f9999 IN SRV 0 1 12345 fido.example.net.
f9999 IN CNAME fido.example.net.
; INA:fido.example.net,IBN,IFC:fido.example.com:12345
; both mailers listen at fido.example.net, but only ifcico-capable
; mailer listens at non-standard port on fido.example.com
_binkp._tcp.f9999 IN SRV 0 1 24554 fido.example.net.
_ifcico._tcp.f9999 IN SRV 0 1 12345 fido.example.com.
IN SRV 0 1 12345 fido.example.net.
f9999 IN CNAME fido.example.net.
; IBN:fido.example.net,IFC:fido.example.com:12345
; no INA flag means there's no common address
_binkp._tcp.f9999 IN SRV 0 1 24554 fido.example.net.
_ifcico._tcp.f9999 IN SRV 0 1 12345 fido.example.com.
f9999 IN CNAME fido.example.net.
History
=======
* 22 Sep 2011, Alexey Vissarionov (2:5020/545), rev. 002
- added "Resolving algorithm" and "NS zone generation" sections
- dropped IRD flag description, as it appeared to be obsolete
* 03 Nov 2008, Alexey Vissarionov (2:5020/545), rev. 001
- first release
*********************************************************************
--
Alexey V. Vissarionov aka Gremlin from Kremlin
gremlin.ru!gremlin; +vii-cmiii-ccxxix-lxxix-xlii
... :wq!
--- /bin/vi
* Origin: http://openwall.com/Owl (2:5020/545)
|