<?xml version="1.0"?>
<!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;
]>
<article lang="en" id="index">
  <articleinfo>
    <author>
      <firstname>Stephane</firstname>
      <surname>Bortzmeyer</surname>
      <affiliation>
        <orgname>AFNIC</orgname>
        <address>
          <street>Immeuble International</street>
          <postcode>78181</postcode>
          <city>Saint-Quentin-en-Yvelines</city>
          <country>France</country>
          <email>bortzmeyer@nic.fr</email>
        </address>
      </affiliation>
    </author>
    <date>$Date: 2003-10-22 14:37:55 $</date>
    <copyright>
      <year>2003</year>
      <holder>AFNIC</holder>
    </copyright>
    <releaseinfo>$Id: HOWTO.db,v 1.7 2003-10-22 14:37:55 bortzmeyer Exp $</releaseinfo>
    <legalnotice>
      <para>Distributed under the <ulink
      url="http://www.gnu.org/licenses/licenses.html#FDL">GNU Free
      Documentation License</ulink>. Permission is granted to copy,
      distribute and/or modify this document under the terms of the
      GNU Free Documentation License, Version 1.2 or any later version
      published by the Free Software Foundation; with no Invariant
      Sections, no Front-Cover Texts, and no Back-Cover Texts.
</para>
    </legalnotice>
    <abstract><para>This document is a 
	<emphasis>very</emphasis> (the work has just begun) short HOWTO intended to help people
	to set up a domain registry, able to serve, for instance, a
	small ccTLD (Country Code Top Level Domain).<warning>
<para>The work is under progress: comments are welcome but take
	everything in the HOWTO with a pitch of salt.</para>	</warning>
</para>
    </abstract>
    <title>HOWTO setup a domain registry</title>
  </articleinfo>
  <section id="intro">
    <title>Introduction</title>
    <para>This document is mostly intended for people faced with the
    task of setting up from scratch or redesigning heavily a domain
    registry. It tries to be comprehensive and to lists everything. On
    the other hand, it can give the feeling that creating a registry
    is a lot of work. It is not.</para>
    <important><para>Most of the items or tasks presented here are
    optional. Do not hesitate to start with only the most important
    (to you).</para>
    </important>
  </section>
<section id="political">
<title>Political issues</title>
<important><para>Only sketchy at this time</para>
    </important>
<para>A DNS registry is something special. It manages an unique
	resource, and therefore must do so in a neutral
	manner. Although there is no general consensus about the
	political or legal status of an Internet domain, we strongly
	believe that it is a public resource and should be handled
	accordingly. <rfc
	num="1591"/> includes a very nice sentence about that, a
	sentence which is often quoted and very rarely obeyed: 
      <quote>Concerns about "rights" and "ownership" of domains are
      inappropriate.  It is appropriate to be concerned about
      "responsibilities" and "service" to the community.</quote></para>
    <para id="attributes">Other attributes of a domain registry derives from this
	classification as a public resource: openness (the rules and
	procedures must be public), neutrality (the registry must not
	favor one party), reliability (the service must
	work<footnote><para>We will see in this HOWTO that it is much
	simpler than it seems: you do not need a multi-million dollar
	budget or an expensive software or a air-conditioned
	bomb-resistant bunker to manage a domain</para>
      </footnote>), efficiency (procedures should be fast and simple,
	for instance, and lead to the actual registration of a
	domain).</para>
    <para>Another quote from the same RFC is worth reading: <quote>These designated authorities are trustees for the delegated
      domain, and have a duty to serve the community.
      The designated manager is the trustee of the top-level domain for
      both the nation, in the case of a country code, and the global
      Internet community.</quote>. Once you keep that in mind,
	questions like the legal status of the organization managing
	the domain become less important. Do not be surprised that
	this HOWTO emphasizes the results (having a neutral and
	dependable registry) over the process (choosing a Board).</para>
<section id="registation_rules">
<title>Registration rules and naming</title>
<important><para>This section tries to present
<emphasis>several</emphasis> possible policies for a registry. There
is not one and only proper policy. You will have to choose, we can
only list policies, with their consequences.</para>
      </important>
<section><title>Choice framework</title>
<para>Some constraints must be considered:
<itemizedlist>
	    <listitem><para>Costs of the registration procedure (the
	    more complex, the more costly),</para>
	    </listitem>
	    <listitem><para>Costs associated with the maintenance of
	    the domains,</para>
	    </listitem>
	    <listitem><para>
	    Human resources needed if your policies do not
	    allow a full automatization.</para>
	    </listitem>
	  </itemizedlist>
