[4] Newton, A., "Cross Registry Internet Service Protocol (CRISP)
Requirements", RFC 3707, February 2004.
11.2. Informative References
[5] World Wide Web Consortium, "Extensible Markup Language (XML)
1.0", W3C XML, February 1998,
<http://www.w3.org/TR/1998/REC-xml-19980210>.
[6] World Wide Web Consortium, "Namespaces in XML", W3C XML
Namespaces, January 1999,
<http://www.w3.org/TR/1999/REC-xml-names-19990114>.
[7] World Wide Web Consortium, "XML Schema Part 2: Datatypes",
W3C XML Schema, October 2000,
<http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/>.
[8] World Wide Web Consortium, "XML Schema Part 1: Structures",
W3C XML Schema, October 2000,
<http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/>.
[9] International Organization for Standardization, "Codes for the
representation of names of countries, 3rd edition", ISO Standard
3166, August 1988.
Appendix A. Privacy Considerations
Internet address registries store contact details and other
information that may be abused. The XML Schema defined in this
document purposefully makes the inclusion of any data in a response
an option that is dependent on the needs and policies of the Internet
address registry serving the data.
Combined with the authentication mechanisms of an IRIS transfer
protocol, Internet address registries may derive authorization
policies to meet their needs without compromising general privacy
policies. As an example, the constituents of an Internet address
registry may create a policy whereby NOC contact email addresses are
only to be available to members of the Internet address registry. To
institute this policy, the XML elements for NOC contacts will never
appear in a response to a user that has not been authenticated to be
a member of the Internet address registry.
Appendix B. Example Requests and Responses
The examples in this section use the string "C:" to denote data sent
by a client to a server and the string "S:" to denote data sent by a
server to a client.
B.1. Example 1
The following is an example of entity lookup for the contact-handle
of ’JN560-RIR1’.
C: <?xml version="1.0"?>
C: <request xmlns="urn:ietf:params:xml:ns:iris1"
C: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
C: xsi:schemaLocation="urn:ietf:params:xml:ns:iris1 iris.xsd" >
C:
C: <searchSet>
C:
C: <lookupEntity
C: registryType="urn:ietf:params:xml:ns:areg1"
C: entityClass="contact-handle"
C: entityName="JN560-RIR1" />
C:
C: </searchSet>
C:
C: </request>
S: <?xml version="1.0"?>
S: <iris:response
S: xmlns:iris="urn:ietf:params:xml:ns:iris1"
S: xmlns="urn:ietf:params:xml:ns:areg1"
S: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
S:
S: <iris:resultSet>
S: <iris:answer>
S:
S: <contact
S: authority="rir.example.net"
S: registryType="areg1"
S: entityClass="contact-handle"
S: entityName="JN560-RIR1">
S:
S: <contactHandle>JN560-RIR1</contactHandle>
S:
S: <commonName>Bob Smurd</commonName>
S:
S: <organization
S: iris:referentType="organization"
S: authority="rir.example.net"
S: registryType="areg1"
S: entityClass="organization-id"
S: entityName="ORGX">
S: <iris:displayName
S: language="en">
S: Organization X, Inc.
S: </iris:displayName>
S: </organization>
S:
S: <phone>
S: <number>+1-703-555-5555</number>
S: <type>office</type>
S: </phone>
S:
S: </contact>
S:
S: </iris:answer>
S: </iris:resultSet>
S:
S: </iris:response>
Figure 11: Example 1
B.2. Example 2
The following example shows a query to find the IP networks
containing a given address.
C: <?xml version="1.0"?>
C: <request xmlns="urn:ietf:params:xml:ns:iris1"
C: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
C:
C: <searchSet>
C: <findNetworksByAddress
C: xmlns="urn:ietf:params:xml:ns:areg1">
C:
C: <ipv4Address>
C: <start>192.0.2.134</start>
C: </ipv4Address>
C:
C: <specificity
C: allowEquivalences="true"
C: >one-level-less-specific</specificity>
C:
C: </findNetworksByAddress>
C: </searchSet>
C:
C: </request>
S: <?xml version="1.0"?>
S: <iris:response xmlns:iris="urn:ietf:params:xml:ns:iris1"
S: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
S:
S: <iris:resultSet>
S: <iris:answer>
S: <areg:ipv4Network
S: xmlns="urn:ietf:params:xml:ns:areg1"
S: xmlns:areg="urn:ietf:params:xml:ns:areg1"
S: xsi:schemaLocation="urn:ietf:params:xml:ns:areg1 areg.xsd"
S: authority="rir.example.net" registryType="areg1"
S: entityClass="ipv4-handle" entityName="NET-192-0-2-128-1" >
S: <networkHandle>
S: NET-192-0-2-128-1
S: </networkHandle>
S: <name>
S: UU-192-0-2-D6
S: </name>
S: <startAddress>
S: 192.0.2.128
S: </startAddress>
S: <endAddress>
S: 192.0.2.255
S: </endAddress>
S: <networkType>reassigned</networkType>
S: <organization
S: iris:referentType="areg:organization"
S: authority="rir.example.net" registryType="areg1"
S: entityClass="organization-id" entityName="ORGX">
S: <iris:displayName language="en">
S: Organization X, Inc.
S: </iris:displayName>
S: </organization>
S: <parent
S: iris:referentType="areg:ipv4Network"
S: authority="rir.example.net" registryType="areg1"
S: entityClass="ipv4-handle" entityName="NET-192-0-2-0-1"/>
S: <techContact
S: iris:referentType="areg:contact"
S: authority="rir.example.net" registryType="areg1"
S: entityClass="contact-handle" entityName="JN560-RIR1">
S: <iris:displayName language="en">
S: Smurd, Bob
S: </iris:displayName>
S: </techContact>
S: <registrationDate>
S: 2002-11-18T00:00:00-00:00
S: </registrationDate>
S: <lastUpdatedDate>
S: 2002-11-18T00:00:00-00:00
S: </lastUpdatedDate>
S: <iris:seeAlso
S: iris:referentType="ANY"
S: authority="rir.example.net" registryType="areg1"
S: entityClass="local" entityName="portability-notice"/>
S: </areg:ipv4Network>
S: <areg:ipv4Network
S: xmlns="urn:ietf:params:xml:ns:areg1"
S: xmlns:areg="urn:ietf:params:xml:ns:areg1"
S: xsi:schemaLocation="urn:ietf:params:xml:ns:areg1 areg.xsd"
S: authority="rir.example.net" registryType="areg1"
S: entityClass="ipv4-handle" entityName="NET-192-0-2-0-2" >
S: <networkHandle>
S: NET-192-0-2-0-2
S: </networkHandle>
S: <name>
S: UU-192-0-2-0-D5
S: </name>
S: <startAddress>
S: 192.0.2.0
S: </startAddress>
S: <endAddress>
S: 192.0.2.255
S: </endAddress>
S: <networkType>direct allocation</networkType>
S: <nameServer>auth03.ns.example.org</nameServer>
S: <nameServer>auth00.ns.example.org</nameServer>
S: <organization
S: iris:referentType="areg:organization"
S: authority="rir.example.net" registryType="areg1"
S: entityClass="organization-id" entityName="ORGY">
S: <iris:displayName language="en">
S: Organization Y, Inc.
S: </iris:displayName>
S: </organization>
S: <parent
S: iris:referentType="areg:ipv4Network"
S: authority="rir.example.net" registryType="areg1"
S: entityClass="ipv4-handle" entityName="NET-192-0-2-0-1"/>
S: <techContact
S: iris:referentType="areg:contact"
S: authority="rir.example.net" registryType="areg1"
S: entityClass="contact-handle" entityName="OA12-RIR1" />
S: <registrationDate>
S: 2000-10-27T00:00:00-00:00
S: </registrationDate>
S: <lastUpdatedDate>
S: 2002-02-13T00:00:00-00:00
S: </lastUpdatedDate>
S: <iris:seeAlso
S: iris:referentType="ANY"
S: authority="rir.example.net" registryType="areg1"
S: entityClass="local" entityName="portability-notice"/>
S: </areg:ipv4Network>
S: </iris:answer>
S: <iris:additional>
S: <iris:simpleEntity
S: authority="rir.example.net" registryType="areg1"
S: entityClass="local" entityName="portability-notice" >
S: <iris:property name="portability" language="en">
S: Addresses within this block are non-portable.
S: </iris:property>
S: </iris:simpleEntity>
S: </iris:additional>
S: </iris:resultSet>
S:
S: </iris:response>
Figure 12: Example 2
Appendix C. Specificity Examples
This section includes examples to clarify specificity options for
network and ASN searches.
A |------------------| 192.0.2.0 - 192.0.2.15
B |------------------| 192.0.2.16 - 192.0.2.31
C |--------------| 192.0.2.0 - 192.0.2.9
D |---------------| 192.0.2.16 - 192.0.2.30
E |---------------| 192.0.2.16 - 192.0.2.30
F |--------| 192.0.2.0 - 192.0.2.5
G |----| 192.0.2.6 - 192.0.2.9
Contents of the DB
Figure 13: Specificity Example 1
A |------------------| 192.0.2.0 - 192.0.2.15
B |------------------| 192.0.2.16 - 192.0.2.31
C |--------------| 192.0.2.0 - 192.0.2.9
D |---------------| 192.0.2.16 - 192.0.2.30
E |---------------| 192.0.2.16 - 192.0.2.30
F |--------| 192.0.2.0 - 192.0.2.5
G |----| 192.0.2.6 - 192.0.2.9
Query|- - - - - - - | 192.0.2.0 - 192.0.2.9
Exact match (1)
Result: C
Figure 14: Specificity Example 2
A |------------------| 192.0.2.0 - 192.0.2.15
B |------------------| 192.0.2.16 - 192.0.2.31
C |--------------| 192.0.2.0 - 192.0.2.9
D |---------------| 192.0.2.16 - 192.0.2.30
E |---------------| 192.0.2.16 - 192.0.2.30
F |--------| 192.0.2.0 - 192.0.2.5
G |----| 192.0.2.6 - 192.0.2.9
Query|- - - - - - - - | 192.0.2.0 - 192.0.2.12
Exact match (2)
Result: None
Figure 15: Specificity Example 3
A |------------------| 192.0.2.0 - 192.0.2.15
B |------------------| 192.0.2.16 - 192.0.2.31
C |--------------| 192.0.2.0 - 192.0.2.9
D |---------------| 192.0.2.16 - 192.0.2.30
E |---------------| 192.0.2.16 - 192.0.2.30
F |--------| 192.0.2.0 - 192.0.2.5
G |----| 192.0.2.6 - 192.0.2.9
Query|- - - - - - - - - | 192.0.2.0 - 192.0.2.15
All more specifics, allowEquivalences = false
Result: C, F, & G (A is not included; exact match)
Figure 16: Specificity Example 4
A |------------------| 192.0.2.0 - 192.0.2.15
B |------------------| 192.0.2.16 - 192.0.2.31
C |--------------| 192.0.2.0 - 192.0.2.9
D |---------------| 192.0.2.16 - 192.0.2.30
E |---------------| 192.0.2.16 - 192.0.2.30
F |--------| 192.0.2.0 - 192.0.2.5
G |----| 192.0.2.6 - 192.0.2.9
Query|- - - - - - - - - | 192.0.2.0 - 192.0.2.15
All more specifics, allowEquivalences = true
Result: A, C, F, & G (A is included; exact match)
Figure 17: Specificity Example 5
A |------------------| 192.0.2.0 - 192.0.2.15
B |------------------| 192.0.2.16 - 192.0.2.31
C |--------------| 192.0.2.0 - 192.0.2.9
D |---------------| 192.0.2.16 - 192.0.2.30
E |---------------| 192.0.2.16 - 192.0.2.30
F |--------| 192.0.2.0 - 192.0.2.5
G |----| 192.0.2.6 - 192.0.2.9
Query|- - - - - - - - - | 192.0.2.0 - 192.0.2.15
One level more specifics, allowEquivalences = false
Result: C
Figure 18: Specificity Example 6
A |------------------| 192.0.2.0 - 192.0.2.15
B |------------------| 192.0.2.16 - 192.0.2.31
C |--------------| 192.0.2.0 - 192.0.2.9
D |---------------| 192.0.2.16 - 192.0.2.30
E |---------------| 192.0.2.16 - 192.0.2.30
F |--------| 192.0.2.0 - 192.0.2.5
G |----| 192.0.2.6 - 192.0.2.9
Query|- - - - - - - - - | 192.0.2.0 - 192.0.2.15
One level more specifics, allowEquivalences = true
Result: A
Figure 19: Specificity Example 7
A |------------------| 192.0.2.0 - 192.0.2.15
B |------------------| 192.0.2.16 - 192.0.2.31
C |--------------| 192.0.2.0 - 192.0.2.9
D |---------------| 192.0.2.16 - 192.0.2.30
E |---------------| 192.0.2.16 - 192.0.2.30
F |--------| 192.0.2.0 - 192.0.2.5
G |----| 192.0.2.6 - 192.0.2.9
Query |- - | 192.0.2.6 - 192.0.2.9
All less specifics, allowEquivalences = true
Result: A, C, & G (G is included; exact match)
Figure 20: Specificity Example 8
A |------------------| 192.0.2.0 - 192.0.2.15
B |------------------| 192.0.2.16 - 192.0.2.31
C |--------------| 192.0.2.0 - 192.0.2.9
D |---------------| 192.0.2.16 - 192.0.2.30
E |---------------| 192.0.2.16 - 192.0.2.30
F |--------| 192.0.2.0 - 192.0.2.5
G |----| 192.0.2.6 - 192.0.2.9
Query |- - | 192.0.2.6 - 192.0.2.9
All less specifics, allowEquivalences = false
Result: A & C (G is not included; exact match)
Figure 21: Specificity Example 9
A |------------------| 192.0.2.0 - 192.0.2.15
B |------------------| 192.0.2.16 - 192.0.2.31
C |--------------| 192.0.2.0 - 192.0.2.9
D |---------------| 192.0.2.16 - 192.0.2.30
E |---------------| 192.0.2.16 - 192.0.2.30
F |--------| 192.0.2.0 - 192.0.2.5
G |----| 192.0.2.6 - 192.0.2.9
Query |- - | 192.0.2.6 - 192.0.2.9
One level less specifics, allowEquivalences = true
Result: G (the exact match)
Figure 22: Specificity Example 10
A |------------------| 192.0.2.0 - 192.0.2.15
B |------------------| 192.0.2.16 - 192.0.2.31
C |--------------| 192.0.2.0 - 192.0.2.9
D |---------------| 192.0.2.16 - 192.0.2.30