The legacy webpages have been moved to the IPv6 portal go6.net for your historical reference.

6bone How to use the 6bone Registry database

by David Kessens (edited by Bob Fink)

1 August 2002

Comments to: David Kessens <david@iprg.nokia.com> or to Bob Fink <fink@es.net>


ANNOUNCEMENT: This document specifies the older-style email emthod for creating/updating 6bone registry entries, which is no longer the preferred method.

The preferred method of creating/updating 6bone registry entries is the Viagenie 6BONE REGISTRY DATABASE WEB INTERFACE. This interface provides good authorization protection by requiring all entries be protected by mntner entries with an encrypted password authentication scheme.

In a nutshell, you first need to create an encrypted password protected mntner object, then person and ipv6-site objects that use the mntner. In addition, inet6num objects may also be created as appropriate (also using your mntner object to protect it).

So you might consider going directly to the Viagenie 6BONE REGISTRY DATABASE WEB and start there (as opposed to trying to read this document). You can always come back here if you have some detailed question.

[Return to 6bone Home Page]


EDITOR's NOTE: This documentation is for the RIPE-style 6bone Registry database, located at Nokia.

The previous "official" 6bone Registry was ftp-based and was located at the RIPE-NCC. The old database was automatically converted and transferred to the new 6bone Registry database around the 8th of June, 1997, by David Kessens while at ISI.

Subsequently David moved the database to Qwest (1998), and then to Nokia (2000).


Any use of material in this 6bone Registry database to target advertising or similar activities are expressly forbidden and will be prosecuted. Please notify Bob Fink <fink@es.net> or David Kessens <david@iprg.nokia.com> of any such activities or suspicions thereof.



Table of contents

Introduction

What is the RIPE-style Database?

Biggest changes from the ftp directory approach

Known problems/missing features

Full dumps of the registry database

How to access the database

Whois Usage

Simple queries with a web interface

Some interesting examples

How to create, update or delete your objects in a RIPE style database

How to create a new object

How to update an existing object

How to delete an old object

inet6num object

Hints and tips

More documentation



Introduction

This document describes how to access, create, change and delete site data in the 6BONE RIPE-style database which is based on the Kessens/de Groot modifications to the RIPE-style objects.

Included is a section with hints and tips. At the end of the document is a chapter with pointers to more extensive documentation.

We try to keep this document as up-to-date as possible. If you have any comments or additions please send E-mail to Bob Fink <fink@es.net> or David Kessens <david@iprg.nokia.com>.


What is the RIPE-style Database?

One of the activities of RIPE (Réseaux IP Européens) is to maintain a database of European IP networks, AS numbers, their contact persons, routing policies and other useful data for Internet Network Management (See section 'More documentation' for pointers to other documents on the different objects that are stored in the database). This database is called the RIPE Network Management Database or simply the "RIPE Database". The information held in this database is available to the public for the purpose of coordinating IP networking. So note that the RIPE database is not a general white pages service, but is information that supports the work of network operators (NICs and NOCs) worldwide.

For instance, if a user in network A cannot reach a machine in network B, the network manager of network A can find the technical contact person of network B to locate and solve the problem. Also information that supports router configuration and routing troubleshooting is available.

The RIPE NCC maintains this data for the European region and surrounding areas and the data is available through the host 'WHOIS.RIPE.NET' using the 'whois' protocol. A similar database has been setup for the 6BONE community, on the system named 'WHOIS.6BONE.NET', to help with the transition from the IPv4 to IPv6 network protocol. This is a special version of the RIPE database software which is referred to as the '6BONE database' throughout this document.

This database has a special object, 'ipv6-site:' which is described in a currently expired Internet draft. The database can be queried by using the web-based 'whois' service at http://whois.6bone.net/~david/6bone/whois.html.

Note however that the 6BONE database will also have mirror copies available of the RIPE, APNIC, RADB, MCI, ANS and CANET databases which is possible because they are all running versions of the RIPE database software (use '-a' option). This feature allows users to reference persons registered in one of these databases without the need to reregister them in the 6BONE database.

This document describes the working of RIPE database software and has some modifications for the 6BONE database. Please note that only the 6BONE database supports the special 'ipv6-site:' object at this time.



Biggest changes from the previous ftp directory approach

- contact information is stored in different objects (role or person objects). You will be required to use a NIC handle (RIPE, InterNIC or from another registry) in the contact: field. You can create your own person/role object with 6BONE NIC handle if you don't have a NIC handle at one of the registries yet. Automatic creation of some person/role objects has already been tried. Do a search for your object and you will find if this is the case for you.

