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>
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.
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
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>.
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.
- 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.
- No 24 by 7 helpdesk is available.
- There is no web-based form(s) for storing data.
To get the daily full gziped dump of the 6BONE registry database go to:
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.
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:
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.
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.
- 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:
which generated the following reply:
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>
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.
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
- 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>.
- 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]