Cisco Internet Streamer CDS 2.5 Software Configuration Guide
Creating Coverage Zone Files
Downloads: This chapterpdf (PDF - 138.0KB) The complete bookPDF (PDF - 4.65MB) | Feedback

Creating Coverage Zone Files

Table Of Contents

Creating Coverage Zone Files

Introduction

Zero-IP Based Configuration

Coverage Zone XML Schema

Coverage Zone File Example

Scenario 1: Coverage Zone with Client Network Only

Scenario 2: Coverage Zone with Geographical Location of the Datacenter Only

Scenario 3: Coverage Zone with Client Network and Geographical Location of the Datacenter

Scenario 4: Coverage Zone for Same Client Network with Different Weighted SEs

Scenario 5: Coverage Zone with Restricted List of SEs Used for Proximity-Based Routing


Creating Coverage Zone Files


This appendix describes the Coverage Zone file and provides several Coverage Zone file examples.

Introduction

A Coverage Zone file is an XML file used to specify a user-defined coverage zone. The Coverage Zone file supports different tags to support different types of proximity configurations.

Network and subnet—Specify the IP address range

Geographical location—Specify the longitude and latitude of the data center

In addition to the coverage zone information, two optional elements are created for documentation purposes: a revision value to specify the version of the Coverage Zone file and a customer name.

For information about importing or uploading a Coverage Zone file, see the "Coverage Zone File Registration" section.

For more information about Coverage Zone files, see the "Coverage Zone File" section.

Coverage Zone files can be created using any ASCII text-editing tool. You can use a single coverage zone text-format file to define all the coverage zones for your CDS network.

Table C-1 defines the Coverage Zone file elements.

Table C-1 Coverage Zone File Elements 

Tag
Element
Value
Description

location

latitude

float

Value indicating the geographical coordinate (latitude) of the data center.

longitude

float

Value indicating the geographical coordinate (longitude) of the data center.

coverageZone

network

IP address

Coverage zone IP address range.

SE

Service Engine name (string)

Specifies the Service Engines serving the coverage zone specified in the network element. This can have one or more elements.

metric

integer

Value indicating the proximity of the Service Engine to the end user. The lower the value, the closer the Service Engine is to the end user.

location

Value indicating the geographical coordinates (latitude and longitude) of the data center.

CDNNetwork

revision

1.0

Not used in this CDS release.

customerName

customer name

Not used in this CDS release.

coverageZone

This can have one or more coverage zones.



Note The metric value of a default coverage zone is set to 20. If a particular SE is preferred for a user-defined coverage zone, the metric value in the Coverage Zone file should be set to a value less than 20. If a default coverage zone is preferred, then the metric value in the Coverage Zone file should be set to a value greater than 20.


Zero-IP Based Configuration

The zero-ip based configuration is a catch-all condition for routing. It can be used in combination with proximity-based routing and location-based routing. If an SE cannot be found through location-based routing or proximity-based routing, the zero-ip based configuration is taken into account for selecting an SE.


Note The zero-ip based configuration cannot be used in combination with DNS-based redirection. When creating the Coverage Zone file, the IP address of the DNS proxy needs to be used for the client IP address range.


The zero-ip based configuration is a network entry in the Coverage Zone file defined as 0.0.0.0/0. It matches all client subnets. If the client subnet does not match any of the other network entries in the Coverage Zone file and a 0.0.0.0/0 network entry exists, then the SEs listed for that entry are considered for serving the client request.

Following is an example of the zero-ip based configuration.

<?xml version="1.0"?>
<CDNNetwork>
<revision>1.0</revision>
    <coverageZone>
        <network>3.1.2.18/32</network>
        <SE>U8-CDE200-1</SE>
        <metric>5</metric>
    </coverageZone>
    <coverageZone>
        <network>3.1.13.10/32</network>
        <SE>U8-CDE200-2</SE>
        <metric>5</metric>
    </coverageZone>
    <coverageZone>
        <network>0.0.0.0/0</network>
        <SE>U8-CDE200-3</SE>
        <metric>20</metric>
    </coverageZone>
</CDNNetwork>
 
   

Coverage Zone XML Schema

The XML Schema file describes and dictates the content of the XML file. The coveragezone.xsd file contains the XML schema.

