View | Details | Raw Unified | Return to bug 157245 | Differences between
and this patch

Collapse All | Expand All

(-)en_US.ISO8859-1/books/handbook/network-servers/chapter.sgml (-2 / +380 lines)
Lines 3872-3877 Link Here
3872
    </sect2>
3872
    </sect2>
3873
3873
3874
    <sect2>
3874
    <sect2>
3875
      <title><acronym role="Doman Name Security Extensions">DNSSEC</acronym></title>
3876
      <indexterm>
3877
        <primary>BIND</primary>
3878
        <secondary>DNS security extensions</secondary>
3879
      </indexterm>
3880
3881
      <para>Domain Name System Security Extensions, or
3882
        <acronym role="Domain Name Security Extensions">DNSSEC</acronym>
3883
	for short, is a suite of specifications to protect
3884
	resolving name servers from forged <acronym>DNS</acronym> data,
3885
	such as spoofed <acronym>DNS</acronym> records.  By using digital
3886
	signatures, a resolver can verify the integrity of the record.  Note 
3887
	that <acronym role="Domain Name Security Extensions">DNSSEC</acronym>
3888
	only provides integrity via digitally signing the Resource Records
3889
	(<acronym role="Resource Record">RR</acronym>s).  It provides neither
3890
	confidentiality nor protection against false end-user assumptions.
3891
	This means that it cannot protect against people going to
3892
	<hostid role="domainname">example.net</hostid> instead of
3893
	<hostid role="domainname">example.com</hostid>.  The only 
3894
	thing <acronym>DNSSEC</acronym> does is authenticate that the data 
3895
	has not been compromised in transit. 
3896
	The security of <acronym>DNS</acronym> is an important step in 
3897
	securing the Internet in general.  For more in-depth details of how 
3898
	<acronym>DNSSEC</acronym> works, the relevant
3899
	<acronym>RFC</acronym>s are a good place to start.  See the list in
3900
	<xref linkend="dns-read">.</para>
3901
3902
      <para>The following sections will demonstrate how to enable
3903
	<acronym>DNSSEC</acronym> for an authoritative <acronym>DNS</acronym>
3904
	server and a recursive (or caching) <acronym>DNS</acronym> server
3905
	running <acronym>BIND</acronym> 9.  While all versions of
3906
	<acronym>BIND</acronym> 9 support <acronym>DNSSEC</acronym>, it is
3907
	necessary to have at least version 9.6.2 in order to be able to use
3908
	the signed root zone when validating <acronym>DNS</acronym> queries.
3909
	This is because earlier versions lack the required algorithms to enable
3910
	validation using the root zone key.  It is strongly recommended to use
3911
	the latest version of <acronym>BIND</acronym> 9.7 or later to take
3912
	advantage of automatic key updating for the root key, as well as other
3913
	features to automatically keep zones signed and signatures up to date.
3914
	Where configurations differ between 9.6.2 and 9.7 and later,
3915
	differences will be pointed out.</para>
3916
3917
      <sect3>
3918
	<title>Recursive <acronym>DNS</acronym> server configuration</title>
3919
3920
	<para>Enabling <acronym>DNSSEC</acronym> validation of queries
3921
	  performed by a recursive <acronym>DNS</acronym> server requires a
3922
	  few changes to <filename>named.conf</filename>.  Before making these
3923
	  changes the root zone key, or trust anchor, must be acquired.
3924
	  Currently the root zone key is not available in a file format
3925
	  <acronym>BIND</acronym> understands, so it has to be manually
3926
	  converted into the proper format.  The key itself can be obtained by
3927
	  querying the root zone for it using <application>dig</application>.
3928
	  By running</para>
3929
3930
	<screen>&prompt.user; <userinput>dig +multi +noall +answer DNSKEY . &gt; root.dnskey</userinput></screen>
3931
3932
	<para>the key will end up in <filename>root.dnskey</filename>. The
3933
	  contents should look something like this:</para>
3934
3935
	<programlisting>. 93910 IN DNSKEY 257 3 8 (
3936
            AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQ
3937
            bSEW0O8gcCjFFVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh
3938
            /RStIoO8g0NfnfL2MTJRkxoXbfDaUeVPQuYEhg37NZWA
3939
            JQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaDX6RS6CXp
3940
            oY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3
3941
            LQpzW5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGO
3942
            Yl7OyQdXfZ57relSQageu+ipAdTTJ25AsRTAoub8ONGc
3943
            LmqrAmRLKBP1dfwhYB4N7knNnulqQxA+Uk1ihz0=
3944
            ) ; key id = 19036
