Inhaltsverzeichnis

WHOIS Server für das HAMNET

Dies sind die Seiten zur Dokumentation der Entwicklung des WHOIS-Servers für die DL-IP-Koordination. Dieser WHOIS-Server basiert auf dem Simple WHOIS Daemon (swhoisd) von Dan Anderson. Dieser Daemon ist RFC 834 konform und nutzt den TCP-Port 43 (Whois-Service). Der Server kann von nahezu jedem WHOIS-Clientprogramm abgefragt werden.

Als Grundlage diente Dan Andersons swhoisd-Version 3.05. Diese Version wurde von Egbert Zimmermann DD9QP für die speziellen Bedürfnisse der DL-IP-Koordination für das AmprNet und das HAMNET erweitert und trägt seitdem die Versionsnummer 3.0.6-amprnet.

Status

Datenbank

Am wichtigsten für den Betrieb des WHOISD sind Aufbau und Struktur der Datenbank. Die Datensätze werden in einer einzigen Textdatei (Flatfile) in einer festgelegten Struktur gespeichert, die der WHOISD-Dämon auf Anforderung durchsucht. Datensätze, die mit der Anfrage des Client übereinstimmen bzw. die intern mit der Anfrage des Clients verknüpft sind, werden in einem festgelegten, „menschenlesbaren“ Format ausgegeben. Die Datenhaltung in einer flachen Textdatei ist bis etwa 1000 Datensätze gut geeignet. Für die DL-IP-Koordination sind mehr Datensätze nicht zu erwarten.

Struktur

Alle im Folgenden aufgezählten Keys können in allen Recordtypen (Net, Domain, Host, Person) eingesetzt werden. Innerhalb eines Datensatzes können Keys auch mehrfach vorkommen. Sie werden dann in der Reihenfolge ausgegeben, in der sie im Datensatz aufgelistet sind:

structure in do_whoisd.c for swhoisd.conf and readable Output
Key Value Key Output Remarks
name <name> Name: Name
org <organization> Organization: Organizational Unit
fqdn <fqdn> FQDN: Full Qualified Domain Name
arch <architecture> Architecture: Prozessor Type
os <os> Operating System: Operating System
ip <ipaddress> IP Address: IP-Adress
contact <contact> Contact-Handle: Contact-Handle
admin <admin-c> Administrative Contact: Administrative Contact
tech <admin-tech> Technical Contact: Technical-Contact
country <country> Country: Country (DE, OE, I, etc)
cname <cname> CNAME Record: CNAME (full fqdn)
mx <mx-record> MX Record: Preference with MX-Host
domain <domain> Domain: FQDN Name
ns1 <dns1> Name Server 1: 1.DNS in fqdn
ns1ip <ip-address> NS1 IP address: 1.DNS IP-Address
ns2 <dns2 Name Server 2: 2.DNS in fqdn
ns2ip <ip-address> NS2 IP address 2.DNS IP-Address
ns3 <dns3> Name Server 3: 3.DNS in fqdn
ns3ip <ip-address> NS3 IP address 3.DNS IP-Address
ns4 <dns4> Name Server 4: 4.DNS in fqdn
ns4ip <ip-address> NS4 IP address 4.DNS IP-Address
ns5 <dns5> Name Server 5: 5.DNS in fqdn
ns5ip <ip-address> NS5 IP address: 5.DNS IP-Address
email <emailaddress> Email address: Emailaddress
contact <emailaddress> Contact: Contactaddress
address <text> Address: Name, ZIP, City, Street
phone <phonenumber> Telephone: Telephone-Number
fax <faxnumber> FAX No: FAX-Number
created <date> Created: Creationdate yyyy-mm-dd
updated <date> Last Updated: Update yyyy-mm-dd
net <network> Network: CIDR-Notation
as <as> AS: AS-Number
remark <text> Remarks: Remark-Text
bbnet <network> Network Backbone: CIDR-Notation
usrnet <network> Network User-Services: CIDR-Notation
prnet <network> Network Packet-Radio: CIDR-Notation
hub <hub> Hub: west,ost,nord,sued,mitte
arp <arpcallsign> ARP: CALL-SSID
router <ipaddress> Routing: IP-Address (CIDR)
serial <soa-serial> Serial: Serial-No from SOA