The following code is the Coverage Zone XML schema:

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:annotation>
    <xsd:documentation> Revision: 1.0 </xsd:documentation>
  </xsd:annotation>
  <xsd:annotation>
    <xsd:documentation> Schema used to validate Cisco CDS CoverageZone file </xsd:documentation>
  </xsd:annotation>
  <xsd:simpleType name="ipAddressType">
    <xsd:union>
      <!-- IPv4 Address -->
      <!-- Snum = 1*3DIGIT  ; representing a decimal integer -->
      <!--                  ; value in the range 0 through 255 -->
      <!-- IPv4-address-literal = Snum 3("." Snum) -->
      <xsd:simpleType>
	    <xsd:restriction base="xsd:token">
          <xsd:pattern 
value="((1?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])\.){3}(1?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])/[0-9]+"/>
        </xsd:restriction>
      </xsd:simpleType>
 
   
      <!-- IPv6 Address -->
      <!-- IPv6-hex  = 1*4HEXDIG -->
      <!-- IPv6-full = IPv6-hex 7(":" IPv6-hex) -->
      <!-- IPv6-comp = [IPv6-hex *5(":" IPv6-hex)] "::" [IPv6-hex *5(":"IPv6-hex)] -->
      <!--             ; The "::" represents at least 2 16-bit groups of zeros -->
      <!--             ; No more than 6 groups in addition to the "::" may be present -->
      <!-- IPv6v4-full = IPv6-hex 5(":" IPv6-hex) ":" IPv4-address-literal -->
      <!-- IPv6v4-comp = [IPv6-hex *3(":" IPv6-hex)] "::" [IPv6-hex *3(":" IPv6-hex) ":"] 
IPv4-address-literal -->
      <!--             ; The "::" represents at least 2 16-bit groups of zeros -->
      <!--             ; No more than 4 groups in addition to the "::" and IPv4-address-literal may be 
present -->
      <!-- IPv6-addr = IPv6-full / IPv6-comp / IPv6v4-full / IPv6v4-comp -->
      <xsd:simpleType>
        <!-- IPv6-full = "::" -->
        <xsd:restriction base="xsd:token">
          <xsd:pattern value="::/[0-9]+"/>
        </xsd:restriction>
      </xsd:simpleType>
 
   
      <xsd:simpleType>
        <!-- IPv6-full = IPv6-hex 7(":" IPv6-hex) -->
        <xsd:restriction base="xsd:token">
          <xsd:pattern value="[A-Fa-f0-9]{1,4}(:[A-Fa-f0-9]{1,4}){7}/[0-9]+"/>
        </xsd:restriction>
      </xsd:simpleType>
 
   
      <xsd:simpleType>
        <!-- IPv6-comp = [IPv6-hex *5(":" IPv6-hex)] "::" [IPv6-hex *5(":" IPv6-hex)] -->
        <!-- An "::" represents at least 2 16-bit groups of zeros -->
        <!-- No more than 6 groups in addition to the "::" may be present. -->
        <xsd:restriction base="xsd:token">
          <xsd:pattern value="[A-Fa-f0-9]{1,4}(:[A-Fa-f0-9]{1,4}){5}::([A-Fa-f0-9]{1,4})?/[0-9]+"/>
            </xsd:restriction>
         </xsd:simpleType>
         <xsd:simpleType>
           <xsd:restriction base="xsd:token">
             <xsd:pattern 
value="[A-Fa-f0-9]{1,4}(:[A-Fa-f0-9]{1,4}){4}::([A-Fa-f0-9]{1,4}(:[A-Fa-f0-9]{1,4})?)?/[0-9]+"/>
           </xsd:restriction>
         </xsd:simpleType>
         <xsd:simpleType>
           <xsd:restriction base="xsd:token">
             <xsd:pattern 
value="[A-Fa-f0-9]{1,4}(:[A-Fa-f0-9]{1,4}){3}::([A-Fa-f0-9]{1,4}(:[A-Fa-f0-9]{1,4}){0,2})?/[0-9]+"/>
           </xsd:restriction>
         </xsd:simpleType>
         <xsd:simpleType>
           <xsd:restriction base="xsd:token">
             <xsd:pattern 