</para>
<para>And your ambitions should be listed:
    <itemizedlist>
	    <listitem><para>Service to the local community and to the
	    other users worldwide,</para>
	    </listitem>
	    <listitem><para>Reliability and predictability (effective
	    and non-discriminatory
	    enforcement of the rules),</para>
	    </listitem>
	    <listitem><para>Protection of innocent users against some
	    forms of antisocial behavior (such as spamming,
	    harassment, specualtive cybersquatting, etc),</para>
	    </listitem>
	    <listitem><para>Technical excellence,</para>
	    </listitem>
	    <listitem><para>Fast and simple administrative procedures,</para>
	    </listitem>
	    <listitem><para>Easy introduction of new services (such as IDN).</para>
	    </listitem>
	  </itemizedlist></para>
<para>Inside this framework, some choices become much simpler: for
instance, a policy-heavy domain (with complicated naming rules)
cannot be fast and simple for its users. Or the complete selling of a
ccTLD to a foreign company that will sell domain names with conditions
(prices and priorities) that actually exclude local registrants will
violate the rule of the service to the local community.</para>
<para>The succes (or the failure) of the registry must be appreciated
with respect to these ambitions. So, "selling as many domain names as
possible" is not the only way to evaluate a registry.</para>
      </section>
      <section><title>Flat domain or sub-domains?</title>
	<para>In some TLD, you can register directly at the second
	level, right under the TLD. ".tv" or ".de" works that way. In
	others TLD, you can only register at the third level under a
	category-based second level. ".af" or ".uk" works that way. In
	".uk", you can <ulink
	url="http://www.nic.uk/RegisteringYourDomainName/ChoosingYourDomainName/">register
	only</ulink> in subdomains like ".co.uk" (companies), ".ac.uk"
	(academic) or ".me.uk" (persons). It works like a sort of
	labelling system, allowing users to easily see the category of
	the registrant.</para>
	<para>The criteria for second-level categories are typically
	based on the legal status (registered corporation,
	etc). Sometimes, geographic criteria were used like in ".us"
	(which no longer does it, see <rfc num="1480"/> for an
	historical point of view).</para>
	<para>Some ccTLD have a mixed policy. In ".jp", ".dz" or ".fr", you
	can register at the second or third level, depending on some
	criteria.</para>
	<para>Most users seem to prefer short and easy to remember domain
	names. Registration under third-level domains imply a
	knowledge of the naming rules by the users ("Are universities
	under .edu.example or under .ac.example?").</para>
      </section>
      <section><title>What registrants are accepted?</title>
	<para>You can decide to accept only some categories of
	registrants (in Europe, it was common to accept only
	registered corporations), or to accept any sort.</para>
	<para>It is clearly a political choice: do you want to favor
	one type of stakeholder?</para>
	<para>A more common restriction in ccTLD is to accept only registrants
	on the basis of a local presence. You require an address in
	the country.</para>
	<para>It is specially useful in the less rich countries:
	without such a restriction, many "interesting" domain names
	would be taken by rich foreigners quite rapidly, leaving
	nothing to the people in the country<footnote><para>As often
	with policy rules, there are always other solutions. You can,
	for instance, give some sort of priority to local registrants
	in your dispute resolution procedure.</para>
	  </footnote>.</para>
      </section>
      <section><title>Checking the identity of registrants</title>
	<para>You can decide to check the identity or
	not. (Obviously, if you have a restriction on the registrants
	you accept, then you need to check their identities.)</para>
	<para>Do note that this issue (checking the identity of the
	registrant) is not the same thing as restricting the domain
	names they can register, which is described in the next
	section.</para>
	<para>Such checking is often quite difficult to perform in
	practice. When everybody and every entity will have a
	cryptographic certficate, issues by a recognized authority,
	such a check will be both realistic and painless. But it is in
	a very distant future. Today, methods of checking are either
	slow and involve paper work or they are automatic but quite
	weak (sending a password by email, like when you subscribe to
	a maiing list).</para>
      </section>
      <section><title>What domain names a registrant can ask?</title>
	<para>In some TLD, like ".org", ".nl" or ".de", you can have
	almost any domain name you want, providing it is not already
	registered.</para>
	<para>In other TLD, your choices are restricted to names for
	which you can prove you have a right: a trademark, for
	instance, or the name of a company.</para>
	<para>In many TLD, there is also a blacklist of names that you
	cannot register at all: names that can create confusion (such
	as Internet organisms like NIC, ICANN or IETF), geographic
	names, or names that are
	illegal (heilhitler.example, because of the crimes of the
	nazis).</para>
	<para>Generic names (like "car.example") are sometimes
	excluded although it is very difficult to decide if a name is
	generic or not, short of prohibiting the entire
	dictionary.</para>
	<para>Blacklists are difficult to manage: either you define
	them extensively and you have the risk to forget something (if
	you forbid ku-klux-klan, people may register kukluxklan) or
	you define them by a few set of rules and then it becomes
	quite arbitrary ("hitler" is neutral but "heil-hitler" is
	political?)</para>
	<para>If you limit the choice of the registrants, you will
	have to check the rights to a name they claim to have.</para>
	<para>You can ask to the registrants a paper (which incurs
	time and manipulation) or an handle in a database. In many
	countries, such checks are quite difficult to perform because
	the databases that store the trademarks or company names are
	not public or are quite difficult to access (for instance a
	Web page that requires cookies, no Web service, etc). </para>
      </section>
      <section><title>Technical obligations</title>
	<para>Some registries like ".fr" or ".br" or the RIPE-NCC
	(which delegates ".in-addr.arpa" domains) requires the success
	of technical tests prior to the delegation. Some even make
	periodic tests to see if the configuration is still OK.</para>
	<para>These tests are very useful to improve the overall
	quality of the DNS. If, for instance, two out of three
	nameservers of a domain are not responding (a very common
	situation in ".com"), the client will need three DNS requests
	instead of one, slowing the software and loading the Internet
	for nothing. Also, it is always better to detect errors as
	soon as possible.</para>
	<para>One must understand that, besides some very obvious
	checks (testing that every nameserver replies in an
	authoritative way for the domain), there is no consensus on
	the actual tests<footnote><para>This is why the ZoneCheck tool
	takes its list of tests and their severuty (fatal or just
	warning) from a configuration file, thus separating the policy
	from the code.</para>
	  </footnote>. So, be sure that they are developed with actual
	participation from the community.</para>
	<para>Some TLD do perform such tests but do not make them
	mandatory for the delegation. They just warn the contacts or
	flag the domain as invalid in the database.</para>
	<para>If you do periodic testing of the domains and if you
	remove domains when they fail N successive tests, be sure that
	the holders were warned in advance, before they actually buy
	the domain.</para>
      </section>
    </section>
<section id="statutes">
<title>Status of the registry</title>
      <para>There are <emphasis>many</emphasis> ways to organize a
	registry. We do not intend to give the right one, because
	there is no such thing as the Only True Way. Instead, we will
	list here possible statutes, with their consequences</para>
      <para>Be also aware that the statutes alone does not tell
	everything. Associations can be for-profit corporations on
	disguise, they can be fronts for the governement, etc.</para>
      <section><title>A service of the historical telco</title>
	<para>Many countries <remark>Centrafrican republic, Morocco,
	    Niger, Mali.
	  </remark>use or used such a system, where a set of
	  employees of the traditional telco organization manages the
	  domain name.</para>
	<para>Since the operator is also often an Internet provider,
      it is quite difficult to be truly neutral with such a status.</para>
      </section>
      <section>
	<title>A service of the governement</title>
	<para>Since the national domain is a public resource, it may
	  makes sense to have the government manage it.</para> 
	<para>Very often in the past, the domain was managed by a
	public entity (typically an university) but not directly by
	the government. This is less common now.</para>
      </section>
      <section>
	<title>An independant association</title>
	<para>The registry can be an association. This model is quite
	  common in Europe. There are many subvarieties of this scheme:
	  for instance, the association can be a consortium of
	  registrars<remark>Germany</remark>, or it can have a wider consistuency<remark>France</remark>.</para>
	<para>Do note that "independant" is relative, some
	  associations, theoritically independant, are quite connected
	to one of the actors. Also, "non profit" does not imply
	"honest" or "immune from appetite of power".</para>
      </section>
      <section>
	<title>A private company</title>
	<para>The registry can be a private, for-profit,
	  company. </para> <para>Do note that it does not imply that
	  this company "owns" the domain. It can be a contractant,
	managing the domain on a contract basis. In that case, it
	should be closely monitored by the domain holder because the
	desire to makes more money may influence the policy of the
	registry in an unwanted way<footnote><para>For instance, by
	creating wildcards entries in the DNS, that create user
	confusion but allow the registry to attract more users to its
	Web site.</para>
	  </footnote>.</para>
      </section>
    </section>
    <section>
      <title>Relationship with the community</title>
      <section><title>Registrars or direct sales?</title>
	<para>People who want the creation of a domain name can
      request it directly from the registry. Or they can go through a
      registrar, a provider specialized in domain names. Most
      registries use only one of these two possibilities: either you
      sell directly or you require that creation and modification of
      domain names are performed by a registrar<remark>Brazil mixes.</remark>.</para>
	<para>Direct selling is more common in small ccTLDs. It
      simplifies the life of the users, by suppressing an
      intermediary.</para>
	<para>The registry-registrar model is more common in large
      ccTLDs. Almost everyone in Europe uses it, for instance. It
      shelters the registry from end users. Someone has to train them,
      to explain them and to reply to their calls. Most registries
      prefer to move this task to registrars. Also, it makes sometimes
      easier for the provider to sell a global service, including the
      domain name and other things, such as Web hosting.</para>
	<para>If you have registrars, the question of the accreditation
      criteria is an important one. Will you force registrars to be
      accredited? If so, on financial criteria (a given amount of
      money in a bank account)? On technical criteria (the ability to
      talk with your registration system, using the protocol you
      choosed)? On both?</para>
      </section>
      <section>
	<title>National</title>
	<para>As mentioned in <rfc num="1591"/>, every registry works
	for its local Internet community: Internet access providers,
	Internet service providers, Web site developers, cybercenters
	managers, registrants
	of domain names and simple users.</para>
	<para>The way the opinions and expectations of these
	stakeholders, the people who are interested in the proper
	working of the registry, is taken into account, vary
	greatly. But, in the ideal, it should exist one way for them
	to decide on what interests them.</para>
	<para>It is not always easy to transform a stakeholder into an
	active and responsible participant to a process. Some
	categories are easy to organize (small and well-defined
	categories, like the ISP), some are much more blur (the
	users). Traditional democratic systems "one man, one vote" do
	not work well fo specialized matters like the domain name management.</para>
      </section>
      <section>
	<title>International</title>
<para>The Internet being international, the registry will need
	  relationships with many foreign organizations.</para>
	<section>
	  <title>ICANN/IANA/ccNSO</title>
	  <para>TODO http://ccnso.icann.org/ </para>
	</section>
	<section>
	  <title>wwTLD</title>
	  <para>TODO http://www.wwtld.org/ </para>
	</section>
	<section>
	  <title>IETF</title>
	  <para>TODO</para>
	</section>
	<section>
	  <title>The local RIR</title>
	  <para>TODO: RIPE-NCC, Afrinic, etc</para>
	</section>
	<section>
	  <title>The local TLD organization</title>
	  <para>CENTR, APTLD, TODO</para>
	</section>
      </section>
    </section>
    <section>
      <title>Communication</title>
      <para>Wether the registry is for-profit or not, it will need a
      bit of marketing. A registry works in a world of communication,
      since this is what the Internet is about. So, you will have to
      think about your communication: your Web site, your information
      letter etc.</para>
      <para>A small warning: it seems easy to communicate with the
      registrants, you have all their email addresses. But some may
      not like it if they were not warned in advance.</para>
    </section>
  </section>
  <section id="operations">
    <title>Operational issues</title>
    <section><title>User support</title>
      <para>Like every other provider, you will need an user support. To
	maximize user satisfaction, keep in mind the following.</para>
      <itemizedlist><listitem><para>Phone support is very costly
	    (it requires more people and it makes collective work more difficult).</para>
	</listitem>
	<listitem><para>For email support, every
	    email<footnote><para>Except, of course, spam and insults.</para>
	    </footnote> must receive a
	    reply<footnote><para>Software can help: email readers with
		thread support like <ulink
		  url="http://www.mutt.org/">mutt</ulink> can help a lot to
		detect unanswered messages. Besides such simple tools,
		formal ticketing systems like <link linkend="rt">Request
		  Tracker</link> become mandatory once you have more than a
		very small TLD. They allow to keep track of the questions
		and of the replies, to match the various messages related
		to the same case, etc.</para>
	    </footnote>.</para>
	</listitem>
	<listitem><para>Already-made sheets for the most common
	    replies are very useful and you can gather them in a FAQ
	    online, allowing you to reply, "Please see the FAQ, section X.Y".</para>
	</listitem>
	<listitem><para>Collective work of the NIC team is
	    specially useful for user support since nobody can know
	    eveything: useful replies are sometimes made from two
	    different contributors.</para>
	</listitem>
      </itemizedlist>
    </section>
    <section>
      <title>Procedures</title>
      <para>Even if you try to limit the paperwork to a bare minimum, you
	will need some administrative procedures. To comply with the
	openess and fairness principles, they have to be written and
	followed.</para>
      <itemizedlist>
	<listitem><para>If you have policy-heavy registration rules (such as
	    restrictions on who can obtain a domain name), you will
	    need procedures for the registration, poissibly lasting
	    several days. As for the user support system, a ticketing
	    software is of great help.</para>
	</listitem>
	<listitem><para>If you have registrars and if there is some form of
	    accreditation, you will need a procedure describing the
	    steps for this accreditation.</para>
	</listitem>
      </itemizedlist>
    </section>
    <section>
      <title>Description of functions</title>
      <para>Functions assumed by individuals in the registry should be
	documented. Even if, in a small registry, most people fulfill
	several different functions, it helps to identify the business
	tasks of the registry.</para>
      <para>Example: TODO</para>
    </section>
    <section>
      <title>Security</title>
      <para>TODO: quote Schneier :-) Not only computer security but also,
	authentication of holders (see sex.com or
	aljazeera.net).</para>
      <para>In some countries, as soon as you manage a database of
	individuals, you have the obligation to ensure its protection
	(against illegal harvesting, for instance, a common problem
	with the whois service).</para>
    </section>
    <section>
      <title>Technical management</title>
      <para>Among the procedures, you will need rules for the
	technical management of the registry. For instance, that no work
	should be considered done as long as it is not documented. Or
	rules should said that any exceptional action (such as a direct
	UPDATE in the database) be logged in a proper place (such as a
	CVS-managed text file).</para>
    </section>
  </section>
  <section id="technical">
    <title>Technical issues</title>
    <section id="components">
    <title>The components of a registry</title>
    <para>A registry has several technical components. Before trying
    to integrate them, let's enumerate what they are.</para>