- domain names are used instead of IP numbers. This makes it very easy to find out about the IPv6 and/or IPv4 number which is needed for some of the apllications that people are using on the 6BONE. Note that some of the old objects still contain IP numbers. They will not be accepted anymore when updating the data.

The following script can be used to do a quick lookup of both the IPv4 & IPv6 address:

   #!/bin/sh
   #
   # host6 lists the DNS name and IPv4 & IPv6 address of a host
   #
   # It uses the 'host' tool by Eric Wassenaar 
   # 
   # get it from: ftp://ftp.nikhef.nl/pub/network/host.tar.Z
   #              (the directory also includes some other very good
   #               replacement of traceroute and other networking tools)
   #
   echo Name: $1
   host -t A $1 2>&1 | awk '{ if ($3 ~ /[0-9]/) { print "IPv4 address:", $3 } }'
   host -t AAAA $1 2>&1 | awk '{ if ($3 ~ /\:/) { print "IPv6 address:", $3 } }'
   # end of script

- syntax checking will make the quality of the data better and will allow people to write tools to handle the data (for example 6BONE maps). Please inform the authors of any bugs in the syntax checking code since it is very new. You can always use the remarks: attribute if you need to document features that are not available in the current format.

- altitude is now required in the location specification.

 


Known problems/missing features

- No 24 by 7 helpdesk is available.

- There is no web-based form(s) for storing data.



Full dumps of the registry database

To get the daily full gziped dump of the 6BONE registry database go to:

 


How to access the database

The database software uses a 'whois' (RFC954) server with some special RIPE specific extensions. Therefore, it is preferred to access the database with a 'whois' client program or even better the RIPE 'whois' version. The source code of the RIPE 'whois' client program can be obtained from :

 

The section 'More documentation' near the end of this document contains pointers to other documents describing the different types of objects that are stored in the database that can be queried for. The standard RIPE 'whois' interface allows (except for some exceptions) only searching for the names of the objects.

Querying the database with 'whois':

	$ whois -h whois.6bone.net SearchKey

(or as an alternative: 'telnet whois.6bone.net whois' and type the SearchKey when you are connected)

 

The following section, 'Whois Usage', defines the various search keys and usage arguments for the RIPE whois.

 

Requesting the current help file with 'whois':

	$ whois -h whois.6bone.net HELP

This currently points to David Kessens' 6BONE Registry page at Nokia, which in turn will point back to this document.

 



Whois Usage

Usage: whois [-aFrSv] [-h host] [-s source] [-T type] [-L|-m|-M] SearchString

Where:

-a             search all databases
-F             fast raw output (implies -Fr)
-h hostname    search alternate server
-i attributes  find the objects that reference the searchkeys in
               the specified attributes
-L             find all Less specific matches
-m             find first level More specific matches
-M             find all More specific matches
-p port        connect to other port then the default whois port
-r             turn off recursive lookups
-s source      search databases with source "source"
-S             tell server to leave out "syntactic sugar"
-t type        requests template for object of type "type"
-T type        only look for objects of type "type"

 

Please note that most of these flags are NOT understood by non RIPE 'whois' client programs. Sometimes the following work around will work:

instead of:

	whois -h whois.6bone.net -T person robert fink

 

you can use:

	whois -h whois.6bone.net "-T person robert fink"

 

Or you can use the simple web page-based query interface available at:

http://whois.6bone.net/~david/6bone/whois.html

 


Some interesting examples

Using the simple web-based query interface with a simple object name argument, for example, isi-lap, will return:

ipv6-site:   ISI-LAP
descr:       LAP-EXCHANGE
descr:       Los Angeles
prefix:      5FBC:1000::/32
tunnel:      IPv6 in IPv4 sandbox.ep.net -> bah.isi.edu LAP/US RIPng operational
tunnel:      IPv6 in IPv4 sandbox.ep.net -> 6bone-gw.london.pipex.net UUNET/PIPEX RIPng operational
tunnel:      IPv6 in IPv4 sandbox.ep.net -> pax-6bone.pa-x.dec.com DEC/PA RIPng operational
tunnel:      IPv6 in IPv4 sandbox.ep.net -> eng-ios-dirtylab-gw.cisco.com cisco/ca RIPng operational
tunnel:      IPv6 in IPv4 sandbox.ep.net -> 6bone.chicago.cic.net CIC RIPng operational
tunnel:      IPv6 in IPv4 sandbox.ep.net -> 203.235.123.1 NURI/Korea RIPng experimental
contact:     BM2-6BONE
remarks:     DNS operational for reverse zones
remarks:     Willing to add tunnels on request
remarks:     One hop from Genuity/Cerfnet/LosNettos/InterNex & others
remarks:     ipv6-site is operational since Feb-97
remarks:     
remarks:     this is an automatically created object
remarks:     some data is missing or in a wrong format
remarks:     please add/fix this when updating this object
notify:      bmanning@isi.edu
changed:     bmanning@isi.edu 970318
changed:     auto-dbm@ISI.EDU 970331
source:      6BONE