value="[A-Fa-f0-9]{1,4}(:[A-Fa-f0-9]{1,4}){2}::([A-Fa-f0-9]{1,4}(:[A-Fa-f0-9]{1,4}){0,3})?/[0-9]+"/>
           </xsd:restriction>
         </xsd:simpleType>
         <xsd:simpleType>
           <xsd:restriction base="xsd:token">
             <xsd:pattern 
value="[A-Fa-f0-9]{1,4}:[A-Fa-f0-9]{1,4}::([A-Fa-f0-9]{1,4}(:[A-Fa-f0-9]{1,4}){0,4})?/[0-9]+"/>
           </xsd:restriction>
         </xsd:simpleType>
         <xsd:simpleType>
           <xsd:restriction base="xsd:token">
             <xsd:pattern value="[A-Fa-f0-9]{1,4}::([A-Fa-f0-9]{1,4}(:[A-Fa-f0-9]{1,4}){0,4})?/[0-9]+"/>
           </xsd:restriction>
         </xsd:simpleType>
         <xsd:simpleType>
           <!-- IPv6v4-full = IPv6-hex 5(":" IPv6-hex) ":" IPv4-address-literal -->
           <xsd:restriction base="xsd:token">
             <xsd:pattern 
value="[A-Fa-f0-9]{1,4}(:[A-Fa-f0-9]{1,4}){5}:(((1?[1-9])?[0-9])|(2[0-4][0-9])|(25[0-5]))\.(((1?[1-9])?[0-9])
|(2[0-4][0-9])|(25[0-5]))\.(((1?[1-9])?[0-9])|(2[0-4][0-9])|(25[0-5]))\.(((1?[1-9])?[0-9])|(2[0-4][0-9])|(25[
0-5]))/[0-9]+"/>
           </xsd:restriction>
         </xsd:simpleType>
         <xsd:simpleType>
           <xsd:restriction base="xsd:token">
             <xsd:pattern 
value="[A-Fa-f0-9]{1,4}(:[A-Fa-f0-9]{1,4}){3}::([A-Fa-f0-9]{1,4}:)?(((1?[1-9])?[0-9])|(2[0-4][0-9])|(25[0-5])
)\.(((1?[1-9])?[0-9])|(2[0-4][0-9])|(25[0-5]))\.(((1?[1-9])?[0-9])|(2[0-4][0-9])|(25[0-5]))\.(((1?[1-9])?[0-9
])|(2[0-4][0-9])|(25[0-5]))/[0-9]+"/>
           </xsd:restriction>
         </xsd:simpleType>
         <xsd:simpleType>
           <xsd:restriction base="xsd:token">
             <xsd:pattern 
value="[A-Fa-f0-9]{1,4}(:[A-Fa-f0-9]{1,4}){2}::([A-Fa-f0-9]{1,4}(:[A-Fa-f0-9]{1,4})?:)?(((1?[1-9])?[0-9])|(2[
0-4][0-9])|(25[0-5]))\.(((1?[1-9])?[0-9])|(2[0-4][0-9])|(25[0-5]))\.(((1?[1-9])?[0-9])|(2[0-4][0-9])|(25[0-5]
))\.(((1?[1-9])?[0-9])|(2[0-4][0-9])|(25[0-5]))/[0-9]+"/>
           </xsd:restriction>
         </xsd:simpleType>
         <xsd:simpleType>
           <xsd:restriction base="xsd:token">
             <xsd:pattern 
value="[A-Fa-f0-9]{1,4}:[A-Fa-f0-9]{1,4}::([A-Fa-f0-9]{1,4}(:[A-Fa-f0-9]{1,4}){0,2}:)?(((1?[1-9])?[0-9])|(2[0
-4][0-9])|(25[0-5]))\.(((1?[1-9])?[0-9])|(2[0-4][0-9])|(25[0-5]))\.(((1?[1-9])?[0-9])|(2[0-4][0-9])|(25[0-5])
)\.(((1?[1-9])?[0-9])|(2[0-4][0-9])|(25[0-5]))/[0-9]+"/>
           </xsd:restriction>
         </xsd:simpleType>
         <xsd:simpleType>
           <xsd:restriction base="xsd:token">
            <xsd:pattern 