<section><title>A database of domains</title>
      <para>"database" does not imply that it runs on a DBMS. I just
    mean a way (may be even a simple text file with some procedures to
    edit it properly) to store the domains and their name servers.</para>
  </section>
    <section>
      <title>A database of social information</title>
<para>Unless you run a "thin" registry, you will need to store the
	social information, which is the names and addresses of domain
	names holders and domain contacts (technical, administrative,
	etc). </para>
<para>For both databases, writing the schema is not obvious and you
	can use the one in <link linkend="openreg">OpenReg</link> as a
	starting point. Do note that the choice of a schema raises a
	lot of policy issues.</para>
<para>It is highly recommended that this database is physically the
	same as the domain database before, in order to avoid
	inconsistencies. But some registries keep two separate
	databases, often for historical reasons. In that case, people
	often call it the "whois database" because of the protocol
	that historically served it.</para>
    </section>
    <section>
      <title>A zone file generator</title>
      <para>You need to export the database in a format which is
      suitable for your name servers. Of course, you can always use
      the name server's zone file as a "low tech" database, which is
      possible for a small registry. Or you can plug your name server
	directly into the database which is possible with <ulink
      url="http://www.powerdns.org">PowerDNS</ulink>. But in all the
      other cases, you will need a (small) program to export the database.</para>
    </section>
    <section>
      <title>An interface for the registry</title>