3945
. 93910 IN DNSKEY 256 3 8 (
3946
            AwEAAcaGQEA+OJmOzfzVfoYN249JId7gx+OZMbxy69Hf
3947
            UyuGBbRN0+HuTOpBxxBCkNOL+EJB9qJxt+0FEY6ZUVjE
3948
            g58sRr4ZQ6Iu6b1xTBKgc193zUARk4mmQ/PPGxn7Cn5V
3949
            EGJ/1h6dNaiXuRHwR+7oWh7DnzkIJChcTqlFrXDW3tjt
3950
            ) ; key id = 34525</programlisting>
3951
3952
        <para>Do not be alarmed if the obtained keys differ from this example.
3953
          They might have changed since these instructions were last updated.
3954
          This output actually contains two keys.  The first key in the
3955
          listing, with the value 257 after the DNSKEY record type, is the one
3956
          needed. This value indicates that this is a Secure Entry Point
3957
          (<acronym role="Secure Entry Point">SEP</acronym>),
3958
          commonly known as a Key Signing Key
3959
          (<acronym role="Key Signing Key">KSK</acronym>). The second key,
3960
          with value 256, is a subordinate key, commonly called a Zone Signing
3961
          Key (<acronym role="Zone Signing Key">ZSK</acronym>).  More on the
3962
          different key types later in the <xref linkend="dns-dnssec-auth">.
3963
        </para>
3964
3965
        <para>Now the key must be verified and formatted so that
3966
          <acronym>BIND</acronym> can use it.  To verify the key, generate a
3967
          <acronym role="Delegation Signer">DS</acronym> 
3968
          <acronym role="Resource Record">RR</acronym> set.  Create a file
3969
          containing these <acronym role="Resource Record">RR</acronym>s with
3970
        </para>
3971
3972
        <screen>&prompt.user; <userinput>dnssec-dsfromkey -f root-dnskey . &gt; root.ds</userinput></screen>
3973
3974
        <para>These records use SHA-1 and SHA-256 respectively, and should
3975
          look similar to the following example, where the longer is using
3976
          SHA-256.</para>
3977
3978
        <programlisting>. IN DS 19036 8 1 B256BD09DC8DD59F0E0F0D8541B8328DD986DF6E
3979
. IN DS 19036 8 2 49AAC11D7B6F6446702E54A1607371607A1A41855200FD2CE1CDDE32F24E8FB5</programlisting>
3980
3981
	<para>The SHA-256 <acronym>RR</acronym> can now be compared to the
3982
	  digest in <ulink url="https://data.iana.org/root-anchors/root-anchors.xml">
3983
	  https://data.iana.org/root-anchors/root-anchors.xml</ulink>.  To be
3984
	  absolutely sure that the key has not been tampered with the data in
3985
	  the <acronym>XML</acronym> file can be verified using the
3986
	  <acronym>PGP</acronym> signature in <ulink
3987
	  url="https://data.iana.org/root-anchors/root-anchors.asc">
3988
	  https://data.iana.org/root-anchors/root-anchors.asc</ulink>.</para>
3989
	    
3990
	<para>Next, the key must be formatted properly.  This differs a
3991
	  little between <acronym>BIND</acronym> versions 9.6.2 and 9.7 and
3992
	  later.  In version 9.7 support was added to automatically track
3993
	  changes to the key and update it as necessary.  This is done using
3994
	  <literal>managed-keys</literal> as seen in the example below.
3995
	  When using the older version, the key is added using a
3996
	  <literal>trusted-keys</literal> statement and updates must be done
3997
	  manually.  For <acronym>BIND</acronym> 9.6.2 the format should look
3998
	  like:</para>
3999
4000
	<programlisting>trusted-keys {
4001
	"." 257 3 8
4002
	"AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjF
4003
	FVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO8g0NfnfL2MTJRkxoX
4004
	bfDaUeVPQuYEhg37NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaD
4005
	X6RS6CXpoY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3LQpz
4006
	W5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGOYl7OyQdXfZ57relS
4007
	Qageu+ipAdTTJ25AsRTAoub8ONGcLmqrAmRLKBP1dfwhYB4N7knNnulq
4008
	QxA+Uk1ihz0=";
4009
};</programlisting>
4010
4011
	<para>For 9.7 the format will instead be:</para>