value="[A-Fa-f0-9]{1,4}::([A-Fa-f0-9]{1,4}(:[A-Fa-f0-9]{1,4}){0,2}:)?(((1?[1-9])?[0-9])|(2[0-4][0-9])|(25[0-5
]))\.(((1?[1-9])?[0-9])|(2[0-4][0-9])|(25[0-5]))\.(((1?[1-9])?[0-9])|(2[0-4][0-9])|(25[0-5]))\.(((1?[1-9])?[0
-9])|(2[0-4][0-9])|(25[0-5]))/[0-9]+"/>
        </xsd:restriction>
      </xsd:simpleType>
		
    </xsd:union>
  </xsd:simpleType>
 
   
  <xsd:simpleType name="SENameType">
    <xsd:restriction base="xsd:string">
      <xsd:minLength value="1"/>
      <xsd:maxLength value="80"/>
    </xsd:restriction>
  </xsd:simpleType>
 
   
  <xsd:simpleType name="LatitudeType">
    <xsd:restriction base="xsd:float">
      <xsd:minInclusive value="-90"/>
      <xsd:maxInclusive value="90"/>
    </xsd:restriction>
  </xsd:simpleType>
 
   
  <xsd:simpleType name="LongitudeType">
    <xsd:restriction base="xsd:float">
      <xsd:minInclusive value="-180"/>
      <xsd:maxInclusive value="180"/>
    </xsd:restriction>
  </xsd:simpleType>	
 
   
  <xsd:complexType name="locationType">
    <xsd:sequence>
      <xsd:element name="latitude" type="LatitudeType"/>
      <xsd:element name="longitude" type="LongitudeType"/>
    </xsd:sequence>
  </xsd:complexType>
 
   
  <xsd:complexType name="coverageZoneType">
    <xsd:sequence>
      <xsd:element name="network" type="ipAddressType" minOccurs="0"/>
      <xsd:element name="location" type="locationType" minOccurs="0"/>
      <xsd:element name="SE" type="SENameType" minOccurs="1" maxOccurs="unbounded"/>
      <xsd:element name="metric" type="xsd:positiveInteger" minOccurs="1" maxOccurs="1"/>
    </xsd:sequence>
  </xsd:complexType>
 
   
  <xsd:element name="CDNNetwork">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="revision" type="xsd:string" minOccurs="0" maxOccurs="1"/>
        <xsd:element name="customerName" type="xsd:string" minOccurs="0" maxOccurs="1"/>
        <xsd:element name="coverageZone" type="coverageZoneType" minOccurs="0" maxOccurs="unbounded"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
 
   
</xsd:schema>
 
   

Coverage Zone File Example

The following sections show different Coverage Zone file examples in four scenarios. For a proximity-based routing include list, the <coverageZone> tag just includes the <SE> and <metric> elements, as follows:

<!-- For proximity based routing include list -->
  <coverageZone>
   <SE>W13-CDE205-1</SE>
   <SE>W13-CDE205-2</SE>
   <metric>10</metric>
  </coverageZone>
 
   

Scenario 1: Coverage Zone with Client Network Only

<?xml version="1.0" ?>
<!-- Coverage Zone data in XML -->
<CDNNetwork>
<revision>1.0</revision>
<customerName> Cisco Systems </customerName>
<!-- San Jose Datacenter -->
<coverageZone>
<network>192.1.2.0/16</network>
<SE>CDE-200-SE1</SE>
<SE>CDE-200-SE2</SE>
<metric>10</metric>
</coverageZone>
<!-- Chicago Datacenter -->
<coverageZone>
<network>192.1.3.0/24</network>
<SE>CDE-200-SE3</SE>
<SE>CDE-200-SE4</SE>
<metric>10</metric>
</coverageZone>
<!-- New York Datacenter -->
<coverageZone>
<network>192.1.4.0/24</network>
<SE>CDE-200-SE5</SE>
<SE>CDE-200-SE6</SE>
<metric>10</metric>
</coverageZone>
</CDNNetwork>

Scenario 2: Coverage Zone with Geographical Location of the Datacenter Only

<?xml version="1.0" ?>
<!-- Coverage Zone data in XML -->
<CDNNetwork>
<revision>1.0</revision>
<customerName> Cisco Systems </customerName>
<!-- San Jose Datacenter -->
<coverageZone>
<location>
	<latitude>37</latitude> 
	<longitude>-122</longitude>
