.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings.  \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
.    ds -- \(*W-
.    ds PI pi
.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
.    ds L" ""
.    ds R" ""
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    ds -- \|\(em\|
.    ds PI \(*p
.    ds L" ``
.    ds R" ''
.    ds C`
.    ds C'
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\"
.\" If the F register is >0, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD.  Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.\"
.\" Avoid warning from groff about undefined register 'F'.
.de IX
..
.nr rF 0
.if \n(.g .if rF .nr rF 1
.if (\n(rF:(\n(.g==0)) \{\
.    if \nF \{\
.        de IX
.        tm Index:\\$1\t\\n%\t"\\$2"
..
.        if !\nF==2 \{\
.            nr % 0
.            nr F 2
.        \}
.    \}
.\}
.rr rF
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
.    \" fudge factors for nroff and troff
.if n \{\
.    ds #H 0
.    ds #V .8m
.    ds #F .3m
.    ds #[ \f1
.    ds #] \fP
.\}
.if t \{\
.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
.    ds #V .6m
.    ds #F 0
.    ds #[ \&
.    ds #] \&
.\}
.    \" simple accents for nroff and troff
.if n \{\
.    ds ' \&
.    ds ` \&
.    ds ^ \&
.    ds , \&
.    ds ~ ~
.    ds /
.\}
.if t \{\
.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
.    \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
.    \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
.    \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
.    ds : e
.    ds 8 ss
.    ds o a
.    ds d- d\h'-1'\(ga
.    ds D- D\h'-1'\(hy
.    ds th \o'bp'
.    ds Th \o'LP'
.    ds ae ae
.    ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "MRTG-IPV6 1"
.TH MRTG-IPV6 1 "2021-10-23" "2.17.8" "mrtg"
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
mrtg\-ipv6 \- IPv6 support in MRTG
.SH "OVERVIEW"
.IX Header "OVERVIEW"
\&\s-1MRTG\s0 and cfgmaker support \s-1SNMP\s0 over IPv6. IPv6 targets can be specified by
hostname or IPv6 address, and if the required libraries are present (see
below), queries will use IPv6.
.SH "USAGE"
.IX Header "USAGE"
.SS "Enabling IPv6"
.IX Subsection "Enabling IPv6"
IPv6 is currently disabled by default and must be explicitly enabled. In
\&\s-1MRTG\s0 this is done by turning on the \fBEnableIPv6\fR global option in the
configuration file. In cfgmaker, it is enabled with the \fB\-\-enable\-ipv6\fR
command-line option.
.PP
If IPv6 is disabled, \s-1MRTG\s0 and cfgmaker should behave in exactly the same way
as previous versions. So the addition of IPv6 support should have no effect
on existing \s-1MRTG\s0 setups unless IPv6 is enabled.
.PP
IPv6 support requires the Socket6 and \s-1INET6\s0 libraries (see below). If \s-1MRTG\s0
can't find them, IPv6 is disabled.
.SS "Specifying IPv6 targets"
.IX Subsection "Specifying IPv6 targets"
IPv6 targets may be specified by name or IPv6 address. Numeric IPv6 addresses
may be used with both cfgmaker and \s-1MRTG,\s0 but they must be enclosed in square
brackets.
.PP
For example, a target could be specified as:
.PP
.Vb 1
\& public@[2001:760:4::]:161
.Ve
.PP
Hostnames work as expected: first an IPv6 name lookup is tried, then an IPv4
lookup.
.SS "Targets that do not support \s-1SNMP\s0 over IPv6"
.IX Subsection "Targets that do not support SNMP over IPv6"
Many targets (this currently includes all Cisco routers) do not yet support
\&\s-1SNMP\s0 over IPv6 and must be monitored over IPv4. This can cause problems if
you specify a target through its \s-1DNS\s0 name and the name maps to both the IPv6
address and the IPv4 address of the target: \s-1MRTG\s0 will only try IPv6, and will
fail.
.PP
To query these targets, use the \fBIPv4Only\fR per-target option, which tells
\&\s-1MRTG\s0 not to use \s-1SNMP\s0 over IPv6 for the target.
.PP
\&\s-1MRTG\s0 does not fall back to IPv4 for performance and correctness reasons. If
there are many routers to query, a timeout for every router would make \s-1MRTG\s0
take too long to query them all. And if, for some reason, IPv6 connectivity to
the target is lost, \s-1MRTG\s0's error messages can help figure out what is wrong.
.PP
cfgmaker does fall back from IPv6 to IPv4. If IPv6 is enabled and cfgmaker is
given a hostname that resolves to both an IPv6 and an IPv4 address, it first
tries to query the target over IPv6. If it receives no answer, it tries again
using IPv4. If the target answers, cfgmaker sets the IPv4Only option in the
generated config file.
.SH "IPv6 LIBRARIES"
.IX Header "IPv6 LIBRARIES"
.SS "Libraries required"
.IX Subsection "Libraries required"
IPv6 support requires the \fBSocket6\fR and \fB\s-1INET6\s0\fR Perl modules. Both can be
downloaded from \s-1CPAN:\s0
.PP
http://search.cpan.org/author/UMEMOTO/Socket6/
.PP
http://search.cpan.org/author/MONDEJAR/INET6/
.PP
If you use Debian, you will need the packages \fBlibsocket6\-perl\fR and
\&\fBlibio\-socket\-inet6\-perl\fR, which are (or should soon be) in unstable.
.PP
So far, IPv6 support has been tested on Linux only, and only with Socket6
version 0.12. Also note that IPv6 won't work at all if you don't have
\&\s-1INET6\s0.pm version 2.00 or newer.
.SS "Installing the libraries"
.IX Subsection "Installing the libraries"
Building and installing Socket6 and \s-1INET6\s0 is very simple. For each module,
just unpack the archive and then do:
.PP
.Vb 2
\& perl Makefile.PL
\& make
.Ve
.PP
and then:
.PP
.Vb 2
\& su
\& make install
.Ve
.PP
If you have installed the libraries successfully, cfgmaker and mrtg should
automatically detect them and allow IPv6 support to be enabled.
.SH "AUTHOR"
.IX Header "AUTHOR"
Lorenzo Colitti <lorenzo location colitti.com>