4012
4013
	<programlisting>managed-keys {
4014
        "." initial-key 257 3 8
4015
	"AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjF
4016
	FVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO8g0NfnfL2MTJRkxoX
4017
	bfDaUeVPQuYEhg37NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaD
4018
	X6RS6CXpoY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3LQpz
4019
	W5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGOYl7OyQdXfZ57relS
4020
	Qageu+ipAdTTJ25AsRTAoub8ONGcLmqrAmRLKBP1dfwhYB4N7knNnulq
4021
	QxA+Uk1ihz0=";
4022
};</programlisting>
4023
4024
	<para>The root key can now be added to <filename>named.conf</filename>
4025
	  either directly or by including a file containing the key.  After
4026
	  these steps, configure <acronym>BIND</acronym> to do
4027
	  <acronym>DNSSEC</acronym> validation on queries by editing
4028
	  <filename>named.conf</filename> and adding the following to the
4029
	  <literal>options</literal> directive:</para>
4030
4031
	  <programlisting>dnssec-enable yes;
4032
dnssec-validation yes;</programlisting>
4033
4034
	<para>To verify that it is actually working use
4035
	  <application>dig</application> to make a query for a signed zone
4036
	  using the resolver just configured.  A successful reply will contain
4037
	  the <literal>AD</literal> flag to indicate the data was
4038
	  authenticated.  Running a query such as</para>
4039
4040
	<screen>&prompt.user; <userinput>dig @<replaceable>resolver</replaceable> +dnssec se ds </userinput></screen>
4041
4042
	<para>should return the <acronym>DS</acronym> <acronym>RR</acronym>
4043
	  for the <literal>.se</literal> zone.  In the
4044
	  <literal>flags:</literal> section the <literal>AD</literal> flag
4045
	  should be set, as seen in:</para>
4046
4047
	<programlisting>...
4048
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
4049
...</programlisting>
4050
4051
	<para>The resolver is now capable of authenticating
4052
	  <acronym>DNS</acronym> queries.</para>
4053
      </sect3>
4054
4055
      <sect3 id="dns-dnssec-auth">
4056
        <title>Authoritative <acronym>DNS</acronym> server configuration</title>
4057
4058
	<para>In order to get an authoritative name server to serve a
4059
	  <acronym>DNSSEC</acronym> signed zone a little more work is
4060
	  required.  A zone is signed using cryptographic keys which must be
4061
	  generated.  It is possible to use only one key for this. The 
4062
	  preferred method however is to have a strong well-protected Key Signing Key
4063
	  (<acronym role="Key Signing Key">KSK</acronym>) that is not rotated
4064
	  very often and a Zone Signing Key
4065
	  (<acronym role="Zone Signing Key">ZSK</acronym>) that is rotated more
4066
	  frequently.  Information on recommended operational practices can be
4067
	  found in <ulink url="http://tools.ietf.org/rfc/rfc4641.txt">
4068
	  <acronym>RFC</acronym> 4641: <acronym>DNSSEC</acronym> Operational 
4069
	  Practices</ulink>.  Practices regarding the root zone can be found in
4070
	  <ulink url="http://www.root-dnssec.org/wp-content/uploads/2010/06/icann-dps-00.txt">
4071
	  <acronym>DNSSEC</acronym> Practice Statement for the Root Zone
4072
	  <acronym>KSK</acronym> operator</ulink> and
4073
	  <ulink url="http://www.root-dnssec.org/wp-content/uploads/2010/06/vrsn-dps-00.txt">
4074
	  <acronym>DNSSEC</acronym> Practice Statement for the Root Zone
4075
	  <acronym>ZSK</acronym> operator</ulink>. The
4076
          <acronym role="Key Signing Key">KSK</acronym> is used to build a chain
4077
          of authority to the data in need of validation and as such is also
4078
          called a Secure Entry Point
4079
          (<acronym role="Secure Entry Point">SEP</acronym>) key.  A message
4080
          digest of this key, called a Delegation Signer
4081
          (<acronym role="Delegation Signer">DS</acronym>) record, must be
4082
          published in the parent zone to establish the trust chain.  How
4083
          this is accomplished depends on the parent zone owner.  The
4084
          <acronym role="Zone Signing Key">ZSK</acronym> is used
4085
          to sign the zone, and only needs to be published there.</para>
