doc/en_US.ISO8859-1/articles/hubs/article.xml

696 lines
31 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
<info><title>Mirroring FreeBSD</title>
<authorgroup>
<author><personname><firstname>Jun</firstname><surname>Kuriyama</surname></personname><affiliation>
<address><email>kuriyama@FreeBSD.org</email></address>
</affiliation></author>
<author><personname><firstname>Valentino</firstname><surname>Vaschetto</surname></personname><affiliation>
<address><email>logo@FreeBSD.org</email></address>
</affiliation></author>
<author><personname><firstname>Daniel</firstname><surname>Lang</surname></personname><affiliation>
<address><email>dl@leo.org</email></address>
</affiliation></author>
<author><personname><firstname>Ken</firstname><surname>Smith</surname></personname><affiliation>
<address><email>kensmith@FreeBSD.org</email></address>
</affiliation></author>
</authorgroup>
<legalnotice xml:id="trademarks" role="trademarks">
&tm-attrib.freebsd;
&tm-attrib.general;
</legalnotice>
<pubdate>$FreeBSD$</pubdate>
<releaseinfo>$FreeBSD$</releaseinfo>
<abstract>
<para>An in-progress article on how to mirror FreeBSD, aimed at
hub administrators.</para>
</abstract>
</info>
<note>
<para>We are not accepting new mirrors at this time.</para>
</note>
<sect1 xml:id="mirror-contact">
<title>Contact Information</title>
<para>The Mirror System Coordinators can be reached through email
at <email>mirror-admin@FreeBSD.org</email>. There is also
a &a.hubs;.</para>
</sect1>
<sect1 xml:id="mirror-requirements">
<title>Requirements for FreeBSD mirrors</title>
<sect2 xml:id="mirror-diskspace">
<title>Disk Space</title>
<para>
Disk space is one of the most important requirements.
Depending on the set of releases, architectures,
and degree of completeness you want to mirror, a huge
amount of disk space may be consumed. Also keep in mind
that <emphasis>official</emphasis> mirrors are probably required to be
complete. The web pages should
always be mirrored completely. Also note that the
numbers stated here are reflecting the current
state (at &rel2.current;-RELEASE/&rel.current;-RELEASE). Further development and
releases will only increase the required amount.
Also make sure to keep some (ca. 10-20%) extra space
around just to be sure.
Here are some approximate figures:
</para>
<itemizedlist>
<listitem><para>Full FTP Distribution: 1.4 TB</para></listitem>
<listitem><para>CTM deltas: 10 GB</para></listitem>
<listitem><para>Web pages: 1GB</para></listitem>
</itemizedlist>
<para>
The current disk usage of FTP Distribution can be found at
<link xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/dir.sizes">ftp://ftp.FreeBSD.org/pub/FreeBSD/dir.sizes</link>.
</para>
</sect2>
<sect2 xml:id="mirror-bandwidth">
<title>Network Connection/Bandwidth</title>
<para>
Of course, you need to be connected to the Internet.
The required bandwidth depends on your intended use
of the mirror. If you just want to mirror some
parts of FreeBSD for local use at your site/intranet,
the demand may be much smaller than if you want to
make the files publicly available. If you intend
to become an official mirror, the bandwidth required will be even higher. We can only give rough
estimates here:
</para>
<itemizedlist>
<listitem><para>Local site, no public access: basically no minimum,
but &lt; 2 Mbps could make syncing too slow.</para></listitem>
<listitem><para>Unofficial public site: 34 Mbps is probably a good start.</para></listitem>
<listitem><para>Official site: &gt; 100 Mbps is recommended, and your host
should be connected as close as possible to your border router.</para></listitem>
</itemizedlist>
</sect2>
<sect2 xml:id="mirror-system">
<title>System Requirements, CPU, RAM</title>
<para>
One thing this depends on the expected number of clients,
which is determined by the server's policy. It is
also affected by the types of services you want to offer.
Plain FTP or HTTP services may not require a huge
amount of resources. Watch out if you provide
rsync. This can have a huge
impact on CPU and memory requirements as it is
considered a memory hog.
The following
are just examples to give you a very rough hint.
</para>
<para>
For a moderately visited site that offers
<application>rsync</application>, you might
consider a current CPU with around 800MHz - 1 GHz,
and at least 512MB RAM. This is probably the
minimum you want for an <emphasis>official</emphasis>
site.
</para>
<para>
For a frequently used site you definitely need
more RAM (consider 2GB as a good start)
and possibly more CPU, which could also mean
that you need to go for a SMP system.
</para>
<para>
You also want to consider a fast disk subsystem.
Operations on the SVN repository require a fast
disk subsystem (RAID is highly advised). A SCSI
controller that has a cache of its own can also
speed up things since most of these services incur a
large number of small modifications to the disk.
</para>
</sect2>
<sect2 xml:id="mirror-services">
<title>Services to offer</title>
<para>
Every mirror site is required to have a set of core services
available. In addition to these required services, there are
a number of optional services that
server administrators may choose to offer. This section explains
which services you can provide and how to go about implementing them.
</para>
<sect3 xml:id="mirror-serv-ftp">
<title>FTP (required for FTP fileset)</title>
<para>
This is one of the most basic services, and
it is required for each mirror offering public
FTP distributions. FTP access must be
anonymous, and no upload/download ratios
are allowed (a ridiculous thing anyway).
Upload capability is not required (and <emphasis>must</emphasis>
never be allowed for the FreeBSD file space).
Also the FreeBSD archive should be available under
the path <filename>/pub/FreeBSD</filename>.
</para>
<para>
There is a lot of software available which
can be set up to allow anonymous FTP
(in alphabetical order).</para>
<itemizedlist>
<listitem><para><command>/usr/libexec/ftpd</command>: FreeBSD's own ftpd
can be used. Be sure to read &man.ftpd.8;.</para>
</listitem>
<listitem>
<para><package>ftp/ncftpd</package>: A commercial package,
free for educational use.</para>
</listitem>
<listitem>
<para><package>ftp/oftpd</package>: An ftpd designed with
security as a main focus.</para>
</listitem>
<listitem>
<para><package>ftp/proftpd</package>: A modular and very flexible ftpd.</para>
</listitem>
<listitem>
<para><package>ftp/pure-ftpd</package>: Another ftpd developed with
security in mind.</para>
</listitem>
<listitem><para><package>ftp/twoftpd</package>: As above.</para></listitem>
<listitem><para><package>ftp/vsftpd</package>: The <quote>very secure</quote> ftpd.</para></listitem>
</itemizedlist>
<para>FreeBSD's <application>ftpd</application>, <application>proftpd</application>
and maybe <application>ncftpd</application>
are among the most commonly used FTPds.
The others do not have a large userbase among mirror sites. One
thing to consider is that you may need flexibility in limiting
how many simultaneous connections are allowed, thus limiting how
much network bandwidth and system resources are consumed.
</para>
</sect3>
<sect3 xml:id="mirror-serv-rsync">
<title>Rsync (optional for FTP fileset)</title>
<para>
<application>Rsync</application> is often offered for access to the
contents of the FTP area of FreeBSD, so other mirror sites can use your system as their source. The
protocol is different from FTP in many ways.
It is much more
bandwidth friendly, as only differences between files
are transferred instead of whole files when they change.
<application>Rsync</application> does require a significant amount of memory for
each instance. The size depends on the size of
the synced module in terms of the number of directories and
files. <application>Rsync</application> can use <command>rsh</command> and
<command>ssh</command> (now default) as a transport,
or use its own protocol for stand-alone access
(this is the preferred method for public rsync servers).
Authentication, connection limits, and other restrictions
may be applied. There is just one software package
available:</para>
<itemizedlist>
<listitem><para><package>net/rsync</package></para></listitem>
</itemizedlist>
</sect3>
<sect3 xml:id="mirror-serv-http">
<title>HTTP (required for web pages, optional for FTP fileset)</title>
<para>
If you want to offer the FreeBSD web pages, you will need
to install a web server.
You may optionally offer the FTP fileset via HTTP.
The choice of web server software is left up to the mirror administrator.
Some of the most popular choices are:</para>
<itemizedlist>
<listitem>
<para><package>www/apache22</package>:
<application>Apache</application> is the most widely
deployed web server on the Internet. It is used
extensively by the FreeBSD Project.</para>
</listitem>
<listitem>
<para><package>www/thttpd</package>:
If you are going to be serving a large amount of static content
you may find that using an application such as thttpd is more
efficient than <application>Apache</application>. It is
optimized for excellent performance on FreeBSD.</para>
</listitem>
<listitem>
<para><package>www/boa</package>:
<application>Boa</application> is another alternative to
<application>thttpd</application> and
<application>Apache</application>. It should provide
considerably better performance than
<application>Apache</application> for purely static
content. It does not, at the time of this writing,
contain the same set of optimizations for FreeBSD that
are found in <application>thttpd</application>.</para>
</listitem>
<listitem>
<para><package>www/nginx</package>:
<application>Nginx</application> is a high performance edge web
server with a low memory footprint and key features to build
a modern and efficient web infrastructure. Features include
a HTTP server, HTTP and mail reverse proxy, caching, load
balancing, compression, request throttling, connection
multiplexing and reuse, SSL offload and HTTP media
streaming.</para>
</listitem>
</itemizedlist>
</sect3>
</sect2>
</sect1>
<sect1 xml:id="mirror-howto">
<title>How to Mirror FreeBSD</title>
<para>
Ok, now you know the requirements and how to offer
the services, but not how to get it. :-)
This section explains how to actually mirror
the various parts of FreeBSD, what tools to use,
and where to mirror from.
</para>
<sect2 xml:id="mirror-ftp-rsync">
<title>Mirroring the FTP site</title>
<para>
The FTP area is the largest amount of data that
needs to be mirrored. It includes the <emphasis>distribution
sets</emphasis> required for network installation, the
<emphasis>branches</emphasis> which are actually snapshots
of checked-out source trees, the <emphasis>ISO Images</emphasis>
to write CD-ROMs with the installation distribution,
a live file system, and a snapshot of the ports tree. All of
course for various FreeBSD versions, and various architectures.
</para>
<para>
The best way to mirror the FTP area is <application>rsync</application>.
You can install the port <package>net/rsync</package> and then use
rsync to sync with your upstream host.
<application>rsync</application> is already mentioned
in <xref linkend="mirror-serv-rsync"/>.
Since <application>rsync</application> access is not
required, your preferred upstream site may not allow it.
You may need to hunt around a little bit to find a site
that allows <application>rsync</application> access.</para>
<note>
<para>
Since the number of <application>rsync</application>
clients will have a significant impact on the server
machine, most admins impose limitations on their
server. For a mirror, you should ask the site maintainer
you are syncing from about their policy, and maybe
an exception for your host (since you are a mirror).
</para>
</note>
<para>A command line to mirror FreeBSD might look like:</para>
<screen>&prompt.user; <userinput>rsync -vaHz --delete rsync://ftp4.de.FreeBSD.org/FreeBSD/ /pub/FreeBSD/</userinput>
</screen>
<para>Consult the documentation for <application>rsync</application>,
which is also available at
<link xlink:href="http://rsync.samba.org/">http://rsync.samba.org/</link>,
about the various options to be used with rsync.
If you sync the whole module (unlike subdirectories),
be aware that the module-directory (here "FreeBSD")
will not be created, so you cannot omit the target directory.
Also you might
want to set up a script framework that calls such a command
via &man.cron.8;.
</para>
</sect2>
<sect2 xml:id="mirror-www">
<title>Mirroring the WWW pages</title>
<para>
The FreeBSD website should only be mirrored via
<application>rsync</application>.</para>
<para>A command line to mirror the FreeBSD web site might look like:</para>
<screen>&prompt.user; <userinput>rsync -vaHz --delete rsync://bit0.us-west.freebsd.org/FreeBSD-www-data/ /usr/local/www/</userinput>
</screen>
</sect2>
<sect2 xml:id="mirror-pkgs">
<title>Mirroring Packages</title>
<para>Due to very high requirements of bandwidth, storage and
adminstration the &os; Project has decided not to allow public
mirrors of packages. For sites with lots of machines, it might
be advantagous to run a caching HTTP proxy for the &man.pkg.8;
process. Alternatively specific packages and their dependencies
can be fetched by running something like the following:</para>
<screen>&prompt.user; <userinput>pkg fetch -d -o <replaceable>/usr/local/mirror</replaceable> <replaceable>vim</replaceable></userinput></screen>
<para>Once those packages have been fetched, the repository metadata must be generated by running:</para>
<screen>&prompt.user; <userinput>pkg repo <replaceable>/usr/local/mirror</replaceable></userinput></screen>
<para>Once the packages have been fetched and the metadata for the
repository has been generated, serve the packages up to the
client machines via HTTP. For additional information see the
man pages for &man.pkg.8;, specifically the &man.pkg-repo.8; page.
</para>
</sect2>
<sect2 xml:id="mirror-how-often">
<title>How often should I mirror?</title>
<para>
Every mirror should be updated at a minimum of once per day.
Certainly a script with locking to prevent multiple runs
happening at the same time will be needed to run from
&man.cron.8;. Since nearly every admin does this in their own
way, specific instructions cannot be provided. It could work
something like this:
</para>
<procedure>
<step>
<para>
Put the command to run your mirroring application
in a script. Use of a plain <command>/bin/sh</command>
script is recommended.
</para>
</step>
<step>
<para>
Add some output redirections so diagnostic
messages are logged to a file.
</para>
</step>
<step>
<para>
Test if your script works. Check the logs.
</para>
</step>
<step>
<para>
Use &man.crontab.1; to add the script to the
appropriate user's &man.crontab.5;. This should be a
different user than what your FTP daemon runs as so that
if file permissions inside your FTP area are not
world-readable those files can not be accessed by anonymous
FTP. This is used to <quote>stage</quote> releases &mdash;
making sure all of the official mirror sites have all of the
necessary release files on release day.
</para>
</step>
</procedure>
<para>
Here are some recommended schedules:</para>
<itemizedlist>
<listitem><para>FTP fileset: daily</para></listitem>
<listitem><para>WWW pages: daily</para></listitem>
</itemizedlist>
</sect2>
</sect1>
<sect1 xml:id="mirror-where">
<title>Where to mirror from</title>
<para>
This is an important issue. So this section will
spend some effort to explain the backgrounds. We will say this
several times: under no circumstances should you mirror from
<systemitem class="fqdomainname">ftp.FreeBSD.org</systemitem>.
</para>
<sect2 xml:id="mirror-where-organization">
<title>A few words about the organization</title>
<para>
Mirrors are organized by country. All
official mirrors have a DNS entry of the form
<systemitem class="fqdomainname">ftpN.CC.FreeBSD.org</systemitem>.
<emphasis>CC</emphasis> (i.e. country code) is the
<emphasis>top level domain</emphasis> (TLD)
of the country where this mirror is located.
<emphasis>N</emphasis> is a number,
telling that the host would be the <emphasis>Nth</emphasis>
mirror in that country.
(Same applies to
<systemitem>wwwN.CC.FreeBSD.org</systemitem>, etc.)
There are mirrors with no <emphasis>CC</emphasis> part.
These are the mirror sites that are very well connected and
allow a large number of concurrent users.
<systemitem class="fqdomainname">ftp.FreeBSD.org</systemitem> is actually two machines, one currently
located in Denmark and the other in the United States.
It is <emphasis>NOT</emphasis> a master site and should never be
used to mirror from. Lots of online documentation leads
<quote>interactive</quote>users to
<systemitem class="fqdomainname">ftp.FreeBSD.org</systemitem> so automated mirroring
systems should find a different machine to mirror from.
</para>
<para>
Additionally there exists a hierarchy of mirrors, which
is described in terms of <emphasis>tiers</emphasis>.
The master sites are not referred to but can be
described as <emphasis>Tier-0</emphasis>. Mirrors
that mirror from these sites can be considered
<emphasis>Tier-1</emphasis>, mirrors of <emphasis>Tier-1</emphasis>-mirrors,
are <emphasis>Tier-2</emphasis>, etc.
Official sites are encouraged to be of a low <emphasis>tier</emphasis>,
but the lower the tier the higher the requirements in
terms as described in <xref linkend="mirror-requirements"/>.
Also access to low-tier-mirrors may be restricted, and
access to master sites is definitely restricted.
The <emphasis>tier</emphasis>-hierarchy is not reflected
by DNS and generally not documented anywhere except
for the master sites. However, official mirrors with low numbers
like 1-4, are usually <emphasis>Tier-1</emphasis>
(this is just a rough hint, and there is no rule).
</para>
</sect2>
<sect2 xml:id="mirror-where-where">
<title>Ok, but where should I get the stuff now?</title>
<para>
Under no circumstances should you mirror from <systemitem class="fqdomainname">ftp.FreeBSD.org</systemitem>.
The short answer is: from the
site that is closest to you in Internet terms, or gives you
the fastest access.
</para>
<sect3 xml:id="mirror-where-simple">
<title>I just want to mirror from somewhere!</title>
<para>
If you have no special intentions or
requirements, the statement in <xref linkend="mirror-where-where"/>
applies. This means:
</para>
<procedure>
<step>
<para>
Check for those which provide fastest access
(number of hops, round-trip-times)
and offer the services you intend to
use (like <application>rsync</application>).
</para>
</step>
<step>
<para>
Contact the administrators of your chosen site stating your
request, and asking about their terms and
policies.
</para>
</step>
<step>
<para>
Set up your mirror as described above.
</para>
</step>
</procedure>
</sect3>
<sect3 xml:id="mirror-where-official">
<title>I am an official mirror, what is the right site for me?</title>
<para>
In general the description in <xref linkend="mirror-where-simple"/>
still applies. Of course you may want to put some
weight on the fact that your upstream should be of
a low tier.
There are some other considerations about <emphasis>official</emphasis>
mirrors that are described in <xref linkend="mirror-official"/>.
</para>
</sect3>
<sect3 xml:id="mirror-where-master">
<title>I want to access the master sites!</title>
<para>
If you have good reasons and good prerequisites,
you may want and get access to one of the
master sites. Access to these sites is
generally restricted, and there are special policies
for access. If you are already an <emphasis>official</emphasis>
mirror, this certainly helps you getting access.
In any other case make sure your country really needs another mirror.
If it already has three or more, ask the <quote>zone administrator</quote> (<email>hostmaster@CC.FreeBSD.org</email>) or &a.hubs; first.</para>
<para>
Whoever helped you become, an <emphasis>official</emphasis>
should have helped you gain access to an appropriate upstream
host, either one of the master sites or a suitable Tier-1
site. If not, you can send email to
<email>mirror-admin@FreeBSD.org</email> to request help with
that.
</para>
<para>
There is one master site for the FTP fileset.
</para>
<sect4 xml:id="mirror-where-master-ftp">
<title>ftp-master.FreeBSD.org</title>
<para>
This is the master site for the FTP fileset.
</para>
<para>
<systemitem>ftp-master.FreeBSD.org</systemitem> provides
<application>rsync</application>
access, in addition to FTP.
Refer to <xref linkend="mirror-ftp-rsync"/>.
</para>
<para>
Mirrors are also encouraged to allow <application>rsync</application>
access for the FTP contents, since they are
<emphasis>Tier-1</emphasis>-mirrors.
</para>
</sect4>
</sect3>
</sect2>
</sect1>
<sect1 xml:id="mirror-official">
<title>Official Mirrors</title>
<para>
Official mirrors are mirrors that</para>
<itemizedlist>
<listitem>
<para>
a) have a <systemitem>FreeBSD.org</systemitem> DNS entry
(usually a CNAME).
</para>
</listitem>
<listitem>
<para>
b) are listed as an official mirror in the FreeBSD
documentation (like handbook).
</para>
</listitem>
</itemizedlist>
<para>So far to distinguish official mirrors.
Official mirrors are not necessarily <emphasis>Tier-1</emphasis>-mirrors.
However you probably will not find a <emphasis>Tier-1</emphasis>-mirror,
that is not also official.
</para>
<sect2 xml:id="mirror-official-requirements">
<title>Special Requirements for official (tier-1) mirrors</title>
<para>
It is not so easy to state requirements for all
official mirrors, since the project is sort of
tolerant here. It is more easy to say,
what <emphasis>official tier-1 mirrors</emphasis>
are required to. All other official mirrors
can consider this a big <emphasis>should</emphasis>.</para>
<para>
Tier-1 mirrors are required to:</para>
<itemizedlist>
<listitem><para>carry the complete fileset</para></listitem>
<listitem><para>allow access to other mirror sites</para></listitem>
<listitem><para>provide <application>FTP</application> and
<application>rsync</application> access</para></listitem>
</itemizedlist>
<para>Furthermore, admins should be subscribed to the &a.hubs;.
See <link xlink:href="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/eresources.html#ERESOURCES-MAIL">this link</link> for details, how to subscribe.
</para>
<important>
<para>It is <emphasis>very</emphasis> important for a hub administrator, especially
Tier-1 hub admins, to check the
<link xlink:href="http://www.FreeBSD.org/releng/">release schedule</link>
for the next FreeBSD release. This is important because it will tell you when the
next release is scheduled
to come out, and thus giving you time to prepare for the big spike of traffic which follows it.
</para>
<para>
It is also important that hub administrators try to keep their mirrors as up-to-date as
possible (again, even more crucial for Tier-1 mirrors). If Mirror1 does not update for a
while, lower tier mirrors will begin to mirror old data from Mirror1 and thus begins
a downward spiral... Keep your mirrors up to date!
</para>
</important>
</sect2>
<sect2 xml:id="mirror-official-become">
<title>How to become official then?</title>
<!--
<para>
An interesting question, especially, since the state
of being official comes with some benefits, like a much
higher bill from your ISP as more people will be using
your site. Also it may be a key requirement to get access
to a master site.
</para>
<para>
Before applying, please consider (again) if
another official mirror is really needed for
your region. Check first with your zone administrator (<email>hostmaster@CC.FreeBSD.org</email>) or, if that fails, ask on the &a.hubs;.
</para>
<para>Ok, here is how to do it:</para>
<procedure>
<step>
<para>
Get the mirror running in first place (maybe not
using a master site, yet).
</para>
</step>
<step>
<para>
<ulink url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/eresources.html#ERESOURCES-MAIL">Subscribe</ulink> to the &a.hubs;.
</para>
</step>
<step>
<para>
If everything works so far, contact the DNS administrator responsible
for your region/country, and ask for a DNS entry for your
site. The admin should able to be contacted via
<email>hostmaster@CC.FreeBSD.org</email>, where
<emphasis>CC</emphasis> is your country code/TLD.
Your DNS entry will be as described
in <xref linkend="mirror-where-organization"/>.
</para>
<para>
If there is no subdomain set up for your
country yet, you should contact
<email>mirror-admin@FreeBSD.org</email>,
or you can try the &a.hubs; first.
</para>
</step>
<step>
<para>
Whoever helps you get an official name should send email
to <email>mirror-admin@FreeBSD.org</email> so your site will be
added to the mirror list in the
<ulink url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook">FreeBSD
Handbook</ulink>.
</para>
</step>
</procedure>
<para>That is it.</para>
-->
<para>
We are not accepting any new mirrors at this time.
</para>
</sect2>
</sect1>
<sect1 xml:id="mirror-statpages">
<title>Some statistics from mirror sites</title>
<para>
Here are links to the stat pages of your favorite mirrors
(a.k.a. the only ones who feel like providing stats).
</para>
<sect2 xml:id="mirror-statpagesftp">
<title>FTP site statistics</title>
<itemizedlist>
<listitem>
<para>ftp.is.FreeBSD.org - <email>hostmaster@is.FreeBSD.org</email> -
<link xlink:href="http://www.rhnet.is/status/draupnir/draupnir.html">
(Bandwidth)</link> <link xlink:href="http://www.rhnet.is/status/ftp/ftp-notendur.html">(FTP
processes)</link> <link xlink:href="http://www.rhnet.is/status/ftp/http-notendur.html">(HTTP processes)
</link>
</para>
</listitem>
<listitem>
<para>ftp2.ru.FreeBSD.org - <email>mirror@macomnet.ru</email> -
<link xlink:href="http://mirror.macomnet.net/mrtg/mirror.macomnet.net_195.128.64.25.html">(Bandwidth)</link>
<link xlink:href="http://mirror.macomnet.net/mrtg/mirror.macomnet.net_proc.html">(HTTP and FTP users)</link>
</para>
</listitem>
</itemizedlist>
</sect2>
</sect1>
</article>