CONTENTS Preface xvii Document Revision History xvii Audience xvii Objective xviii Document Organization xviii Document Conventions xix Related Publications xx Obtaining Documentation and Submitting a Service Request xx CHAPTER 1 Product Overview 1-1 Overview 1-1 Ingest and Distribution 1-3 Prefetch Ingest 1-3 Dynamic Ingest 1-3 Hybrid Ingest 1-4 Live Stream Ingest and Split 1-4 Delivery 1-4 Management 1-5 Content Delivery System Architecture 1-5 Service Engine 1-6 Storage and Distribution 1-6 Stream and Cache-Fill Performance 1-12 NAS 1-14 Content Acquirer 1-15 Internet Streamer 1-15 Service Router 1-32 Request Routing Engine 1-33 Proximity Engine 1-46 Content Delivery System Manager 1-50 Authentication, Authorization, and Accounting 1-50 Device Management 1-50 Delivery Services Management 1-51 Resiliency and Redundancy 1-51 Content Acquirer Redundancy 1-51 iii
Internet Streamer Redundancy 1-52 Service Router Redundancy 1-52 Internet Streaming CDSM Redundancy 1-52 CHAPTER 2 Network Design 2-1 Cisco CDS Topology 2-1 Device Groups 2-2 Baseline Groups 2-3 Delivery Service 2-3 Content Acquirer 2-3 Content Acquirer Selection for Prefetched Content 2-4 Content Acquirer Selection for Dynamic or Hybrid Ingest 2-4 Location Leader 2-5 Location Leader Selection for Prefetched Content 2-5 Location Leader Selection for Live Streaming 2-5 Location Leader Selection for Dynamic or Hybrid Content 2-5 Forwarder and Receiver Service Engines 2-5 Persistent HTTP Connections 2-7 Network Partition 2-7 Delivery Service Distribution Tree 2-8 Types of Delivery Services 2-8 Methods for Ingesting Content 2-9 Origin Servers 2-9 Manifest File 2-10 Content Acquirer 2-11 Internet Streamer 2-11 Service Workflow 2-12 Programs 2-14 Live Programs 2-14 Rebroadcasts 2-14 API Program File 2-14 IPv6 Support for Client Interfaces 2-15 HTTPS Streaming 2-18 Certificates 2-18 Traffic Separation for HTTPS 2-19 Configuring HTTPS 2-21 API Support for HTTPS 2-22 iv
CHAPTER 3 Getting Started 3-1 Initially Configuring the Devices 3-1 Logging In to the Internet Streaming CDSM 3-1 Activating and Synchronizing the Devices 3-3 Activating and Setting NTP for Each Device 3-3 Activating All Inactive Service Engines 3-5 Navigating the Internet Streaming CDSM 3-6 Devices, Services, and Other Tables 3-7 Devices Home Page 3-8 Task Bar 3-8 Configuring Primary and Standby CDSMs 3-10 Changing a Standby to a Primary CDSM 3-11 Recovering from Two Primary CDSMs 3-12 Typical Configuration Workflow 3-13 CHAPTER 4 Configuring Devices 4-1 Configuring Locations 4-1 Configuring Device Groups 4-4 Working with Device Groups 4-6 Aggregate Settings 4-7 Device Group Overlap 4-9 Configuring the Service Engine 4-9 Activating a Service Engine 4-10 Assigning Devices to Device Groups 4-13 Configuring Bandwidth for Replication and Ingest 4-15 Default Bandwidth 4-15 Scheduled Bandwidth 4-17 Service Control 4-19 Configuring Service Rules 4-20 Configuring URL Signing 4-25 Configuring the Authorization Service 4-26 Configuring Transaction Logs 4-28 Application Control 4-31 Configuring Default and Maximum Bandwidth 4-31 Configuring Bandwidth Schedules 4-32 Configuring Windows Media Streaming General Settings 4-35 Configuring Windows Media Streaming Bypass List 4-37 Configuring Movie Streamer General Settings 4-38 v
Configuring RTSP Advanced Settings 4-40 Configuring Flash Media Streaming General Settings 4-40 Configuring Flash Media Streaming FMS Administrator 4-41 Configuring Flash Media Streaming Service Monitoring 4-41 Configuring Web Engine HTTP Cache Freshness 4-42 General Settings 4-43 Configuring Content Management 4-43 Login Access Control 4-45 Authentication 4-52 Scheduling Database Maintenance 4-56 Setting Storage Handling 4-57 Network Settings 4-59 Configuring Notification and Tracking 4-76 Configuring Troubleshooting 4-92 Configuring Service Router Settings 4-92 Configuring the Service Router 4-93 Activating a Service Router 4-93 Configuring Routing Settings 4-96 Configuring Request Routing Settings 4-96 Configuring IP-Based Redirection 4-99 Configuring Redirect Burst Control 4-100 Configuring Cross-Domain Policy 4-100 Configuring the Proximity Server Settings 4-100 Configuring Application Control 4-112 Configuring Load Monitoring 4-112 Configuring Last-Resort Routing 4-114 Creating ASX Error Message Files for Windows Media Live Programs 4-117 Configuring Domain Subscription 4-118 Configuring Transaction Logs for the Service Router 4-118 Configuring the CDSM 4-120 CHAPTER 5 Configuring Services 5-1 Configuring Delivery Services 5-1 Content Origins 5-1 Creating Delivery Service 5-5 Identifying Content 5-16 Identifying Content Using the CDSM 5-17 Identifying Content Using a Manifest File 5-27 Verifying Content Acquisition 5-30 vi
Configuring Programs 5-31 Defining a Program 5-32 Configuring Live Programs 5-32 Priming a Live Delivery Service 5-37 Windows Media Streaming Live Streaming Encoder Failover 5-38 Configuring a Rebroadcast 5-38 Viewing the Multicast Addresses 5-42 Viewing Programs 5-43 Viewing and Modifying API Programs 5-44 Previewing a Program 5-45 Copying a Program 5-45 CHAPTER 6 Configuring the System 6-1 Configuring AAA 6-1 Creating, Editing, and Deleting Users 6-2 Creating, Editing, and Deleting Roles 6-5 Creating, Editing, and Deleting Domains 6-6 Changing a Password 6-7 Configuring System Settings 6-7 System Properties 6-8 Configuring Device Offline Detection 6-9 Configuring Distribution QoS 6-10 Configuring Service Routing 6-12 Coverage Zone File Registration 6-12 Configuring Global Routing 6-13 CDN Selector File Registration 6-14 Authorization File Registration 6-15 NAS File Registration 6-16 HTTPS Streaming 6-17 Uploading or Importing a Root CA File 6-18 Uploading Client Certificate and Key Files 6-19 Scheduling Web Engine Notification of Client Certificate and Key Files 6-20 Viewing or Downloading XML Schema Files 6-21 CHAPTER 7 Monitoring the Internet Streamer CDS 7-1 System Monitoring 7-1 System Status 7-1 Device Alarms 7-4 Service Alarms 7-5 vii
License Alerts 7-6 System Home Page 7-7 System Audit Logs 7-8 System Port Numbers 7-9 Device Monitoring 7-11 Devices Table 7-12 Devices Home Page 7-14 Using show and clear Commands 7-16 Using the CDSM show or clear Command Tool 7-16 Core Dump Files 7-23 CPU Utilization 7-24 Reports 7-25 Bandwidth Served 7-26 Bandwidth Efficiency Gain 7-27 Streaming Sessions 7-28 Delivery Service Monitoring 7-29 Delivery Services Table 7-29 Replication Status for a Delivery Service 7-33 Content Replication Status by Delivery Service 7-36 Content Replication Status by Device 7-38 Viewing Statistics 7-40 Viewing Service Engines and Device Group Statistics 7-40 Viewing Routing Statistics 7-42 Viewing Replication States 7-42 Viewing Proximity Engine Statistics 7-44 Viewing Overall Proximity Statistics 7-45 Viewing IS-IS Statistics 7-46 Viewing OSPF Statistics 7-47 Viewing SRP Statistics 7-49 Transaction Logs 7-49 Transaction Log Formats for Web Engine 7-50 Client Transaction Logs 7-50 Ingest Transaction Logs 7-56 Transaction Logging and NTLM Authentication 7-58 Usage Guidelines for Log Files 7-59 Working Logs 7-59 Archive Working Log 7-60 Exporting Log Files 7-60 Windows Media Transaction Logging 7-62 viii
Log Formats Accepted by Windows Media Services 9 7-62 Windows Media Streaming Transaction Log Fields 7-63 Movie Streamer Transaction Log Fields 7-70 Flash Media Streaming Transaction Log Fields 7-71 Event Status Codes in Flash Media Streaming Access Logs 7-75 Events in Flash Media Streaming Access Logs 7-77 Service Router Transaction Log Fields 7-78 Service Monitor Transaction Logs 7-79 Content Manager Transaction Log Fields 7-84 ABR Transaction Logs 7-85 Web Engine Custom Formats for ABR HTTP Transactions 7-86 ABR Per Session Log 7-86 CHAPTER 8 Maintaining the Internet Streamer CDS 8-1 Software Upgrade 8-1 Getting a Software File from Cisco.com 8-1 Pre-positioning a Software File 8-2 Finding the Software Version of the Devices 8-3 Configuring the Software Image Settings 8-3 Upgrading the Software 8-6 Interoperability Considerations 8-6 Upgrading Software by Device Groups 8-7 Software Upgrades by Device 8-9 Rebooting Devices 8-9 Deleting a Device 8-10 Deleting a Warm Standby CDSM 8-12 Replacing a Device 8-13 Replacing a CDSM 8-13 Replacing an SE or SR 8-14 Backup and Recovery Procedures 8-15 Performing Backup and Restore on the CDSM Database 8-16 Using the Cisco CDS Software Recovery CD-ROM 8-17 System Software Components 8-17 Getting the Cisco CDS Software Recovery File from Cisco.com 8-17 Installing the Software Using the Recovery CD-ROM 8-18 Recovering the System Software 8-18 Recovering a Lost Administrator Password 8-21 Recovering from Missing Disk-Based Software 8-22 Recovering CDS Network Device Registration Information 8-25 ix
Disk Maintenance 8-26 Disk Error Handling 8-26 Disk Latent Sector Error Handling 8-27 SMART Sector Errors 8-27 disk repair Command 8-32 Removing and Replacing Disk Drives 8-34 Replacing a Disk 8-35 Removing Content 8-36 Single Content Removal 8-36 Batch Content Removal 8-36 APPENDIX A Troubleshooting A-1 Troubleshooting Service Router Configurations A-1 Troubleshooting the Distribution Hierarchy A-2 Troubleshooting Content Acquisition A-3 Enabling the Kernel Debugger A-6 Troubleshooting Web Engine Cache Status Codes A-7 APPENDIX B Creating Manifest Files B-1 Introduction B-1 Manifest File Requirements B-2 Working with Manifest Files B-2 Specifying a Single Content Item B-2 Specifying a Crawl Job B-3 Understanding the Prefix Attribute B-5 Writing Common Regular Expressions B-6 Scheduling Content Acquisition B-6 Specifying Shared Attributes B-7 Specifying a Crawler Filter B-7 Specifying Content Priority B-9 Generating a Playserver List B-10 Customized Manifest Playserver Tables and the HTTP Playserver B-11 Specifying Attributes for Content Serving B-11 Specifying Time Values in the Manifest File B-12 Refreshing and Removing Content B-13 Specifying Live Content B-14 Specifying Hybrid Ingest Content B-15 Manifest Validator Utility B-15 Running the Manifest Validator Utility B-15 x
Valid Manifest File Example B-16 Invalid Manifest File Example B-17 Understanding Manifest File Validator Output B-18 Syntax Errors B-18 Syntax Warnings B-18 Correcting Manifest File Syntax B-19 Manifest File Structure and Syntax B-19 CdnManifest B-22 playservertable B-23 playserver B-24 options B-25 server B-26 host B-26 proxyserver B-28 item B-29 crawler B-37 item-group B-40 matchrule B-43 match B-43 contains B-45 XML Schema B-46 PlayServerTable XML Schema B-46 Default PlayServerTable Schema B-46 Manifest File Time Zone Tables B-47 APPENDIX C Creating Coverage Zone Files C-1 Introduction C-1 Zero-IP Based Configuration C-2 Invalid IPv4 Addresses in Coverage Zone File C-3 Coverage Zone File Example C-3 Scenario 1: Coverage Zone with Client Network Only C-4 Scenario 2: Coverage Zone with Geographical Location of the Datacenter Only C-4 Scenario 3: Coverage Zone with Client Network and Geographical Location of the Datacenter C-5 Scenario 4: Coverage Zone for Same Client Network with Different Weighted SEs C-5 Scenario 5: Coverage Zone with Restricted List of SEs Used for Proximity-Based Routing C-6 Scenario 6: Coverage Zone for IPv6 Client Networks C-7 APPENDIX D Creating Geo/IP Files D-1 Introduction D-1 xi
Processing Order D-2 Service Rule Config File D-3 Understanding the Allow and Deny Conditions D-3 Allow Conditions D-3 Deny Conditions D-3 Order Tag D-3 Order Scenarios D-4 Geo/IP File Examples D-12 APPENDIX E Creating CDN Selector Files E-1 Introduction E-1 Creating the CDN Selector XML Configuration File E-2 CDN Selector XML Example E-3 APPENDIX F Creating Service Rule Files F-1 Introduction F-1 Converting Old Service Rules to New Service Rules F-2 Adding a Service Rule File to the CDS F-3 Service Rule File Structure and Syntax F-3 Pattern Matching F-8 Rule Action Processing F-9 Rule Actions for Web Engine F-11 URL Resolve F-11 URL Redirect F-15 Force Revalidation F-15 URL Generate Signature F-16 Windows Media Streaming ASX Files with URL Signing F-17 Rule Actions for Flash Media Streaming F-20 Converting Old Flash Media Streaming Service Rules F-20 Support for SWF Validation F-23 SWF Validation Process F-23 Service Rule File Example F-25 Service Rule File for URL Validation and the Exclude-Validation Attribute F-25 Exclude Client IP Address from URL Validation F-25 Exclude Expiry Time from URL Validation F-26 Exclude Both the Client IP Address and the Expiry Time from URL Validation F-26 xii
APPENDIX G ABR Session-Based Encryption and Session Tracking G-1 Introduction G-1 HLS Session Based Encryption G-2 HLS Solution Components G-2 HLS Out of Band Manifests G-3 HSS Session-Based Encryption G-3 Session Tracking G-3 Session Cookie G-3 Client IP Address Validation G-4 Key Parameters G-4 Configuring Session-Based Encryption and Session Tracking G-4 Service Rule Configuration for Session-Based Encryption and Session Tracking G-5 Service Rule Example for Session-Based Encryption and Session Tracking G-5 SetParameter Names and Values G-7 Session Resolve Rule G-12 Session Start and Stop Notification Configuration G-13 Key Management Server Interface G-15 Transaction Logs for Session-Based Encryption and Session Tracking G-18 APPENDIX H Creating NAS Files H-1 Introduction H-1 Configuring NAS H-2 NAS Mount Removal H-2 Creating a NAS XML File H-3 NAS XML File Example H-4 APPENDIX I URL Signing and Validation I-1 Introduction I-1 URL Signing Components I-1 Supported Protocols and Media I-2 Configuring the CDS for URL Signing I-2 Configuring URL Signing I-3 Configuring Service Rules for URL Signing I-4 Configuring URL Signing on Each SE I-5 URL Signing and Validating I-5 URL Signing Script for Symmetric Keys I-6 URL Signing Version I-6 Example of a Python URL Signing Script I-7 xiii
Running a Python URL Signing Script I-10 URL Signing and Flash Media Streaming I-12 Importance of Device Synchronization I-12 Understanding the Signing Procedure I-13 Public Key URL Signing for Asymmetric Keys I-14 How Public Key URL Signing Works with CDS I-14 URL Signing C Program I-15 APPENDIX J CLI Commands J-1 Multi-Port Support J-1 Configuring Port Channel J-6 Redundant Dedicated Management Ports J-6 Configuring Redundant Management Ports J-7 Switch Port-Channel Configuration for Content Acquirer and Edge Service Engine J-9 Verifying Port Channel Configuration J-9 Configuring Last-Resort Routing J-11 Configuring Standby Interfaces J-12 Standby Interface with Switch Failover Configuration Procedure J-15 APPENDIX K Verifying the Internet Streamer CDS K-1 Verifying the Web Engine K-1 Verifying Preingested Web Content K-1 Verifying Dynamically Ingested Web Content K-4 Verifying the Windows Media Streaming Engine K-9 Verifying Preingested Windows Media Content K-9 Verifying Dynamically Ingested Windows Media Content K-10 Verifying Windows Media Live Content Playback K-12 Verifying the Movie Streamer Engine K-13 Preparing Movie Streamer Content for Ingest K-13 Verifying Preingested Movie Streamer Content K-15 Verifying Dynamically Ingested Movie Streamer Content K-18 Verifying Movie Streamer Live Content Playback K-19 Verifying the Flash Media Streaming Engine K-21 Verifying Flash Media Streaming Preingested Content K-22 Verifying Flash Media Streaming Dynamically Ingested Content K-26 Verifying Flash Media Streaming Live Streaming K-29 xiv
APPENDIX L Software Licensing Information L-1 Notices L-1 OpenSSL/Open SSL Project L-1 License Issues L-1 xv
xvi