person:      Bill Manning
e-mail:      bmanning@isi.edu
nic-hdl:     BM2-6BONE
remarks:     this is an automatically created object
remarks:     some data is missing or in a wrong format
remarks:     please add/fix this when updating this object
notify:      bmanning@isi.edu
changed:     auto-dbm@whois.6bone.net 970331
source:      6BONE

 

Search first level more specifics (be carefull to specify a correct IPv6 prefix/address or the server will only do a 'string' based search):

	$ whois -h whois.6bone.net -m 5F16:4D00::/32

 

Search all More specific matches:

	$ whois -h whois.6bone.net -M 5F16:4D00::/32

 

Search all Less specific matches:

	$ whois -h whois.6bone.net -L 5F16:4D00::/33

 

Find all objects with origin 'Your(Providers)AS' (note: the AS number must be prefixed by the string 'as')

	$ whois -h whois.6bone.net -i origin as559

 

Use the following to find out in which objects your 'ipv6-site:' is mentioned in the tunnel specification:

	$ whois -h whois.6bone.net -i tunnel isi

 

Don't hesitate to experiment a bit by adding an object or doing some query trials but please remove any experimental objects after use.

 


How to create, update or delete your objects in a RIPE style database

It is not difficult to create, update and delete Registry objects, but it helps a lot if you have read these web pages (particurlarly the NIC handle section if you need to create a person/role object). Note that the actual formats are described in the internet draft. Send your create/update/delete requests by E-mail to: auto-dbm@whois.6bone.net

Your update will be done and you will usually receive an acknowledgement message in just a few seconds.

 


How to create a new object

- Get the template by using:

	whois -t TemplateType

Example:

	whois -h whois.6bone.net -t person

 

- If you are completing a person template or want to reference a person in an object, we recommend using a 6BONE handle ('nic-hdl:'). You can also use NIC handles from other registries, such as the InterNIC, if you are already registered there ­ just fill in your existing handle in the "contact:" field. 6BONE handles will give you a unique identifier attached to a person which you can use as a reference. This avoids problems with different persons with the same name. You can get yourself a NIC handle by putting the following in the NIC handle field:

	nic-hdl: AUTO-1

OR

	nic-hdl: AUTO-1YourInitials

 

The second case advises the database software to use YourInitials (no more then 4 characters) for building the NIC handle while the first case asks the database software to find the initials itself.

You can use the same identifiers (AUTO-1 or AUTO-1YourInitials) in the same update message in other objects as a reference. The database software will then fill in the freshly assigned NIC handles in the objects. Note that you can also use other numbers (example: AUTO-2) so that you can update more person objects and objects that reference the persons in one E-mail message.

Example:

	domain: perl.com
	admin-c: AUTO-1
	tech-c: AUTO-2
	[ ... stuff deleted ...]

	person: David Kessens
	nic-hdl: AUTO-1
	[ ... stuff deleted ...]

	person: Larry Wall
	nic-hdl: AUTO-2
	[ ... stuff deleted ...]

 

- You can protect your objects with maintainer objects by adding a 'mnt-by:' attribute. For some objects this is even mandatory. More information on maintainer objects can be found in ripe-120.{txt|ps}.

 

- Fill in the template and send it to auto-dbm@whois.6bone.net. Put 'LONGACK' in the 'Subject:' line of your E-mail message to get a more verbose acknowledgment. Here is an example of a successful person registry creation:

To: auto-dbm@whois.6bone.net
From: Bob Fink <RLFink@lbl.gov>
Subject: LONGACK
Cc:
 
person: Robert L. Fink
address: Lawrence Berkeley National Laboratory
phone: +1 510 486 5692
e-mail: RLFink@lbl.gov
e-mail: Fink@es.net
nic-hdl: AUTO-1
remarks: attempt 6
notify: rlfink@lbl.gov
changed: rlfink@lbl.gov 19970722
source: 6BONE
 

which generated the following reply:

