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