<para>You will need a way for the people working at the registry to
	read the database(s), and to update it. At the present time,
	it means a Web interface, usable from any Web
	browser. Die-hards users could still use the SQL command-line
	interface :-)</para>
<para>Since it may be a complicated program, the use of a Web
	Application Server, such as <ulink
	  url="http://www.zope.org">Zope</ulink> may be a good idea.</para>
    </section>
    <section>
      <title>An interface for the remote world</title>
<para>People outside of the registry will need to read and update the
	database, too. I see three cases, in order of ascending size:
	<orderedlist>
	  <listitem>
	    <para>A very small registry can use low-tech interfaces
	    (phone and paper) to receive domain updates and then use
	    its internal interface.</para>
	  </listitem>
	  <listitem>
	    <para>A small or medium-sized registry will have no
	    "registrars", no intermediaries. It will provide directly
	    the registrants with a set of Web pages to create and
	    manage their domain names.</para>
<para>The <ulink url="http://www.useit.com/">ease of use</ulink> of
	    this Web application is paramount to limit the load on the
	    support team.</para>
	  </listitem>
	  <listitem>
	    <para>A large registry will probably have registrars and
	    will offer them an interface with a protocol like <ulink url="http://www.ietf.org/html.charters/provreg-charter.html">EPP</ulink> or
	    RRP (<rfc num="2832"/>) or a simple key-value template like the RIPE-NCC
	    protocol or the <ulink url="http://www.open-eu.org/documents-content.html#2">CORE payload protocol</ulink>.</para>
	  </listitem>
	</orderedlist></para>