Date: Tue, 22 Jul 1997 17:29:59 -0700
To: Bob Fink <RLFink@lbl.gov>
From: 6BONE Database Management <davidk@iprg.nokia.com>
Subject: Re: LONGACK
Reply-To: davidk@iprg.nokia.com
Precedence: bulk
 
Your e-mail:
 
> From: Bob Fink <RLFink@lbl.gov>
> Subject: LONGACK
> Date: Tue, 22 Jul 1997 17:29:55 -0700
> Msg-Id: <v03102835affb00dfcc31@[128.3.9.22]>
 
has been processed by the automatic update procedure.
 
Check out:
http://www.whois.6bone.net
for a full specification of the 'ipv6-site:' object and:
http://www.6bone.net/RIPE-registry.html
for generic help on how to use the database.
 
Diagnostic output follows:
 
------------------------------------------------------------------------
 
New OK: [person] RLF1-6BONE (Robert L. Fink)
 
 
No errors were found in your database update. Congratulations.
------------------------------------------------------------------------
Please use
 
<auto-dbm@whois.6bone.net> for fastest turnaround times.
 
Send a request with HELP in the 'Subject:' line of your message to
<auto-dbm@whois.6bone.net> for the most recent HELP file.
 
Sincerely Yours,
 
Latest and Greatest 6BONE Database Maintenance Department (Automatic Section)

 


How to update an existing object

This is done by sending in the whole new object. Probably the easiest way to this is to grab the old object, change/add the fields you want to change/add and add a new 'changed:' attribute to it.

- Get the template by using:

whois -h whois.6bone.net SearchString >TemporaryFile

Example:

	whois -h whois.6bone.net RLF1-6BONE

 

- Load the TemporaryFile in your favorite editor and make your changes/additions to the object.

Note the following if you are updating a person object with a new or different NIC handle:

Don't forget to delete the old person object since the database will treat a person object with the same name but without or different NIC handle as a different object. This means that the old and new object cannot be identified as the same object and the update request will be treated as a creation of an object instead of an update of the old object. The database will however recognize that a person object is an update if the only difference between the old and new object is that the old object didn't have a NIC handle.

 

- Add a changed: attribute. This attribute has the following syntax :

	changed: E-mailAddress Date

'E-mailAddress' is an RFC822 E-mail address specifying who made the change
and 'Date' is the date of the change in YYYYMMDD format.

 

- Send your message to <auto-dbm@whois.6bone.net>

 


How to delete an old object

This is done by sending in the whole object just like an update and adding a pseudo-attribute 'delete:' to it:

delete: Why I did the delete

Example:

	person:      Robert L. Fink
	address:     Lawrence Berkeley National Laboratory
	phone:       +1 510 486 5692
	e-mail:      RLFink@lbl.gov
	e-mail:      Fink@es.net
	nic-hdl:     RLF1-6BONE
	remarks:     attempt 12
	notify:      rlfink@lbl.gov
	changed:     rlfink@lbl.gov 19970724
	source:      6BONE	
	delete:      Since I hate all these E-mails from my fans.

The deletion is only accepted if the object in the message is exactly the same as the one in the database about to be deleted. Please be very careful with deleting person objects if you are not sure if the object is not referenced by other objects. You can find objects that reference acertain person by doing a '-i' query:

Example:

	$ whois -h whois.6bone.net -r -i contact,tech-c,admin-c,zone-c NIC-handle

 

If you're not sure that you were the only one referencing a certain person object, do NOT delete that person object. It will not hurt the database very much when there are some obsolete person objects. Authorization and notification for deletes are handled exactly the same way as for ordinary updates.


inet6num object

The 'inet6num:' object describes allocations/assignments of address space. Its formal description follows:

  
  inet6num:    [mandatory]  [single]    IPv6 prefix    
  netname:     [mandatory]  [single]    name of the TLA/SLA
  descr:       [mandatory]  [multiple]  description of TLA/SLA
  country:     [mandatory]  [multiple]  space separated list of ISO 
                                        country codes
  admin-c:     [mandatory]  [multiple]  NIC handle for administrative contact
  tech-c:      [mandatory]  [multiple]  NIC handle for technical contact
  rev-srv:     [optional]   [multiple]  nameserver for reverse domain,
                                        could be used by Bill or others
                                        to build the reverse zone!
  remarks:     [optional]   [multiple]  same as in ipv6-site objects
  notify:      [optional]   [multiple]  E-mail address
                                        gets notification message when 
                                        somebody changes the object
  mnt-by:      [optional]   [multiple]  pointer to maintainer object
                                        which describes who can update
                                        the object, everybody can do updates
                                        if you don't use this, however you
                                        can use the 'notify:' attribute to 
                                        make sure you know about the fact.
  mnt-lower:   [optional]   [multiple]  pointer to maintainer object                                        
                                        which describes who is allowed
                                        to *create* objects for SLAs
                                        part of the 'inet6num:' object
  changed:     [mandatory]  [multiple]  same as in ipv6-site objects
  source:      [mandatory]  [single]    equal to 6BONE

