3.3.4.121 MapRangeToReverseLookupZone

The MapRangeToReverseLookupZone operation can be used to manually map an IP range with a DNS reverse look-up zone.

 <wsdl:operation name="MapRangeToReverseLookupZone">
   <wsdl:input wsaw:Action="http://Microsoft.Windows.Ipam/IIpamServer/MapRangeToReverseLookupZone" message="ipam:IIpamServer_MapRangeToReverseLookupZone_InputMessage" />
   <wsdl:output wsaw:Action="http://Microsoft.Windows.Ipam/IIpamServer/MapRangeToReverseLookupZoneResponse" message="ipam:IIpamServer_MapRangeToReverseLookupZone_OutputMessage" />
 </wsdl:operation>

Upon receiving IIpamServer_MapRangeToReverseLookupZone_InputMessage, the server performs the following processing steps. Upon successful completion of these steps, the server MUST respond with IIpamServer_MapRangeToReverseLookupZone_OutputMessage. In the event of a failure, an appropriate SOAP fault MUST be sent to the client as specified in section 2.2.2.1:

  1. If MapRangeToReverseLookupZone.range is NULL, MapRangeToReverseLookupZone.range.recordId is NULL, or MapRangeToReverseLookupZone.range.recordId is 0, an appropriate SOAP fault MUST be generated.

  2. If MapRangeToReverseLookupZone.reverseZone is NULL, iterate through all the rows of ADM_RangeDNSReverseLookupTable and store the AddressFamily of the row that has RangeRecordId equal to MapRangeToReverseLookupZone.range.recordId in the temporary variable temp_AddressFamily. Delete the row from the table. 

  3. Call the procedure GetAllMappingIPAddressesForRange from ADM_IPAddressTable with MapRangeToReverseLookupZone.range.recordId and temp_AddressFamily as input and store the output as temp_IPAddresses. Iterate through all the rows in ADM_ResourceRecord table and if there are any rows with RecordType as A, AAAA, or PTR, and IPv4AddressId or IPv6AddressId is equal to RecordId of any of the records in temp_IPAddresses, make IPv4AddressId and IPv6AddressId of those rows equal NULL.

  4. If MapRangeToReverseLookupZone.reverseZone is not NULL, do the following:

  5. On the basis of MapRangeToReverseLookupZone.reverseZone.StartIP, MapRangeToReverseLookupZone.reverseZone.EndIP, MapRangeToReverseLookupZone.range.StartIPAddress, MapRangeToReverseLookupZone.range,EndIPAddress, check that the range overlaps with the reverse lookup zone boundary. If not, an appropriate SOAP fault MUST be sent to the client as specified in section 2.2.2.1.

  6. Call the procedure GetMappedIPRangesForReverseLookupZone in ADM_RangeDNSReverseLookupTable with MapRangeToReverseLookupZone.reverseZone.recordId as input parameter and store the output in temp_MappedRangesIds variable. Iterate through ADM_IPRangeTable and retrieve all the records with RecordId the same as that of elements in temp_MappedRangeIds. For any IP ranges that overlap with MapRangeToReverseLookupZone.range, an appropriate SOAP fault MUST be sent to the client as specified in section 2.2.2.1.

  7. Iterate through all the rows in ADM_RangeDNSReverseLookupTable. If there is any row where RangeRecordId is same as MapRangeToReverseLookupZone.range.recordId, an appropriate SOAP fault MUST be sent to the client as specified in section 2.2.2.1.

  8. Add a new row in ADM_RangeDNSReverseLookupTable with RangeRecordId as MapRangeToReverseLookupZone.range.recordId, AddressFamily as MapRangeToReverseLookupZone.range.startIPAddress.AddressFamily, and DNSZoneRecordId as MapRangeToReverseLookupZone.reverseZone.RecordId.

  9. If all the operations are successful return MapRangeToReverseLookupZoneResponse.MapRangeToReverseLookupZoneResult as TRUE.