Net::DNS::RR::SOA(3)

🌸 NAME 🌸

okay so bestie, welcome to the Net::DNS::RR::SOA(3) manual page β€” yes, User Contributed Perl Documentation, section 3, we love a classic. This one is the DNS SOA resource record, and honestly? iconic. πŸ’…

✨ SYNOPSIS ✨

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

πŸ’– DESCRIPTION πŸ’–

This class is literally for DNS Start of Authority (SOA) resource records. Obsessed for you. 🫢

πŸŽ€ METHODS πŸŽ€

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

⚠️ bestie, using undocumented package features or directly accessing internal data structures is discouraged and could result in program termination or other unpredictable behaviour. Not cute, not slay, please don't. πŸ’€

πŸ’… mname

$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. Like the zone’s main character origin info. ✨

πŸ“¬ rname

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

The mailbox which identifies the person responsible for maintaining this zone. The β€œwho do we ping” mailbox, basically. πŸŽ€

πŸ”’ serial

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

Unsigned 32 bit version number of the original copy of the zone. Zone transfers preserve this value β€” no cap.

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

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

A 32 bit time interval before the zone should be refreshed. Give it a lil refresh moment. 🧚

⏳ retry

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

A 32 bit time interval that should elapse before a failed refresh should be retried. We try again, bestie. πŸ¦‹

βŒ› expire

$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. The deadline is deadline-ing. 😭

⏱️ minimum

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

The unsigned 32 bit minimum TTL field that should be exported with any RR from this zone. Tiny but important. πŸ’œ

πŸ¦‹ Zone Serial Number Management πŸ¦‹

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

🌈 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. That is a hard vibe limit, bestie.

⏰ Time Encoded

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

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

  • Copyright (c)1997 Michael Fuhr.
  • Portions Copyright (c)2003 Chris Reinhardt.
  • Portions Copyright (c)2010,2012 Dick Franks.
  • All rights reserved.
  • Package template (c)2009,2012 O.M.Kolkman and R.W.Franks.

πŸŽ€ LICENSE πŸŽ€

okay legal bestie moment β€” here’s the actual permission text, kept exactly as legal text because we do not mess with this:

Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the original copyright notices appear in all copies and that both copyright notice and this permission notice appear in supporting documentation, and that the name of the author not be used in advertising or publicity pertaining to distribution of the software without specific prior written permission.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

πŸ”— SEE ALSO πŸ”—

go read these too, bestie:

perl Net::DNS Net::DNS::RR RFC1035(3.3.13)
<https://iana.org/go/rfc1035#section-3.3.13> RFC1982
<https://iana.org/go/rfc1982>

and that’s the whole page, bestie β€” from perl v5.42.0, dated 2026-09-02, and filed under Net::DNS::RR::SOA(3). slay. πŸ’…βœ¨

πŸ“¦ where this page comes from