Hints and tips

- Section 'More documentation' below contains pointers to other documents on the RIPE database objects and their syntax.

- You can get the latest version of this document by using 'HELP' as your SearchString or sending an E-mail message with 'HELP' in the 'Subject:' line to <auto-dbm@whois.6bone.net>

- Separate objects from each other and from other text by using empty lines. Start and end your mail message with a blank line to be sure that mailheaders and signatures will not be attached to the objects!

- Check for existing objects in the database before submitting an object. You can use the keyword 'NEW' in the 'Subject:' line of your message if you want the database to only accept new objects or 'ASSIGN' for only accepting new 'inet6num:' objects.

- Be careful when deleting person objects. Other objects might have references to the person you want to delete. You can check for references by doing a

	whois -h whois.6bone.net -r -i person SearchString'

You best not delete them when you are not sure.

- Protection against other people changing your data is present in the database software. See http://www.ripe.net/ripe/docs/ripe-120.html for more details.

- You can protect objects itself by using a 'mnt-by:' field.

- You can protect against people creating (only creating) objects direct (one level) below in the hierarchy of an object type (only for 'inet6num:/domain:' objects) by using your maintainer in a 'mnt-lower:' attribute. The authorization method of this maintainer object will then be used upon creation of any object direct below the object that contains the 'mnt-lower:' attribute.

- Sending in 'domain:' objects doesn't mean that your domain is registered with a certain Top Level Domain. This is a 'For Your Information' object. Contact the the appropriate Top Level Domain maintainer for registering your domain.

- You can get a template of every object by giving the command:

	whois -h whois.6bone.net -t ObjectType

- To get a verbose explanation about your database object creation/update/deletion trial, put the string LONGACK somewhere in the subject line of your message.

- Send all your automatic updates to auto-dbm@whois.6bone.net.

- If you use 'mntner' objects, you will be allowed to create/change all your objects yourself, even the 'mntner' object. The creation of a 'mntner' object is automatic, but does have various oversight checks by a human which might cause a delay in the creation process, so be patient. However, they will be approved automatically within 8 hours if the human approval person is not available. See http://www.ripe.net/ripe/docs/ripe-120.html for more documentation on 'mntner' objects in general.

- tunnel or other long lines that don't fit on one line in your editor can be broken in more lines when a line continuation symbol ('\') is used at the end of the broken lines

- Should you have any more questions, please do not hesitate to ask questions of David Kessens <david@iprg.nokia.com>.


More documentation

- In the ripe document store (http://www.ripe.net/ripe/docs/index.html):

http://www.ripe.net/ripe/docs/ripe-120.html - On 'mntner' (maintainer) objects
http://www.ripe.net/ripe/docs/ripe-127.html - on Provider Independent vs Provider Aggregatable
                                              address space and the advisory attribute
http://www.ripe.net/ripe/docs/ripe-131.html - On 'advisory' attributes
http://www.ripe.net/ripe/docs/ripe-181.html - On routing policy database objects

- Older documents that still contain valuable information (mainly object templates) but also some other data and procedures that have been changed:

http://www.ripe.net/ripe/docs/ripe-049.html - Template for Domains
http://www.ripe.net/ripe/docs/ripe-119.html - Template for Networks and Persons

- Obsoleted documents, do NOT use/read:

   - ripe-050.{txt|ps} - Template for Networks
   - ripe-051.{txt|ps} - Template for Persons
   - ripe-081.{txt|ps} - On routing policy database objects
   - ripe-096.{txt|ps} - On Authorization and Notification
   - ripe-108.{txt|ps} - On 'guardian:' attributes
   - ripe-117.{txt|ps} - On 'guardian:' attributes
                         'guardian:' attributes are old and should not be
                         used anymore. They are still in the database for
                         backward compatibility.
   - ripe-126.{txt|ps} - RIPE handles and the 'status' attribute
   - ripe-130.{txt|ps} - On 'advisory' attributes


[Questions and comments] [Return to 6bone Home Page]