NAPTR Resource RecordMit NAPTR (Naming Authority Pointer) Resource Records werden DNS-Namen Adressen von Servern und weitere Informationen zugeordnet. HintergrundTraditionell werden über den DNS-Dienst Namen in IP-Adressen aufgelöst. Man sendet einen Namen zu einem DNS-Server und erhält eine IP-Adresse zurück (hinter der sich dann meist ein Server verbirgt). Dieses einfache und bewährte Verfahren ist heute in vielen Fällen unzureichend, da die Anfragenden oft weitere Information benötigen. NAPTR-Records liefern diese zusätzlichen Informationen auf sehr flexible Art und Weise. Unter anderem wird das Protokoll angegeben, das der Server verwendet. Über die Gewichtung kann, falls mehrere NAPTR-Records zu einem Namen existieren, eine Priorisierung festgelegt werden. Außerdem kann, falls mehrere NAPTR-Records gleicher Priorität zu einem Namen existieren, per Präferenz eine Lastverteilung erreicht werden. Der NAPTR-Record-Typ kann damit als eine Erweiterung des klassischen A-Records (oder auch SRV-Records) aufgefasst werden. AufbauDie Struktur von NAPTR-Records ist kompliziert, da eine Vielzahl von Fällen abgedeckt werden muss. Eine Hauptschwierigkeit besteht darin, dass oft nicht direkt ein Server-Name zurückgeliefert wird, sondern ein Regulärer Ausdruck, der zunächst aufgelöst werden muss. Einfaches Beispiel eines NAPTR-Records (ohne regulären Ausdruck): dienst.example.com. IN NAPTR 100 10 "A" "" "" prodserver.example.com. Links steht hier ein DNS-Name und ganz rechts ein Verweis auf den Namen eines Servers, der den gewünschten Dienst bereitstellt. Das "A" bedeutet: Der ganz rechts stehende Ausdruck "prodserver.example.com" ist ein A-Record. Um die IP-Adresse zu erhalten, ist damit noch ein weiterer Schritt erforderlich: Dieser A-Record muss aufgelöst werden (einige Name-Server wie BIND erledigen das aber selbständig und liefern die IP-Adresse in der Additional-Section mit).
Zurzeit sind folgende Flags definiert:
Um die IP-Adresse des gesuchten Servers zu erhalten, muss also in jedem Fall mindestens eine weitere DNS-Anfrage gestellt oder eine URL aufgelöst werden. Bei leerem Flag ist eine weitere NAPTR-Anfrage erforderlich. Man spricht in diesem Fall von einer Verkettung. Beispiel mit regulärem AusdruckDas oben aufgeführte Beispiel wird durch Einbeziehung eines regulären Ausdrucks realisiert: dienst.example.com. IN NAPTR 100 10 "A" "" "!^.*$!prodserver.example.com!". Der reguläre Ausdruck entspricht einer Posix Extended Regular Expression.[1] Das erste im regulären Ausdruck vorkommende Zeichen (hier "!") dient als Begrenzer. Es ist sinnvoll als Begrenzer z. B. das "!" anstelle des gewöhnlich genutzten Begrenzers "/" zu wählen, da URLs häufig bereits "/" beinhalten und der reguläre Ausdruck so einfacher zu lesen ist. Im ersten von den Begrenzern definierten Feld (^.*$) befinden sich Informationen, die definieren, welche Teile des Eingangsstrings (dienst.example.com.) durch den rechts vom Begrenzer stehenden String (prodserver.example.com) ersetzt werden sollen. "^.*$" bedeutet: Es soll alles ersetzt werden. Weblinks
Einzelnachweise |