++ed by:

10 PAUSE users
9 non-PAUSE users.

NLnet Labs
and 1 contributors


Net::DNS::RR::SOA - DNS SOA resource record


    use Net::DNS;
    $rr = new Net::DNS::RR('name SOA mname rname 0 14400 3600 1814400 3600');


Class for DNS Start of Authority (SOA) resource records.


The available methods are those inherited from the base class augmented by the type-specific methods defined in this package.

Use of undocumented package features or direct access to internal data structures is discouraged and could result in program termination or other unpredictable behaviour.


    $mname = $rr->mname;
    $rr->mname( $mname );

The domain name of the name server that was the original or primary source of data for this zone.


    $rname = $rr->rname;
    $rr->rname( $rname );

The mailbox which identifies the person responsible for maintaining this zone.


    $serial = $rr->serial;
    $serial = $rr->serial(value);

Unsigned 32 bit version number of the original copy of the zone. Zone transfers preserve this value.

RFC1982 defines a strict (irreflexive) partial ordering for zone serial numbers. The serial number will be incremented unless the replacement value argument satisfies the ordering constraint.


    $refresh = $rr->refresh;
    $rr->refresh( $refresh );

A 32 bit time interval before the zone should be refreshed.


    $retry = $rr->retry;
    $rr->retry( $retry );

A 32 bit time interval that should elapse before a failed refresh should be retried.


    $expire = $rr->expire;
    $rr->expire( $expire );

A 32 bit time value that specifies the upper limit on the time interval that can elapse before the zone is no longer authoritative.


    $minimum = $rr->minimum;
    $rr->minimum( $minimum );

The unsigned 32 bit minimum TTL field that should be exported with any RR from this zone.

Zone Serial Number Management

The internal logic of the serial() method offers support for several widely used zone serial numbering policies.

Strictly Sequential

    $successor = $soa->serial( SEQUENTIAL );

The existing serial number is incremented modulo 2**32 because the value returned by the auxiliary SEQUENTIAL() function can never satisfy the serial number ordering constraint.

Date Encoded

    $successor = $soa->serial( YYYYMMDDxx );

The 32 bit value returned by the auxiliary YYYYMMDDxx() function will be used if it satisfies the ordering constraint, otherwise the serial number will be incremented as above.

Serial number increments must be limited to 100 per day for the date information to remain useful.

Time Encoded

    $successor = $soa->serial( UNIXTIME );

The 32 bit value returned by the auxiliary UNIXTIME() function will used if it satisfies the ordering constraint, otherwise the existing serial number will be incremented as above.


Copyright (c)1997-2002 Michael Fuhr.

Portions Copyright (c)2002-2004 Chris Reinhardt.

Portions Copyright (c)2010,2012 Dick Franks.

All rights reserved.

This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself.

Package template (c)2009,2012 O.M.Kolkman and R.W.Franks.


perl, Net::DNS, Net::DNS::RR, RFC1035 Section 3.3.13, RFC1982