4086
4087
        <para>To enable <acronym>DNSSEC</acronym> for the <hostid
4088
          role="domainname">example.com</hostid> zone depicted in previous
4089
          examples, the first step is to use
4090
          <application>dnssec-keygen</application> to generate the
4091
          <acronym>KSK</acronym> and <acronym>ZSK</acronym> key pair.  This
4092
          key pair can utilize different cryptographic algorithms.  It is
4093
          recommended to use RSA/SHA256 for the keys and 2048 bits key length
4094
          should be enough. To generate the <acronym>KSK</acronym> for
4095
          <hostid role="domainname">example.com</hostid>, run</para>
4096
4097
        <screen>&prompt.user; <userinput>dnssec-keygen -f KSK -a RSASHA256 -b 2048 -n ZONE example.com</userinput></screen>
4098
4099
        <para>and to generate the <acronym>ZSK</acronym>, run</para>
4100
4101
        <screen>&prompt.user; <userinput>dnssec-keygen -a RSASHA256 -b 2048 -n ZONE example.com</userinput></screen>
4102
4103
        <para><application>dnssec-keygen</application> outputs two files, the
4104
          public and the private keys in files named similar to
4105
          <filename>Kexample.com.+005+nnnnn.key</filename> (public) and
4106
          <filename>Kexample.com.+005+nnnnn.private</filename> (private). The
4107
          <literal>nnnnn</literal> part of the file name is a five digit key ID.
4108
          Keep track of which key ID belongs to which key.  This is especially
4109
          important when having more than one key in a zone.  It is also
4110
          possible to rename the keys.  For each <acronym>KSK</acronym> file
4111
          do:</para>
4112
4113
        <screen>&prompt.user; <userinput>mv Kexample.com+005+nnnnn.key Kexample.com+005+nnnnn.KSK.key</userinput>
4114
          &prompt.user; <userinput>mv Kexample.com+005+nnnnn.private Kexample.com+005+nnnnn.KSK.private</userinput></screen>
4115
4116
        <para>For the <acronym>ZSK</acronym> files, substitute
4117
          <literal>KSK</literal> for <literal>ZSK</literal> as necessary.  The
4118
          files can now be included in the zone file, using the
4119
          <literal>$include</literal> statement. It should look something like
4120
          this:</para>
4121
4122
	<programlisting>$include Kexample.com.+005+nnnnn.KSK.key    ; KSK
4123
$include Kexample.com.+005+nnnnn.ZSK.key    ; ZSK</programlisting>
4124
4125
	<para>Finally, sign the zone and tell <acronym>BIND</acronym> to use
4126
	  the signed zone file.  To sign a zone
4127
	  <application>dnssec-signzone</application> is used.  The command to
4128
	  sign the zone <hostid role="domainname">example.com</hostid>, located in
4129
	  <filename>example.com.db</filename> would look similar to</para>
4130
4131
	<screen>&prompt.user; <userinput>dnssec-signzone -o example.com -k Kexample.com+005+nnnnn.KSK example.com.db Kexample.com+005+nnnnn.ZSK.key</userinput></screen>
4132
4133
	<para>The key supplied to the <option>-k</option> argument is the
4134
	  <acronym>KSK</acronym> and the other key file is the
4135
	  <acronym>ZSK</acronym> that should be used in the signing.  It is
4136
	  possible to supply more than one <acronym>KSK</acronym> and
4137
	  <acronym>ZSK</acronym>, which will result in the zone being signed
4138
	  with all supplied keys.  This can be needed to supply zone data
4139
	  signed using more than one algorithm.  The output of
4140
	  <application>dnssec-signzone</application> is a zone file with all
4141
	  <acronym>RR</acronym>s signed.  This output will end up in a file with
4142
	  the extension <literal>.signed</literal>, such as
4143
	  <filename>example.com.db.signed</filename>.  The
4144
	  <acronym role="Delegation Signer">DS</acronym> records will also be
4145
	  written to a separate file <filename>dsset-example.com</filename>.
4146
	  To use this signed zone just modify the zone directive in
4147
	  <filename>named.conf</filename> to use
4148
	  <filename>example.com.db.signed</filename>.  By default, the
4149
	  signatures are only valid 30 days, meaning that the zone needs to
4150
	  be resigned in about 15 days to be sure that resolvers are not
4151
	  caching records with stale signatures.  It is possible to make a
4152
	  script and a cron job to do this.  See relevant manuals for details.