Aufbau

Die komplette Datenbank liegt in der Datei /etc/swhoisd/swhoisd.conf. Der WHOIS-Server kennt 4 verschiedene Datensatztypen (Records).

hr Host RecordInformations on a host (usually a name server)
dr Domain RecordInformation on a domain name
pr Person RecordInformation oin a person (usually a contact)
nr Network RecordInformation on a network or AS (for BGP)

Jeder einzelne Record wird gekennzeichnet durch ein Datensatz-Handle, gefolgt von der Typbezeichnung für diesen Datensatz. Die dann im Record folgende Auflistung der Schlüssel (Keys) und Inhaltsfelder (Content) wird in geschweiften Klammern eingeschlossen.

Syntax eines typischen Netzwerk-Records (Typ: nr) für ein AS

AS[as-no] nr {                 # z.B. AS64620 nr {
     !as      <asn>            # ASN nur Ziffern
     !name    <as-name>        # vollständiger Name des AS
     !bbnet   <cidr>           # Backbone-Netz in CIDR-Notation
     !usrnet  <cidr>           # User/Services-Netz in CIDR-Notation
     !prnet   <cidr>           # altes Packet-Radio-Netz in CIDR-Notation
     country  <nation>         # Landeskenner, hier DE
     admin    <handle-person>  # Call des fuer das AS verantwortlichen Admins
     tech     <handle-person>  # Call des fuer das AS zuständigen Tech-Admins
     remark   <text>           # Bemerkungen (Tipp: max. 40 Zeichen je Zeile)
     created  <date>           # Datum der Erstellung dieses Records
     updated  <date>           # Datum der letzten Aenderung
}

Syntax eines typischen Netzwerk-Records (Typ: nr) für einen Regional-DNS

NETNAME-NET nr {                  # z.B. DB0TUD-NET nr {
     !name    <fqdn>           # vollständiger Name des Digis
     !net     <cidr>           # Netzwerk in CIDR-Notation (old ampr-net)
     !net     <cidr>           # Netzwerk in CIDR-Notation (old ampr-net)
     country  <nation>         # Landeskenner, hier DE
     admin    <handle-person>  # Call des verantwortlichen Admins
     tech     <handle-person>  # Call des zuständigen Tech-Admins
     remark   <text>           # Bemerkungen (Tipp: max. 40 Zeichen je Zeile)
     created  <date>           # Datum der Erstellung dieses Records
     updated  <date>           # Datum der letzten Aenderung
}

Syntax eines typischen Domain-Records (Typ: dr) für eine Regionaldomain

[DOMAINNAME]-DOM nr {          # z.B. RR-DE-DOM dr {
     name    <shortname>       # z.B. rr-de
     !domain <domainname>      # vollst. Bezeichnung der Regionaldomain, z.B. rr.de.ampr.org
     !ns1    <nameserver1>     # vollst. Bezeichnung des 1.DNS in FQDN-Notation
     ns1ip   <ip-address>      # IP-Adresse des 1.DNS
     ns2     <nameserver2>     # vollst. Bezeichnung des 2.DNS in FQDN-Notation
     ns2ip   <ip-address>      # IP-Adresse des 2.DNS  (usw. bis 5 DNS-Eintraege möglich)
     country <nation>          # Landeskenner, hier DE
     contact <handle-person>   # Handel/Call der Kontaktperson, z.B. DG8NGN-PERSON
     admin   <handle-person>   # Call/Handle des zuständigen Regionalkoordinators
     tech    <handle-person>   # Call/Handle des zuständigen DNS-Sysops
     created <date>            # Datum der Erstellung dieses Records
     updated <date>            # Datum der letzten Aktualisierung
}