</section>
    <section>
      <title>Name servers</title>
<para>Unless your domain is entirely hosted outside of the registry,
	either by friends or by a commercial company, you will need
	name servers and you will need to monitor and maintain them. </para>
</section>
    <section>
      <title>A ticketing system</title>
      <para>If the creation of a domain involves several steps (such
      as some manual checks), you may need a ticketing system, able to
      give an unique ID to each transaction, allowing easier
      referrals. This tool will give you the possibility to track work
      in progress.</para>
<para>Such a tool is also useful to manage things like operational
      tasks to perform (software installation, for instance), and
      customer support requests.</para>
<para id="rt">The recommended tool is <ulink
      url="http://www.bestpractical.com/rt/">Request Tracker</ulink>
      but many other similar tools exist in free software.</para>
    </section>
    <section>
      <title>A whois server and other information services</title>
      <para>It is highly recommended to have a whois server (<rfc
      num="954"/>) to
      distribute social information (such as the technical contact)
      about your domains. In the future, <ulink url="http://www.ietf.org/html.charters/crisp-charter.html">other protocols</ulink> may replace whois.</para>
    </section>
    <section>
      <title>Backup</title>
<para>Of course, you will need backups. The complete destruction of
	the database would be a catastrophe. Therefore, it is highly
	recommended, not only to make backups on permanent storage
	(one CD-ROM is more than enough for most domain registries),
	but also to store them in far away places, to guard against
	catastrophic failures such as fire or war.</para>
      <para>To do so, a disk-to-disk backup is often the simplest
	solution when the two machines are connected by the
	Internet. You can replicate your database automatically (this
	is very easy to set up with MySQL), or simply copy the data
	with a program like rsync (this can be automated, see for
	instance <ulink
	  url="http://www.mikerubel.org/computers/rsync_snapshots/">this documentation</ulink>. It is easy to automate these operations.</para> 
    </section>
<section id="misc"><title>Miscellaneous tools</title>
      <section>
	<title>Tools to test a zone</title>
	<para>A simple check_soa or a full ZoneCheck</para>
      </section>
      <section>
	<title>IDN tools</title>
<para>If you want to register domain names in other character sets
	  than US-ASCII, for instance with the Arabic alphabet, you will need some <ulink url="http://www.i-d-n.net/">IDN</ulink> tools.</para>
      </section>
      <section>
	<title>Monitoring tools</title>
<para>TODO: mon, nagios, etc</para>
      </section>
  </section>
  </section>
<section id="integration">
      <title>Integrating the software</title>
      <para>It is recommended that all the components of the registry
      reads from and updates to the same repository. This will avoid
      inconsistencies. To achieve this goal, you can either:</para>
	<orderedlist>
	  <listitem><para>Use one
      database, which will be the authoritative source of information
      for everything.</para>
	</listitem>
	    <listitem><para>Use a client-server middleware, for
      instance with protocols like XML-RPC, that all your applications
      will use.</para>
	</listitem>
	<listitem><para>You can have a common library, used by all
      your programs, to read and update the datanase(s).</para>
	  </listitem>
	</orderedlist>
    </section>
  <section id="software">
    <title>Available software</title>
    <section>
      <title>General software</title>
      <para id="openreg">The only available free software at the present time, to
      run a registry, is <ulink url="http://www.isc.org/products/OpenReg/">OpenReg</ulink>. It provides an EPP interface, a middleware program
      (so you can add your own programs), a whois server, a database
      (PostgreSQL by default).</para>
    </section>
    <section><title>For the DBMS</title>
      <para>If you use a DBMS to store the data, you can use either
    PostgreSQL (which runs ".org" and ".info") or MySQL.</para>
    </section>
    <section>
      <title>For the name servers</title>
<para>Today, there are three possible choices with
	free software:
	<itemizedlist>
	  <listitem><para><ulink url="http://www.isc.org/products/BIND/">BIND</ulink></para>
	  </listitem>
	  <listitem>
	    <para><ulink url="http://www.nlnetlabs.nl/nsd/index.html">nsd</ulink></para>
	  </listitem>
	  <listitem>
	    <para><ulink url="http://www.powerdns.org/">PowerDNS</ulink></para>
	  </listitem>
	</itemizedlist></para>
    </section>
    <section>
      <title>Components not available as free software</title>
<para>You will need some programming skills, anyway, because all
	registries are different and it is likely you will have some
	specific requirments. "Scripting" languages like <ulink
	  url="http://www.perl.com/">Perl</ulink> or <ulink
	  url="http://www.python.org">Python</ulink> are necessary for
	a registry.</para>
<para>Even if you limit your requirments, many software that are
	available will need some sort of glu to hold together.</para>
<para>Here is a partial list of the components that are not, as far as
	I know, available as free software:
	<itemizedlist>
	  <listitem>
	    <para>The internal Web interface of a registry.</para>
	  </listitem>
	  <listitem>
	    <para>The external Web interface of a registry, for the
	    registries that have no registrars and therefore have to
	    provide such an interface.</para>
	  </listitem>
	</itemizedlist></para>
</section>
  </section>
  </section>
  <section id="legal">
    <title>Legal issues</title>
    <remark>From Eric Barbry's blueprint for EUREG</remark>
    <important><para>In many countries, legal issues can very quickly
	become intractable or simply too expensive to be solved in a
	"proper" way.</para>
      <para>The Internet itself was never built on a solid legal
	ground. Do not wait until all legal problems are completely
	solved before you build something. Legal problems are just
	technical problems, they are not an aim in theirselves.</para>
    </important>
    <section>
      <title>Insurance</title>
      <para>Besides the physical damages (fire, for instance), the
	registry may have legal liabilities: check them.</para>
    </section>
    <section>
      <title>Contracts</title>
      <section><title>With ICANN</title>
	<para>ICANN asks for a formal contract, TODO.</para>
	<warning><para>Before signing it, check the <ulink url="http://www.centr.org/docs/statements/ICANN-Zone-Access-Comments.html">consequences</ulink>.</para>
	</warning>
      </section>
      <section>
	<title>With registrars</title>
	<para>What are the possible criteria to apply for the accreditation of
	  registrars? What are proceedings to check that the criteria are met?
	  When does the accreditation of registrars take place? Should the selection criteria be steady?</para>
	<para>You will specify things like TODO </para>
      </section>
      <section>
	<title>With domain name holders</title>
	<para>TODO</para>
      </section>
    </section>
    <section>
      <title>Zero-paper and the law</title>
      <para>A typical DNS registry is widely automated and uses only
	dematerialized exchanges. Check the consequences on your legal system.</para>
    </section>
    <section>
      <title>Software</title>
      <para>This document assumes that you only use free software. In
      any case, do not forget that illegal copying of commercial
	software is... illegal and that a DNS registry, which is highly
	visible, is a tempting target for enforcers.</para>
    </section>
    <section>
      <title>Protection of personal data</title>
      <important><para>It is not purely a legal question: in many
	  countries, the law is sufficiently lax that you can do almost
	  what you want with the data. It does not mean that ou
	  should. There are also policy choices here.</para>
      </important>
      <para>TODO: European law?</para>
    </section>
    <section>
      <title>Arbitration and dispute resolution</title>
      <para>TODO</para>
    </section>
  </section>
  <section id="business">
    <title>Financial issues</title>
    <para>TODO: registrar or direct sales. Pre-charged account or
      not. Structure of the price (flat for all the domains or not).</para>
  </section>
  <bibliography id="biblio">
    <biblioentry>
      <publisher>
	<publishername><ulink url="http://www.wwtld.org/nameserver/Shanghai Registry CD 1x11.pdf">Manning/Abley</ulink></publishername>
      </publisher>
      <abstract>
	<para>A very good tour of the problems (mostly technical)
	faced by a new registry.</para>
      </abstract>
    </biblioentry>
    <biblioentry>
      <title>DNS resources</title>
      <abstract><para>A good set of resources about DNS
      management. Unfortunately apparently no longer maintained.</para>
      </abstract><publisher><publishername><ulink
        url="http://www.dns.net/dnsrd/">Available on-line</ulink></publishername>
      </publisher>
    </biblioentry>
  </bibliography>
  <glossary id="glossary">
    <glossentry id="cctld">
      <glossterm>Country-Code Top Level Domain</glossterm>
      <acronym>ccTLD</acronym>
      <glossdef><para>A TLD which is linked to a country. They are described
      in <rfc num="1591"/> and the list of country codes (two letters
      each) comes <ulink url="http://www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/index.html">from ISO</ulink>. 
      </para><glossseealso otherterm="tld"/>
      </glossdef>
    </glossentry>
    <glossentry id="dns">
      <glossterm>Domain Name System</glossterm>
      <acronym>DNS</acronym>
      <glossdef><para>The distributed and hierachical information
      system that allows, among many other things names such as
      www.foobar.example to be translated into IP addresses and
      back.</para>
	<para>The general concepts of the DNS are described in <rfc num="1034"/>.</para>
      </glossdef>
    </glossentry>
    <glossentry id="gtld">
      <glossterm>Generic Top Level Domain</glossterm>
      <acronym>gTLD</acronym>
      <glossdef><para>A TLD which is not linked to a country. In
      practice, some gTLD are indeed international in usage, like
      ".com" or ".org" but some, for historical reasons, are USA-specific like ".gov" or ".edu". 
      </para><glossseealso otherterm="tld"/>
      </glossdef>
    </glossentry>
    <glossentry id="holder">
      <glossterm>Holder</glossterm>
      <glossdef><para>Synonym of registrant.</para>
	<glossseealso otherterm="registrant"/>
      </glossdef>
    </glossentry>
    <glossentry id="iana">
      <glossterm>Internet Assigned Numbers Authority</glossterm>
      <acronym>IANA</acronym>
      <glossdef><para>A function of ICANN: <ulink
      url="http://www.iana.org/">IANA</ulink> records and publishes
      the use of the unique virtual
      resources such as IP addresses, domain names, protocol numbers,
      etc.</para>
      <glossseealso otherterm="icann"/>
      </glossdef>
    </glossentry>
    <glossentry id="icann">
      <glossterm>Internet Corporation for Assigned Names and Numbers</glossterm>
      <acronym>ICANN</acronym>
      <glossdef><para><ulink url="http://www.icann.org/">ICANN</ulink>
      manages the allocation and change of the unique virtual
      resources of the Internet such as IP addresses, domain names,
      protocol numbers, etc.</para>
	<para>ICANN is a private corporation under the laws of the
      United States of America. Several functions it assumes depend on
      a delegation from the USA governement.</para>
      </glossdef>
    </glossentry>
    <glossentry id="nic">
    <glossterm>Network Information Center</glossterm>
      <acronym>NIC</acronym>
      <glossdef><para>The organism in charge of a TLD. It manages the
      database of the domains registered under this TLD, as well as
      the associated information (name servers, contacts, etc).</para>
      <glossseealso otherterm="tld"/>
      </glossdef>
    </glossentry>
    <glossentry id="registrant">
      <glossterm>Registrant</glossterm>
      <glossdef><para>The entity (company, association, physical person)
      which registers a domain name. It is not an owner, because
      domain names are typically only rented, not bought.</para>
	<glossseealso otherterm="sponsoring_org"/>
      </glossdef>
    </glossentry>
    <glossentry id="registrar">
      <glossterm>Registrar</glossterm>
      <glossdef><para>The entity (typically a company)
      which sells domain names to registrants. Unlike the simple
      reseller, the registrar has an access to the database of the
      registry, through a standard protocol like RRP or EPP.</para>
      </glossdef>
    </glossentry>
    <glossentry id="registry">
      <glossterm>Registry</glossterm>
      <glossdef><para>The entity in charge of the TLD. For a ccTLD,
      NIC and registry are often used interchangeably.</para>
      <glossseealso otherterm="nic"/>
      </glossdef>
    </glossentry>
    <glossentry id="sponsoring_org">
   <glossterm>Sponsoring organization</glossterm>
      <glossdef><para>In IANA language, the registrant of a TLD. At
      the present time, it is often the administrative contact,
      because sponsoring organizations are a quite recent concept. But
      check ".tv" for an example where they are distinct.</para>
	<glossseealso otherterm="registrant"/>
      </glossdef>
    </glossentry>
    <glossentry id="tld">
      <glossterm>Top Level Domain</glossterm>
      <acronym>TLD</acronym>
      <glossdef><para>A domain which is right under the root of the
      DNS, like ".fr" or ".net".</para> <glossseealso otherterm="cctld"/> 
	<glossseealso otherterm="gtld"/>
      </glossdef>
    </glossentry>
  </glossary>
</article>











