返回首页

RFC 4698 - IRIS: An Address Registry (areg) Type for the Int(2)

时间:2006-11-02 来源: 作者: 点击:
updated. oTheiris:seeAlsoelementcontainsanentityreferencespecifying anentitythatisindirectlyassociatedwiththisresultobject. Thiselementcanbeusedforcommentsandremarks. 3.3.Supportforiris:lookupEntity
  
      updated.

   o  The <iris:seeAlso> element contains an entity reference specifying
      an entity that is indirectly associated with this result object.
      This element can be used for comments and remarks.

3.3.  Support for <iris:lookupEntity>

   The following types of entity classes are recognized by the
   <lookupEntity> query of IRIS for this registry:

   o  ipv4-handle - a registry-unique identifier specifying an IPv4
      network.  Queries with these names will yield a <ipv4Network>
      result.

   o  ipv6-handle - a registry-unique identifier specifying an IPv6
      network.  Queries with these names will yield a <ipv6Network>
      result.

   o  as-handle - a registry-unique identifier specifying an autonomous
      system.  It yields a result of <autonomousSystem>.

   o  contact-handle - a registry-unique identifier of a contact.
      Yields a result of <contact>.

   o  organization-id - a registry-unique identifier of an organization.
      Yields a result of <organization>.

   o  The entity names of these entity classes are case insensitive.

4.  Terminology for Nesting of Networks

   The following terms are defined for describing the nesting of IP
   networks.

   o  More specific: Given two networks, A and B, A is more specific
      than B if network B includes all space of network A, and if
      network B is larger than network A.

   o  Less specific: Opposite of more specific.  The network B is less
      specific than network A if network A’s space is completely
      included in network B and if network A is smaller than network B.

   o  Most specific: Given a set of networks, the network or networks
      that are more specific than zero or more specific of the other
      networks in the set, and that are not less specific of any of the
      networks in the set.

   o  Least specific: Given a set of networks, the network or networks
      that are not more specific to any of the other networks in the
      set.

   Examples:

   +-------------------------------------------------------+
   |                                                       |
   | Given the networks A, B, C, and D as follows:         |
   |                                                       |
   |    A    |---------------------------------|           |
   |    B                    |-----------------|           |
   |    C                       |---------|                |
   |    D      |-------|                                   |
   |                                                       |
   |                                                       |
   | Network A is less specific than B, C, and D.          |
   | Network B is more specific than A.                    |
   | Among these four networks, A is the least specific,   |
   |   and C and D are the most specific.                  |
   |                                                       |
   +-------------------------------------------------------+

                        Figure 1: Nesting Example 1

   +-------------------------------------------------------+
   |                                                       |
   | Given networks E, F, and G:                           |
   |                                                       |
   |    E   |----------|                                   |
   |    F                |--------------|                  |
   |    G     |---|                                        |
   |                                                       |
   | Networks E and F are least specific networks.         |
   | Networks F and G are most specific networks.          |
   |                                                       |
   +-------------------------------------------------------+

                        Figure 2: Nesting Example 2

   The following definitions assume that there are no overlapping
   networks in the database.  A network overlaps with another one when
   they encompass each other’s space partially.  Examples:

     A   |---------------------|
     B       |----------------------------|

                        Figure 3: Nesting Example 3

   Here, networks A and B are overlapping networks because network A
   encompasses network B’s space partially, and network B encompasses
   network A’s space partially.

     C   |------------------|
     D   |---------|

                        Figure 4: Nesting Example 4

   Here, networks C and D are NOT overlapping networks because even if
   network D encompasses a part of network C’s space, network C does not
   encompass network D’s space partially (it encompasses network D
   completely).

   The address directory can contain more than one network with the same
   range.  They are said to be exact match networks.

   The parent/child relationship in the internet address directory is
   unidirectional.  That is, there might also be parent/child
   relationship with exact match networks, but a network cannot be a
   parent and a child of its exact match network at the same time.

   The following are nested matching searches:

   (1) all less specifics search: Given a range, find all the networks
       that contain that range (i.e., all less specifics and exact
       matches).  These networks are the networks that fulfill the
       following condition:

   (start(network) <= start(search)) AND (end(network) >= end(search))

   (2) one-level less specifics search: Given a range, find only the
       most specific network that contains that range (could be multiple
       networks, but usually single).  This is the set of networks from
       (1), with the provision that no network in the return set is
       contained by any other network in the set.  If there are exact
       match networks in the set from (1), they both must appear in the
       result set.  The result set may contain a network that is exact
       match to the query range, if the search allows exact matches.

       A  |-------------------------------|
       B  |---------------------------|
       C            |-------|
       Query  |- - - - - - - - - -|

                          Figure 5: Nesting Example 5

       In the above case, the query must return B.

       A  |-------------------------------|
       B  |---------------------------|
       C  |---------------------------|
       D            |-------|
       Query  |- - - - - - - - - -|

                          Figure 6: Nesting Example 6

       Here, the query must return B and C (they are exact matches of
       each other).

       A  |-------------------------------|
       B  |---------------------------|
       C  |---------------------------|
       D            |-------|
       Query        |- - - -|

                          Figure 7: Nesting Example 7

       Here, the query must return B and C (they are exact matches of
       each other).  D must not be in the result set, as it is exact
       match to the query if the search specifies that exact matches of
       query range should not appear in the result set.

       In Figure 7, if the search specifies that exact matches to the
       query range are allowed in the result set, then only D must be
       returned.

   (3) all more specifics search: Given a range, find all the networks
       that are fully within that range.  The search contains a flag
       that specifies if an exact match to the query range should appear
       in the result set or not.  Thus, the result set may or may not
       contain the exact match to the query range, as instructed by the
       search.

   (start(network) >= start(search)) AND (end(network) <= end(search))

   (4) one-level more specifics search: Given a range, find only the
       least specific networks that are fully within that range.  This
       is the set of networks from (3), with the provision that no
       network in the return set contains any other network in the
       return set.

       Query   |- - - - - - - - - - - - - - - - - - - - - - -|

       A       |------------------|
       B                           |-------------------------|
       C           |--------|
       D                                      |---------|

                          Figure 8: Nesting Example 8

   (5) exact match search: Given a range, find the networks that begin
       and end on the same IP addresses as the range.  That is, the
       networks that fulfill the following condition:

   (start(network) = start(search)) AND (end(network) = end(search))

   (6) Given a range, find the exact match network if it exists, and if
       it does not, perform the (2) search.

   The following are parent-child relationship searches:

   (7) Given a network handle, find the network that is the direct (one
       level up) parent of the network with the given handle.

   (8) Given a network handle, find the network or networks that are
       direct (one level down) children of the network with the handle
       given.

