<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
     "dtd/xml/4.1.2/docbookx.dtd"[
<!ENTITY % afnic_custom SYSTEM "../../lib/afnic-docbook.inc">
%afnic_custom;
]>
<!-- $Id: change-address.db,v 1.1 2005-03-08 09:45:25 bortzmeyer Exp $ -->
<article lang="en">
  <articleinfo>
    <title>Changing the IP address of the TLD name server</title>
    <author>
      <surname>Bortzmeyer</surname>
      <firstname>Stéphane</firstname>
      <affiliation>
	<address><email>bortzmeyer@nic.fr</email></address>
      </affiliation>
    </author>
    <pubdate>$Date: 2005-03-08 09:45:25 $</pubdate>
  </articleinfo>
<section><title>Introduction</title>
<para>So, you want or need to change the IP address of a name server?
And the name server is authoritative for a TLD? This requires careful
planning. Here is a check-list.</para>
<para>First, an advice. It is not a DNS-specific thing. General engineering
practices apply: plan, write down, backup and test. I mention a few
DNS-specific tricks but <emphasis>all</emphasis> the failures I've seen in changing DNS
information came, not from ignorance of the DNS, but from ignorance of
general engineering practices (planning, mostly, and lack of <emphasis>written</emphasis>
plannings).
</para>
  </section>
<section><title>Changing the server's address</title>
<section><title>For a generic server (not a DNS one)</title>
<procedure>
<step><para>Decrease the TTL before (the typical TTL of an A record is
one day, so you must decrease it at least one day before the
change, you can use <command>dig A
<replaceable>domain</replaceable></command> to see the current TTL in seconds).</para>
	</step>
<step><para>Perform the change (on an Unix machine, <command>grep
<replaceable>ip.address</replaceable> /etc/**/*</command> - the double star requires a modern
shell like zsh - is always useful in order not to forget anything).</para>
	</step>
<step><para>Test in depth.</para>
	</step>
<step><para>Increase the TTL back to its former value.</para>
	</step>
      </procedure>
    </section>
<section><title>For a DNS server of an ordinary domain (not a TLD)</title>
	<itemizedlist>
	  <listitem><para>It is better when you can keep both IP addresses for the duration of
the change. If it is not possible, it will work but it will be more
complicated.</para>
	  </listitem>
	  <listitem><para>Send your written down plan (see first advice) to your secondaries
and to the upper domain.</para>
	  </listitem>
	</itemizedlist>
      </section>
<section><title>For a TLD</title>
<para>For a DNS server of a TLD, same thing but replace "upper domain" by "root" (ICANN).</para>

<para>Of course, the written plan include dates, something like:
<orderedlist>
<listitem><para>2004-12-03 09:00 UT : Send an early warning to the secondary and to IANA </para></listitem>
<listitem><para>2004-12-06 09:00 UT : Validate the filled-in IANA form</para></listitem>
<listitem><para>2004-12-07 09:00 UT : Change the TTL to 600 s</para></listitem>
<listitem><para>2004-12-08 12:00 UT : Change the IP address of ns1.example to 1.2.3.4</para></listitem>
<listitem><para>2004-12-08 12:00 UT : Send the filled-in form to IANA</para></listitem>
<listitem><para>2004-12-08 12:00 UT : Tell the secondaries about the change</para></listitem>
<listitem><para>2004-12-09 16:00 UT : validate the setup and increase the TTL again</para></listitem>
	  </orderedlist>
And will be checked by experts/colleagues.</para>
      </section>
    </section>
</article>