4153
	</para>
4154
4155
	<para>Be sure to keep private keys confidential, as with all
4156
	  cryptographic keys.  When changing a key it is best to include the
4157
	  new key into the zone, while still signing with
4158
	  the old one, and then move over to using the new key to sign.  After
4159
	  these steps are done the old key can be removed from the zone.
4160
	  Failure to do this might render the <acronym>DNS</acronym> data
4161
	  unavailable for a time, until the new key has propagated through the
4162
	  <acronym>DNS</acronym> hierarchy.  For more information on key
4163
	  rollovers and other <acronym>DNSSEC</acronym> operational issues, see
4164
	  <ulink url="http://www.ietf.org/rfc/rfc4641.txt">
4165
	  <acronym>RFC</acronym> 4641: <acronym>DNSSEC</acronym> Operational
4166
	  practices</ulink>.</para>
4167
      </sect3>
4168
4169
      <sect3>
4170
        <title>Automation using <acronym>BIND</acronym> 9.7 or later</title>
4171
        <para>Beginning with <acronym>BIND</acronym> version 9.7 a new feature
4172
          called <emphasis>Smart Signing</emphasis> was introduced.  This
4173
          feature aims to make the key management and signing process simpler by
4174
          automating parts of the task.  By putting the keys into a directory
4175
          called a <emphasis>key repository</emphasis>, and using the new option
4176
          <literal>auto-dnssec</literal>, it is possible to create a dynamic zone
4177
          which will be resigned as needed.  To update this zone use
4178
          <application>nsupdate</application> with the new option
4179
          <option>-l</option>. <application>rndc</application> has
4180
          also grown the ability to sign zones with keys in the key repository,
4181
          using the option <option>sign</option>.  To tell
4182
          <acronym>BIND</acronym> to use this automatic signing and zone
4183
          updating for <hostid role="domainname">example.com</hostid>, add the
4184
          following to <filename>named.conf</filename>:</para>
4185
4186
	<programlisting>zone example.com {
4187
	type master;
4188
	key-directory "/etc/named/keys";
4189
	update-policy local;
4190
	auto-dnssec maintain;
4191
	file "/etc/named/dynamic/example.com.zone";
4192
};</programlisting> 
4193
4194
	<para>After making these changes, generate keys for the zone as
4195
	  explained in <xref linkend="dns-dnssec-auth">, put those keys
4196
	  in the key repository given as the argument to the
4197
	  <literal>key-directory</literal> in the zone configuration and the
4198
	  zone will be signed automatically.  Updates to a zone configured
4199
	  this way must be done using
4200
	  <application>nsupdate</application>, which will take care of
4201
	  re-signing the zone with the new data added.  For further details,
4202
	  see <xref linkend="dns-read"> and the <acronym>BIND</acronym>
4203
	  documentation.</para>
4204
	</sect3>
4205
4206
    </sect2>
4207
4208
    <sect2>
3875
      <title>Security</title>
4209
      <title>Security</title>
3876
4210
3877
      <para>Although BIND is the most common implementation of DNS,
4211
      <para>Although BIND is the most common implementation of DNS,
Lines 3897-3907 Link Here
3897
      </tip>
4231
      </tip>
3898
    </sect2>
4232
    </sect2>
3899
4233
3900
    <sect2>
4234
    <sect2 id="dns-read">
3901
      <title>Further Reading</title>
4235
      <title>Further Reading</title>
3902
4236
3903
      <para>BIND/<application>named</application> manual pages:
4237
      <para>BIND/<application>named</application> manual pages:
3904
      &man.rndc.8; &man.named.8; &man.named.conf.5;</para>
4238
        &man.rndc.8; &man.named.8; &man.named.conf.5; &man.nsupdate.8;
4239
        &man.dnssec-signzone.8; &man.dnssec-keygen.8;</para>
3905
4240
3906
      <itemizedlist>
4241
      <itemizedlist>
3907
	<listitem>
4242
	<listitem>
Lines 3922-3927 Link Here
3922
	</listitem>
4257
	</listitem>
3923
4258
3924
	<listitem>
4259
	<listitem>
4260
	  <para><ulink url="http://www.root-dnssec.org/documentation/"> Root
4261
	      <acronym>DNSSEC</acronym></ulink></para>
4262
	</listitem>
4263
4264
	<listitem>
