source: server/major/bind.xml@ 9f12e36

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 6.2 6.2.0 6.2.0-rc1 6.2.0-rc2 6.3 6.3-rc1 6.3-rc2 6.3-rc3 7.10 7.4 7.5 7.6 7.6-blfs 7.6-systemd 7.7 7.8 7.9 8.0 8.1 8.2 8.3 8.4 9.0 9.1 basic bdubbs/svn elogind gnome kde5-13430 kde5-14269 kde5-14686 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts krejzi/svn lazarus lxqt nosym perl-modules plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition systemd-11177 systemd-13485 trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since 9f12e36 was 9f12e36, checked in by Randy McMurchy <randy@…>, 18 years ago

Removed 'keywordset' blocks and extra spaces from the XML files (note this was by accident as I meant to do just in the gnome directory but I was in the root of BOOK when I ran the script, but this was going to happen anyway so I don't think it is a big deal)

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@6192 af4574ff-66df-0310-9fd7-8a98e5e911e0

  • Property mode set to 100644
File size: 21.7 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
3 "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!-- Inserted as a reminder to do this. The mention of a test suite
8 is usually right before the root user installation commands. Please
9 delete these 12 (including one blank) lines after you are done.-->
10
11 <!-- Use one of the two mentions below about a test suite,
12 delete the line that is not applicable. Of course, if the
13 test suite uses syntax other than "make check", revise the
14 line to reflect the actual syntax to run the test suite -->
15
16 <!-- <para>This package does not come with a test suite.</para> -->
17 <!-- <para>To test the results, issue: <command>make check</command>.</para> -->
18
19 <!ENTITY bind-download-http "http://gd.tuwien.ac.at/infosys/servers/isc/bind9/&bind-version;/bind-&bind-version;.tar.gz">
20 <!ENTITY bind-download-ftp "ftp://ftp.isc.org/isc/bind9/&bind-version;/bind-&bind-version;.tar.gz">
21 <!ENTITY bind-md5sum "55e709501a7780233c36e25ccd15ece2">
22 <!ENTITY bind-size "5.1 MB">
23 <!ENTITY bind-buildsize "76.2 MB">
24 <!ENTITY bind-time "1.7 SBU (additional 11 minutes, processor independent, to run the complete test suite)">
25]>
26
27<sect1 id="bind" xreflabel="BIND-&bind-version;">
28 <?dbhtml filename="bind.html"?>
29
30 <sect1info>
31 <othername>$LastChangedBy$</othername>
32 <date>$Date$</date>
33 </sect1info>
34
35 <title>BIND-&bind-version;</title>
36
37 <indexterm zone="bind">
38 <primary sortas="a-BIND">BIND</primary>
39 </indexterm>
40
41 <sect2 role="package">
42 <title>Introduction to BIND</title>
43
44 <para>The <application>BIND</application> package provides a DNS server
45 and client utilities. If you are only interested in the utilities, refer
46 to the <xref linkend="bind-utils"/>.</para>
47
48 <bridgehead renderas="sect3">Package Information</bridgehead>
49 <itemizedlist spacing="compact">
50 <listitem>
51 <para>Download (HTTP): <ulink url="&bind-download-http;"/></para>
52 </listitem>
53 <listitem>
54 <para>Download (FTP): <ulink url="&bind-download-ftp;"/></para>
55 </listitem>
56 <listitem>
57 <para>Download MD5 sum: &bind-md5sum;</para>
58 </listitem>
59 <listitem>
60 <para>Download size: &bind-size;</para>
61 </listitem>
62 <listitem>
63 <para>Estimated disk space required: &bind-buildsize;</para>
64 </listitem>
65 <listitem>
66 <para>Estimated build time: &bind-time;</para>
67 </listitem>
68 </itemizedlist>
69
70 <bridgehead renderas="sect3">BIND Dependencies</bridgehead>
71
72 <bridgehead renderas="sect4">Optional</bridgehead>
73 <para role="optional"><xref linkend="openssl"/></para>
74
75 <bridgehead renderas="sect4">Optional (to Run the Test Suite)</bridgehead>
76 <para role="optional"><xref linkend="net-tools"/> (for <command>ifconfig</command>)
77 and <xref linkend="perl-net-dns"/></para>
78
79 <bridgehead renderas="sect4">Optional (to [Re]Build
80 Documentation)</bridgehead>
81 <para role="optional">
82 <xref linkend="tetex"/> and
83 <xref linkend="libxslt"/></para>
84
85 <para condition="html" role="usernotes">User Notes:
86 <ulink url="&blfs-wiki;/bind"/></para>
87
88 </sect2>
89
90 <sect2 role="installation">
91 <title>Installation of BIND</title>
92
93 <para>Install <application>BIND</application> by running the
94 following commands:</para>
95
96<screen><userinput>sed -i -e '247a #undef SO_BSDCOMPAT\n' lib/isc/unix/socket.c &amp;&amp;
97./configure --prefix=/usr --sysconfdir=/etc \
98 --enable-threads --with-libtool &amp;&amp;
99make</userinput></screen>
100
101 <para>Issue the following commands to run the complete suite of tests.
102 First, as <systemitem class="username">root</systemitem>, set up some test
103 interfaces:</para>
104
105<screen role="root"><userinput>bin/tests/system/ifconfig.sh up</userinput></screen>
106
107 <para>Now run the test suite as an unprivileged user:</para>
108
109<screen><userinput>make check 2&gt;&amp;1 | tee check.log</userinput></screen>
110
111 <para>Again as <systemitem class="username">root</systemitem>, clean up the
112 test interfaces:</para>
113
114<screen role="root"><userinput>bin/tests/system/ifconfig.sh down</userinput></screen>
115
116 <para>Issue the following command to check that all 144 tests
117 ran successfully:</para>
118
119<screen><userinput>grep "R:PASS" check.log | wc -l</userinput></screen>
120
121 <para>Finally, install the package as the <systemitem
122 class="username">root</systemitem> user:</para>
123
124<screen role="root"><userinput>make install &amp;&amp;
125chmod 755 /usr/lib/{lib{bind9,isc{,cc,cfg},lwres,dns}.so.*.?.?} &amp;&amp;
126cd doc &amp;&amp;
127install -v -d -m755 /usr/share/doc/bind-&bind-version;/{arm,draft,misc,rfc} &amp;&amp;
128install -v -m644 arm/*.html \
129 /usr/share/doc/bind-&bind-version;/arm &amp;&amp;
130install -v -m644 draft/*.txt \
131 /usr/share/doc/bind-&bind-version;/draft &amp;&amp;
132install -v -m644 rfc/* \
133 /usr/share/doc/bind-&bind-version;/rfc &amp;&amp;
134install -v -m644 \
135 misc/{dnssec,ipv6,migrat*,options,rfc-compliance,roadmap,sdb} \
136 /usr/share/doc/bind-&bind-version;/misc</userinput></screen>
137
138 </sect2>
139
140 <sect2 role="commands">
141 <title>Command Explanations</title>
142
143 <para><command>sed -i -e '247a #undef SO_BSDCOMPAT\n'
144 lib/isc/unix/socket.c</command>: This command removes an obsolete reference
145 so that the <application>bind</application> daemon does not generate
146 messages about it in the log.</para>
147
148 <para><parameter>--sysconfdir=/etc</parameter>: This parameter forces
149 <application>BIND</application> to look for configuration
150 files in <filename class='directory'>/etc</filename> instead of
151 <filename class='directory'>/usr/etc</filename>.</para>
152
153 <para><parameter>--enable-threads</parameter>: This parameter enables
154 multi-threading capability.</para>
155
156 <para><parameter>--with-libtool</parameter>: This parameter forces the
157 building of dynamic libraries and links the installed binaries to these
158 libraries.</para>
159
160 <para><command>chmod 755
161 /usr/lib/{lib{bind9,isc{,cc,cfg},lwres,dns}.so.*.?.?}</command>:
162 Enable the execute bit to prevent a warning when using
163 <command>ldd</command> to check library dependencies.</para>
164
165 <para><command>cd doc; install ...</command>: These commands install the
166 additional package documentation. Optionally, omit any or all of these
167 commands.</para>
168
169 </sect2>
170
171 <sect2 role="configuration">
172 <title>Configuring BIND</title>
173
174 <sect3 id="bind-config">
175 <title>Config files</title>
176
177 <para><filename>named.conf</filename>,
178 <filename>root.hints</filename>,
179 <filename>127.0.0</filename>,
180 <filename>rndc.conf</filename> and
181 <filename>resolv.conf</filename></para>
182
183 <indexterm zone="bind bind-config">
184 <primary sortas="e-etc-named.conf">/etc/named.conf</primary>
185 </indexterm>
186
187 <indexterm zone="bind bind-config">
188 <primary sortas="e-etc-rndc.conf">/etc/rndc.conf</primary>
189 </indexterm>
190
191 <indexterm zone="bind bind-config">
192 <primary sortas="e-etc-resolv.conf">/etc/resolv.conf</primary>
193 </indexterm>
194
195 <indexterm zone="bind bind-config">
196 <primary sortas="e-etc-namedb-root.hints">/etc/namedb/root.hints</primary>
197 </indexterm>
198
199 <indexterm zone="bind bind-config">
200 <primary sortas="e-etc-namedb-pz-127.0.0.0">/etc/namedb/pz/127.0.0.0</primary>
201 </indexterm>
202
203 </sect3>
204
205 <sect3>
206 <title>Configuration Information</title>
207
208 <para><application>BIND</application> will be configured to run in a
209 <command>chroot</command> jail as an unprivileged user (<systemitem
210 class="username">named</systemitem>). This configuration is more secure
211 in that a DNS compromise can only affect a few files in the <systemitem
212 class="username">named</systemitem> user's <envar>HOME</envar>
213 directory.</para>
214
215 <para>Create the unprivileged user and group <systemitem
216 class="username">named</systemitem>:</para>
217
218<screen role="root"><userinput>groupadd -g 20 named &amp;&amp;
219useradd -c "BIND Owner" -g named -s /bin/false -u 20 named
220install -d -m770 -o named -g named /srv/named</userinput></screen>
221
222 <para>Set up some files, directories and devices needed by
223 <application>BIND</application>:</para>
224
225<screen role="root"><userinput>cd /srv/named &amp;&amp;
226mkdir -p dev etc/namedb/slave var/run &amp;&amp;
227mknod /srv/named/dev/null c 1 3 &amp;&amp;
228mknod /srv/named/dev/random c 1 8 &amp;&amp;
229chmod 666 /srv/named/dev/{null,random} &amp;&amp;
230mkdir /srv/named/etc/namedb/pz &amp;&amp;
231cp /etc/localtime /srv/named/etc</userinput></screen>
232
233 <para>Then, generate a key for use in the <filename>named.conf</filename>
234 and <filename>rdnc.conf</filename> files using the
235 <command>rndc-confgen</command> command:</para>
236
237<screen role="root"><userinput>rndc-confgen -b 512 | grep -m 1 "secret" | cut -d '"' -f 2</userinput></screen>
238
239 <para>Create the <filename>named.conf</filename> file from which
240 <command>named</command> will read the location of zone files, root
241 name servers and secure DNS keys:</para>
242
243<screen role="root"><userinput>cat &gt; /srv/named/etc/named.conf &lt;&lt; "EOF"
244<literal> options {
245 directory "/etc/namedb";
246 pid-file "/var/run/named.pid";
247 statistics-file "/var/run/named.stats";
248
249 };
250 controls {
251 inet 127.0.0.1 allow { localhost; } keys { rndc_key; };
252 };
253 key "rndc_key" {
254 algorithm hmac-md5;
255 secret "<replaceable>&lt;Insert secret from rndc-confgen's output here&gt;</replaceable>";
256 };
257 zone "." {
258 type hint;
259 file "root.hints";
260 };
261 zone "0.0.127.in-addr.arpa" {
262 type master;
263 file "pz/127.0.0";
264 };
265
266// Bind 9 now logs by default through syslog (except debug).
267// These are the default logging rules.
268
269logging {
270 category default { default_syslog; default_debug; };
271 category unmatched { null; };
272
273 channel default_syslog {
274 syslog daemon; // send to syslog's daemon
275 // facility
276 severity info; // only send priority info
277 // and higher
278 };
279
280 channel default_debug {
281 file "named.run"; // write to named.run in
282 // the working directory
283 // Note: stderr is used instead
284 // of "named.run"
285 // if the server is started
286 // with the '-f' option.
287 severity dynamic; // log at the server's
288 // current debug level
289 };
290
291 channel default_stderr {
292 stderr; // writes to stderr
293 severity info; // only send priority info
294 // and higher
295 };
296
297 channel null {
298 null; // toss anything sent to
299 // this channel
300 };
301};</literal>
302
303EOF</userinput></screen>
304
305 <para>Create the <filename>rndc.conf</filename> file with the following
306 commands:</para>
307
308<screen role="root"><userinput>cat &gt; /etc/rndc.conf &lt;&lt; "EOF"
309<literal>key rndc_key {
310algorithm "hmac-md5";
311 secret
312 "<replaceable>&lt;Insert secret from rndc-confgen's output here&gt;</replaceable>";
313 };
314options {
315 default-server localhost;
316 default-key rndc_key;
317};</literal>
318EOF</userinput></screen>
319
320 <para>The <filename>rndc.conf</filename> file contains information for
321 controlling <command>named</command> operations with the
322 <command>rndc</command> utility.</para>
323
324 <para>Create a zone file with the following contents:</para>
325
326<screen role="root"><userinput>cat &gt; /srv/named/etc/namedb/pz/127.0.0 &lt;&lt; "EOF"
327<literal>$TTL 3D
328@ IN SOA ns.local.domain. hostmaster.local.domain. (
329 1 ; Serial
330 8H ; Refresh
331 2H ; Retry
332 4W ; Expire
333 1D) ; Minimum TTL
334 NS ns.local.domain.
3351 PTR localhost.</literal>
336EOF</userinput></screen>
337
338 <para>Create the <filename>root.hints</filename> file with the following
339 commands:</para>
340
341 <note>
342 <para>Caution must be used to ensure there are no leading spaces in
343 this file.</para>
344 </note>
345
346<screen role="root"><userinput>cat &gt; /srv/named/etc/namedb/root.hints &lt;&lt; "EOF"
347<literal>. 6D IN NS A.ROOT-SERVERS.NET.
348. 6D IN NS B.ROOT-SERVERS.NET.
349. 6D IN NS C.ROOT-SERVERS.NET.
350. 6D IN NS D.ROOT-SERVERS.NET.
351. 6D IN NS E.ROOT-SERVERS.NET.
352. 6D IN NS F.ROOT-SERVERS.NET.
353. 6D IN NS G.ROOT-SERVERS.NET.
354. 6D IN NS H.ROOT-SERVERS.NET.
355. 6D IN NS I.ROOT-SERVERS.NET.
356. 6D IN NS J.ROOT-SERVERS.NET.
357. 6D IN NS K.ROOT-SERVERS.NET.
358. 6D IN NS L.ROOT-SERVERS.NET.
359. 6D IN NS M.ROOT-SERVERS.NET.
360A.ROOT-SERVERS.NET. 6D IN A 198.41.0.4
361B.ROOT-SERVERS.NET. 6D IN A 192.228.79.201
362C.ROOT-SERVERS.NET. 6D IN A 192.33.4.12
363D.ROOT-SERVERS.NET. 6D IN A 128.8.10.90
364E.ROOT-SERVERS.NET. 6D IN A 192.203.230.10
365F.ROOT-SERVERS.NET. 6D IN A 192.5.5.241
366G.ROOT-SERVERS.NET. 6D IN A 192.112.36.4
367H.ROOT-SERVERS.NET. 6D IN A 128.63.2.53
368I.ROOT-SERVERS.NET. 6D IN A 192.36.148.17
369J.ROOT-SERVERS.NET. 6D IN A 192.58.128.30
370K.ROOT-SERVERS.NET. 6D IN A 193.0.14.129
371L.ROOT-SERVERS.NET. 6D IN A 198.32.64.12
372M.ROOT-SERVERS.NET. 6D IN A 202.12.27.33</literal>
373EOF</userinput></screen>
374
375 <para>The <filename>root.hints</filename> file is a list of root
376 name servers. This file must be updated periodically with the
377 <command>dig</command> utility. A current copy of root.hints can be
378 obtained from <ulink url="ftp://rs.internic.net/domain/named.root" />.
379 Consult the <ulink url="http://www.bind9.net/Bv9ARM.html">BIND 9
380 Administrator Reference Manual</ulink> for details.</para>
381
382 <para>Create or modify <filename>resolv.conf</filename> to use the new
383 name server with the following commands:</para>
384
385 <note>
386 <para>Replace <replaceable>&lt;yourdomain.com&gt;</replaceable> with
387 your own valid domain name.</para>
388 </note>
389
390<screen role="root"><userinput>cp /etc/resolv.conf /etc/resolv.conf.bak &amp;&amp;
391cat &gt; /etc/resolv.conf &lt;&lt; "EOF"
392<literal>search <replaceable>&lt;yourdomain.com&gt;</replaceable>
393nameserver 127.0.0.1</literal>
394EOF</userinput></screen>
395
396 <para>Set permissions on the <command>chroot</command> jail with the
397 following command:</para>
398
399<screen role="root"><userinput>chown -R named.named /srv/named</userinput></screen>
400
401 </sect3>
402
403 <sect3 id="bind-init">
404 <title>Boot Script</title>
405
406 <para>To start the DNS server at boot, install the
407 <filename>/etc/rc.d/init.d/bind</filename> init script included
408 in the <xref linkend="bootscripts"/> package.</para>
409
410 <indexterm zone="bind bind-init">
411 <primary sortas="f-bind">bind</primary>
412 </indexterm>
413
414<screen role="root"><userinput>make install-bind</userinput></screen>
415
416 <para>Now start <application>BIND</application> with
417 the new boot script:</para>
418
419<screen role="root"><userinput>/etc/rc.d/init.d/bind start</userinput></screen>
420
421 </sect3>
422
423 <sect3>
424 <title>Testing BIND</title>
425
426 <para>Test out the new <application>BIND</application> 9 installation.
427 First query the local host address with <command>dig</command>:</para>
428
429<screen><userinput>dig -x 127.0.0.1</userinput></screen>
430
431 <para>Now try an external name lookup, taking note of the speed
432 difference in repeated lookups due to the caching. Run the
433 <command>dig</command> command twice on the same address:</para>
434
435<screen><userinput>dig www.linuxfromscratch.org &amp;&amp;
436dig www.linuxfromscratch.org</userinput></screen>
437
438 <para>You can see almost instantaneous results with the named caching
439 lookups. Consult the <application>BIND</application> Administrator
440 Reference Manual located at <filename>doc/arm/Bv9ARM.html</filename>
441 in the package source tree, for further configuration options.</para>
442
443 </sect3>
444
445 </sect2>
446
447 <sect2 role="content">
448 <title>Contents</title>
449
450 <segmentedlist>
451 <segtitle>Installed Programs</segtitle>
452 <segtitle>Installed Libraries</segtitle>
453 <segtitle>Installed Directories</segtitle>
454
455 <seglistitem>
456 <seg>dig, dnssec-keygen, dnssec-signzone, host, isc-config.sh, lwresd,
457 named, named-checkconf, named-checkzone, nslookup, nsupdate, rndc, and
458 rndc-confgen</seg>
459 <seg>libbind9.{so,a}, libdns.{so,a}, libisc.{so,a}, libisccc.{so,a},
460 libisccfg.{so,a}, and liblwres.{so,a}</seg>
461 <seg>/srv/named, /usr/include/bind9, /usr/include/dns, /usr/include/dst,
462 /usr/include/isc, /usr/include/isccc, /usr/include/isccfg,
463 /usr/include/lwres, and /usr/share/doc/bind-&bind-version;</seg>
464 </seglistitem>
465 </segmentedlist>
466
467 <variablelist>
468 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
469 <?dbfo list-presentation="list"?>
470 <?dbhtml list-presentation="table"?>
471
472 <varlistentry id="dig">
473 <term><command>dig</command></term>
474 <listitem>
475 <para>interrogates DNS servers.</para>
476 <indexterm zone="bind dig">
477 <primary sortas="b-dig">dig</primary>
478 </indexterm>
479 </listitem>
480 </varlistentry>
481
482 <varlistentry id="dnssec-keygen">
483 <term><command>dnssec-keygen</command></term>
484 <listitem>
485 <para>is a key generator for secure DNS.</para>
486 <indexterm zone="bind dnssec-keygen">
487 <primary sortas="b-dnssec-keygen">dnssec-keygen</primary>
488 </indexterm>
489 </listitem>
490 </varlistentry>
491
492 <varlistentry id="dnssec-signzone">
493 <term><command>dnssec-signzone</command></term>
494 <listitem>
495 <para>generates signed versions of zone files.</para>
496 <indexterm zone="bind dnssec-signzone">
497 <primary sortas="b-dnssec-signzone">dnssec-signzone</primary>
498 </indexterm>
499 </listitem>
500 </varlistentry>
501
502 <varlistentry id="host">
503 <term><command>host</command></term>
504 <listitem>
505 <para>is a utility for DNS lookups.</para>
506 <indexterm zone="bind host">
507 <primary sortas="b-host">host</primary>
508 </indexterm>
509 </listitem>
510 </varlistentry>
511
512 <varlistentry id="lwresd">
513 <term><command>lwresd</command></term>
514 <listitem>
515 <para>is a caching-only name server for local process use.</para>
516 <indexterm zone="bind lwresd">
517 <primary sortas="b-lwresd">lwresd</primary>
518 </indexterm>
519 </listitem>
520 </varlistentry>
521
522 <varlistentry id="named">
523 <term><command>named</command></term>
524 <listitem>
525 <para>is the name server daemon.</para>
526 <indexterm zone="bind named">
527 <primary sortas="b-named">named</primary>
528 </indexterm>
529 </listitem>
530 </varlistentry>
531
532 <varlistentry id="named-checkconf">
533 <term><command>named-checkconf</command></term>
534 <listitem>
535 <para>checks the syntax of <filename>named.conf</filename>
536 files.</para>
537 <indexterm zone="bind named-checkconf">
538 <primary sortas="b-named-checkconf">named-checkconf</primary>
539 </indexterm>
540 </listitem>
541 </varlistentry>
542
543 <varlistentry id="named-checkzone">
544 <term><command>named-checkzone</command></term>
545 <listitem>
546 <para>checks zone file validity.</para>
547 <indexterm zone="bind named-checkzone">
548 <primary sortas="b-named-checkzone">named-checkzone</primary>
549 </indexterm>
550 </listitem>
551 </varlistentry>
552
553 <varlistentry id="nslookup">
554 <term><command>nslookup</command></term>
555 <listitem>
556 <para>is a program used to query Internet domain nameservers.</para>
557 <indexterm zone="bind nslookup">
558 <primary sortas="b-nslookup">nslookup</primary>
559 </indexterm>
560 </listitem>
561 </varlistentry>
562
563 <varlistentry id="nsupdate">
564 <term><command>nsupdate</command></term>
565 <listitem>
566 <para>is used to submit DNS update requests.</para>
567 <indexterm zone="bind nsupdate">
568 <primary sortas="b-nsupdate">nsupdate</primary>
569 </indexterm>
570 </listitem>
571 </varlistentry>
572
573 <varlistentry id="rndc">
574 <term><command>rndc</command></term>
575 <listitem>
576 <para>controls the operation of <application>BIND</application>.</para>
577 <indexterm zone="bind rndc">
578 <primary sortas="b-rndc">rndc</primary>
579 </indexterm>
580 </listitem>
581 </varlistentry>
582
583 <varlistentry id="rndc-confgen">
584 <term><command>rndc-confgen</command></term>
585 <listitem>
586 <para>generates <filename>rndc.conf</filename> files.</para>
587 <indexterm zone="bind rndc-confgen">
588 <primary sortas="b-rndc-confgen">rndc-confgen</primary>
589 </indexterm>
590 </listitem>
591 </varlistentry>
592
593 </variablelist>
594
595 </sect2>
596
597</sect1>
Note: See TracBrowser for help on using the repository browser.