RIPE NCC Database documentation update to support RIPE DB ver. 2.2.1 Marek Bukowy Janne Snabb Database Group RIPE NCC Document: RIPE-189 Date: January 14, 1999 Supplements: ripe-157 ABSTRACT This document is a supplement to the original introduction to the use of the RIPE Network Management Database (the "RIPE Database"), published as document RIPE-157. It contains description of new functionality implemented to the database software since version 2.0.4 to version 2.2.1 (current as of January 1999). Most of the recently implemented changes affect primarily advanced users. Questions and comments about this document should be sent to . Contents * Contents * Part I: Revised ripe-157 sections + 1 Database contents o 1.2 Description of the Database Objects # 1.2.1 The Domain Registry # 1.2.2 The Routing Registry # 1.2.3 Contact information # 1.2.4 Attributes used in all objects + 2 Database queries and updates o 2.1 Querying the RIPE Database # 2.1.3 WAIS support discontinued # 2.1.5 E-mail whois interface discontinued o 2.2 Creating, Updating and Deleting an Object # 2.2.1 Handling of the changed attribute # 2.2.2 Duplicate person object warning # 2.2.3 Notifications # 2.2.4 Referential integrity checks # 2.2.5 Refined parsing of subject line keywords o 2.3 Object Protection # 2.3.3 Authentication schemes # 2.3.4 Cross notification in the Routing Registry * Part II: New features of the RIPE database + 3 PGP authentication support o 3.1 Supplying public keys to the server o 3.2 Changes to the maintainer object o 3.3 Using authentication when sending updates o 3.4 Other PGP details o 3.5 Legal issues + 4 Referral mechanism for domains o 4.1 Domain name stripping o 4.2 Querying remote hosts o 4.3 Displaying local copy o 4.4 Backward compatibility + 5 Miscellaneous o 5.1 RIPE Copyright and related issues Introduction This is a supplement to the document 'RIPE NCC Database Documentation', published as ripe-157 with database version 2.0.4, available at http://www.ripe.net/docs/ripe-157.html . It contains description of new functionality implemented to the database software since version 2.0.4 to version 2.2.1 (current as of January 1999). The numbers in brackets state the version of the software in which a change has been introduced, eg. [since 2.2]. The sections 1.2 and 2.1 through 2.3 are meant to correspond to the original ripe-157 section numbers. The items that can be found there are those discussed in ripe-157, but now changed. For easy referencing, subsections of 1.2 have been also numbered. The changes to section 2.2 have been listed in subsections that do not correspond to the layout of the section in document ripe-157. Part II contains information that involves more than one section of the document ripe-157. Forward references to the new sections have been placed appropriately throughout part I. Please, send all comments and questions to . Acknowledgments The authors gratefully acknowledge the valuable comments by the following RIPE NCC staff: A.M.R. Magee, M. Kuehne, J.L.S. Damas, A. van Aarst. We would like also to thank J. Zsako, the author of the IETF draft 'PGP authentication for RIPE database updates', which was used as the basis for the implementation of PGP support. Part I: Revised ripe-157 sections Software Requirements The new whois client is available from RIPE NCC ftp site at ftp://ftp.ripe.net/tools/ripe-whois-tools-2.4.tar.gz . It reflects changes made to the RIPE database server. 1 Database contents 1.2 Description of the Database Objects The inetnum object inetnum: [mandatory] [single] [primary/look-up key] netname: [mandatory] [single] [look-up key] descr: [mandatory] [multiple] [ ] country: [mandatory] [multiple] [ ] admin-c: [mandatory] [multiple] [inverse key] tech-c: [mandatory] [multiple] [inverse key] rev-srv: [optional] [multiple] [inverse key] status: [mandatory] [single] [ ] remarks: [optional] [multiple] [ ] notify: [optional] [multiple] [inverse key] mnt-by: [optional] [multiple] [inverse key] mnt-lower: [optional] [multiple] [ ] changed: [mandatory] [multiple] [ ] source: [mandatory] [single] [ ] status attribute is now mandatory in inetnum objects. For details, please see document 'European Internet Registry Policies and Procedures' (ripe-185 at the time of writing, available at http://www.ripe.net/docs/ripe-185.html ). This document describes the policies and procedures applied when a Local Internet Registry assigns an address range. The rev-srv attribute has become an inverse look-up key. 1.2.1 The Domain Registry The domain object domain: [mandatory] [single] [primary/look-up key] descr: [mandatory] [multiple] [ ] admin-c: [mandatory] [multiple] [inverse key] tech-c: [mandatory] [multiple] [inverse key] zone-c: [mandatory] [multiple] [inverse key] nserver: [optional] [multiple] [inverse key] sub-dom: [optional] [multiple] [inverse key] dom-net: [optional] [multiple] [ ] remarks: [optional] [multiple] [ ] notify: [optional] [multiple] [inverse key] mnt-by: [optional] [multiple] [inverse key] mnt-lower: [optional] [multiple] [ ] refer: [optional] [single] [ ] changed: [mandatory] [multiple] [ ] source: [mandatory] [single] [ ] [since 2.2] The domain objects may now have a refer attribute, thus enabling the new referral mechanism . That mechanism is described in detail in section 4 of part II. The nserver and sub-dom attributes have become inverse look-up keys. 1.2.2 The Routing Registry [since 2.1.3] Two new attributes have been defined in aut-num and route objects to support cross-notification , added for tracking the announcements of routes. Please see section 2.3.4 later in part I for a description of that mechanism. The aut-num (Autonomous System, AS) object aut-num: [mandatory] [single] [primary/look-up key] as-name: [optional] [single] [ ] descr: [mandatory] [multiple] [ ] as-in: [optional] [multiple] [ ] as-out: [optional] [multiple] [ ] cross-nfy: [optional] [multiple] [inverse key] cross-mnt: [optional] [multiple] [inverse key] interas-in: [optional] [multiple] [ ] interas-out: [optional] [multiple] [ ] as-exclude: [optional] [multiple] [ ] default: [optional] [multiple] [ ] guardian: [optional] [single] [ ] admin-c: [mandatory] [multiple] [inverse key] tech-c: [mandatory] [multiple] [inverse key] remarks: [optional] [multiple] [ ] notify: [optional] [multiple] [inverse key] mnt-by: [mandatory] [multiple] [inverse key] changed: [mandatory] [multiple] [ ] source: [mandatory] [single] [ ] The route object route: [mandatory] [single] [primary/look-up key] descr: [mandatory] [multiple] [ ] origin: [mandatory] [single] [primary key] hole: [optional] [multiple] [ ] withdrawn: [optional] [single] [ ] comm-list: [optional] [multiple] [ ] advisory: [optional] [multiple] [ ] remarks: [optional] [multiple] [ ] cross-nfy: [optional] [multiple] [inverse key] cross-mnt: [optional] [multiple] [inverse key] notify: [optional] [multiple] [inverse key] mnt-by: [mandatory] [multiple] [inverse key] changed: [mandatory] [multiple] [ ] source: [mandatory] [single] [ ] 1.2.3 Contact information The role object The previous edition of the documentation contained a typographical error, marking role attribute as optional. The role attribute is mandatory. role: [mandatory] [single] [primary/look-up key] address: [mandatory] [multiple] [ ] phone: [optional] [multiple] [ ] fax-no: [optional] [multiple] [ ] e-mail: [mandatory] [multiple] [look-up key] trouble: [optional] [multiple] [ ] admin-c: [mandatory] [multiple] [inverse key] tech-c: [mandatory] [multiple] [inverse key] nic-hdl: [mandatory] [single] [primary/look-up key] remarks: [optional] [multiple] [ ] notify: [optional] [multiple] [inverse key] mnt-by: [optional] [multiple] [inverse key] changed: [mandatory] [multiple] [ ] source: [mandatory] [single] [ ] The key certificate object A new type of object has been added to support PGP authentication: key-cert: [mandatory] [single] [primary/look-up key] method: [generated] [single] [ ] owner: [generated] [multiple] [ ] fingerpr: [generated] [single] [ ] certif: [mandatory] [single] [ ] remarks: [optional] [multiple] [ ] notify: [optional] [multiple] [inverse key] mnt-by: [mandatory] [multiple] [inverse key] changed: [mandatory] [multiple] [ ] source: [mandatory] [single] [ ] The PGP support is described in section 3, part II of this document. 1.2.4 Attributes used in all objects Layout of changed and withdrawn attributes [since 2.1] The syntax for changed and withdrawn attributes has been changed to allow 4 digits in the year part of the date (8 digits in total rather than 6). [since 2.2] Six digit dates supplied by the user in the changed and withdrawn attributes are always first converted to 8 digit format. Existing 6 digit dates in customer data are left unchanged in the database. Layout of other dates [since 2.2] All the dates generated by the software are now in Y2K compliant YYYYMMDD format. Date comparison has been fixed to correctly compare two dates when one is in 6 digit format and another is in 8 digit format. This bug made it previously impossible to use 6 digit dates in the changed attribute any more if there was already one such attribute with date specified with 8 digits. Generally, all years specified with two digits are handled in the following way: nn >= 70 becomes 19nn nn < 70 becomes 20nn Thus, for example, year specified as 99 will be treated as 1999, and 69 will be understood as 2069. 2 Database queries and updates 2.1 Querying the RIPE Database A number of changes has been made to the options of RIPE whois service. Verbose template [since 2.1] Another option for displaying templates of objects has been implemented, aside of -t. whois -v shows a template with a description of the object and explanation of attributes. changed attribute [in 2.1.3] The default behaviour of the whois daemon was changed not to display the changed attributes in any objects as result of a query unless specifically requested to do so, by using the new -c whois query option. [since 2.2] That functionality has been reverted to the previous state, i.e. all lines containing changed attributes are displayed. The -c flag is accepted and quietly ignored. There is no way to suppress display of the changed attributes now. Referral support [since 2.2] The new whois client program understands the -R option used to partially suppress referral mechanism. Please see section 4 in part II for details. 2.1.3 WAIS support discontinued The support for WAIS full-text search has been discontinued in favour of Glimpse. The interface to the Glimpse full-text search of the RIPE database is available from the RIPE database home page at http://www.ripe.net/db/ . 2.1.5 E-mail whois interface discontinued The support for e-mail interface to whois service at has been discontinued. 2.2 Creating, Updating and Deleting an Object 2.2.1 Handling of the changed attribute [in 2.1.3] Comparison of objects which is performed when processing updates and deletions ignored the changed attributes. Thus, a deletion of an object supplied without changed attribute lines would be succesful, if other attributes matched. On the other hand, if an updated object was sent that differed from the existing version only in the changed attributes, no operation would be performed and a NOOP would be returned. [since 2.2.1] Now the original functionality has been restored. The changed attributes are again treated like any other attributes, so in order to delete an object, the object must be quoted with changed lines. 2.2.2 Duplicate person object warning [since 2.2] While creating a new person object, a check is performed if there exists another person object with the same name in the database. A warning is issued if such object is found. It is also checked if contact data in both objects are identical - address, phone and fax attributes are compared, case- and whitespace-insensitive. In case that another object contains identical data, it is mentioned in the warning text. Example Suppose that objects for the same person exist in the database, with nic-handles ABC123-RIPE and AB1234-RIPE, containing different information but assigned the same name. If you try to add a copy of ABC123-RIPE using AUTO-1 as a nic-handle (and thus requesting creation of a new object), the following warning will be issued: WARNING: Other person object(s) with the same name exists: WARNING: ABC123-RIPE(same contact data too) WARNING: AB1234-RIPE 2.2.3 Notifications [since 2.1] Whenever an object is created with a notify attribute, notification is sent to that address, as well as the usual acknowledgement. [since 2.1] New concise format for acknowledgements and notifications has been introduced. All acknowledgments are now of type LONGACK, so specifying LONGACK in subject line of the e-mail message is no longer necessary. 2.2.4 Referential integrity checks [since 2.2] New checks have been implemented to ensure integrity of the database. While creating or modifying an object which has references to other objects in its admin-c, tech-c, zone-c, cross-nfy, mnt-by, cross-mnt, or origin attributes, these referenced objects are checked to see if they exist in the database. The update is refused if reference to nonexisting object is found. While deleting person, role, mntner or aut-num object a reverse lookup is performed to find objects referencing the object being deleted. If any objects are found that reference the object in question, then the delete operation is refused and an error message is issued stating the number and types of objects referencing the object being deleted. Currently, only the RIPE database is checked for references - other sources (RADB etc) are not searched. Object reordering principle If an update contains one or more AUTO-n nic-handles, a reordering of objects takes place to allow using those nic-handles as references in other objects of the same update. The objects are then processed in the following order: 1. objects that do not contain AUTO-n nic-handles at all 2. person objects to be created with nic-hdl: AUTO-n 3. other objects containing AUTO-n references Replacing a contact person with a new one Therefore, the correct way for replacing a contact person using the AUTO-n feature is to send in two messages. 1. The first message: o creating the new person object with AUTO-1, o updating the object referencing the newly created person by AUTO-1. 2. The second message: o deleting the old person object. The messages must be processed in the correct order. The easiest way to ensure that is to wait until the notification of first update is returned before sending the second message. Replacing a contact person with an existing one In case that no AUTO-n are used, eg. when no new person objects are being created, the reordering principle does not apply. The update can be performed by sending only one message. However, the deletion(s) still have to be placed at the end of the message. 2.2.5 Refined parsing of subject line keywords The code for parsing subject lines of mail messages sent to has been substantially changed. [since 2.1] A minor bug was fixed, thus enabling the intended way of parsing subject line keywords only if they appeared as complete words, eg. 'new object' and not 'My Apple Newton'. Also made to be case-insensitive. [since 2.2] The code for parsing subject line keywords has been fully rewritten. Keywords will trigger options ONLY if they are alone in subject line, i.e. no non-keyword words are found. Otherwise, the whole subject line will be ignored and a warning message will be issued. Recognized keywords The following keywords are recognized: NEW make sure the object does not exist HELP send help text HOWTO send (the same) help text ASSIGN (*) make sure the inetnum does not exist LONGACK (**) send long acknowledgment (*) ASSIGN is now obsolete. This functionality has been dropped, since a general NEW keyword exists. If ASSIGN is found in subject line, it will be ignored and a warning message will be issued, but all other valid keywords will be processed. (**) LONGACK is now the format of all acknowledgments, so the keyword is silently ignored. Multiple keywords In addition, to prevent ambiguity when multiple keywords are specified, a list of allowed combinations of keywords has been defined. If the combination of recognized keywords is not one of: ASSIGN NEW ASSIGN LONGACK ASSIGN NEW LONGACK LONGACK NEW HELP HOWTO then the whole subject line will be ignored and a warning message will be issued. Examples of keyword usage If a mail message is sent to saying Subject: NEW person object for John then the following warning will be issued: Warning: unknown keywords found in subject line: person object for John Thus, all keywords in subject line were ignored. If a mail message contains: Subject: NEW LONGACK ASSIGN then the following warning will be issued: Warning: obsolete keyword ASSIGN found in subject line was ignored. There will be no warning for LONGACK, but it will not change the layout of the acknowledgment in any way. The NEW functionality will be activated. Finally, if a mail message contains: Subject: NEW HELP and no objects in the message body, then the following warnings will be issued: *** No objects were found *** Warning: this combination of keywords in subject line is not allowed. Thus, all keywords in subject line were ignored. 2.3 Object Protection 2.3.3 Authentication schemes A new scheme has been added for PGP support. The valid schemes are now: NONE, MAIL-FROM, CRYPT-PW and PGPKEY-. Please note that PGPKEY differs from the convention used with schemes MAIL-FROM and CRYPT-PW in that the first blank-delimited word already contains the authentication information, so instead of saying eg. auth: CRYPT-PW for PGP you say auth: PGPKEY-. See section 3 in part II for details on using PGP. 2.3.4 Cross notification in the Routing Registry [since 2.1.3] A new feature has been added to track the registration and removal of route objects which overlap existing routes. Although it does not prevent unintended changes, it still provides some protection of data by notifying administrators of affected routes. Feedback to the sender Whenever a route object is added to the routing registry, a check is done to see if the given prefix overlaps with that in any other route object in the RR. If so, a notification will be sent to the sender of the route object. This will always happen and is not dependent on any notification attributes described below. Feedback to other parties Two new optional, multiple attributes called cross-nfy and cross-mnt have been added to the route and aut-num objects. Both attributes contain a contact reference, the difference being that cross-nfy contains a NIC-handle pointing to a person or role object, the email address of which will be used for notification; cross-mnt contains a mntner ID referencing the maintainer to be notified. These attributes are used to request notifications about the addition or removal of route objects which overlap the prefixes of the already registered route objects. The cross-nfy or cross-mnt attributes may be used in: route object - to get a notification for any overlaps with the prefix specified in that route object; aut-num object - to get a notification for overlaps with any of the prefixes announced in route objects in which the given AS number is specified in the origin attribute. A notification will be sent to mailbox(es) listed in cross-nfy and mailbox(es) listed in the mnt-nfy attributes of the maintainers referenced by the cross-mnt whenever an overlapping route is added or removed. In case of an intentional overlap, the former will indicate the introduction of multi-homing, and the latter, its cancellation. It is expected, however, that the former will often indicate a mistake, and the latter its correction. Either way, it will be useful to know about the registration and elimination of overlapping announcements. Currently, only RIPE database is searched for overlaps. Mirror and remote databases, such as RADB, are not checked. Example of cross-notification Supposing that the following aut-num, mntner and route objects exist in the database: aut-num: AS3333 ....... cross-mnt: RIPE-NCC-MNT mntner: RIPE-NCC-MNT ....... mnt-nfy: as-maint@ripe.net route: 193.0.0.0/24 ....... origin: AS3333 If an update containing a route object, even originating from some other AS, but overlapping the 193.0.0.0/24 prefix, is sent to : route: 193.0.0.128/25 ....... origin: AS12345 then a notification is sent to , because the specified route overlaps with one of the routes originating from AS3333. Part II: New features of the RIPE database 3 PGP authentication support [since 2.2] Support for authentication with PGP signatures has been added. This is the most secure way of protecting objects from un-authorised modification. The current implementation supports DSS/Diffie-Hellman and RSA algorithms. 3.1 Supplying public keys to the server A new key-cert object has been introduced to allow supplying of PGP public keys and storing them on the server. The object template has the following attributes: key-cert: [mandatory] [single] [primary/look-up key] method: [generated] [single] [ ] owner: [generated] [multiple] [ ] fingerpr: [generated] [single] [ ] certif: [mandatory] [single] [ ] remarks: [optional] [multiple] [ ] notify: [optional] [multiple] [inverse key] mnt-by: [mandatory] [multiple] [inverse key] changed: [mandatory] [multiple] [ ] source: [mandatory] [single] [ ] The key-cert attribute is defined as PGPKEY- where is the PGP key ID of the public key included in the object in the usual eight digit hex format without "0x" prefix. The public key should be supplied in the certif attribute. Usually this is easily done by exporting the key from your local key ring in ASCII armored format and prepending each line of the key with a string "certif:". Remember to include all the lines of the exported key; also the begin and end markers and the empty line which separates the header from the key body. Please note that RPSL line continuation (whitespace or plus at the beginning of a continuation line) is not currently supported and thus can't be used when supplying key-cert objects. The attributes marked as generated (method, owner and fingerpr) are generated by the software and they can be omitted by the user when supplying a key. The server always derives these attributes from the actual key and ignores user input. The other attributes (remarks, notify, mnt-by, changed and source) have their usual meanings as defined in RIPE-157 . This is an example of a valid key-cert object as it might appear in the database: key-cert: PGPKEY-4B8AE00D method: PGP owner: Joe User fingerpr: 9D 82 4B B8 38 56 AE 12 BD 88 73 F7 EF D3 7A 92 certif: ---BEGIN PGP PUBLIC KEY BLOCK--- certif: Version: 2.6.3ia certif: certif: mQA9AzZizeQAAAEBgJsq2YfoInVOWlLxalmR14GlUzEd0WgrUH9iXjZ certif: a/uqWiLnvN59S4rgDQAFEbQeSm9lIFRoZSBVc2VyIDxqb2VAZXhhbXB certif: iQBFAwUQNmLN5ee83n1LiuANAQFOFQGAmowlUYtF+xnWBdMNDKBiOSy certif: YvpKr05Aycn8Rb55E1onZL5KhNMYU/gd certif: =nfno certif: ---END PGP PUBLIC KEY BLOCK--- mnt-by: EXAMPLE-MNT changed: joe@example.net 19981117 source: TEST Please note that this example also shows the attributes which are automatically generated by the software. Only key-cert, certif, mnt-by, changed and source need to be specified when adding a new object. If you do not already have a maintainer object to be used in the mandatory mnt-by attribute, you need to create a new mntner with some other authentication method (for example CRYPT-PW), then create the key-cert object which references the maintainer just created, and after that you can change the maintainer to use PGP authentication with the key-cert object as an authentication key. These key-cert objects can be queried for in the usual ways with whois by asking for a specific key as defined in the key-cert attribute. The RIPE NCC does not guarantee that a key belongs to any specific entity; we are not a certificate authority. Anyone can supply any public keys with any ownership information to the database and these keys can be used to protect other objects by checking that the update comes from someone who knows the corresponding secret key. Please also note that signatures in the keys are ignored. We kindly ask you to limit the number of key signatures to a minimum. 3.2 Changes to the maintainer object A new value for the auth attribute of mntner object has been introduced. PGP authentication can be activated by setting auth to PGPKEY- where is the PGP key ID to be used for authentication. This string is the same one which is used in the corresponding key-cert object's key-cert attribute. Remember that if you have multiple auth attributes in a maintainer or if you have multiple mnt-by attributes in an object, all possible authentication methods are combined by a logical OR which means that any single one of the specified authentication methods can be used. There is no security advantage in using PGP authentication with an object which can be updated also with MAIL-FROM or NONE authentication. This is an example of a valid maintainer object which uses PGP authentication: mntner: EXAMPLE-MNT descr: Example maintainer admin-c: JOE1-RIPE upd-to: joe@example.net auth: PGPKEY-4B8AE00D mnt-by: EXAMPLE-MNT changed: joe@example.net 19981117 source: RIPE 3.3 Using authentication when sending updates PGP signed updates can be sent to the server simply by signing the body of the message which contains the updates and sending it to the server. Remember to use ASCII armoring. Multiple PGP-signed and non-signed parts can be supplied in a single update message; each part gets processed separately. You can supply several objects which are protected by different PGP keys in a single update message, but you cannot use any "magic" references like AUTO-1 nic-handles between these parts. Also, the software doesn't currently support recursive PGP decoding. If you sign an already signed message, only the outermost PGP block gets checked. Please note that there is no MIME support in the current DB software. It just ignores MIME headers and feeds the body of the message to the update engine without any decoding. Thus, you cannot currently use PGP/MIME multipart/signed messages (as specified in RFC 2015) to send updates. The signature must be supplied in the traditional way by signing the text file which contains the objects. PGP parts with invalid signatures are rejected in all cases, even if the object is not protected by PGP authentication. 3.4 Other PGP details General information about PGP is available at http://www.pgpi.com/ . This implementation is based on the specification done by the RIPE Database Security Task Force, which is also available as IETF draft for possible use in the IETF's RPS working group authentication procedures. 3.5 Legal issues Please note that encryption technology is subject to legal restrictions in some countries. PGP signatures are based on public key encryption. Consult a lawyer if you are uncertain about your local situation. 4 Referral mechanism for domains [since 2.2] Since the RIPE database does not contain authoritative data for domains, a mechanism has been implemented to provide redirection of domain name queries to appropriate database servers, if a domain name is not found in the RIPE database itself. The referral mechanism is implemented via new attribute refer in the domain object. That attribute is single and optional: refer: [] where indicates which style of whois service is provided: RIPE whoisd software understanding RIPE options; InterNIC InterNIC whoisd software; SIMPLE other service understanding query of the form . is the DNS name of the whois service. is the TCP port number (optional: 43 is the default). 4.1 Domain name stripping When no domain object is found in the database with the name specified in the query, the domain name is stripped towards higher level domains (xxx.yyy.zzz becoming yyy.zzz) and the lookup is repeated until a domain object is found or search string becomes empty. 4.2 Querying remote hosts When a higher level domain object is found and it contains a refer attribute, the proper referral mechanism is invoked. A whois query is made to the referred host and its answer is displayed, preceeded by a note that this data does not come from the RIPE database but from a remote server. When the query to the remote host fails, an error message is given. 4.3 Displaying local copy If requested specifically by a new -R option to whois client, the database still strips the domain name until it finds a matching object, but shows this local object instead of handing the query over to the remote server. 4.4 Backward compatibility Temporarily, the old behaviour of the database software is still provided for domains falling under higher level domains that do not set their domain objects to support referral. If the domain object found does not contain a refer attribute, then the query result is displayed just as it was in the previous software version: % No entries found for the selected source(s). 5 Miscellaneous 5.1 RIPE Copyright and related issues [since 2.1] A copyright message has been added to all source files to better assert the rights of the RIPE community, but the copyright message itself has not changed. Setting up a near-real-time mirror or a web-interface to the RIPE database requires signing the Acceptable Use Policy agreement. Please, contact for more information. We do take reports on abuse of the data in the RIPE database seriously. If you have complaints or suspicions, please contact . The queries made to the database are constantly monitored. In case a suspicious activity is seen, queries originating from the abuser will be blocked. _____________________________________________________________