5.  Formal XML Syntax

   This IP address registry is specified in the XML Schema notation.
   The formal syntax presented here is a complete schema representation
   suitable for automated validation of an XML instance when combined
   with the formal schema syntax of IRIS.

   <?xml version="1.0"?>
   <schema xmlns="http://www.w3.org/2001/XMLSchema"
     xmlns:areg="urn:ietf:params:xml:ns:areg1"
     xmlns:iris="urn:ietf:params:xml:ns:iris1"
     targetNamespace="urn:ietf:params:xml:ns:areg1"
     elementFormDefault="qualified" >

     <import namespace="urn:ietf:params:xml:ns:iris1" />

     <annotation>
       <documentation> IP address registry schema derived from IRIS
         schema </documentation>
     </annotation>

     <!-- ========================================= -->
     <!--                                           -->
     <!-- Query Types                               -->
     <!--                                           -->

     <!-- ========================================= -->
     <!--                                           -->
     <!-- Find Autonomous Systems By Name           -->
     <!-- Find Networks By Name                     -->
     <!--                                           -->

     <complexType name="findByNameType" >
       <complexContent>
         <extension base="iris:queryType">
           <sequence>
             <element name="name"
               type="areg:exactOrPartialMatchParameter" />
             <element name="language" type="language" minOccurs="0"
               maxOccurs="unbounded"/>
           </sequence>
         </extension>
       </complexContent>

     </complexType>

     <element name="findNetworksByName" type="areg:findByNameType"
       substitutionGroup="iris:query" />
     <element name="findAutonomousSystemsByName"
       type="areg:findByNameType"
       substitutionGroup="iris:query" />

     <!--                                           -->
     <!-- Address/Address Range type for            -->
     <!--   Find Network                            -->
     <!--                                           -->

     <complexType name="addressRangeType">
       <sequence>
         <element name="start" type="token" />
         <element name="end" type="token" minOccurs="0" maxOccurs="1" />
       </sequence>
     </complexType>

     <!--                                           -->
     <!-- Find Networks By Address                  -->
     <!--                                           -->

     <complexType name="findNetworksByAddressType" >
       <complexContent>
         <extension base="iris:queryType">
           <sequence>
             <choice>
               <element name="ipv4Address" type="areg:addressRangeType"
                 />
               <element name="ipv6Address" type="areg:addressRangeType"
                 />
             </choice>
             <element name="specificity">
               <complexType>
                 <simpleContent>
                   <extension base="areg:specificityType" >
                     <attribute name="allowEquivalences" type="boolean"
                       default="false" />
                   </extension>
                 </simpleContent>
               </complexType>
             </element>
           </sequence>
         </extension>
       </complexContent>
     </complexType>

     <element name="findNetworksByAddress"
       type="areg:findNetworksByAddressType"
       substitutionGroup="iris:query" />

     <!--                                           -->
     <!-- Find AS By Number                         -->
     <!--                                           -->

     <complexType name="findASByNumberType" >
       <complexContent>
         <extension base="iris:queryType">
           <sequence>
             <element name="asNumberStart" type="token" />
             <element name="asNumberEnd" type="token" minOccurs="0"
               maxOccurs="1" />
             <element name="specificity">
               <complexType>
                 <simpleContent>
                   <extension base="areg:specificityType" >
                     <attribute name="allowEquivalences" type="boolean"
                       default="false" />
                   </extension>
                 </simpleContent>
               </complexType>
             </element>
           </sequence>
         </extension>
       </complexContent>
     </complexType>

     <element name="findASByNumber" type="areg:findASByNumberType"
       substitutionGroup="iris:query" />

     <!--                                           -->
     <!-- Specificity Type                          -->
     <!--                                           -->

     <simpleType name="specificityType">
       <restriction base="string">
         <enumeration value="exact-match" />
         <enumeration value="all-less-specific" />
         <enumeration value="one-level-less-specific" />
         <enumeration value="all-more-specific" />
         <enumeration value="one-level-more-specific" />
       </restriction>
     </simpleType>

     <!--                                           -->

     <!-- Find By Contact                           -->
     <!--                                           -->

     <complexType name="findByContactType">
       <complexContent>
         <extension base="iris:queryType">
           <sequence>
             <choice>
               <group ref="areg:contactSearchGroup" />
               <element name="contactHandle"
                 type="areg:exactMatchParameter" />
             </choice>
             <element name="returnedResultType" minOccurs="0"
               maxOccurs="1" >
               <simpleType>
                 <restriction base="string" >
                   <enumeration value="returnASs" />
                   <enumeration value="returnIPv4Networks" />
                   <enumeration value="returnIPv6Networks" />
                   <enumeration value="returnOrganizations" />
                 </restriction>
               </simpleType>
             </element>
             <element name="role" minOccurs="0" maxOccurs="1" >
               <simpleType>
                 <restriction base="string" >
                   <enumeration value="adminContact" />
                   <enumeration value="techContact" />
                   <enumeration value="nocContact" />
                   <enumeration value="abuseContact" />
                   <enumeration value="otherContact" />
                 </restriction>
               </simpleType>
             </element>
             <element name="language" type="language" minOccurs="0"
               maxOccurs="unbounded"/>
           </sequence>
         </extension>
       </complexContent>
     </complexType>

     <element name="findByContact" type="areg:findByContactType"
       substitutionGroup="iris:query" />

     <!--                                           -->
     <!-- Find Networks By Handle                   -->
     <!--                                           -->

     <complexType name="findNetworksByHandleType" >
       <complexContent>
         <extension base="iris:queryType">
           <sequence>
             <element name="networkHandle" type="token" />
             <element name="specificity"
               type="areg:specificitySubsetType" />
           </sequence>
         </extension>
       </complexContent>
     </complexType>

     <element name="findNetworksByHandle"
       type="areg:findNetworksByHandleType"
       substitutionGroup="iris:query" />

     <!--                                           -->
     <!-- Specificity Subtype                       -->
     <!--                                           -->

     <simpleType name="specificitySubsetType">
       <restriction base="string">
         <enumeration value="all-less-specific" />
         <enumeration value="one-level-less-specific" />
         <enumeration value="all-more-specific" />
         <enumeration value="one-level-more-specific" />
       </restriction>
     </simpleType>

     <!--                                           -->
     <!-- Find Contacts                             -->
     <!--                                           -->

     <complexType name="findContactsType">
       <complexContent>
         <extension base="iris:queryType">
           <sequence>
             <choice>
------分隔线----------------------------
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
推荐内容