4265
	  <para><ulink url="http://data.iana.org/root-anchors/draft-icann-dnssec-trust-anchor.html">
4266
	      <acronym>DNSSEC</acronym> Trust Anchor Publication for the Root
4267
	      Zone</ulink></para>
4268
	</listitem>
4269
4270
	<listitem>
3925
	  <para><ulink
4271
	  <para><ulink
3926
	      url="http://tools.ietf.org/html/rfc1034">RFC1034
4272
	      url="http://tools.ietf.org/html/rfc1034">RFC1034
3927
	      - Domain Names - Concepts and Facilities</ulink></para>
4273
	      - Domain Names - Concepts and Facilities</ulink></para>
Lines 3932-3937 Link Here
3932
	      url="http://tools.ietf.org/html/rfc1035">RFC1035
4278
	      url="http://tools.ietf.org/html/rfc1035">RFC1035
3933
	      - Domain Names - Implementation and Specification</ulink></para>
4279
	      - Domain Names - Implementation and Specification</ulink></para>
3934
	</listitem>
4280
	</listitem>
4281
4282
	<listitem>
4283
	  <para><ulink
4284
	      url="http://tools.ietf.org/html/rfc4033">RFC4033
4285
	      - DNS Security Introduction and Requirements</ulink></para>
4286
	</listitem>
4287
4288
	<listitem>
4289
	  <para><ulink
4290
	      url="http://tools.ietf.org/html/rfc4034">RFC4034
4291
	      - Resource Records for the DNS Security Extensions</ulink></para>
4292
	</listitem>
4293
4294
	<listitem>
4295
	  <para><ulink
4296
	      url="http://tools.ietf.org/html/rfc4035">RFC4035
4297
	      - Protocol Modifications for the DNS Security Extensions</ulink></para>
4298
	</listitem>
4299
4300
	<listitem>
4301
	  <para><ulink
4302
	      url="http://tools.ietf.org/html/rfc4641">RFC4641
4303
	      - DNSSEC Operational Practices</ulink></para>
4304
	</listitem>
4305
4306
	<listitem>
4307
	  <para><ulink
4308
	      url="http://tools.ietf.org/html/rfc5011">RFC 5011
4309
	      - Automated Updates of DNS Security (<acronym>DNSSEC</acronym>
4310
	      Trust Anchors</ulink></para>
4311
	</listitem>
4312
3935
      </itemizedlist>
4313
      </itemizedlist>
3936
    </sect2>
4314
    </sect2>
3937
  </sect1>
4315
  </sect1>
(-)share/sgml/man-refs.ent (+2 lines)
Lines 4257-4262 Link Here
4257
<!ENTITY man.diskpart.8 "<citerefentry/<refentrytitle/diskpart/<manvolnum/8//">
4257
<!ENTITY man.diskpart.8 "<citerefentry/<refentrytitle/diskpart/<manvolnum/8//">
4258
<!ENTITY man.dm.8 "<citerefentry/<refentrytitle/dm/<manvolnum/8//">
4258
<!ENTITY man.dm.8 "<citerefentry/<refentrytitle/dm/<manvolnum/8//">
4259
<!ENTITY man.dmesg.8 "<citerefentry/<refentrytitle/dmesg/<manvolnum/8//">
4259
<!ENTITY man.dmesg.8 "<citerefentry/<refentrytitle/dmesg/<manvolnum/8//">
4260
<!ENTITY man.dnssec-keygen.8 "<citerefentry/<refentrytitle/dnssec-keygen<manvolnum/8//">
4261
<!ENTITY man.dnssec-signzone.8 "<citerefentry/<refentrytitle/dnssec-signzone<manvolnum/8//">
4260
<!ENTITY man.dump.8 "<citerefentry/<refentrytitle/dump/<manvolnum/8//">
4262
<!ENTITY man.dump.8 "<citerefentry/<refentrytitle/dump/<manvolnum/8//">
4261
<!ENTITY man.dumpfs.8 "<citerefentry/<refentrytitle/dumpfs/<manvolnum/8//">
4263
<!ENTITY man.dumpfs.8 "<citerefentry/<refentrytitle/dumpfs/<manvolnum/8//">
4262
<!ENTITY man.dumpon.8 "<citerefentry/<refentrytitle/dumpon/<manvolnum/8//">
4264
<!ENTITY man.dumpon.8 "<citerefentry/<refentrytitle/dumpon/<manvolnum/8//">

Return to bug 157245