Zonebestand

Het formaat van een zonebestand wordt gedefinieerd in RFC 1035 (sectie 5) en RFC 1034 (sectie 3.6.1). Dit formaat werd oorspronkelijk gebruikt door het softwarepakket Berkeley Internet Name Domain (BIND), maar is op grote schaal overgenomen door andere DNS-serversoftware – hoewel sommige van hen (bijv. NSD, PowerDNS) de zonebestanden alleen gebruiken als uitgangspunt om ze te compileren in databaseformaat, zie ook Microsoft DNS met Active Directory-database-integratie.

Een zonebestand is een opeenvolging van regelgeoriënteerde entries, die elk ofwel een directive of een tekstbeschrijving zijn die een enkel resource record (RR) definieert. Een entry is opgebouwd uit velden gescheiden door een willekeurige combinatie van witruimte (tabs en spaties), en eindigt op een regelgrens behalve binnen een geciteerde string veldwaarde of een paar omsluitende opmaak haakjes. Elke regel mag eindigen met commentaar voorafgegaan door een puntkomma, en het bestand mag ook een willekeurig aantal lege regels bevatten.

Entries mogen in elke volgorde in een zonebestand voorkomen, met enkele uitzonderingen.

Directives zijn control entries die de rest van het zonebestand beïnvloeden. Het eerste veld van een directief bestaat uit een dollarteken gevolgd door een trefwoord:

  • $ORIGIN wordt gevolgd door een domeinnaam die moet worden gebruikt als oorsprong voor daaropvolgende relatieve domeinnamen.
  • $INCLUDE wordt gevolgd door een bestandsnaam en een optionele oorsprongsdomeinnaam die moet worden gebruikt bij het interpreteren van de inhoud (die wordt behandeld alsof hij in het bovenliggende bestand staat, gevolgd door een reset naar de oorsprongswaarde die voorafgaat aan de evaluatie van de directief).
  • $TTL, gedefinieerd in RFC 2308 (sectie 4), wordt gevolgd door een getal dat moet worden gebruikt als de standaard TTL (time-to-live).
  • $GENERATE, een niet-standaard extensie die door BIND en sommige andere naamserversoftware wordt geaccepteerd om meerdere resource records met één invoer in te voegen, wordt gevolgd door een beknopte weergave van een oplopende reeks van niet-negatieve getallen en vervolgens een sjabloon RR invoer. Een resource record wordt toegevoegd voor elk nummer in de reeks, gebruikmakend van het sjabloon met niet-escaped “$” tekens vervangen door het nummer.

Een bronrecordgegeven bestaat uit verschillende velden, als volgt (de volgorde van beide velden is aanvaardbaar en mag door elkaar worden gebruikt):

naam ttl recordklasse recordtype recordgegevens
naam recordklasse ttl recordtype recordgegevens

Het veld naam mag leeg worden gelaten. Als dat het geval is, erft de record het veld van de vorige record. Een vrijstaande @ wordt gebruikt om de huidige oorsprong aan te geven.

Het veld ttl geeft het aantal seconden aan waarna een caching-client de record moet negeren en een nieuwe resolutiebewerking moet uitvoeren om verse informatie te verkrijgen. Sommige naamservers, waaronder BIND, staan niet-standaard weergaven toe die afkortingen voor tijdseenheden gebruiken (bijvoorbeeld “2d” voor twee dagen van 24 uur of “1h30m” voor één uur en 30 minuten). Het mag worden weggelaten, in welk geval de resulterende waarde zal worden ingesteld op de standaard TTL (indien gedefinieerd) of op de voorgaande record.

Het recordklasse veld geeft de namespace van de recordinformatie aan. Het kan worden weggelaten, in welk geval de resulterende waarde zal worden ingesteld op basis van de voorgaande record. De meest gebruikte namespace is die van het Internet, aangegeven met de parameter IN, maar er bestaan andere en die worden ook gebruikt, b.v. CHAOS.

Het recordtype-veld is een afkorting voor het soort informatie dat is opgeslagen in het laatste veld, recordgegevens. Bijvoorbeeld: een adres record (type A voor IPv4, of type AAAA voor IPv6,) koppelt de domeinnaam uit het eerste veld aan een IP-adres in de record data; een mail exchanger record (type MX) specificeert de Simple Mail Transfer Protocol (SMTP) mail host voor een domein.

Het record data veld kan bestaan uit een of meer informatie elementen, afhankelijk van de eisen van elk record type. Bijvoorbeeld, een adres record vereist alleen een adres, terwijl een mail exchanger record een prioriteit en een domeinnaam vereist. Dergelijke informatie-elementen worden weergegeven als velden, gescheiden door witruimte.

VoorbeeldbestandEdit

Een voorbeeld van een zonebestand voor het domein example.com is het volgende:

$ORIGIN example.com. ; designates the start of this zone file in the namespace$TTL 3600 ; default expiration time (in seconds) of all RRs without their own TTL valueexample.com. IN SOA ns.example.com. username.example.com. ( 2020091025 7200 3600 1209600 3600 )example.com. IN NS ns ; ns.example.com is a nameserver for example.comexample.com. IN NS ns.somewhere.example. ; ns.somewhere.example is a backup nameserver for example.comexample.com. IN MX 10 mail.example.com. ; mail.example.com is the mailserver for example.com@ IN MX 20 mail2.example.com. ; equivalent to above line, "@" represents zone origin@ IN MX 50 mail3 ; equivalent to above line, but using a relative host nameexample.com. IN A 192.0.2.1 ; IPv4 address for example.com IN AAAA 2001:db8:10::1 ; IPv6 address for example.comns IN A 192.0.2.2 ; IPv4 address for ns.example.com IN AAAA 2001:db8:10::2 ; IPv6 address for ns.example.comwww IN CNAME example.com. ; www.example.com is an alias for example.comwwwtest IN CNAME www ; wwwtest.example.com is another alias for www.example.commail IN A 192.0.2.3 ; IPv4 address for mail.example.commail2 IN A 192.0.2.4 ; IPv4 address for mail2.example.commail3 IN A 192.0.2.5 ; IPv4 address for mail3.example.com

In het zonebestand moet ten minste het SOA-record (Start of Authority) worden gespecificeerd met de naam van de gezaghebbende hoofdnaamserver voor de zone en het e-mailadres van iemand die verantwoordelijk is voor het beheer van de naamserver (weergegeven als een domeinnaam, met een puntteken in plaats van het gebruikelijke @-symbool). De parameters van de SOA-record specificeren ook een lijst van timing- en vervalparameters (serienummer, vernieuwingsperiode van de slave, herhalingstijd van de slave, vervaltijd van de slave, en de maximale tijd om de record te cachen). Sommige naamservers, waaronder BIND, hebben ook ten minste één extra NS-record nodig.

In het zonebestand zijn domeinnamen die eindigen op een puntteken (zoals “example.com.” in het bovenstaande voorbeeld) volledig gekwalificeerd, terwijl domeinnamen die niet eindigen op een puntteken relatief zijn ten opzichte van de huidige oorsprong (daarom verwijst www in het bovenstaande voorbeeld naar www.example.com).

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.