IPB
>  Man Pages > Linux > openSUSE 10.2 > Section 3 > Net::DNS::Update man page

Net::DNS::Update man page

Section 3 - openSUSE 10.2 Man Pages

Other operating system man pages available here


Advanced Search

Hopefully, this page is exactly what you are looking for, but if not, you can always find further assistance on Unix/Linux Forum!


Net::DNS::Update(3)   User Contributed Perl Documentation  Net::DNS::Update(3)



NAME
       Net::DNS::Update - Create a DNS update packet

SYNOPSIS
       "use Net::DNS::Update;"

DESCRIPTION
       "Net::DNS::Update" is a subclass of "Net::DNS::Packet", to be used for
       making DNS dynamic updates.  Programmers should refer to RFC 2136 for
       the semantics of dynamic updates.

       WARNING:  This code is still under development.  Please use with cau-
       tion on production nameservers.

METHODS
       new

           $packet = Net::DNS::Update->new;
           $packet = Net::DNS::Update->new('example.com');
           $packet = Net::DNS::Update->new('example.com', 'HS');

       Returns a "Net::DNS::Update" object suitable for performing a DNS
       dynamic update.  Specifically, it creates a packet with the header
       opcode set to UPDATE and the zone record type to SOA (per RFC 2136,
       Section 2.3).

       Programs must use the "push" method to add RRs to the prerequisite,
       update, and additional sections before performing the update.

       Arguments are the zone name and the class.  If the zone is omitted, the
       default domain will be taken from the resolver configuration.  If the
       class is omitted, it defaults to IN.

       Future versions of "Net::DNS" may provide a simpler interface for mak-
       ing dynamic updates.

EXAMPLES
       The first example below shows a complete program; subsequent examples
       show only the creation of the update packet.

       Add a new host

        #!/usr/bin/perl -w

        use Net::DNS;
        use strict;

        # Create the update packet.
        my $update = Net::DNS::Update->new('example.com');

        # Prerequisite is that no A records exist for the name.
        $update->push(pre => nxrrset('foo.example.com. A'));

        # Add two A records for the name.
        $update->push(update => rr_add('foo.example.com. 86400 A 192.168.1.2'));
        $update->push(update => rr_add('foo.example.com. 86400 A 172.16.3.4'));

        # Send the update to the zone's primary master.
        my $res = Net::DNS::Resolver->new;
        $res->nameservers('primary-master.example.com');

        my $reply = $res->send($update);

        # Did it work?
        if ($reply) {
            if ($reply->header->rcode eq 'NOERROR') {
                print "Update succeeded\n";
            } else {
                print 'Update failed: ', $reply->header->rcode, "\n";
            }
        } else {
            print 'Update failed: ', $res->errorstring, "\n";
        }

       Add an MX record for a name that already exists

           my $update = Net::DNS::Update->new('example.com');
           $update->push(pre    => yxdomain('example.com'));
           $update->push(update => rr_add('example.com MX 10 mailhost.example.com'));

       Add a TXT record for a name that doesn't exist

           my $update = Net::DNS::Update->new('example.com');
           $update->push(pre    => nxdomain('info.example.com'));
           $update->push(update => rr_add('info.example.com TXT "yabba dabba doo"'));

       Delete all A records for a name

           my $update = Net::DNS::Update->new('example.com');
           $update->push(pre    => yxrrset('foo.example.com A'));
           $update->push(update => rr_del('foo.example.com A'));

       Delete all RRs for a name

           my $update = Net::DNS::Update->new('example.com');
           $update->push(pre    => yxdomain('byebye.example.com'));
           $update->push(update => rr_del('byebye.example.com'));

       Perform a signed update

           my $key_name = 'tsig-key';
           my $key      = 'awwLOtRfpGE+rRKF2+DEiw==';

           my $update = Net::DNS::Update->new('example.com');
           $update->push(update => rr_add('foo.example.com A 10.1.2.3'));
           $update->push(update => rr_add('bar.example.com A 10.4.5.6'));
           $update->sign_tsig($key_name, $key);

       Another way to perform a signed update

           my $key_name = 'tsig-key';
           my $key      = 'awwLOtRfpGE+rRKF2+DEiw==';

           my $update = Net::DNS::Update->new('example.com');
           $update->push(update     => rr_add('foo.example.com A 10.1.2.3'));
           $update->push(update     => rr_add('bar.example.com A 10.4.5.6'));
           $update->push(additional => Net::DNS::RR->new("$key_name TSIG $key"));

       Perform a signed update with a customized TSIG record

           my $key_name = 'tsig-key';
           my $key      = 'awwLOtRfpGE+rRKF2+DEiw==';

           my $tsig = Net::DNS::RR->new("$key_name TSIG $key");
           $tsig->fudge(60);

           my $update = Net::DNS::Update->new('example.com');
           $update->push(update     => rr_add('foo.example.com A 10.1.2.3'));
           $update->push(update     => rr_add('bar.example.com A 10.4.5.6'));
           $update->push(additional => $tsig);

BUGS
       This code is still under development.  Please use with caution on pro-
       duction nameservers.

COPYRIGHT
       Copyright (c) 1997-2002 Michael Fuhr.

       Portions Copyright (c) 2002-2004 Chris Reinhardt.

       All rights reserved.  This program is free software; you may redis-
       tribute it and/or modify it under the same terms as Perl itself.

SEE ALSO
       perl(1), Net::DNS, Net::DNS::Resolver, Net::DNS::Header,
       Net::DNS::Packet, Net::DNS::Question, Net::DNS::RR, RFC 2136, RFC 2845



perl v5.8.8                       2006-09-18               Net::DNS::Update(3)


Man(1) output converted with man2html and wrapped by fishsponge

This page was generated on Sat Sep 8 16:39:23 GMT 2007

Your favourite pages:

No pages logged yet.
Trying to save cookie...

Top 10 most popular pages:

svn man page (6161 hits)
(FreeBSD 6.2)

sqlite3 man page (5598 hits)
(openSUSE 10.2)

adv_cap_autoneg man page (5045 hits)
(Solaris 10 11_06)

CPAN man page (4791 hits)
(Suse Linux 10.1)

ssh man page (4439 hits)
(Suse Linux 10.1)

ssh-socks5-proxy-connect man page (3525 hits)
(Solaris 10 11_06)

signal man page (3394 hits)
(Suse Linux 10.1)

netcat man page (3373 hits)
(Suse Linux 10.1)

pprosetup man page (2886 hits)
(Solaris 10 11_06)

startproc man page (2738 hits)
(Suse Linux 10.1)

Useful Links

Go Back

Visitor Statistics


Valid XHTML 1.0 Transitional     Valid CSS!

Partners: Cambridge Plus :: Pyrenees Ski Resorts :: SolidWorks 3D CAD :: <Link Available>
Unix Man Pages / Linux Man Pages :: HiFi Forum :: SIP VoIP Phone & Provider Reviews :: UNIX/Linux Forum Archives

More info on advertising on Unix/Linux Forum