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.
<network>3.1.2.18/32</network>
<network>3.1.13.10/32</network>
<network>0.0.0.0/0</network>
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:documentation> Revision: 1.0 </xsd:documentation>
<xsd:documentation> Schema used to validate Cisco CDS CoverageZone file </xsd:documentation>
<xsd:simpleType name="ipAddressType">
<!-- Snum = 1*3DIGIT ; representing a decimal integer -->
<!-- ; value in the range 0 through 255 -->
<!-- IPv4-address-literal = Snum 3("." Snum) -->
<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]+"/>
<!-- 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 -->
<!-- IPv6-full = "::" -->
<xsd:restriction base="xsd:token">
<xsd:pattern value="::/[0-9]+"/>
<!-- 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]+"/>
<!-- 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 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 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 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 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 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]+"/>
<!-- 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 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 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 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 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:simpleType name="SENameType">
<xsd:restriction base="xsd:string">
<xsd:minLength value="1"/>
<xsd:maxLength value="80"/>
<xsd:simpleType name="LatitudeType">
<xsd:restriction base="xsd:float">
<xsd:minInclusive value="-90"/>
<xsd:maxInclusive value="90"/>
<xsd:simpleType name="LongitudeType">
<xsd:restriction base="xsd:float">
<xsd:minInclusive value="-180"/>
<xsd:maxInclusive value="180"/>
<xsd:complexType name="locationType">
<xsd:element name="latitude" type="LatitudeType"/>
<xsd:element name="longitude" type="LongitudeType"/>
<xsd:complexType name="coverageZoneType">
<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:element name="CDNNetwork">
<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"/>
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 -->
Scenario 1: Coverage Zone with Client Network Only
<!-- Coverage Zone data in XML -->
<customerName> Cisco Systems </customerName>
<!-- San Jose Datacenter -->
<network>192.1.2.0/16</network>
<!-- Chicago Datacenter -->
<network>192.1.3.0/24</network>
<!-- New York Datacenter -->
<network>192.1.4.0/24</network>
Scenario 2: Coverage Zone with Geographical Location of the Datacenter Only
<!-- Coverage Zone data in XML -->
<customerName> Cisco Systems </customerName>
<!-- San Jose Datacenter -->
<longitude>-122</longitude>
<!-- Chicago Datacenter -->
<longitude>-88</longitude>
<!-- New York Datacenter -->
<longitude>-74</longitude>
Scenario 3: Coverage Zone with Client Network and Geographical Location of the Datacenter
<!-- Coverage Zone data in XML -->
<customerName> Cisco </customerName>
<!-- San Jose Datacenter -->
<network>192.1.2.0/16</network>
<!-- Chicago Datacenter -->
<longitude>-74</longitude>
<!-- New York Datacenter -->
<network>192.1.4.0/24</network>
Scenario 4: Coverage Zone for Same Client Network with Different Weighted SEs
<!-- Coverage Zone data in XML -->
<customerName>Cisco Systems</customerName>
<network> 172.31.10.0/12 </network>
<network> 172.31.10.0/12 </network>
Scenario 5: Coverage Zone with Restricted List of SEs Used for Proximity-Based Routing
<!-- Coverage Zone data in XML -->
<customerName>Cisco Systems</customerName>
<!- Coverage Zone for static routes -->
<network> 192.0.2.0/24 </network>
<!-- For proximity-based routing include list -->
<!-- For location-based routing -->
<longitude>71</longitude>
<network> 0.0.0.0/0 </network>