DNS Servers

From AllStarLink Wiki
Revision as of 12:43, 16 February 2023 by KB4MDD (talk | contribs) (→‎SRV record)
Jump to navigation Jump to search
This is experimental infrastructure and should not be considered for permanent use, as the implementation may change in the future.

ASL utilizes DNS servers based on PowerDNS with an HTTP backend as a way to retrieve node information, such as IAX ports, or IP address.

These DNS servers support the following:

  • AllStarlink.org DNS authoritative
  • Registration server redundancy
  • DNS lookup for nodes information

Authoritative DNS servers

The authoritative DNS servers run on register-west.allstarlink.org and register-east.allstarlink.org.

DNSSEC is enabled on all domains and trust is expanded to all sub servers.

DNS node lookup

nodes.allstarlink.org is delegated to a DNS running on the db servers. The users_Nodes table has a trigger which is run and creates entries/edits them on the records table in the 'allstar' database. This populates a SRV, TXT and A record for every node in the system when it's updated. The trigger has been optimized and has little to no preformance impact on the registration process.

Note that servers not in nodes list can appear in DNS, there is no ageing out of entries in DNS. It's up to the server to know it's registered.

SRV record

_iax._udp.<nodenumber>.nodes.allstarlink.org. will return for a node as follows:

 _iax._udp.50000.nodes.allstarlink.org. 30 IN SRV 10 10 4569 50000.nodes.allstarlink.org.

where 4569 is the IAX port and then it will do a A lookup on 50000.nodes.allstarlink.org. for the IP.

A remote base will be returned like:

_iax._udp.50000.nodes.allstarlink.org. 30 IN SRV 10 10 4569 50000.remotebase.nodes.allstarlink.org.

A record

<nodenumber>.nodes.allstarlink.org. and <nodenumber>.remotebase.nodes.allstarlink.org. will return the IP address of the IAX server or the proxy IP if defined.

TXT Record

The TXT record is used for debugging purposes with a query below:

TXT <nodenumber>.nodes.allstarlink.org.

This will return:

"NN=50000" "RT=2019-02-28 18:41:29" "RB=0" "IP=44.98.248.144" "PIP=" "PT=4569" "RH=register-fnt"
NN is node number
RT is the last update registration time
RB is 0 for node is not a remote base, RB is 1 if it is a remote base
IP is the IP address of the node
PIP is the proxy IP of the node if set
PT is the port
RH is the registration server the node last registered to.