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 |
| <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 Record | Informations on a host (usually a name server) |
| dr | Domain Record | Information on a domain name |
| pr | Person Record | Information oin a person (usually a contact) |
| nr | Network Record | Information 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
}