</location>
<SE>CDE-200-SE1</SE>
<SE>CDE-200-SE2</SE>
<metric>10</metric>
</coverageZone>
<!-- Chicago Datacenter -->
<coverageZone>
<location>
	<latitude>42</latitude> 
	<longitude>-88</longitude>
</location>
<SE>CDE-200-SE3</SE>
<SE>CDE-200-SE4</SE>
<metric>10</metric>
</coverageZone>
<!-- New York Datacenter -->
<coverageZone>
<location>
<latitude>41</latitude> 
	<longitude>-74</longitude>
	</location>
<SE>CDE-200-SE5</SE>
<SE>CDE-200-SE6</SE>
<metric>10</metric>
</coverageZone>
</CDNNetwork>

Scenario 3: Coverage Zone with Client Network and Geographical Location of the Datacenter

<?xml version="1.0" ?>
<!-- Coverage Zone data in XML -->
<CDNNetwork>
<revision>1.0</revision>
<customerName> Cisco </customerName>
<!-- San Jose Datacenter -->
<coverageZone>
<network>192.1.2.0/16</network>
<SE>CDE-200-SE1</SE>
<SE>CDE-200-SE2</SE>
<metric>10</metric>
</coverageZone>
 <!-- Chicago Datacenter -->
<coverageZone>
<location>
	<latitude>41</latitude> 
	<longitude>-74</longitude>
</location>
<SE>CDE-200-SE3</SE>
<SE>CDE-200-SE4</SE>
<metric>10</metric>
</coverageZone>
<!-- New York Datacenter -->
<coverageZone>
<network>192.1.4.0/24</network>
<SE>CDE-200-SE5</SE>
<SE>CDE-200-SE6</SE>
<metric>10</metric>
</coverageZone>
</CDNNetwork>
 
   

Scenario 4: Coverage Zone for Same Client Network with Different Weighted SEs

<?xml version="1.0" ?>
<!-- Coverage Zone data in XML -->
<CDNNetwork> 
    <revision>1.0</revision>
    <customerName>Cisco Systems</customerName>
    <coverageZone>
        <network> 172.31.10.0/12 </network> 
        <SE> dmz2-roam </SE>
        <metric> 10 </metric> 
    </coverageZone> 
    <coverageZone> 
        <network> 172.31.10.0/12 </network> 
        <SE> dmz2-is </SE> 
        <metric> 20 </metric> 
    </coverageZone> 
</CDNNetwork> 
 
   

Scenario 5: Coverage Zone with Restricted List of SEs Used for Proximity-Based Routing

<?xml version="1.0" ?>
<!-- Coverage Zone data in XML -->
<CDNNetwork>
    <revision>1.0</revision>
    <customerName>Cisco Systems</customerName>
 
   
<!- Coverage Zone  for static routes -->
    <coverageZone>
        <network> 192.0.2.0/24 </network>
        <SE> philly1 </SE>
        <SE> philly2 </SE>
        <metric> 10 </metric>
    </coverageZone>
 
   
 <!-- For proximity-based routing include list -->
    <coverageZone>
        <SE> philly1 </SE>
        <SE> philly2 </SE>
        <SE> boston1 </SE>
        <SE> boston2 </SE>
        <SE> anywhere1 </SE>
        <SE> anywhere2 </SE>
        <metric>10</metric>
    </coverageZone>
<!-- For location-based routing -->
    <coverageZone>
        <location>
            <latitude>40</latitude>
        </location>
        <SE> philly1 </SE>
        <SE> philly2 </SE>
        <metric>10</metric>
    </coverageZone>
 
    <coverageZone>
        <location>
            <latitude>42</latitude>
            <longitude>71</longitude>
        </location>
        <SE> boston1</SE>
        <SE> boston2 </SE>
        <metric>10</metric>
    </coverageZone>
 
   
<!- all zeros -->
    <coverageZone>
        <network> 0.0.0.0/0 </network>
        <SE> anywhere1 </SE>
        <SE> anywhere2 </SE>
        <metric> 10 </metric>
    </coverageZone> 
</CDNNetwork>