Juniper Networks, Junos, Steel-Belted Radius, NetScreen, and ScreenOS are registered
trademarks of Juniper Networks, Inc. in the United States and other countries. The Juniper
Networks Logo, the Junos logo, and JunosE a re trademarks of Junip er Networks, Inc. All other
trademarks, service marks, registered trademarks, or registered service marks are the
property of their respective owners.
Juniper Networks assumes no responsibility for any inaccuracies in this document. Juniper
Networks reserves the right to change, modify, transfer, or otherwise revise this publication
without notice.
Products made or sold by Juniper Networks or components thereof might be covered by one
or more of the following patents that are owned by or licensed to Juniper Networks: U.S.
Patent Nos. 5,473,599, 5,905,725, 5,909,440, 6,192,051, 6,333,650, 6,359,479, 6,406,312,
6,429,706, 6,459,579, 6,493,347, 6,538,518, 6,538,899, 6,552,918, 6,567,902, 6,578,186,
and 6,590,785.
READ THIS END USER LICENSE AGREEMENT (“AGREEMENT”) BEFORE DOWNLOADING, INSTALLING, OR USING THE SOFTWARE. BY
DOWNLOADING, INSTALLING, OR USING THE SOFTWARE OR OTHERWISE EXPRESSING YOUR AGREEMENT TO THE TERMS CONTAINED
HEREIN, YOU (AS CUSTOMER OR IF YOU ARE NOT THE CUSTOMER, AS A REPRESENTATIVE/AGENT AUTHORIZED TO BIND THE CUSTOMER)
CONSENT TO BE BOUND BY THIS AGREEMENT. IF YOU DO NOT OR CANNOT AGREE TO THE TERMS CONTAINED HEREIN, THEN (A) DO NOT
DOWNLOAD, INSTALL, OR USE THE SOFTWARE, AND (B) YOU MAY CONTACT JUNIPER NETWORKS REGARDING LICENSE TERMS.
1.The Parties. The parties to this Agreement are (i) Juniper Networks, Inc. (if the Customer’s principal office is located in the Americas) or Juniper Networks
(Cayman) Limited (if the Customer’s principal office is located outside the Americas) (such applicable entity being referred to herein as “Juniper”), and (ii) the
person or organization that originally purchased from Juniper or an authorized Juniper reseller the applicable license(s) for use of the Software (“Customer”)
(collectively, the “Parties”).
2.The Software. In this Agreement, “Software” means the program modules and features of the Juniper or Juniper-supplied software, for which Customer has paid
the applicable license or support fees to Juniper or an authorized Juniper reseller, or which was embedded by Juniper in equipment which Customer purch as ed
from Juniper or an authorized Juniper reseller. “Software” also includes updates, upgrades and new releases of such software. “Embedded Software” means
Software which Juniper has embedded in or loaded onto the Juniper equipment and any updates, upgrades, additions or replacements which are subsequently
embedded in or loaded onto the equipment.
3.License Grant. Subject to payment of the applicable fees and the limitations and restrictions set forth herein, Juniper grants to Customer a non-exclusive and
non-transferable license, without right to sublicense, to use the Software, in executable form only, subject to the following use restrictions:
a.Customer shall use Embedded Software solely as embedded in, and for execution on, Juniper equipment originally purchased by Customer from Juniper or
an authorized Juniper reseller.
b.Customer shall use the Software on a single hardware chassis having a single processing unit, or as many chassis or processing units for which Customer
has paid the applicable license fees; provid ed, however, with respect to the Steel-Belted or Odyssey Access Client software only, Customer shall use such
Software on a single computer containing a single physical random access memory space and containing any number of processors. Use of the Steel-Belted
or IMS AAA software on multiple computers or virtual machines (e.g., Solaris zones) requires multiple licenses, regardless of whether such computers or
virtualizations are physically contained on a single chassis.
c.Product purchase documents, paper or electronic user documentation, and/or the particular licenses purchased by Customer may specify limits to
Customer’s use of the Software. Such limits may restrict use to a maximum number of seats, registered endpoints, concurrent users, sessions, calls,
connections, subscribers, clusters, nodes, realms, devices, links, ports or transactions, or require the purchase of separate licenses to use particular features,
functionalities, services, applications, operations, or capabilities, or provide throughput, performance, configuration, bandwidth, interface, processing,
temporal, or geographical limits. In addition, such limits may restrict the use of the Software to managing certain kinds of networks or require the Software
to be used only in conjunction with other specific Software. Customer’s use of the Software shall be subject to all such limitations and purchase of all
applicable licenses.
d.For any trial copy of the Software, Customer’s right to use the Software expires 30 days after download, installation or use of the Software. Customer may
operate the Software after the 30-day trial period only if Customer pays for a license to do so. Customer may not extend or cre
by re-installing the Software after the 30-day trial period.
e.The Global Enterprise Edition of the Steel-Belted software may be used by Customer only to manage access to Customer’s enterprise network.
Specifically, service provider customers are expressly prohibited from using the Global Enterprise Edition of the Steel-Belted software to support any
commercial network access services.
The foregoing license is not transferable or assignable by Customer. No license is granted herein to any user who did not originally purchase the applicable
license(s) for the Software from Juniper or an authorized Juniper reseller.
4.Use Prohibitions. Notwithstanding the foregoing, the license provided herein does not permit the Customer to, and Customer agrees not to and shall not: (a)
modify, unbundle, reverse engineer, or create derivative works based on the Software; (b) make unauthorized copies of the Software (except as necessary for
backup purposes); (c) rent, sell, transfer, or grant any rights in and to any copy of the Software, in any form, to any third party; (d) remove any proprietary notices,
labels, or marks on or in any copy of the Software or any product in which the Software is embedded; (e) distribute any copy of the Software to any third party,
including as may be embedded in Juniper equipment sold in the secondhand market; (f) use any ‘locked’ or key-restricted feature, function, service, application,
operation, or capability without first purchasing the applicable license(s) and obtaining a valid key from Juniper, even if such feature, function, service,
application, operation, or capability is enabled without a key; (g) distribute any key for the Software provided by Juniper to any third party; (h) use the Software
in any manner that extends or is broader than the uses purchased by Customer from Juniper or an authorized Juniper reseller; (i) use Embedded Software on nonJuniper equipment; (j) use Embedded Software (or make it available for use) on Juniper equipment that the Customer did not originally purchase from Juniper or
an authorized Juniper reseller; (k) disclose the results of testing or benchmarking of the Software to any third party without the prior written consent of Juniper;
or (l) use the Software in any manner other than as expressly provided herein.
5.Audit. Customer shall maintain accurate records as necessary to verify compliance with this Agreement. Upon request by Juniper, Customer shall furnish such
records to Juniper and certify its compliance with this Agreement.
6.Confidentiality. The Parties agree that aspects of the Software and associated documentation are the confidential property of Juniper. As such, Customer shall
exercise all reasonable commercial ef forts t o mai nta in t he Soft ware a nd associat e d docume ntati on in conf idence , which at a mini mum i ncludes res tri cti ng acce ss
to the Software to Customer employees and contractors having a need to use the Software for Customer’s internal business purposes.
7.Ownership. Juniper and Juniper’s licensors, respectively, retain ownership of all right, title, and interest (including copyright) in and to the Software, associated
documentation, and all copies of the Software. Nothing in this Agreement constitutes a transfer or conveyance of any right, title, or interest in the Software or
associated documentation, or a sale of the Software, associated documentation, or copies of the Software.
8.Warranty, Limitation of Liability, Disclaimer of Warranty. The warranty applicable to the Software shall be as set forth in the warranty statement that
accompanies the Software (the “Warranty Statement”). Nothing in this Agreement shall give rise to any obligation to support the Software. Support services may
be purchased separately. Any such support shall be governed by a separate, written support services agreement. TO THE MAXIMUM EXTENT PERMITTED
BY LAW, JUNIPER SHALL NOT BE LIABLE FOR ANY LOST PROFITS, LOSS OF DATA, OR COSTS OR PROCUREMENT OF SUBSTITUTE GOODS
ate an additional trial period
III
Media Flow Controller Administrator’s Guide
OR SERVICES, OR FOR ANY SPECIAL, INDIRECT, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, THE SOFTWARE, OR
ANY JUNIPER OR JUNIPER-SUPPLIED SOFTWARE. IN NO EVENT SHALL JUNIPER BE LIABLE FOR DAMAGES ARISING FROM
UNAUTHORIZED OR IMPROPER USE OF ANY JUNIPER OR JUNIPER-SUPPLIED SOFTWARE. EXCEPT AS EXPRESSLY PROVIDED IN THE
WARRANTY STATEMENT TO THE EXTENT PERMITTED BY LAW, JUNIPER DISCLAIMS ANY AND ALL WARRANTIES IN AND TO THE
SOFTWARE (WHETHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE), INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, OR NONINFRINGEMENT. IN NO EVENT DOES JUNIPER WARRANT THAT THE SOFTWARE, OR ANY
EQUIPMENT OR NETWORK RUNNING THE SOFTWARE, WILL OPERATE WITHOUT ERROR OR INTERRUPTION, OR WILL BE FREE OF
VULNERABILITY TO INTRUSION OR ATTACK. In no event shall Juniper’s or its suppliers’ or licensors’ liability to Customer, whether in contract, tort
(including negligence), breach of warranty, or otherwise, exceed the price paid by Customer for the Software that gave rise to the claim, or if the Software is
embedded in another Juniper product, the price paid by Customer for such other product. Customer acknowledges and agrees that Juniper has set its prices and
entered into this Agreement in reliance upon the disclaimers of warranty and the limitations of liability set forth herein, that the same reflect an allocation of risk
between the Parties (including the risk that a contract remedy may fail of its essential purpose and cause consequential loss), and that the same form an essential
basis of the bargain between the Parties.
9.Termination. Any breach of this Agreement or failure by Customer to pay any applicable fees due shall result in automatic termination of the license granted
herein. Upon such termination, Customer shall destroy or return to Juniper all copies of the Software and related documentation in Customer’s possession or
control.
10. Taxes. All license fees payable under this agreement are exclusive of tax. Customer shall be responsible for paying Taxes arising from the purchase of the
license, or importation or use of the Software. If applicable, valid exemption documentation for each taxing jurisdiction shall be provided to Juniper prior to
invoicing, and Customer shall promptly notify Juniper if their exemption is revoked or modified. All payments made by Customer shall be net of any applicable
withholding tax. Customer will provide reasonable assistance to Juniper in connection with such withholding taxes by promptly: providing Juniper with valid
tax receipts and other required documentation showing Customer’s payment of any withholding taxes; completing appropriate applications that would reduce the
amount of withholding tax to be paid; and notifying and assisting Juniper in any audit or tax proceeding related to transactions hereunder. Customer shall comply
with all applicable tax laws and regulations, and Customer will promptly pay or reimburse Juniper for all costs and damages related to any liability incurred by
Juniper as a result of Customer’s non-compliance or delay with its responsibilities herein. Customer’s obligations under this Section sha ll surv iv e te rm in at ion or
expiration of this Agreement.
11.Export. Customer agrees to comply with all applicable export laws and restrictions and regulations of any United States and any applicable foreign agency or
authority, and not to export or re-export the Software or any direct product thereof in violation of any such restrictions, laws or regulations, or without all
necessary approvals. Customer shall be liable for any such violations. The version of the Software supplied to Customer may contain encryption or other
capabilities restricting Customer’s ability to export the Software without an export license.
12. Commercial Computer Software. The Software is “commercial computer software” and is provided with restricted rights. Use, duplication, or disclosure by the
United States government is subject to restrictions set forth in this Agreement and as provided in DFARS 227.7201 through 227.7202-4, FAR 12.212, FAR
27.405(b)(2), FAR 52.227-19, or FAR 52.227-14(ALT III) as applicable.
13. Interface Information
information needed to achieve interoperability between the Software and another independently created program, on payment of applicable fee, if any. Customer
shall observe strict obligations of confidentiality with respect to such information and shall use such information in compliance with any applicable terms and
conditions upon which Juniper makes such information available.
14. Third Party Software. Any licensor of Juniper whose software is embedded in the Software and any supplier of Juniper whose products or technology are
embedded in (or services are accessed by) the Software shall be a third party beneficiary with respect to this Agreement, and such licensor or vendor shall have
the right to enforce this Agreement in its own name as if it were Juniper. In addition, certain third party software may be provided with the Software and is subject
to the accompanying license(s), if any, of its respective owner(s). To the extent portions of the Software are distributed under and subject to open source licenses
obligating Juniper to make the source code for such portions publicly available (such as the GNU General Public License (“GPL”) or the GNU Library General
Public License (“LGPL”)), Juniper will make such source code portions (including Juniper modifications, as appropriate) available upon request for a period of
up to three years from the date of distribution. Such request can be made in writing to Juniper Networks, Inc., 1194 N. Mathilda Ave., Sunnyvale, CA 94089,
ATTN: General Counsel. You may obtain a copy of the GPL at http://www.gnu.org/licenses/gpl.html, and a copy of the LGPL at http://www.gnu.org/licenses/
lgpl.html.
15. Miscellaneous. This Agreement shall be governed by the laws of the State of California without reference to its conflicts of laws principles. The provisions of the
U.N. Convention for the International Sale of Goods shall not apply to this Agreement. For any disputes arising under this Agreement, the Parties hereby consent
to the personal and exclusive jurisdiction of, and venue in, the state and federal courts within Santa Clara County, California. This Agreement constitutes the
entire and sole agreement between Juniper and the Customer with respect to the Software, and supersedes all prior and contemporaneous agreements relating to
the Software, whether oral or written (including any inconsistent terms contained in a purchase order), except that the terms of a separate written agreement
executed by an authorized Juniper representative and Customer shall govern to the extent such terms are inconsistent or conflict with terms contained herein. No
modification to this Agreement nor any waiver of any rights hereunder shall be effective unless expressly assented to in writing by the party to be charged. If any
portion of this Agreement is held invalid, the Parties agree that such invalidity shall not affect the validity of the remainder of this Agreement. This Agreement
and associated documentation has been written in the English language, and the Parties agree that the English version will govern. (For Canada: Les parties aux
présentés confirment leur volonté que cette convention de même que tous les documents y compris tout avis qui s'y rattaché, soient redigés en langue anglaise.
(Translation: The parties confirm that this Agreement and all related documentation is and will be in the English language)).
. To the extent required by applicable law, and at Customer's written request, Juniper shall provide Customer with the interface
2010-4-27Release 2.0Document Version 2.0
2010-5-14Release 2.0.1Document Version 2.0a
2010-6-17Release 2.0.2Document Version 2.0b
2010-7-21Release 2.0.3Document Version 2.0c
2010-9-17Release 2.0.4Document Version 2.0d
This Administrator’s Guide is written for system and network administrators who plan,
implement, and manage video delivery environments. In addition to What’s New in Release
2.0.4, this preface includes these topics:
•Guide to This Document
•Documentation and Release Notes
•Text and Syntax Conventions
•Terminology
•Documentation Feedback
•Requesting Technical Support
What’s New in Release 2.0.4
Release 2.0.4 introduces minor feature enhancements and issue resolutions. This section
provides short descriptions of the feature enhancements in Release 2.0.4.
PXE Installation Enhancements
In Release 2.0.4, Media Flow Controller simplifies the PXE boot process by eliminating the
need for administrators to have an interactive console session to boot it. Administrators can
configure the PXE boot options at the PXE server, in the PXE configuration specification file
(PXE spec). The following new PXE boot functions are supported in Release 2.0.4:
•No need to specify an URL for PXE boot
•Option to pre-accept the End User License Agreement (EULA)
•Automatically mark the interface that was used for PXE-booting as eth0
•Ability to specify all installation options in the PXE spec so administrator does not have to
manually enter anything
See the Media Flow Controller and Media Flow Manager Installation Guide
Installations on Non-Centos Linux Drives
On fresh installations, any partition data on the drive is overwritten. Previously , if disk drives
had non-Centos data when doing a fresh installation, the installer responded with a partition
error.
The option to export log files at more frequent rates than every hour has been added. You ca n
now configure automatic log imports for every 5 minutes.
You can now keep log files on Media Flow Controller for up to 14 days.
Logs can now be uploaded via SFTP with SSH keys rather than sending the password in
cleartext.
Media Cache
You can now upload meta data to the media cache.
You can now list controllers on the media cache; currently 3ware controller only.
Hardware Support
Juniper Networks VXA Series Chassis
•Media Flow Controller Release 2.0.4 is qualified to run on Juniper Networks VXA Series
appliances.
•Supported models are VXA1001and VXA1002 chassis, and VXA2002 and VXA2010
NEBS-compliant chassis.
•Media Flow Controller Release 2.0.2 and higher numbered releases are the only
recommended releases for the VXA Series of products.
Other Hardware
•Support for Intel ET series of NIC based on Intel MAC controller 82576.
•Support for Intel 10GbE NIC
•Media Flow Controller Release 2.0.4 has been tested to run with Chelsio 10GbE NIC.
Guide to This Document
This document provides information on the following topics:
•“Media Flow Controller Overview” on page 39: Describes how Juniper Networks Media
Flow Controller fits into the network topology, and the basic working principals including
feature descriptions.
•“Media Flow Controller Configuration Tasks (CLI)” on page 57: Describes basic system
setup including initial logins and configuration methods, plus service configurations. Plus
how to reset the system to its factory configuration, reboot the system, and install
upgrades to the system.
Media Flow Controller Administrator’s Guide Preface
•“Configuring and Using Media Flow Controller Logs and Alarms” on page 209: Describes
Media Flow Controller logs including fields, formats (where applicable), and configuration
options. Also describes how to configure SNMP alarms, logging, and event notifications.
•“Server Map Configuration” on page 243: Describes how to create the XML server map
file needed for the server-map command. All three server map types are described.
•“SmoothFlow Deployment” on page 251: Describes how to create SmoothFlow video
assets using an SaaS or independently.
•“Media Flow Controller Troubleshooting” on page 271: Provides details on available
diagnostic tools including displaying information with show commands. Includes Testing
Network Connectivity, Testing Media Flow Controller Namespace and Delivery, and
common configuration errors.
•“Media Flow Controller CLI Commands” on page 287: Alphabetical list of all commands
including keywords, arguments, and notes.
•“Media Flow Controller MIB Definitions” on page 385: Provides the base MIBs supporte d
by Media Flow Controller.
Documentation and Release Notes
To obtain the most current version of all Juniper Networks technical documentation, see the
product documentation page on the Juniper Networks website at
http://www.juniper.net/techpubs/
Juniper Networks supports a technical book program to publish books by Juniper Networks
engineers and subject matter experts with book publishers around the world. These books go
beyond the technical documentation to explore the nuances of network architecture,
deployment, and administration using Junos OS and Juniper Networks devices. In addition,
the Juniper Networks Technical Library, published in conjunction with O'Reilly Media, explores
improving network security, reliability, and availability using Junos OS configuration
techniques. All the books are for sale at technical bookstores and book outlets around the
world. The current list can be viewed at http://www.juniper.net/books
.
.
Text and Syntax Conventions
Table 1Text and Syntax Conventions Used in This Book
ConventionDescriptionExample
Plain TextOrdinary text.The origin server organizes media content
hierarchically.
Bold TextCommands in running text, and screen
elements such as page titles, and option
labels.
Use the interface command to configure IP
addresses.
In the Management Console, use the
Setup > Date and time page.
... (ellipsis)An ellipsis (...) indicates that the previous
Command keywords.
Text displayed online at a command line.
Command text that you type.
variable and must be replaced by whatever
it represents. In the example to the right,
the user would replace <file_name> with
the name of the specific file.
enclosed in brackets must be specified.
options, where one option is required.
Y ou can enter one of the options separated
by the vertical bar, but you cannot enter
multiple options in a singe use of the
command.
A vertical bar can be used to separate
optional or required options.
option can be repeated multiple times with
different values. It can be used inside or
outside of brackets.
interface <interface_name>
Please enter your IP address
interface eth0 ip address <IP
address>
show file <file_name>
web proxy host <IP_address>
[port <TCP_port>]
web proxy auth authtype
{none | basic}
analytics last-evict-time
diff <1 | seconds>
clock timezone <zone>
[<zone>] ...
Terminology
This section provides definitions for Media Flow Controller terms and industry-standard terms
that may be unfamiliar to the reader.
Absolute URL An absolute URL points to the exact location of a file or directory on the
Internet, by name. Contrast with Relative URL
AFR Assured Flow Rate. A Media Flow Controller option that, when enabled, ensures that
media content is delivered at a rate that is minimally needed for the video to play smoothly.
ARP Address Resolution Protocol; allows systems to map IP addresses to MAC addresses.
Bit-rate A data rate (the amount of data tran sf er re d in on e dir ect ion over a link divided by the
time taken to transfer it) expressed in bits per second. Juniper Networks notation examples:
Kbps (kilobits per second), KB/s (kilobytes per second). See also Profile (Bit-rate profile)
Media Flow Controller Administrator’s Guide Preface
Broadcast A type of network routing scheme where data is sent to all possible destinations on
a network. Contrast with Multicast
and Unicast.
CDN Content Delivery Network. A system of computers networked together across the
Internet that cooperate transparently to deliver content most often for the p urpose of impro ving
performance, scalability, and cost efficiency, to end users.
CHD Computed Historical Datapoints; traffic samples that have been computed in some
manner, such as summation and averaging.
CLI Command Line Interface.
Client Node or software program (front-end device) that requests services from a server.
CMC Central Management Console, Juniper Networks management interface that allows you
to push configurations to a number of Media Flow Controllers from a central interface. In
Release 2.0.4, only client configuration is supported.
DHCP Dynamic Host Configuration Protocol.
DSR Direct Server Return. A method of handling TCP traffic in the context of utilizing a proxy.
Edge cache An appliance, placed between the Inte rnet and close to the end user, tha t caches
and delivers content (like Java Script, CSS, images, and so forth.) freeing up Web servers for
other processes. Media Flow Controller as an edge cache is effectively a “reverse proxy,” that
provides these benefits: reduces the load (network and CPU) on an origin server by servicing
previously retrieved content and enhances the user experience due to a decrease in latency.
FMS Flash Media Server.
Full Download An HTTP media delivery mode in which the entire media file is downloaded
before playback; contrast with Progressive Download (PDL)
.
HDD Hard Disk Drives.
“Hot” Content (Short Tail vs. Long Tail) When content is often requested it becomes “hot.”
Media Flow Controller caches content hierarchically based on hotness. Short tail videos are
those that are often requested: a few videos requested by many different clients. Long tail
videos are those that are seldom requested: many different videos requested by few clients.
Ingest Data placed on a Media Flow Controller, analyzed, and queued; contrast with Pre-
stage.
KB and KiB KB=1000 Kilo Bytes (networking), KiB=1024 Kilo Bytes (storage).
Local boot This refers to booting from the default boot partition on the system; for example,
when the reboot command is given.
MB, MiB, and Mbit MB=1,000,000 Mega Bytes (networking). MiB=1,048,576 (1024 x 1024)
Mega Bytes (storage). Mbit=1,000,000 x 8 Megabits (data transfer).
MTU Maximum transmission unit. The size (in bytes) of the largest packet or frame that a
given layer of a communications protocol can pass onwards.
Multicast A type of network routing scheme where data is sent to certain destinations based
on address. Contrast with Broadcast
, and Unicast.
Namespace A defined collection of delivery policies for different categories of content or
domains.
Network prefix An IPv4 network prefix specifying a network. Used in conjunction with a
netmask to determine which bits are significant. For example, "192.168.0.0".
NFS (network file system) A protocol that allows a user on a client computer to access files
over a network similarly to how local storage is accessed.
NIC Network Interface Controller/Card.
NTP Network Time Protocol.
Origin library The source of media content, typically a server located at a data center.
Origin server The media content server. Juniper Networks Media Flow Controller can be
configured as an Origin server.
Player (media player software) Any media player for playing back digital video data from
files of appropriate formats such as MPEG, AVI, RealVideo, Flash, QuickTime, and so forth. In
addition to VCR-like functions such as playing, pausing, stopping, rewinding, and forwarding,
some common functions include zooming/full screen, audio channel selection, subtitle
selection, and frame capturing.
Pre-stage Data placed on a Media Flow Controller or origin server before an HTTP request
comes in for it. Contrast with Ingest
.
Profile (Bit-rate profile) A media “bit-rate profile” is the bit-rate encoding that allows optimal
downloads to different bandwidths.
Progressive Download (PDL) An HTTP media delivery mode in which the media file is
played while it is being downloaded; contrast with Full Download
.
Proxy (reverse, mid-tier, transparent, virtual) A reverse proxy is a server processing in-
bound traffic, installed in front of origin servers. Reverse proxies are used for scaling origin
servers, caching (serving commonly-accessed files), load balancing, and security (denying
requests, preventing direct origin server access, and so forth.). A mid-tier proxy sits between
the origin servers and the edge, and serves requests from the edge caches. Mid-tier proxies
improve response time for requests because content is closer to the user; and off-load origin
servers from repeat requests from the edge. A transparent proxy is a proxy that does not
modify the request or response beyond what is required for proxy authentication and
identification. Transparent proxies help optimize networks transparently (no client
configuration required, no modification of traffic done). A virtual proxy uses the HOST header
of the incoming request to derive origin; use this variant of a reverse proxy as an alternate to
providing a single origin-server. Media Flow Controller can be used in any of these capacities.
Publishing Point (live-pub-point) A way to distribute content to your users (live or
broadcast as live); either through a defined SDP (service delivery protocol) file, or a
namespace.
Pull vs. Push Pull refers to media fetches from the origin server initiated by Media Flow
Controller based on received requests. Push refers to scheduled media deliveries from the
origin server to Media Flow Controller.
PXE (Preboot eXecution Environment) boot A way to boot computers using a network
interface without needing a CDROM or USB drive; PXE must be properly installed first.
Remote Authentication Dial In User Service. A netwo rking protocol that provides centr alized
access, authorization and accounting management for people or computers to connect and
use a network service.
Regex An extended regular expression. Enclose all regex entries in single quotes; for
example, a regex for www.example.com plus example.com could be this:
‘^.*\example\.com’.
Media Flow Controller Administrator’s Guide Preface
Relative URL A relative URL points to the location of a file from a point of reference, usually
the directory beneath. Preceded by two dots (../directory_path/file.txt) for the directory above;
one dot (./directory_path/file.txt) for the current directory. Contrast with Absolute URL
.
RTMP Real Time Messaging Protocol. A m ultimedia streaming and RPC (remote procedure
call) protocol primarily used in Adobe Flash. RTMP has three variations: The “plain” protocol
which works on top of TCP and uses port 1935, RTMPT which is encapsulated within HTTP
requests to traverse firewalls, RTMPS which works just like RTMPT but over a secure HTTPS
connection.
RTP Real-time Transport Protocol. A standardized packet format for delivering audio and
video over the Internet. It is used in conjunction with other protocols such as RTSP. The RTP
standard defines a pair of protocols, RTP and the Real-time Transport Control Protocol
(RTCP). RTP is used for transfer of multimedia data and RTCP is used to periodically send
control information and QoS (quality of service) parameters between the server and client.
RTSP Real Time Streaming Protocol. An application level protocol for the control of real-time
streaming data sent over RTP. Typic ally RTP data is sent over UDP, but it can also be sent
over the RTSP channel via an inter leave d me chan ism or over TCP v ia p ort 80 with HTTP -like
syntax and operations.
RU (Rack Unit) A unit of measurement of the height of a rack-mounted device.
RX A communications abbreviation for “receive.”
SAS Serial attached SCSI. A data transfer technology designed to move data to and from
computer storage devices such as hard drives and tape drives.
SATA Serial Advanced Technology Attachment. A computer bus technology primarily
designed for transfer of data to and from a hard disk.
SCP The SCP (secure channel protocol) pseudo-URL format is:
The path is an absolute path. Paths relative to the user's home directory are not currently
supported. You must have an SCP server installed in order to SCP files to your machine.
SFTP The SFTP (secure file transfer protocol) pseudo-URL format is:
sftp://<username@<hostname>:<path>[</filename>]
The path is an absolute path. Paths relative to the user's home directory are not currently
supported. You must have FTP server installed in order to FTP or SFTP, respectively, files to
your machine. SFTP uses SSH.
SSD Solid-state drive, a storage device using solid-state memory to store persistent data.
Streaming Streaming is the process of playing a file while it is still being downloaded.
Streaming technology lets a user view and hear digitized content as it is being downloaded.
Tunneling When a payload protocol is incompatible with the delivery network, a tunneling
protocol can encapsulate it for delivery only; no polic es can be applie d.
Unicast A type of network routing scheme where data is sent to a single destination h ost on a
network. Contrast with Broadcast
, and Multicast.
UOL, URI, URL Uniform Object Locator, Uniform Resource Identifier, Uniform Resource
Locator (respectively). When shown as a command variable, for example <URL>, this
indicates a normal URL, using any protocol that WGET supports, including HTTP, HTTPS,
FTP, and TFTP; or a pseudo-URL specifying an SCP file transfer.
uri-prefix This namespace argument refines what requests Media Flow Controller accepts.
In the URL shown, the uri-prefix could be defined as / (slash), /vod, or /vod/path1. If / (slash)
is used, all incoming requests to that domain are honored; if /vod, only requests containing “/
vod” (and any sub-directory of it) are honored; if /vod/path1, request s must include that prefix
and that sub-directory (sub-sub-directories of path1 need not be specified).
Virtu al Host A virtual host is a capability of some computers that can respond to different IP
addresses and offer different services appearing to be a distinct host on a distinct machine; a
single machine can supply several virtual hosts.
Virtual Player This term refers to the sever-side player provided by Media Flow Controller to
assist in media viewing. Media Flow Controller offers several types of virtual player for use in
different scenarios; for SmoothFlow, the Type 4 virtual player is used exclusively.
VOD Video On Demand.
Documentation Feedback
We encourage you to provide feedback, comments, and suggestions so that we can improve
the documentation. You can send your comments to
techpubs-comments@juniper.net, or fill out the documentation feedback form at
https://www.juniper.net/cgi-bin/docbugreport/
following information with your comments:
•Document or topic name
•URL or page number
•Software release version (if applicable)
Requesting Technical Support
Technical product support is available through the Juniper Networks Technical Assistance
Center (JTAC). If you are a custo mer with an a c tive J-Care or JNASC support contract, or are
covered under warranty, and need post-sales technical support, you can access our tools and
resources online or open a case with JTAC.
•JTAC Policies—For a complete understanding of our JTAC procedures and policies,
Media Flow Controller Administrator’s Guide Preface
Self-Help Online Tools and Resources
For quick and easy problem resolution, Juniper Networks has designed an online self-service
portal called the Customer Support Center (CSC) that provides you with the following features:
•Find CSC offerings:
http://www.juniper.net/customers/support/
•Search for known bugs:
http://www2.juniper.net/kb/
•Find product documentation:
http://www.juniper.net/techpubs/
•Find solutions and answer questions using our Knowledge Base:
http://kb.juniper.net/
•Download the latest versions of software and review release notes:
http://www.juniper.net/customers/csc/software/
•Search technical bulletins for relevant hardware and software notifications:
https://www.juniper.net/alerts/
•Join and participate in the Juniper Networks Community Forum:
http://www.juniper.net/company/communities/
•Open a case online in the CSC Case Manager:
http://www.juniper.net/cm/
To verify service entitlement by product serial number, use our Serial Number Entitlement
(SNE) Tool located at
Media Flow Controller OverviewMedia Flow Controller Administrator’s Guide
CHAPTER 2
Media Flow Controller Overview
•“Media Flow Controller Overview” on page 39
•“Environment” on page 40
•“System and Hardware Overview” on page 40
•“Management Interfaces Overview” on page 41
•“How Media Flow Controller Works” on page 43
•“Media Flow Controller Functions Overview” on page 45
•“Media Flow Controller Delivery Methods” on page 45
•“Media Flow Controller Hierarchical Caching” on page 49
•“Media Flow Controller AssuredFlow” on page 50
•“Media Flow Controller SmoothFlow” on page 51
•“Media Flow Controller Network Connection” on page 53
•“Media Flow Controller Namespace Functions” on page 53
•“Media Flow Controller Virtual Player Functions” on page 53
•“Media Flow Controller Media Flow Manager Functions” on page 56
Media Flow Controller Overview
The Juniper Networks Media Flow Controller combines video intelligence, storage
organization, multi-tier caching, and network optimization to scale media throughput and
enhance end-user experience in a purpose-built appliance. Media Flow Controller can be
implemented as an end-to-end cache; an edge cache; an origin server; a mid-tier cache; or
used for storage or load balancing optimization; to cache, store, and serve content in one
appliance and is designed to:
•Facilitate progressive download of Web video.
•Deliver the highest quality video content that the viewing device/network can support at
that time.
•Combine media storage optimization, multi-tier caching, and rate-based delivery
mechanisms to deliver large numbers of concurrent media streams at different data rates
with an extremely high aggregate bandwidth.
Media Flow Controller is powered by the Juniper Networks Media Operating System
(NMoS™), a media-intelligent operating system designed to serve large numbers of sessions
and deliver high throughput by optimizing resource utilization and new media technologies.
Media Flow Controller OverviewMedia Flow Controller Administrator’s Guide
Environment
Media Flow Controller software can be deployed in any network that uses the TCP/IP protocol.
Media Flow Controller allows you to manage and deploy network bandwidth efficiently,
thereby ensuring the highest quality experience for your end users. Media Flow Controller is
compatible with the other tools, applications, and solutions that constitute your content
management and deployment environment.
•The Media Flow Controller open architecture enables it to integrate easily into existing
network and storage infrastructures without requiring disruptive chang es. Media Flow
Controller supports industry standard storage interfaces and devices.
•Media Flow Controller supports industry standard video players, including Flash,
QuickTime, SilverLight and Windows Media Player.
•Media Flow Controller runs on industry standard x86 64-bit server platforms.
Media Flow Controller uses deep media intelligence, identifying and understanding different
content type requirements, to store, distribute, and deliver content based on those
requirements. It creates an hierarchical caching solution that dynamically shifts content
between tiers. Via adaptive bit rate streaming, Media Flow Controller offers comprehensive
support for delivering differen t bit rates of media depending on variations in the network; both
native adaptive streaming and third-party techniques are supported.
System and Hardware Overview
This section provides a high-level overview of Media Flow Controller hardware specifications,
for the most up-to-date and complete information, see the Media Flow Controller With VXA
Series and Media Flow Manager datasheet.
•“System Requirements” on page 40
•“Delivery Network Link Aggregation” on page 41
•“Installation Requirements” on page 41
•“Console Port” on page 41
System Requirements
The following are either required or recommended for Media Flow Controller optimal
performance.
Table 2Media Flow Controller System Require men ts
HardwareDescription
Processor
•Juniper Networks VXA Series Media Flow Engine.
•One quad-core (2.0 GHz or higher) x86 64-bit processor (second quad-
core processor recommended for future capacity expansion).
RAMMinimum of 8GB. The actual amount of RAM depends on system
requirements like throughput sessions per seconds, and so forth.
Media Flow Controller Administrator’s Guide Media Flow Controller Overview
Table 2Media Flow Controller System Require m en ts (Continue d)
HardwareDescription
Direct Attached Storage
(DAS)
•Up to 16 DAS drives (SSD, SA TA, or SAS), depending on server model
and amount of cache.
•72 GB minimum for boot drive.
•32 GB minimum recommended for additional drives (used for cache
only).
Network Attached StorageNFS (Network File System) supported for handling cache misses.
Network InterfacesUp to ten 1GbE ports or two 10GbE ports for content delivery.
Management InterfaceDedicated 1GbE port. Network ports on the motherboard use lower
performance controllers adequate for a management interface that
typically does not require the full GbE capacity.
Delivery Network Link Aggregation
Media Flow Controller supports LACP (Link Aggregation Control Protocol) to provide
redundancy and conserve IP addresses. A part of IEEE specification 802.3ad, LACP controls
the bundling of several physical ports together to form a single logical channel. LACP allows a
network device to negotiate an automatic bundling of links by sending LACP packets to the
peer (directly connected device that also implements LACP).
Installation Requirements
Media Flow Controller supports local boot from CD-ROM or USB flash drive, or Net Boot (PXE
Boot) for installation. Media Flow Controller runs from the local HDD (hard disk drive).
Console Port
Media Flow Controller provides a serial console port, USB, DB-9 serial, or VGA (video
graphics array), for configuration.
Management Interfaces Overview
Media Flow Controller can be remotely configured and managed.
•“Command Line Interface (CLI)” on page 42
•“Web Interface (Management Console)” on page 42
•“SNMP Interface to Network Management System” on page 42
•“Email and Email2SMS Alerts” on page 43
In addition to these management interfaces, multiple Media Flow Controllers deployed in a
network can be configured and managed from a centralized location using Juniper Networks
Media Flow Manager.
Management Interfaces Overview41
Media Flow Controller OverviewMedia Flow Controller Administrator’s Guide
Command Line Interface (CLI)
You can log in to the Media Flow Controller server via the command line interface (CLI) by
invoking a SSH session. The CLI allows all aspects of system configuration and management.
Web Interface (Management Console)
You can log in to the Media Flow Controller Web interface, also referred to as the
Management Console, from a Web browser using HTTP and port 8080 (for example, http://
Media Flow Controller-Hostname:8080/) . HTTPS can also be used if SSH certificates are se t
up properly. The Web interface ma kes it easy to configure an d manage the system fro m any
remote location. The Web interface provides a powerful dashboard that displays real-time
performance data such as number of concurrent connections, cache-hit ration, bandwidth
served, and CPU/memory/disk utilization.
SNMP Interface to Network Management System
The Simple Network Management Protocol (SNMP) is used by network management systems
(NMS) to communicate with properly configured network elements. Media Flow Controller can
be integrated with 3rd party network management systems via its built-in SNMP agent. The
Media Flow Controller SNMP agent provides the follo win g fu nct ion s:
•Supports SNMP MIBs that can be queried to retrieve system status, and system counters
•Generates SNMPv2 traps in case of system failures, that can be sent to higher-level
network management systems
SNMP Messages (TRAPs, GETs, and SETs)
SNMP messages may be initiated by either the network management system (NMS) or by the
Media Flow Controller. An SNMP TRAP is a message initiated by a Media Flow Controller an d
sent to the NMS; for example, a message that one of its redundant power supplies failed. An
SNMP GET is a message initiated by the NMS when it wants to retrieve some data from a
network element; for example, the network management system might query a Media Flow
Controller for the utilization on a WAN link every 5 minutes. It could then create graphs from
that data, or warn the administrator when the link was overutilized. An SNMP SET is a
message initiated by the NMS when it wants to change data on a network element (for
example, alter a static route); in Release 2.0.4 Media Flow Controller does not support SNMP
SET.
The SNMP MIB
The SNMP MIB, or Management Information Base, is a collection of variables shar ed between
the NMS and the Media Flow Controller. See Chapter 11, “
Definitions” for details.
SNMP Community Strings
The most basic form of SNMP security is the Community String. SNMP Community Strings
are like passwords for network e lements. Most often, there is on e community string which is
used for read-only (ro) access to a Media Flow Controller. The default value for this
community string is public. Using this community string like a password, the NMS can retrieve
data from Media Flow Controllers. In Release 2.0.4 only SNMP ro (Read-Only) is supported.
Media Flow Controller Administrator’s Guide Media Flow Controller Overview
Email and Email2SMS Alerts
Media Flow Controller allows you to be notified via email during events such as high CPU/
Memory utilization, Interface up/down, threshold crossing on statistics or counters. Media Flow
Controller uses SMTP protocol to send emails to the administrators. You can use the
Email2SMS facility provided by mobile network operators to configure Media Flow Controller
to send SMS notifications.
Example:
From: "System Administrator" <do-not-reply@mfc.example.com>
Date: December 28, 2009 9:40:47 AM PST
To: admin@example.com
Subject: System event on mfc.example.com: Process exit: ftpd
Hostname: mfc.example.com
Date: 2009/12/28 17:40:47
Description: Unexpected exit of process ftpd.
Uptime: 1h 15m 34.860s
Version: mfc-1.2.0
How Media Flow Controller Works
A single Media Flow Controller can sustain up to 40,000 simultaneous connections for
different media streams and operate in three different proxy modes: reverse proxy,
transparent proxy, and mid-tier proxy. Media Flow Controller consolidates all streaming
protocols (HTTP, RTSP, RTMP) into a single server, reducing the number of servers required
to deliver video over multiple protocols.
Media Flow Controller is able to get co ntent from origin servers or origin st orages once, and
serve it to several users simultaneously.
When a request for content is received, Media Flow Controller identifies the content to be
served, and does a resource check to verify that the content can be delivered in an acceptab le
manner for that session. After the delivery session is admitted, AssuredFlow can guarantee
certain resources throughout the life of that session: if Media Flow Controller does not have
enough resources, it rejects the request.
Media Flow Controller then checks its hierarchical caches to minimize the cost of serving this
media object. If no copy exists in any cache (also known as “cache miss”), Media Flow
Controller posts a request to the target origin server, fetches the content, and serves it to the
user. Then Media Flow Controller decides if that content is cache-worthy. Media Flow
Controller decides the cache-worthiness based on its intelligent Analytical Engine and
customer-configured policies. When objects become “hot” (downloaded at a high rate), Media
Flow Controller promotes them to a cache tier that supports faster delivery. Promotion in
Media Flow Controller can happen startin g from the lowest tier; for example, SATA to SAS,
SSD, and RAM. This allows Media Flow Controller to scale throughput and meet increased
demand.
The Analytical Engine determines th e “hotness” of content based on frequency of download
requests. As requests for a particular video increase, the hotness of that video increases and
the Analytical Engine moves that video up in the cache hierarchy. Likewise, as requests for a
video fall off, the Analytical Engine moves that video down in the cache hierarchy.
How Media Flow Controller Works43
Media Flow Controller OverviewMedia Flow Controller Administrator’s Guide
A caching structure that starts with RAM and incorporates a flexible hierarchy of cache
devices ensures that objects are placed and migrated across the hierarchies based on
dynamic load characteristics.
Cache tiers are implemented as an extendable framework, making it easy to add new types of
caching devices and origin storage. The caching system is agnostic to the delivery protocol,
allowing multiple delivery protocols to share the cached content. See Figure 1
.
User
Media Flow Controller 1
VXA Series
Media Flow Engine
UserUser
Internet
1
Switch
Load Balancer (optional)
Gigabit Ethernet
traffic ports
Origin library
Media Flow Controller 2
(optional)
VXA Series
Media Flow Engine
2
Eth0 HTTP (8080)LO HTTP (80)
Management VLAN
Internal
Network
3
Management station
Internal
Network
NFS
g015412
Figure 1Juniper Networks Media Flow Controller Operations (reverse proxy deployment)
Figure 1
illustrates the relations between Media Flow Controller and other network
components in the media delivery optimization operation.
1. Requests come in from the Internet via HTTP, to (typically) an Ethernet switch or Load
Balancer that redirects the request to Media Flow Controller. Media Flow Controller does
certain basic checks, such as URL validation, and parses the URL query string, and
header fields to identify the content and any associated policies. Media Flow Controller
Media Flow Controller Administrator’s Guide Media Flow Controller Overview
then (optionally) calculates the AFR needed to deliver this content, and does a resource
check to verify that the content can be delivered in an acceptable manner for that session
2. Upon a cache-miss (the content is not already in the cache), Media Flow Controller
obtains the content from origin, serves it, and caches a copy. Subsequent requests are
served directly from the Media Flow Controller cache.
3. Management interfaces monitor activity and allow configuration changes.
Media Flow Controller Functions Overview
Juniper Networks Media Flow Controller provides several highly specialized functions for
optimizing the delivery and storage of media content.
•“Media Flow Controller Delivery Methods” on page 45
•“Media Flow Controller Hierarchical Caching” on page 49
•“Media Flow Controller AssuredFlow” on page 50
•“Media Flow Controller SmoothFlow” on page 51
•“Media Flow Controller Network Connection” on page 53
•“Media Flow Controller Namespace Functions” on page 53
•“Media Flow Controller Virtual Player Functions” on page 53
•“Media Flow Controller Media Flow Manager Functions” on page 56
Media Flow Controller Delivery Methods
Media Flow Controller can deliver content simultaneously to a large audience across 3
screens (PCs, TVs and Mobile devices), by supporting a wide range of delivery protocols and
container formats.
Media Flow Controller dynamically adapts to the change in traffic pattern across 3-screens
without re-provisioning.
Media Flow Controller supports on-demand and live streaming of videos and consolidates
multiple delivery protocols such as HTTP, RTSP and RTMP. See Figure 2
•Efficiently caches objects of all sizes, ranging from small objects (thumbnails) to the
largest objects (videos and software downloads)
•Supports delivery via HTTP, RTSP and RTMP
•Supports various formats required for delivery to different screen
•Supports multi-tenancy to host multiple hostnames
Media Flow Controller supports the entire spectrum of adaptive streaming methods for ondemand and live streaming such as Apple iPhone Streaming, Microsoft Smooth Streaming,
Move Adaptive Streaming and Adobe Dynamic RTMP streaming.
Media Flow Controller supports SmoothFlow™ for on-demand streaming.
Media Flow Controller supports HTTP Progressive Download (PDL), RTSP/RTP streaming,
and RTMP.
, for illustration.
Media Flow Controller Functions Overview45
Media Flow Controller OverviewMedia Flow Controller Administrator’s Guide
User
UserUser
Media Flow Controller
Internet
g015413
Flash media server
HTTPRTSP
RTMP
HTTPHTTP
RTSP
RTMP
RTMPRTSP
RTMP
NFS
Media
Flow
Controller
Flash
media
server
Live
sources
Streaming
server
File serverWeb server
RTSP/RTP
Delivery
Ingest
Figure 2Media Flow Controller Ingest and Delivery Options
Streaming with HTTP
A standard Web server streams media data with HTTP on top of TCP, which handles the data
transfers. TCP is optimized for delivering non-real-time applications such as file transfers and
tries to maximize the data transfer rate while ensuring stability and high throughput. One of the
ways TCP achieves reliable data transfer is by re-transmitting lost packets; however, it cannot
ensure that all re-transmitted packets arrive in time to be played in the media stream.
Table 3 describes the HTTP methods supported for Media Flow Controller in Release 2.0.4.
Table 3HTTP Methods
CONNECTReserved for proxy use.
DELETERequest to delete a resource.
GETRetrieve the resource identified by the Request-URI. Responses are
HEADObtain meta-information. Identical to GET except content is not returned.
Media Flow Controller Administrator’s Guide Media Flow Controller Overview
Table 3HTTP Methods (Continued)
MethodDescription
OPTIONSGet available request/response options. Responses are not cacheable.
POSTRequest server action:
•annotate an existing resource
•post a message
•accept a block of data
•append data in a database
Responses are not cacheable without the Cache-Control or Expires header.
PUTRequest to store or create a resource.
Responses not cacheable.
TRACEInvoke a loop-back of the request, for testing or diagnosis. Not cacheable.
Streaming with RTSP
Streaming media servers can use the HTTP/TCP protocols as well as specialized protocols
such as the User Datagram Protocol (UDP). UDP does not do re-transmission or data-rate
management functionality, making it ideal for transmitting real-time audio and video data,
which can tolerate some lost packets. Streaming media servers can use an intelligent
retransmission scheme to ensure that only lost packets that can be sent to the client in time to
get played are retransmitted.
A compressed media file is produced and copied to a specialized streaming media server
instead of a Web server. Data is sent to the client at the exact rate associated with the
compressed audio and video streams, rather than at a set rate. The server and the client
communicate during the delivery process allowing additional services to be applied.
RTSP/RTP can dynamically respond to client feedb ac k, ad justin g de live ry rate s ap p ropr iat ely,
increasing the likelihood of uninterrupted viewing. Advanced features such as detailed
reporting of streams played, VCR controls (seek, fast-forward, re wind), live video delivery, and
delivery of multiple streams to the client are available.
Because Web server streaming typically creates a local cached copy of every media file played,
there is no way to prevent end users from keeping the media. With an RTSP/RTP delivery
scheme, users can only stream data and cannot download a media file to their hard disk.
Table 4 describes the RT SP methods supported for Media Flow Controller in Release 2.0.4.,
where C stands for Client, and S stands for server.
Table 4RTSP Methods
MethodDirectionRequirementDescription
DESCRIBEC --> SREQUIREDGet description of media object
OPTIONC --> S, S --> CRecommendedGet available request/response options
PAUSEC --> SRecommendedHalt delivery but keep state
PLAYC --> SREQUIREDStart playback via the transport
mechanism established with SETUP
SETUPC --> SREQUIR EDEstablish transport mechanism
TEARDOWNC --> SREQUIREDRemove state
Media Flow Controller Delivery Methods47
Media Flow Controller OverviewMedia Flow Controller Administrator’s Guide
Connection Pooling
A connection pool is a list of origin-side open connections maintained so they can be reused
for additional data requests. Connection pools enhance the performance of executing
requests made to a dynamic database-driven Website application. In connection pooling,
connections from Media Flow Controller to origin are placed in a pool and used over again so
that a new connection does not have to be established from Media Flow Co ntroller to origin for
each client request for content not in cache. If all the origin-side connections are being used, a
new connection is made and is also added to the po ol. This cuts d own on the amount o f time a
user must wait to establish a connection. You use the delivery protocol CLI commands to
control connection pooling.
Consistent Hash-Based Clustering and Origin Escalation
Media Flow Controller provides a configuration to use a consistent hashing scheme to bind
objects to nodes using an XML file server map. Additionally, you can create an origin-server
node map for origin escalation: if the target origin-server fails, another configur ed origin- server
is automatically chosen. Both of these configurations are achieved through the creation of a
server-map (format-type cluster-map and format-type origin-escalation-map) that is then
associated with a namespace.
Note! The hash scheme and origin server data distribution must be pre-configured.
A consistent hash scheme is used by the Media Flow Controller with the cluster-map node
definitions (and, optionally namespace cluster-hash configuration) to map to the target
origins. In the case where no origins exist due to network connectivity issues, an alternative
set of origin servers can be consulted via an origin-escalation-map, or another cluster-map,
to resolve the request. Consistent hash-based cluster prop erties are as follows:
•No inter-cache communication required.
•Ability to identify the target node via strict computation.
•Uniform distribution amongst the nodes.
•Object stickiness after cluster re-configuration.
•After a node deletion, existing entries map to the same node and objects associated
with the deleted node are uniformly distributed amongst the remaining nodes.
•After an addition of a preexisting node, entries map to the same nodes as observed
prior to the node deletion.
•After an addition of a new node, an equal portion of the address space is remapped to
the new node resulting in a uniform distribution amongst the nodes. Existing entries
may be moved to the new node.
Origin escalation is a configuration consisting of <N> origin servers which are logically viewed
as one, where requests are sequentially initiated to specific origin servers (based upon a
configured weight), until the request is satisfied or all known available origin servers at
request initiation time have been tried. An origin server request is re-initiated to the next
configured origin server (escalation) when network connectivity errors are received or when a
specific, configured, origin server response code is received (for example, HTTP 404).
You can use these two server-map type s together to create a server hierarchy of server-maps
consisting of multiple instances of cluster-map and origin-escalation The order of in wh ich
the maps are added to the namespace denotes the order in which they are read.
See Chapter 7, “
Server Map Configuration,” for more details including requirements.
Media Flow Controller Administrator’s Guide Media Flow Controller Overview
Media Flow Controller Hierarchical Caching
When Media Flow Controller fetches data from origin upon cache miss, it caches the data in its
local disks. Media Flow Controller implements an hierarchical caching mechanism that allows
it to serve up to 10Gbps of data with just 16GB of RAM and a combination of SSD, SAS, and
SATA storage. Media Flow Controller has its own optimized storage sub-system in which data
is placed intelligently so it can be read back for very fast delivery to end-users.
Media Flow Controller organizes data in a hierarch ical fashion us ing a cache tier manag er that
dynamically calculates the “hotness” of the data and places it in the right cache tier (see “
Content (Short Tail vs. Long Ta il)” on page 31 for explanation of hotness). RAM is the highest
tier, followed by SSD, SAS, and SATA, in that order.
Disk speeds are calculated and assigned to a tier in the cache hierarchy as part of the
initialization of Media Flow Controller. When data is accessed from origin, it is stored in the
lowest cache tier, and promoted to higher cache tier s as the hotness of the data increases. All
this is done automatically by Media Flow Controller.
Additionally, Media Flow Controller allows you to configure cache ingestion and promotion
parameters (cache-ingest size-threshold and cache-promotion hotness-threshold) via
the analytics command to create policies for when to ingest, or promote, hot objects to cache
or the next highest cache tier, respectively. See “
“ingest.”
See Figure 3
, for an illustration.
Terminology” on page 30 for definition of
“Hot”
Figure 3Media Flow Controller Cache Ingest and Promotion Process
Media Flow Controller Hierarchical Caching49
Media Flow Controller OverviewMedia Flow Controller Administrator’s Guide
Media Flow Controller AssuredFlow
The AssuredFlow feature assures that Media Flow Controller provides the required ban dwidth
for a connection so that media encoded at different bit-rates are delivered at appr oximately the
encoded bit-rate rather than the fastest possible. This helps optimize use of the available
bandwidth per session along with contri buting to the viewing experience of the end user.
It also may be tied to the end-user’s service level agreement (SLA). This ensures that
bandwidth is not wasted by sending data at a rate higher than the rate at which it is being
consumed (decoded) by the client. Furthermore, it ensures sufficient bandwidth is available
(reserved) for clients that need higher bit rate video. Examples include:
•Full-screen mode clients (higher bit rate) versus small window client (lower bit rate).
•Premium content (higher bit rate) versus free content (lower bit rate).
•Content delivery to a primary site visitor with higher bit rate versus content delivered to a
viewer redirected from a partner site.
Assured-flow rate (AFR) is the parameter through which Media Flow Controller provides
customer control of the AssuredFlow feature. AFR is specified in Kbps, and its intent is to
ensure that Media Flow Controller reserves at least the configured rate in bandwidth for each
delivery session. Clearly, the sum of AFR cannot exceed the aggregate bandwidth of the
server. To be more specific, if an interface, say, GbE, has “n” sessions, AssuredFlow can
guarantee that the sum of AFR assigned to each active session does not exceed the capacity
of the GbE port, or 1Gbps. An active se ssion is one that is sending data at any one particular
instance. We recommend that the sum of AFR be configured to 80 to 90 percent of the link
speed, for best performance. Further, the configured AFR should reflect the average
bandwidth the target origin server is set to deliver media. For example, if a portal delivers
video to users at an average rate of 750 Kbps, AFR should be configured to reflect this value
(for example, 750 Kbps). Assured-flow rate can be configured globally or through a virtual
player configuration. Traffic is served at the configured AFR, or the dynamic AFR set by the
virtual player, up to the configured maximum session bandwidth.
It is not uncommon to have portals set the logic in their player to signal the AFR on each
session. In that case, the signaled AFR overrides the configured AFR. AFR is disabled by
default, which means Media Flow Controller does not assure a delivery rate. When AFR is
disabled in Media Flow Controller, player-signaled AFR is still effective.
Admission Control
Session admission control provides a mechanism to avoid bandwidth overload; this is an
important part of AssuredFlow. Before a new session is admitted, a series of checks across
various resources determines whether the session can be admitted. A new session is defined
as the first GET request received within a new network connection. Existing sessions are not
subject to this control. The following are the various checks that can reject a new session.
1. A new connection is rejected if the incoming interface is already serving at its bandwidth
limit.
2. After a new connection is accepted, the first GET request can be rejected (with an HTTP
error code) during various stages of processing:
Media Flow Controller Administrator’s Guide Media Flow Controller Overview
a. The AFR for the request is based on the URL along with other query parameters and
Media Flow Controller can determine that this AFR cannot be serviced given the
existing bandwidth being served on that port.
b. Media Flow Controller can refuse to create the delivery task if it is out of processing
resources.
c.Media Flow Controller can return an error if it is out of memory resources.
d. Media Flow Controller can return an error if meeting this request would exceed the
capacity of the internal caches or origin libraries.
Logging and statistics for which Media Flow Controller module refused session admission are
provided in the errorlog.
Media Flow Controller SmoothFlow
SmoothFlow™ refers to the Quality of Experience (QoE) feature that Juniper Networks Media
Flow Controller can provide to viewers for uninterrupted video viewing.
Last-mile bandwidth fluctuations can cause buffering, or long pauses. Juniper Networks
SmoothFlow technology provide s viewers a TV-like video viewing experien ce irrespective of
last-mile bandwidth fluctuations, by dynamically detecting available bandwidth and seamlessly
switching the bit-rate of a video being progressively downloaded over HTTP.
Viewers with high bandwidth connections receive videos at higher quality resolutions while
viewers with lower bandwidth connectio ns receive videos enco ded at bit-rates matchi ng their
available bandwidth. Media Flow Controller always sends video data at the bit-rate that is
appropriate to the available bandwidth between the server and client at any point of time.
Media Flow Controller SmoothFlow receives client-side signals fr om the client player providin g
information about real-time resource utilization (for example, if the viewer starts a CPUintensive application while watching a video).
In addition to SmoothFlow, such signals enable Media Flow Controller to allow viewers to
control their media playback experie nce using flow commands such as fast forward, rewind,
frame step, pause, and so forth, on a video that is currently being downloaded.
Media Flow Controller server-side intelligence, coupled with player feedback, allows Juniper
Networks Media Flow Controller to deliver a really high quality of viewing experience tailored
specifically to each viewer. Figure 4
“SmoothFlow Deployment,” for more information.
, illustrates a SmoothFlow deployment. See Chapter 8,
Media Flow Controller SmoothFlow51
Media Flow Controller OverviewMedia Flow Controller Administrator’s Guide
Internet
Origin library
NFS or HTTP
2
4
Client
players
Media Flow Controller Edge
Seattle
Client
players
Media Flow Controller Edge
Chicago
Client
players
Media Flow Controller Edge
Boston
3
Media Flow Controller
Origin server with
SmoothFlow processing
Publishing system
Multi bit-rate
videos
1
FTP push
SmoothFlow
processing
request
Figure 4SmoothFlow™ Deployment Overview
How SmoothFlow Works
SmoothFlow is based on a dual channel approach where one channel is used for video
delivery, and the other for control purposes to signal to Media Flow Controller adaptation
points for responding to bandwidth fluctuations. SmoothFlow technology is delivered via
progressive download over HTTP, providing the additional benefit that the consumer does not
need to download a custom player. As shown in Figure 4
1. Content providers decide how many bit-rate profiles (differently encoded versions) of any
one video they want to create. Each set of encoded bit-rate profiles must include a
metadata file describing ho w many bit-rate pr ofiles a video has and wher e they are stored;
this file may be created by the provider, or auto-created, depending on the encoding
procedure used. Together, the bit-rate profiles and the description file are the “asset.” Af ter
the assets are created, they are pre-staged to an origin server, typically via FTP.
2. Next the publisher or encoder sends a properly configured Media Flow Controller a
SmoothFlow processing request for the asset. This may be done with a script, depending
on the encoding procedure used.
3. SmoothFlow reads the data file given in the processing request, obtains the video files,
and processes them for delivery; this includes chunking the different bit-rate profiles,
creating the internal metadata file for Media Flow Controller, and queuing the assets on
the origin server.
4. Assets are delivered to the edge either upon cache miss or via a SmoothFlow virtual
player. As the assets are delivered to the client players over the delivery channel,
feedback hints to SmoothFlow are sent over the control channel telling Media Flow
Controller when to switch to a different bit-rate profile.
Media Flow Controller Administrator’s Guide Media Flow Controller Overview
Media Flow Controller Network Connection
The network connection CLI commands let you specify how requests are handle d. These
are global values and may be overridden by namespace custom virtual-player settings. You
can specify an assured-flow-rate, how many concurrent sessions to allow (Media Flow
Controller can support up to 40,000 concurrent sessions), the idle timeout for a connection,
and max-bandwidth (the maximum allowable bandwidth) for any o ne gi ven session. If you d o
not use a customized virtual player in your namespace, these values are used.
Media Flow Controller Namespace Functions
The namespace feature allows you to classify different types of traffic based on a combination
of URL and FQDN, and apply se parate deliver y policies to each type of classified traffic. This
gives you a way to separate your video delivery traffic characteristics based on any given
variable in the stream/request being received by Media Flow Controller from the client. You
can create up to 256 namespaces in one Media Flow Controller
At a minimum, namespace configuration requires a domain (only one per namespace) , an
origin-server (one per namespace unless using server-map), and a match criteria (to refine
delivery of incoming requests). Additional parameters for origin-fetch, cache options, and so
forth, are optional. You can further define control by assigning a configured virtual-player
(overrides network connection global defaults). The namespace is referenced via the URL in
the HTTP request directed to Media Flow Controller. For example; if you are serving content
through Media Flow Controller for media under the following directories from your origin
library...
•example.com/videos/trg
•example.com/videos/UGC
•example.com/videos/premiumcontent
... you might create three namespaces: TRG, UGC, and Premium each with a different set of
delivery policies.
Media Flow Controller Virtual Player Functions
Media Flow Controller provides a virtual player function that assists in media viewing
optimization. You can create any number of virtual players; they are utilized when assigned to
a namespace. Namespaces that are not assigned a virtual-player use the values configured
under network connection for the same functions. Virtual players let you implement custom
delivery policies. There are five types of virtual players, described in this section. Type
generic has a super-set of delivery options includ ing hash verification of da ta; Type break has
a subset of Type 0 delivery options, Type qss-streamlet lets you create an assured flow rate
map to apply different delivery rates per URI; Type yahoo provides a subset of delivery
options plus special health and hash verification options; Type smoothflow provides
SmoothFlow options and is required for SmoothFlow delivery; Type youtube provides a
subset of delivery options and YouTube-specific options.
Media Flow Controller Network Connection53
Media Flow Controller OverviewMedia Flow Controller Administrator’s Guide
Type generic
The type generic (formerly type 0) virtual player provides options for nearly all virtual player
functions.
•assured-flow—Assure that content is delivered at the specified rate (AFR), but no more
than the configured connection max-bandwidth. AFR is defined in a kilobits per second
rate, auto (auto-calculate), or signaled with a query param.
•connection max-bandwidth—Maximum allowable bandwidth for a session. The actual
session bandwidth used does not exceed this value, even if there is available bandwidth in
the link. When it is a full download, Media Flow Controller tries to allocate this value to the
session.
•fast-start—Deliver the 1st set of kilobytes at either the configured maximum session
speed or the detected available bandwidth; or by a value determined by one of the faststart options: either a static size value, a static time value, or a query-string-parm name.
•full-download—Allow the delivery to download at the fastest possible speed, up to the
configured connection max-bandwidth and possibly exceeding the configured assuredflow rate.
•hash-verify—Verify the authorization hash value specified in the URL query string.
•seek—Implement seek (currently only for FLV media files) based on the value of query-
string-parm. This function allows the client player to seek a specific part of the media
content; for example, to jump ahead a few minutes or go back a few minutes in the video.
Type break
The type break (formerly type 1) virtual player offers a subset of Media Flow Controller
delivery options: assured-flow, connection max-bandwidth, fast-start, hash-verify, and
seek options (see Type generic for details).
Type qss-streamlet
The type qss-streamlet (former ly type 2) virtual player includes connection max -bandwidth
(see Type generic for details) and AssuredFlow via a special rate-map attribute. The rate-map rate argument extracts the value from the URL to calculate the assured flow rate needed
for each HTTP request. By default, the match string (length must be 2 bytes) is extracted by
going to the end of the URL and skipping 12 Bytes from the end. The value in that location is
mapped to the configured rate in kbps. Example:
In the URL, the value 03 (12 Bytes from the end of the URL) is extracted, and the
corresponding assured flow rate (1000Kbps) is applied.
Type yahoo
The type yahoo (formerly type 3) virtual player includes assured-flow, connection max-bandwidth, and seek options (see T ype generic for details) as well as these special options:
Media Flow Controller Administrator’s Guide Media Flow Controller Overview
•health-probe—Configure an external server to do health checks by making Media Flow
Controller fetch data from origin and play it to the server initiating the he a lth chec k. Th e
signal that a given HTTP request is for a health probe is the health-probe query-string-parm name. If that name value matches the following <string> value, the GET request is
treated as a health probe. When servicing health probes, Media Flow Controller does not
cache the data into disk or in buffer. Use virtual player <name> type 3 no health-probe
to disable.
•req-auth—Compute MD-5 hash of query string parameters representing stream-id,
auth-id, a configured shared-secret, and time-interval; and match the computed value
with the specified match query-string-parm <string>. The HTTP GET proceeds if the
computed MD-5 hash matches; if there is no match, the session is rejected. Use virtual player <name> type 3 no req-auth to disable.
Type smoothflow
The type smoothflow (formerly type 4) virtual player configures SmoothFlow. It is a
requirement of SmoothFlow that this virtual player be configured and used through a
configured namespace. The Type 4 virtual player includes connection max-bandwidth,
hash-verify, and seek options (see Type generic for details) as well as thes e special options:
•control-point—Specify either server or player for smooth flow signaling. If server,
then Media Flow Controller detects the bandwidth variations at the client side and adjusts
the bit-rate of the video accordingly. If player, then the player at the client side explicitly
signals the bandwidth changes and Media Flow Controller adjusts the bit-rate of the video
accordingly.
•signals—Configure triggers for delivery functions; use virtual player <name> type 4 no
signals to disable.
session-id query-string-parm—Specify a query-string-parm name to set the
•
session ID; default is sid. Session ID is the way you bind the control session that
signals the bandwidth change with the data channel.
•
state query-string-parm—Specify a query-string-parm name to set
SmoothFlow state; default is sf. The values this query param take signal various
function calls to SmoothFlow.
•
profile query-string-parm—Specify a query param name to set the media
bit-rate profile; default is pf.
Type youtube
The type youtube (formerly type 5) virtual p layer is designed for Yo uTube and offers a subset
of Media Flow Controller delivery options: assured-flow, connection max-bandwidth, fast-start, seek (see Type generic for details), and YouTube-specific options for identifying the
requested video, video-id, and its format, format-tag.
Type smoothstream-pub
The type smoothstream-pub virtual player supports Smoothstream functionality for Internet
Information Se4rvices (IIS) for Windows® Server.
Media Flow Controller Virtual Player Functions55
Media Flow Controller OverviewMedia Flow Controller Administrator’s Guide
Encoding Schemes
Media Flow Controller supports the formats and encoding schemes shown in Table 5.
Media Flow Controller Media Flow Manager Functions
Media Flow Controller can be managed by Media Flow Manager; to configure this you use the
Web-based Management Console interface or the cmc commands at the CLI.
Using Media Flow Manager, you can remotely manage individual Media Flow Controllers, or
you can group Media Flow Controllers, and remotely apply saved configurations, called
“profiles.” For details, see the Media Flow Manager™ Administrator’s Guide and CLI
Media Flow Controller Configuration Tasks (CLI)Media Flow Controller Administrator’s Guide
Before You Configure Media Flow Controller
Media Flow Controller is a network appliance a nd the network p arame ters must be configured
first, as any network appliance. Before you begin, you will need to know:
•Hostnames/IP addresses (including but not limited to, Subnet Mask, Default Gateway,
DNS servers, and NTP servers) for the Media Flow Controller traffic and management
ports (eth0 is default management port, eth1 is the recommended origin-fetch interface).
•Hostnames/IP addresses for external servers such as origin servers/libraries, logging,
SNMP, SSH, or storage servers. In order to configure the (required) namesp ace, you must
know the uri-prefix (see uri-prefix
(fully qualified domain name) or IP address, at a minimum. This information tells Media
Flow Controller where to fetch media from and how to handle it.
•Domain names for the Media Flow Controller to resolve unqualified hostnames.
•The users you want to be able to administer or monitor Media Flow Controller, their email
addresses (for event email notifications), an d the authentication / authorization schemes
you want to use; these schemes can be complicated and should be prepared by an
expert.
•The query parameters that you use in URLs to pass information, if you expect to configure
a virtual player (not required). Many content delivery networks (CDNs) have proprietary
query params already defined.
for definition), domain name, and origin server FQDN
•The types of content that you serve and their optimal delivery rates, the protocols that you
use for delivery, and the general bandwidths of delivery connections that you want to
maintain.
Related Topics
•“How Media Flow Controller Works” on page 43
•“Media Flow Controller Functions Overview” on page 45
About the Media Flow Controller CLI
The Juniper Networks Media Flow Controller™command line interface (CLI) supports
industry-standard commands for configuration and management as well as Media Flow
Controller specific commands.
The CLI supports command-line editing: press the up arrow to repeat previous lines, and the
left arrow to edit the current line. The CLI also supports command completion when you press
the Tab key. Commands must terminate with CRLF (carriage return followed by newline).
Media Flow Controller Administrator’s Guide Media Flow Controller Configuration Tasks (CLI)
Connecting and Logging In
You can connect to the CLI with SSH, Telnet (after enabled; Telnet is disabled by default), or
serial console using the IP address of your Media Flow Controller. The Media Flow Controller
responds with a login prompt. Enter admin as the user; there is no default password. After you
have connected, you must enter enable and then configure terminal in order to begin
configuring Media Flow Controller.
Likewise, you can log in to the Web-based interface by entering the IP address in a browser
window and using admin as the login name. The Management Console has a subset of the
CLI commands, but is good for simple or First Day configurations.
Each user account has at least one privilege level that determines which commands they can
issue and what CLI modes they can access:
•Administrator (admin): Full privileges. Can enter Enable mode and Config mode.
•Monitor (monitor): Can read all data and perform all actions, but not change any
configuration. Can enter Enable mode from Standard mode but cannot change
configurations.
•Unprivileged (unpriv): Can issue a small subset of commands including debugging and
show commands. Can log in to Standard mode only.
Using the Command Modes
When you log into the management shell over SSH (or optionally TELNET, if enabled; this is
not recommended) you are in the lowest tier, St andard mode; only show, help, diagnost ic
commands and a few others can be entered. You get into Enable mode by issuing the enable
command. In Enable mode you can view current configurations but not make configurations.
You need to enter Configure mode to make any changes. The CLI can be in one of three
modes, which determine which set of commands are available.
•Standard mode—When the CLI is launched, it begins in Standard mode. This is the most
restrictive mode and only has commands to query a restricted set of state information. You
cannot take any actions that would directly affect the system, you cannot change settings.
•Enable mode—The enable command moves you to Enable mode. This has commands
to view all state information, and take certain kinds of actions like rebooting the system,
but does not allow any configuration to be changed. It s commands are a superset of th ose
in Standard mode. Enter disable to exit Enable mode.
•Configure mode—The configure terminal command moves you to Configure mode.
This has a full unrestricted set of commands to view anything, take any action, or change
any configuration. Its commands are a superset of those in Enable mode. Enter exit to
leave Configure mode.
•Prefix mode—Some commands have a prefix mode; that is, when you enter a keyword,
you enter a mode for that configuration . Fo r exam p le:
When in the prefix mode, you can only make configurations for that command set and
typing ? (question mark) shows you only the options for those configurations. To leave the
prefix mode, type exit.
About the Media Flow Controller CLI59
Media Flow Controller Configuration Tasks (CLI)Media Flow Controller Administrator’s Guide
The prompt always begins with the hostname of the system. What follows depends on what
command mode you are in. To demonstrate by example, say the hostname is "test-vos". The
prompts for each of the modes would be:
Commands that succeed in doing what was asked do not print any response. The next thing
you see after pressing Enter is the command prompt. If an error is encountered in executing a
command, the response begins with % (percent sign), followed by some text describing the
error.
Note! All CLI commands allow completion with TAB. For example, typing en and then
pressing TAB completes the en command out to enable. Completion (hitting TAB) also shows
all commands following the typed letters; for example, typing e (in Standard mode) and then
pressing TAB shows enable and exit as the available commands starting with e.
CLI Options
There are four groups of commands relating to the CLI itself:
•cli session commands change a setting only for the current CLI session. They do not
•cli default commands change the defaults for the specified setting for all future CLI
•Other cli commands that take one-time actions, rather than change a setting, and thus do
•terminal commands are clones of a subset of the cli session commands, and are only
See cli for CLI command details.
Note! Some settings, such as the terminal length and width, are inherently session-specific,
and there are no corresponding commands to set defaults. Also, some commands are only
available in default form.
affect any other sessions, and can be performed by any user at any time.
sessions of all users. They also change the setting for the current session from which they
were executed, but not for any other currently active sessions. Since they change
configuration, the user must be in configuration mode to run them, so they can only be run
by admin privilege user.
not fall under the session or default umbrellas. For example, cli clear-history.
Media Flow Controller Administrator’s Guide Media Flow Controller Configuration Tasks (CLI)
Logging In to Media Flow Controller for the First T ime (CLI)
Before you log in to Media Flow Controller for the first time, see “Before You Configure Media
Flow Controller” on page 58.
To log into the system command line interface (CLI) for the first time, you need the IP address
assigned the management interface.
1. Open an SSH session and enter the Media Flow Controller management IP address or
hostname, or open a serial console session with the console server IP address and port,
to connect.
2. Log in with these default credentials (there is no default password).
User: admin
To log into the Management Console (Web UI), just navigate to the configured Media Flow
Controller IP address, specify the management port (:8080), and use the same login
credentials. The Management Console has a subset of the CLI commands, but is good for
simple or First Day configurations. Example:
http://192.168.1.100:8080.
Media Flow Controller System Configuration Overview
You can configure many basic system settings using the Media Flow Controller CLI.
Note! Some of these configurations may have already been done at installation.
Important! Save your settings after each configuration by typing write memory.
To configure system settings:
•“Configuring Interfaces, Hostname, Domain List, DNS, and Default Gateway (CLI)” on
page 61
•“Configuring Media Flow Controller System Clock and Banners (CLI)” on page 64
•“Creating and Configuring Link Bonding and Static Routes (CLI)” on page 65
•“Authentication / Authorization and Users Options” on page 67
•“Configuring Media Flow Controller User Accounts (CLI)” on page 69
•“Enabling Media Flow Controller CMC Client Rendezvous (CLI)” on page 70
•“Applying the Media Flow Controller License (CLI)” on page 71
Configuring Interfaces, Hostname, Domain List, DNS, and
Default Gateway (CLI)
Before you configure Media Flow Controller interfaces, see “Before You Configure Media Flow
Controller” on page 58.
Tip! You may want to temporarily change the CLI default logout time (900 = 15 minutes); to do
this, use this command:
cli session auto-logout <seconds>
Logging In to Media Flow Controller for the First Time (CLI)61
Media Flow Controller Configuration Tasks (CLI)Media Flow Controller Administrator’s Guide
To configure Media Flow Controller interfaces, hostname, domain list, DNS, and default g ateway:
1. Configure interface IP addresses for management (eth0), and origin fetch (eth1). Later,
use the delivery protocol commands to configure traffic in terfaces as needed (described
in “
Media Flow Controller Policy Configurations Overview”). It is important to keep the
traffic ports separate from the origin fetch ports for proper function ing of assured-flow, if
used. Use show interfaces to verify.
interface <interface_name> ip address <mangagement_IP_address>
<netmask_or_length>
2. Enable or disable (with no) use of DHCP on the specified interface. When enab led, DHCP
gets the IP address and netmask, so those settings are ignored. Conversely, setting the IP
address and netmask disables DHCP implicitly. Use renew to force a restart on the DHCP
client for the specified interface. Default is disabled.
interface <interface_name> dhcp
3.
Configure the system hostname.
hostname <name_for_the_appliance>
Use show hosts to verify.
4. Since delivery changes have been made, restart the delivery service (mod-delivery).
service restart mod-delivery
5.
Configure domain list (to resolve unqualified hostnames), and name server (DNS).
Use show
hosts to verify.
ip domain-list <domain_name_for_resolving_hostnames> ...
ip name-server <DNS_server_IP_address>
6. Configure the default gateway. Use show ip default-gateway to verify.
ip default-gateway <default_gateway_IP_address>
Sample configuration from unconfigured login prompt:
Media Flow Controller Administrator’s Guide Media Flow Controller Configuration Tasks (CLI)
Example: Media Flow Controller Interface Configuration
When Media Flow Controller initializes, the on-board Ethernet interfaces are numbered Eth0,
Eth1, and so on. When a NIC, dual- or qu ad - por t, is attached to the server, the 1st NIC (goes
by PCI channel number) gets interface names Eth10, Eth11, and so on to Eth19. Second NIC
gets the names Eth20, Eth21, and so on to Eth29; it is assumed that only up to 10 Ethernet
interfaces per NIC exist.
See Table 6, “
Important! For VXA Series Media Flow Engine appliances, do not ever change the eth name
mappings, all interface assignments are handled automatically during manufacturing.
Example Machine Setup of Management and Traffic Ports," for details.
In Table 6 on page 63, and Fi g ur e 5 on page 64
, example, the wiring logic is:
•Eth 0: Running SNMP, sending analytics to another machine, Web management, SSH,
and Telnet; connected to your internal network.
•Eth 1: Upstream fetching content from origin; connected to the network that connects to
the origin server.
•Eth 2 - 5: Service traffic; connected to the public Internet. These interfaces must have IP
addresses.
Table 6Example Machine Setup of Management and Traffic Ports
InterfaceConnectivityIP Address
Eth 0onboard192.168.1.100255.255.255.0 8080, 22yesManagement
Eth 1onboard172.20.46.10*255.255.255.0 80yesOrigin fetch
Eth 2PCIe card10.1.1.11255.255.255.0 80not
Eth 3PCIe card10.1.2.11255.255.255.0 80not
Subnet
Mask
Open
Ports
Internet
Access
applicable
applicable
Purpose
Traffic
Traffic
Eth 4PCIe card10.1.3.11255.255.255.0 80not
applicable
Eth 5PCIe card10.1.4.11255.255.255.0 80not
applicable
*Eth0 AND Eth1 can be on the same subnet; this e xamples indicates they are not.
Example: Media Flow Controller Interface Configuration63
Traffic
Traffic
Media Flow Controller Configuration Tasks (CLI)Media Flow Controller Administrator’s Guide
Switch
User
UserUser
Internet
g015428
Origin
Server
Terminal server console
Switch
Intranet/
Internet
Origin
Server
Management station
Management VLAN
Media Flow Controller
traffic
Eth 2, 3, 4...
HTTP (80)
origin fetch
Eth 1
HTTP (80)
management
Eth0
HTTP (8080)
SSH (22)
HTTP
NFS
Figure 5Example Connectivity
Configuring Media Flow Controller System Clock and Banners (CLI)
Note! Eth0 and Eth, typically the first two interf aces you us e, are usua lly the first two network
ports built into the system—either part of the system board, or the first add-in card or module.
Note! Lights Out management (also known as "out-of-band") involves the use of a dedicated
management channel for device maintenance. It allows you to monitor and manage servers
and other network equipment by remote control regardless of whether th e machine is powe red
on. You can configure out-of-band management through the BIOS.
Important! Media Flow Controller does not support RAID arrays.
Before you configure Media Flow Controller system clock and banners, see “Before You
Configure Media Flow Controller” on page 58. Proper time configuration is required for
accurate functioning. To configure an NTP (network time protocol) server OR system clock
and timezone:
1. Configure NTP server. Use show ntp to verify.
ntp server 123.45.10.8
Example:
test-vos (config) # ntp server 123.45.10.7
Alternately, configure the system clock, and timezone. Use show clock to verify.
clock set <hh:mm:ss> [<yyyy/mm/dd>]
clock timezone <zone> [<zone_word>] [<zone_word>] ...
Media Flow Controller Administrator’s Guide Media Flow Controller Configuration Tasks (CLI)
test-vos (config) # clock
2. Optionally, configure banne rs. There are two configu rable banners: motd (message of the
day) and login. In the CLI, both are displayed at the command line when you log in; in the
Management Console, only the login message is displayed, on the login page. M ulti-word
messages must be surrounded by quotes. Use show host and show banner to verif y.
test-vos (config) # banner login “Welcome to Media Flow Controller”
test-vos (config) # banner motd “Please note new link bonding commands”
timezone America North United_States Pacific
Creating and Configuring Link Bonding and Static Routes (CLI)
Media Flow Controller supports three bonding modes:
•balance-rr—”Round robin” mode. Sends TCP/IP packets belonging to the same
session across multiple links. Out-of-order TCP packets coming through di fferen t links are
retransmitted; supports load balancing and failover.
•balance-xor-layer3+4— Traffic to a particular network peer goes across multiple links,
although packets belonging to a single connection/session do not span multiple links;
supports load balancing and failover. Link selection based on TCP port + IP address.
•link-agg-layer3+4—Link Aggregation Control Protocol (LACP). Allows the automatic
negotiation of port bundling to form a single log ical cha nnel between LACP-ena bled links;
supports load balancing and failover.
Load Balancing (LB) Direct Server Return (DSR) Guidelines
In order to implement DSR in Media Flow Controller, the following configurations are required.
•Server load balancer (SLB) and Media Flow Controller must be Layer 2 adjacent.
•Media Flow Contro ller mus t ha ve th e de stin a tio n virtual IP address (VIP) configured on a
loopback or a network interface that will not broadcast that IP address on the network.
•Media Flow Controller must not GARP (gratuitous address resolution protocol) the VIP
address with its own MAC (media access control) address. You can disable ARP on a
Media Flow Controller interface with interface <interface_name> arp disable.
•The return response from Media Flow Controller must bypass the SLB.
•Response from Media Flow Controller routed to host not Layer 2 adjacent, via configured
route or gateway.
Examples:
•L4 LB + DSR: This is one of the most popular modes as it allows deployment with an
inexpensive load balancer. DSR allows the return data (response) to go from Media Flow
Controller to the client directly. This allows scaling from to 10Gbps with a relatively
inexpensive LB. The LB itself need not scale to 10Gbps; as long as it has enough
bandwidth to handle the rate of incoming requests, this provides a good solution.
•L7 LB: DSR does not work in this case. The LB has to match the sum of the capacity of all
the Media Flow Controllers to which the LB is load-balancing. However, rich L7 policies
based on URI, header , and so forth. can be built on LB, and traffic steering can be done in
a more flexible way.
Creating and Configuring Link Bonding and Static Routes (CLI)65
Media Flow Controller Configuration Tasks (CLI)Media Flow Controller Administrator’s Guide
2
1
g015415
Client
Internet
Media
Flow
Controller
Client requests video over IP address
Server load balancer
makes LB decision.
Forwards to available
Media Flow Controller.
3
Media Flow Controller responds
directly to client. (Direct Server Return)
Server
load
balancer
Media
Flow
Controller
See Figure 6, “Direct Server Return,” for illustration.
Figure 6Direct Server Return
Configuring Link Bonding and Static Routes (CLI)
Bond interfaces to create a port-channel or aggregated link for load distribution across links
and increased link availability. Example shows bonding interfaces eth10 and eth11 as a
named bonded interface “0”. In this way, layer 2 packets are distributed across the defined
links for load distribution; if one of the links fail, the other links take over the media delivery.
After you have created the bonded interface, you can use the delivery protocol command to
assign it as a traffic interface and configure its listen port, if needed.
1. Create the bond interface with a name and specify a mode. Note! The CLI lists several
options for bond <bond_interface> mode that are not supported. Only balance-rr
(“round robin”), balance-xor-layer3+4 (Non-LACP), and link-agg-layer3+4 (LACP) are
supported modes.
bond <name_for_virtual_interface> mode <bond_mode>
3. Assign the new bonded interface as a traffic interface and set non-default (80) listen ports,
if needed; up to 64 port s can be assig ned. Note! Af ter you assign a traffic interface, Media
Flow Controller accepts traffic only on those assigned interfaces (up to 10); by default,
Media Flow Controller accepts traffic on all interfaces.
Media Flow Controller Administrator’s Guide Media Flow Controller Configuration Tasks (CLI)
4. Configure the IP address for the bonded interface.
test-vos (config) # interface 0 <IP_address>
5. Optionally, configure static routes and ensure a static host mapping for the defined
hostname. The ip route command only works on devices that already have an IP address
assigned. Use show ip route to verify.
ip route <network_prefix> {<netmask> | <mask_length>} {next_hop_IP_address
| interface_name>}
ip map-hostname
Example:
test-vos (config) # ip route 123.45.10.0 /24 eth0
6. Since delivery changes have been made, restart the delivery service.
service restart mod-delivery
Note! Bonded interfaces show Speed and Duplex as UNKNOWN in show interfaces output;
this is not an error condition.
Related Topics
•“Load Balancing (LB) Direct Server Return (DSR) Guidelines” on page 65
Authentication / Authorization and Users Options
Several configurations or tasks can use an already configured authentication / authorization
scheme (AAA, namespace pre-staging, users, file transfers, and so forth.). Authentication
schemes can be complex to configure—this section does not attempt to guide you through the
configuration steps for setting authentication or AAA options, but provides references to the
CLI commands. Before configuring any authentication / authorization schemes, you must have
this information: the hostname o r I P ad dr e ss of the authenticating server, and a shared secret
for authentication.
•“About MD5, SHA1, AES-128, and DES” on page 67
•“User Account Defaults and States” on page 68
About MD5, SHA1, AES-128, and DES
The first two, md5 and sha1 are cryptographic hash algor it hms .
•md5—Message-Digest algorithm 5. Considered somewhat faster but less secure than
sha1, but still supported for legacy systems. Generates a 128-bit (16 byte) hash.
•sha1—Secure Hash algorithm 1. Considered more secure than md5 but still vulnerable to
collision attacks. Generates a 160-bit (20 byte) hash.
The second two, AES-128 and DES are encryption standards used to encrypt and un-encyrpt
data.
•AES-128—Advanced Encryption Standard; 128 is a specific “block cipher.” AES is a
newer standard than DES and considered much more secure. Generates a 128 bit
encryption key . AES is an asymmetric encryption algorithm which means the sender uses
Authentication / Authorization and Users Options67
Media Flow Controller Configuration Tasks (CLI)Media Flow Controller Administrator’s Guide
the public key of the receiver to encrypt the message an d the receiver uses it's private key
to decrypt the message.
•DES—Data Encryption Standard. This standard is older than AES-128 and considered
less secure than AES-128 but still supported for legacy systems using it. Generates 56
bits encryption key. DES is a symmetric encryption algorithm which means that you use
the same key to encrypt and decrypt the message.
User Account Defaults and States
The system comes initially with three accounts already created:
•admin—Full privileges to do any th ing on the system.
•juniper_probe_ftpuser—The auto-created user for CMC probes.
•cmcrendv—Default CMC user.
•monitor—Privileges to read almost everything on the system, and perform some actions,
but cannot modify configurations.
These accounts are both enabled, and by default have no password required for login (except
cmcrendv, a new account/capability not fully supported in Release 2.0.4)
There are five states an account may be in:
•“Account disabled” (not listed in /etc/passwd). The admin account cannot be disabled.
username foo disable
•“Local password login disab led ” (h a she d password se t to "*" ). Th e re is no locally-
configured password to permit the user to log in. The user may still log in using an SSH
authorized key if one is installed, or remote authentication (for example, RADIUS or
TACACS+). The admin account may not be in this state unless it has an SSH authorized
key installed.
username foo disable password
•“All password login disabled” (hashed password set to "!!"). No CLI command for this; the
hashed password must be set to “!!”. Same as "Local password login disabled" except that
the user cannot be remotely authenticated (for example, by a RADIUS or TACACS+
server). The user may still log in using an SSH authorized key if one is installed. The
admin account may not be in this state unless it has an SSH authorized key installed.
•“Local password set”. The user can log in by typing the password whose hashed version
we have stored. This is not necessary if an SSH authorized key is installed, or if a remote
auth server comes earlier in the authentication order.
username foo password mypassword
•“No password required for login” (hashed password set to ""). Anyone can log into this
account without providing authentic at ion . Th e ad min and monitor accounts begin in this
state (unless overridden by configured defaults), but should be changed for better
security.
Media Flow Controller Administrator’s Guide Media Flow Controller Configuration Tasks (CLI)
Configuring Media Flow Controller User Accounts (CLI)
Before you configure Media Flow Controller user accounts, see “Before You Configure Media
Flow Controller” on page 58.
You may want to configure user accounts to allow multiple administrators to make
configuration changes, or to allow certain people to view or monitor the appliance.
To configure users with the CLI:
1. Configure authentication / authorization: see radius-server and tacacs-server for CLI
details.
2. After your authentication set tin gs ar e m ade, configure authentication and authorization
parameters such as setting the default login authentication order and default authorization
mapping for local and remote users. See aaa for CLI details.
3. Configure users. Media Flow Controller provides three capability sets for users: admin
(full privileges), monitor (can view configurations but make no changes), and unpriv
(very limited command access); see username for CLI details. In addition to the
capabilities, you can configure password options and disable a user account. Use show usernames to verify.
a. Add a user and specify the capability; users are added with admin privileges.
username <username> capability <capability>
b. Delete a user.
no username <username>
c.Disable a user’s password; this does not remove the user or the password.
username <username> disable password
d. For a defined user, allow no password.
username <username> nopassword
e. For a defined user, configure a password. If no password is specified the user logs in
with no password; if 0 is specified, enter a password in cleartext (the system encrypts
it using the DES algorithm) and the user logs in with that password; if 7 is specified,
you must enter the previously-created, DES encrypted password for that user at the
command line. Important! Media F low Controller default admin user does not have a
default password; set an admin password to secure and restrict administration.
test-vos (config) # username joe capability unpriv
test-vos (config) # username joe password 12345
test-vos (config) # username joe disable password
test-vos (config) # username joe nopassword
Related Topics
•“Authentication / Authorization and Users Options” on page 67
Configuring Media Flow Controller User Accounts (CLI)69
Media Flow Controller Configuration Tasks (CLI)Media Flow Controller Administrator’s Guide
Enabling Media Flow Controller CMC Client Rendezvous (CLI)
Media Flow Controller has the ability to be managed by a Media Flow Manager Central
Management Console (CMC), which makes the Media Flow Controller a client of the CMC.
CMC allows you to manage Media Flow Controllers remotely, configure profiles (lists of CLI
commands) that can be pushed to individual appliances, and create groups of Media Flow
Controllers that can be managed as a unit. The rendezvous feature is a mechanism by which
properly configured Media Flow Controllers can find a Media Flo w Manager and request
management. For rendezvous to work, it must be configured on the client (the Media Flow
Controller) and on the CMC server (the Media Flow Manager).
Before you configure Media Flow Controller CMC client rendezvous, see “
Configure Media Flow Controller” on page 58.
To enable CMC client rendezvous:
1. Enter the address of the CMC server that will manage this Media Flow Controller:
2. (Optional) Set an existing authentication method for client-server rendezvous or set a
password; to have the client prompted for the password, do not enter a password after the
password password keywords:
4. (Optional) Set an initial retry delay in case you do not want the Media Flow Controller to
attempt rendezvous immediately :
To change the default initial retry delay (first time, or after a boot or a disconnect) from 30
seconds:
cmc rendezvous client auto initial-delay <seconds>
5. (Optional) Set rendezvous intervals:
To change the default interval-long (after a sucessful rendezvous, in case the server has
lost the information) from 86400 seconds (one day):
cmc rendezvous client auto interval-long <seconds>
To change the default interval-short (after an unsucessful rendezvous) from 300 seconds
(five minutes):
cmc rendezvous client auto interval-short <seconds>
6. To force a rendezvous attempt:
cmc rendezvous client force
7. To verify CMC settings for this Media Flow Controller and to check rendezvous status:
show cmc
show cmc rendezvous
8. All Media Flow Controlle rs ar e en a ble d fo r CMC man a gem en t by de fa u lt. To disable this
and ensure that this Media Flow Controller cannot be managed by CMC:
Media Flow Controller Administrator’s Guide Media Flow Controller Configuration Tasks (CLI)
Applying the Media Flow Controller License (CLI)
Media Flow Controller comes unlicensed and by default can only support 10 connections at
200Kbps each; it is a 40Mbps delivery system. Neither the number of sessions or the session
rate (network connection parameters) is configurable without the Media Flow Controller
license.
After you install Media Flow Controller, contact Juniper Networks to obtain the Media Flow
Controller license for normal operations. You need to provide the node ID, which is the MAC
address of Eth0 interface; use show interface eth0 to find the hardware (HW MAC) address.
Based on this Juniper Networks will provide you a license key. After installing the license you
get full feature capability. See license for CLI details.
To apply the Media Flow Controller license:
1. Install a license.
license install <license_key>
2. Delete a license
license delete <license_key>
3. View installed licenses, including expiration dates.
show licenses
Example:
test-vos (config) # show license
No licenses have been configured.
test-vos-cl65 (config) # show network
Network time out (seconds) : 60
Maximum concurrent sessions : 10
Per Session assured flow rate (Kbits/sec) : 0
Per Session Maximum bandwidth (Kbits/sec) : 200
test-vos (config) # license install LK2-MFC-413E-5N42-3EE6-4381-GLL8-CE98
test-vos (config) # show license
License 1: LK2-MFC-413E-5N42-3EE6-4381-GLL8-CE98
Feature: Media Flow Controller
Valid: yes
Start date: 2009/03/15 (ok)
End date: 2009/06/30 (ok)
Tied to MAC addr: 00:1E:C9:FF:0C:FA (ok)
Active: yes
test-vos-cl65 (config) # show network
Network time out (seconds) : 60
Maximum concurrent sessions : 5000
Per Session assured flow rate (Kbits/sec) : 0
Per Session Maximum bandwidth (Kbits/sec) : 0
test-vos-cl65 (config) #
Applying the Media Flow Controller License (CLI)71
Media Flow Controller Configuration Tasks (CLI)Media Flow Controller Administrator’s Guide
Media Flow Controller Policy Configurations Overview
After you have your appliance network connections and basic settings configured, you are
ready to start configuring Media Flow Controller policy settings.
Important! For namespaces, you must configure domain, match, origin-server, and status
activation, at a minimum. For CLI details see Chapter 10, “
Commands.”
Note! Any time network configuration changes are made the delivery service (mod-delivery)
must be restarted with service restart mod-delivery. This includes initial configurations after
installation. In the Management Console, do this on the EZconfig page.
Important! Save your settings after each configuration by typing write memory in the CLI; in
the Management Console, click Save in the upper right corner of each page.
•“Setting Network Connection Options (CLI)” on page 72
•“Configuring Media Flow Controller Delivery Protocol (CLI)” on page 73
•“Creating and Configuring Virtual Players (CLI)” on page 74
•“Creating a Namespace and Setting Namespace Options (CLI)” on page 81
•“Managing the Media Flow Controller Disk Cache (CLI)” on page 92
Media Flow Controller CLI
Setting Network Connection Options (CLI)
Before you configure Media Flow Controller network connection options, see “Before You
Configure Media Flow Controller” on page 58.
Configure network connection settings (global Media Flow Controller defaults). The assured-flow-rate and max-bandwidth options are available in virtual-player configurations, which
override network connection configurations.
Using Network Connection Assured Flow
Assured Flow™ is a function using the values configured for max-bandwidth, concurrentsession, and assured-flow rate (AFR). AFR is the rate that Media Flow Controller provisions
at the network level. For example, if a video encoded at 800 Kbps needs to be transferred over
HTTP that uses TCP/IP over Ethernet, you must account for the overheads of the HTTP, TCP,
IP, and Ethernet protocols. Usually, HTTP + TCP + IP + Ethernet overheads amount to 10 to
15%. With this in mind, AFR for a video encoded at 800 Kbps should be set to 900Kbps or
slightly higher. See “
See network for CLI details.
Configuring Network Connections (CLI)
To configure network connections with the CLI:
1. Configure global network assured-flow-rate (minimum rate for a given session); default, 0
(zero), means assured flow is disabled (no minimum rate is pr ovisioned). See “
Controller AssuredFlow” on page 50 for detailed description.
network connection assured-flow-rate {0 | <kbps>}
Media Flow Controller AssuredFlow” on page 50 for more information.
Media Flow Controller Administrator’s Guide Media Flow Controller Configuration Tasks (CLI)
2. Important! Configure global network concurrent session limit; default is 10 (without Media
Flow Controller license), 5000 (with Media Flow Controller license). The Media Flow
Controller license changes the default.
3. Configure global network socket idled-out time in seconds; this is the time the network
waits before closing a connection when there is no dat a in se ssion ; de fault is 60 seconds.
network connection idle timeout <seconds>
4. Configure global network maximum allowed bandwidth (burst rate); even if there is
available bandwidth in the link, Media Flow Controller does not allocate more than this
value for a session. When there is a full download, Media Flow Controller tries to allocate
this value to the session; default is 200 without Media Flow Controller license, 0 kbps
(unbounded) with Media Flow Controller license. The Media Flow Controller license
changes the default.
Network time out (seconds): 900
Maximum concurrent sessions: 4000
Per Session assured flow rate (Kbits/sec): 2000
Per Session Maximum bandwidth (Kbits/sec): 2000
Configuring Media Flow Controller Delivery Protocol (CLI)
These are the ports on the Media Flow Controller that receive and deliver media. These ports
typically have Internet access, and should be connected with highest-quality cables. See
Table 6, “
The delivery protocol command lets you specify what protoc ols to use for media de livery and
manipulate headers; in Release 2.0.4 http and rtsp are allowed values. By default, Media
Flow Controller listens on all interfaces; if you set specific traffic interfaces, only those are
used for traffic. See delivery for CLI details.
Before you configure Media Flow Controller delivery protocol options, see “
Configure Media Flow Controller” on page 58.
To configure delivery protocol options with the CLI:
1. Media Flow Controller supports known HTTP methods (GET, POST, TRACE, CONNECT,
Example Machine Setup of Management and Tra ffic Ports for an example.
Before You
OPTIONS, DELETE, PUT) always. T o add support for http request methods, use allow-req and specify up to 16 custom request methods. Use all to permit Media Flow Controller
Configuring Media Flow Controller Delivery Protocol (CLI)73
Media Flow Controller Configuration Tasks (CLI)Media Flow Controller Administrator’s Guide
to tunnel any request. Default is none, only the known methods listed are allowe d. Use no
to remove the specified method or methods.
delivery protocol http allow-req all
2. Optionally, disable/enable connectio n pooling (enabled by default) and configure
parameters; for delivery protocol http only.
a. Use max-conn to limit the maximum allowed pooled connection; default is 256,
maximum allowed is 2048.
b. Use timeout to configure a pooled connection timeout; default is 300 seconds,
maximum allowed is 86,4000 seconds (24 hours).
3. Optionally, configure interfaces for Media Flow Controller traffic; after configured, Media
Flow Controller accepts traffic on those interfaces only. Applies to both http and rtsp
delivery protocols. Up to 10 interfaces can be specified.
4. Optionally, configure listen ports for the traffic interfaces as needed; default is port 80 for
http, port 554 for rtsp. By default, Media Flow Controller listens on port 80 for HTTP and
port 554 for RTSP on all interfaces.
delivery protocol http listen port <port>
5. Optionally, set the maximum request length (domain + URI + Query Params + Headers),
in characters/bytes, for incoming requests (http delivery protocol only). Default is 16384
bytes; maximum allowed value is 32768. Incoming requests with lengths exceeding the
configured value are rejected.
delivery protocol http req-length maximum <bytes>
6. Since delivery changes have been made (steps 3 and 4), restart the delivery service
(mod-delivery).
Create virtual players to customize how videos are delivered; after created, they are assigned
to a namespace. This is optional; if a namespace does not have a defined virtual player
assigned to it, it uses the network connection settings.
You may want to create a virtual player for each type of video you deliver; for example, if you
deliver YouTube® videos, create a type youtube virtual-player for use in the correspondingnamespace. Media Flow Controller virtual players support and complement client-side video
Media Flow Controller Administrator’s Guide Media Flow Controller Configuration Tasks (CLI)
players. Whereas namespaces allow you to define what gets fetched from where and how,
virtual players let you fine-tune video delivery.
There are five types of virtual players: Type generic virtual player offers all generic virtual
player options; Type break players are a su b-se t of Type generic, Type qss-streamlet virtual
players allow multiple settings of assured flow via a rate-map, Type yahoo players are for
YouTube™ videos and include a health-probe option and a special authentication option.
Type smoothflow players for SmoothFlow are documented after this section. Type youtube
players are for YouTube media. A sixth player type, smoothstream-pub is not supported in
Release 2.0.4.
•“Using query-string-parm” on page 75
•“Using hash-verify” on page 76
•“Using virtual-player type qss-streamlet rate-map” on page 76
•“Using Virtual Player Type youtube” on page 77
•“Example: Configuring generic Virtual Player (CLI)” on page 78
•“Configuring YouTube Video Caching (CLI)” on page 199
Note! Media Flow Controller provides an API you can use to create custom virtual pla yers. For
more information, contact Juniper Networks Customer Support; see “
Technical Support” on page 34.
Note! In Release 2.0.4, the show options command ? (question mark), lists all virtual player
options no matter what virtual player type you are configuring; however, if you try to set an
option that does not apply to that player type, an error is displayed.
Requesting
Using query-string-parm
The query-string-parm argument, used extensively in virtual player configurations, allows
you to use query params. Query params, a string with an associated value, are a way of
passing information through a URL. The query pa ram part of the URL is designated with a
question mark (?) followed by defined query params. The query param is a name that is
associated with a pre-defined value. Additional queries in the URL are separated by
ampersand signs (&). Query params are composed of a name and value pair. For example, a
request for a query param for assured-flow-rate could be shown in a URL like this:
http://xyz.com/test.flv?afr=100
In the example, the query-string-parm <string> is afr and its value is 100. The namespace
for this connection tells Media Flow Controller that when it finds afr in the query params part of
the URL it is to use the value following it for that function. So, if the URL has ?afr=100 Media
Flow Controller knows (through the URL’s defined namespace and associated virtual player or
configured network connection properties) to use 100 Kbps for the assured-flow rate.
In the Media Flow Controller CLI, you can only specify the query param <string> and should
know the units of the value for that query parameter as query params can be defined to mean
many different things and are used to signal the start or value of assured flow, fast-start, fulldownload, seek, and smooth flow functions, and the match value for hash-verify and rate-
map.
Important! The virtual player query-string-parm values you configure in your Media Flow
Controller origin must match the corresponding query-string-parm values configured in your
Media Flow Controller edge.
Creating and Configuring Virtual Players (CLI)75
Media Flow Controller Configuration Tasks (CLI)Media Flow Controller Administrator’s Guide
Using hash-verify
Media Flow Controller computes an md-5 hash of an incoming URL by combining a specified
part of the URL along with a pre-shared secret value (configured via Media Flow Controller
CLI). The computed hash digest value is then compared with the hash value provided in the
incoming URL via a pre-specified match query-string-parm (configured via Media Flow
Controller CLI). If a match between the computed and provided hash values is unsuccessful,
then the incoming request is denied.
Example URL showing match query-string-parm h (configured in Media Flow Controller):
If Media Flow Controller encounters this URL, it takes the entire URL (shown in blue), until it
encounters the provided match query-string-parm; for example, h (shown in red).
The hash value is then computed by either appending or prefixing to the URL the configured
shared-secret value as specified in the CLI, and comparing the computed value with the
value provided via the match query-string-parm (shown in green).
Example if shared-secret is appended:
Computed hash value = MD5(http://video.example.com/public/2010/
Computed hash value = MD5(shared-secret + http://video.example.com/public/
2010/qwerty.flv?fs=5000&ri=300&rs=1234567)
Note! The secret key is called a shared-secret key, because the same key is also used by
the browser/video player that generates the request for the object, to compute the hash value
which is present in the pre-specified query parameter for comparison.
Note! Types 1 and 4 virtual-players have a default match query- string-par m of h, this can be
changed in the CLI.
Using virtual-player type qss-streamlet rate-map
Virtual player type qss-streamlet allows you to configure a rate-map to ensure a specified
delivery rate is applied to certain requests. The configuration calls for you to specify a match<string> to a rate <kbps>; when the request arrives the match <string> is extracted from the
URL and its corresponding rate (in kbps) is used for the delivery rate.
By default, the match string (length must be 2 bytes; for example, 01) is extracted by going to
the end of the URL and skipping 12 Bytes from the end; the value in that location is map ped to
the configured rate in kbps. Example:
Media Flow Controller Administrator’s Guide Media Flow Controller Configuration Tasks (CLI)
In this way, URLs containing 01 in the corr ect pl ace (12 bytes from the end) map to an
assured flow rate of 300; with 02 the assured flow rate is 500; and so on. Defaults are:
Important! Media Flow Controller checks for an un der sco re ( _ ) befor e the 14th byte; if th e
underscore is missing, the URI does not map correctly.
Using Virtual Player Type youtube
YouTube encodes media content using industry standard video and audio compression
schemes such as H.264/AVC for video and AAC for audio. It stores the encoded bit streams
using either FLV, MP4 or 3GP containers, depending on the spatial resolution of the video.
Currently, YouTube supports the following different formats as outlined in Table 7.
Associations to one of these formats is signaled through a request originating from the player
via a query parameter typically of the type fmt or itag
Table 7YouTube Formats
Media TypesStandardMediumHigh720p1080PMobile
Format/Tag Values
(fmt, itag)
Container TypesFLVMP4FL VMP4MP43GPP
Video CodecH.264/AVCH.264/AVCH.264/AVCH.264/AVCH.264/AVCMPEG-4 Part 2
Audio CodecAACAACAACAACAACAAC
Spatial Resolution320x240
341835223717
640x480
480x360
480x270
854x4801280x7201920x1080176x144
Requests originating from a YouTube player for a video asset have been observed to typically
come in the following two forms (underlining
It is observed that these two request formats do not have an explicit association or reference
to the media object, and the URI themselves are not cache friendly. The association to the
media object is provided using a combination of an id and format tag.
For case (a) this association is provided by the video_id and fmt query parameters.
For case (b) this association is provided by the id and itag query parameters.
Media Flow Controller uses a combination of these query parameters to generate an internal
cache name for the media object. YouTube videos in Media Flow Controller are cached with a
cache name format as:
yt_video_id_efa3a0434887fdc0_fmt_34
Media Flow Controller also supports random access via seek/scrub for YouTube videos.
YouTube signals a seek point via a query parameter, begin, with units of milliseconds. Media
Flow Controller translates this seek point to the correct position in the video file for both the
FLV or MP4 container formats and data that is delivered to the player is from the seek point
onwards to the end of the file.
Example: Configuring generic Virtual Player (CLI)
The generic virtual player can be used to cache most Web content.
To configure the type generic (formerly Type 0) virtual player:
1. Configure a virtual player with a name and type generic (enters you to virtual-player
configuration mode). Use no virtual-player <name> to delete; use virtual- player <name no <option> to make changes to configurations (either reset default or remove setting).
virtual-player <name> type generic
2. Configure hash verification options. Note! In Release 2.0.4, only md-5 digest is
supported. Configure a shared secret value to be appended or prefixed to the URL as
specified, for matching against the hash value provided in the URL and indicated by the
match query-string-parm you configure.
hash-verify
query-string-parm <string>
digest md-5
shared-secret <string> {append | prefix} match
3. Configure download parameters for delivering files at the fastest possible speed. If you
choose always, then file downloads are always delivered at the fastest possible speed;
otherwise, you must have either a query param or a header name that indicate that a full
download should be processed.
full-download {always | match <string> {query-string-parm <string> |
header <header_name>}}
4. Optionally, configure assured-flow delivery optimization. Note! The auto option is not
supported in Release 2.0.4. A query param can be used or define a static rate value in
kbps, a value of 0 (zero) means no throughput at all. After a value is entered, this
parameter is enabled. See “
Media Flow Controller AssuredFlow” on page 50 for more
Media Flow Controller Administrator’s Guide Media Flow Controller Configuration Tasks (CLI)
5. Optionally, configure connec tion max-bandwidth delivery optimization. Default is 0
(unbounded) with the Media Flow Controller license, 200 kbps without it; you must have
the license to change the unlicensed default. Use no connection to reset default.
fast-start {query-string-parm <string> | size <KB> | time <seconds>}
7. Optionally, configure seek de livery optimization specifying a query param for when seek
should start and how long it should last. Query params must be used.
10. Verify configurations with show virtual-player <name>.
Creating and Configuring Server-Maps (CLI)
Media Flow Controller server-map allows you to define the origin server or servers to which
Media Flow Controller goes in case of a cache-miss. To use this feature, you define an XML
file with the origin server parameters, such as host, protocol, and port number, described in
detail in Chapter 7, “
including the file-url (which is immediately validated) using the server-map command and,
finally, you add the server-map to a configured namespace. See Chapter 7, “
Configuration,” for XML file formatting. See server-map for CLI details.
•“Using server-map to Create a Consistent Hash Cluster” on page 79
•“Using server-map for Origin Escalation” on page 80
•“Configuring Media Flow Controller Server Maps (CLI)” on page 80
Using server-map to Create a Consistent Hash Cluster
The cluster-map server map lets you to define a consistent hashing sch eme to bind objects to
nodes. See “
overview, server-map for CLI details, and Creating the cluster-map XML File in Chapter 7,
Consistent Hash-Based Clustering and Origin Escalation” on page 48 for an
Server Map Configuration,”. After the file is defined, you set parameters,
Creating and Configuring Server-Maps (CLI)79
Server Map
Media Flow Controller Configuration Tasks (CLI)Media Flow Controller Administrator’s Guide
“Server Map Configuration,” for details on clustering and creating the XML file for cluster-
map.
Consistent hash cluster requirements:
•A cluster is one Level 1 node and >= one Level 2 nodes.
•Level 1 node must be a Media Flow Controller operating as a reverse proxy.
The server-map format-type origin-escalation-map allows you to specify a set of originservers that are sequentially (in the order defined in the XML server map file) tried until a
request is fulfilled or all defined origins have been tried; if no origin can fulfill the request a 404
(file not found) error is given. See “
on page 48 for an overview, server-map for CLI details, and Creating the origin-escalation-
map XML File in Chapter 7, “
for origin-escalation-map.
Origin escalation requirements:
Consistent Hash-Based Clustering and Origin Escalation”
Server Map Configuration,” for details on creating the XML file
•All origin servers are viewed as a single entity where any origin server is capable of
resolving a miss or handling a validate request.
•All origin servers are monitored via a periodic heartbeat (HTTP request) insuring that
escalation only occurs to currently online members.
•Origin server HTTP response codes resulting in escalation are configurable on a per origin
server basis.
•Applicable only to a Media Flow Controller reverse proxy configuration.
Example server-map origin-escalation-map configuration:
Configuring Media Flow Controller Server Maps (CLI)
Use server maps to configure multiple origin servers for a namespace.
To configure a server-map for either HTTP or NFS origin server:
1. First, create the server-map with a <name> and format-type. To map the incoming
(target origin) HOST header value to a specified origin server, set format-type host-
origin-map. To use consistent hashing to determine the origin server, set format-type
cluster-map. To allow origin escalation (try another defined origin if the first fails), set
format-type origin-escalation-map. To use NFS publishing points for origin, set format-
type nfs-map. For cluster-map and origin-escalation-map only , you can define and add
Media Flow Controller Administrator’s Guide Media Flow Controller Configuration Tasks (CLI)
any number and combination of these two to a namespace; the order of in which the
maps are added to the namespace denotes the order in which they are read.
server-map <name> [format-type <type>]
2. Set a URL for the server-map; this tells Media Flow Controller where to fetch the XML
mapping file. Also, set a refresh interval (how often Media Flow Controller refreshes the
XML file). The default refresh-interval is 0 (zero), wh ich means no re fr esh after the initial
fetch. When you set the file-url Media Flow Controller immediately initiates an HTTP GET,
retrieves the file, and executes MapXML to convert the data to binary. From server-map
prefix mode:
file-url <URL> refresh-interval <time>
3. The final step is to add a server-map (or, potentially, multiple server-maps in the case of
cluster-map and origin-escalation-map) to a namespace origin-server configuration.
When the server map is added, Media Flow Controller starts the heartbeat (cluster-map
and origin-escalation-map only) to the defined nodes (10 beats/second).
namespace newTest origin-server nf s ser ver -m ap ne wM ap
Creating a Namespace and Setting Namespace Options (CLI)
Before you configure Media Flow Controller namespaces, see “Before You Configure Me dia
Flow Controller” on page 58.
Create namespaces to define fine-grained delivery policies, including optionally adding a
custom virtual player . You must create a namespace for each origin server and delivery criteria
scheme you use. You can create up to 256 namespaces in one Media Flow Controller. See
•Configuring Media Flow Controller Namespaces (CLI)
See “Common Media Flow Controller Configuration Errors” on page 282 for additional
namespace tips.
Using namespace cache-inherit
Use the namespace cache-inherit option to add an existing namespace’s cache and UUID to
a new one; the contents are not duplicated, but the new namespace uses the inherited cache
rather than creating a new one. When a namespace is created, the system assigns it a Unique
ID (UUID). There is no option in the CLI to configure the UUID; but it can be set indirectly using
the cache-inherit subcommand that sets a new namespace to inherit the cache of an existing
namespace. This is useful under the following situations:
•You add a new namespace and want it to share the UUID with an existing namespace;
sharing the UUID allows the two namespaces to have a common cache.
•You delete an existing namespace, rename it, and want to use the data cached under it.
•You delete a namespace by accident and want to recreate it and you do not want it given
a new UUID. In this case, you dump the namespace and its associated UUID, and force
the UUID of an existing namespace for the one you are creating. You would do this by:
1. Issue show namespace list to gather the list of "Currently defined" and "Deleted/nonexisting" (but whose cache content still exists) namespaces and their associated UUIDs.
2. Then issue namespace <name> cache-inherit <existing or non-existing namespace integer>.
Example: show namespace list (namespace test2 inherited namespace test cache):
List of unmapped/deleted namespace UIDs (if any)
non-exsiting1: /test3:954ef8aa
Using namespace domain regex
This section provides some examples of namespace domain regex use. Change specifics
accordingly. Note! Regex entries do not contain spaces; also, enclose all regex entries in
single quotes (not shown in examples). See Table 8.
Media Flow Controller can listen for requests on multiple TCP ports, up to 64; default is port 80
for HTTP, port 554 for RTSP. In order to map incoming requests to the correct namespace,
especially on a non-default port, the namespace domain MUST be set properly with port
number included. Media Flow Controller maps an incoming URL to a namespace by extracting
the value against the HOST header and matching it to the value configured for the
namespace domain.
When non-default port numbers are used you MUST ensure that the HOST header has the
port number coded correctly in the incoming URL and also in the namespace domain.
Example: If Media Flow Controller listens on port 80, 8080, and 4040 for incoming HTTP
requests; and the requests on port 80 must go to namespace ns80, those coming in on port
4040 must go to namespace ns4040, and those on port 5050 must go to namespace ns5050,
then the configuration would be as follows:
namespace ns80
domain video.example.com
namespace ns8080
domain video.example.com:4040
namespace ns4040
domain video.example.com:5050
For requests to match ns80, domain/HOST: header must be video.example.com.
For requests to match ns4040, domain/HOST: header must be video.example.com:4040.
For requests to match ns5050, domain/HOST: header must be video.example.com:5050.
Creating a Namespace and Setting Namespace Options (CLI)83
Media Flow Controller Configuration Tasks (CLI)Media Flow Controller Administrator’s Guide
Using namespace match uri regex
This section provides some examp les of namespace match uri regex use. Change specifics
accordingly. Note! Regex entries do not contain spaces; also, enclose all regex entries in
single quotes (not shown in examples). See Table 9.
For namespace match uri <uri-prefix>, the regex is written against the ab so lute path p ortion
of the URL. For example, given the following URL: http://abc.com:8080/index.html, /index.html would be the absolute path portion of the URI.
Use namespace<name> match <crite ria> pr ecedence to set unambiguous mapping of
incoming GET requests in the case of match <criteria> overlap; precedence can be set on
all match <criteria>. The lower the number, the h igher the preference for that namespace;
values 0 (highest precedence) - 10 (lowest precedence) can be used. All na mespaces have a
default precedence of 0. For example, consider three URLs and namespaces as follows:
1. http://a.com/abc/def/file1.flv
2. http://a.com/abc/file2.flv
3. http://a.com/pqr/file3.flv
namespace ns1
domain a.com
match uri /abc/def
origin-server http o1.com
status active
namespace ns2
domain a.com
match uri /abc
origin-server http o2.com
status active
namespace ns3
domain a.com
match uri / precedence 3
origin-server http o3.com
status active
All three URLs match namespace ns3 set domain (a.com) and match uri / (slash). In order to
ensure that match uri #1 (/abc/def) maps to ns1 and not ns3, set the precedence value.
Media Flow Controller Administrator’s Guide Media Flow Controller Configuration Tasks (CLI)
Same as the case with match uri #2 (/abc), to map to ns2. Only match uri 3 ( / )should be
mapped to ns3 with the precedence value configured as shown.
Note! Excessive use of precedence has performance impact as precedence allows for
longest prefix matching. If possible, namespaces should be configure d in such a way tha t they
have no overlaps in the domain and match <criteria> combination, which are used for
mapping the incoming HTTP GET to a namespace.
Using namespace delivery protocol <protocol> origin-fetch cache-age
The namespace <name> delivery protocol <protocol> origin-fetch cache-age argument
allows you to set granular cache aging policies based on content type, as well as a default
cache age. The cache-age for each content-type must be specified separately with positive
integers. Examples:
•cache-age content-type-any 28800
Irrespective of content-type, override your configured cache-age-default or , if cache-age-
default is unconfigured, set the max-age for any content-type to 28800 seconds. If the content request does not specify a max-age, set it to max-age 28800.
•cache-age content-type application/flv 2880
cache-age-default 57900
When content-type is application/flv, set max-age to 2880 seconds. For all other content-
types use default configuration (57900 seconds in the example). If the received max-age
is set, use that value.
When content-type is application/flv, set max-age to 28800 seconds; for application/
mov, set max-age to 2880 seconds; for application/3gp, set max-age to 288; and for
application/f4v, set max-age to 28. For all other content-types use default configuration
(57900 seconds in the example). If the received max-age is set, use that value.
•cache-age content-type application/qmx 60
cache-age content-type application/qss 288000
When content-type is application/qmx, set cache-age to 60 seconds, for application/
qss, set cache-age to 288000 seconds. For all other content-types use default
configuration: if max-age is not set in the data coming from origin, set it to the configured
default value (28800 if unspecified). If the received max-age is set, use that value.
Creating a Namespace and Setting Namespace Options (CLI)85
Media Flow Controller Configuration Tasks (CLI)Media Flow Controller Administrator’s Guide
Using namespace object delete | list
List or delete contents in a namespace. The comman d takes in the name of a namesp ace and
applies a list or delete operation to the objects matching the given pattern.
For example, with this namespace and a URL of http://example.com/abc/def/file.flv:
namespace ns1
domain example.com
match uri /abc
1. To list an object and get its characteristics:
namespace ns1 object list /abc/def/file.flv
2. To delete an object with the same URL:
namespace ns1 object delete /abc/def/file.flv
3. To delete all the objects in that namespace’s disk cache with the same URL:
namespace ns1 object delete all
4. List all the first 50 objects in that disk cache and create a file named with the UUID of the
namespace listing all cached objects for that namespace. In the example, if the
namespace had a UUID of 80213A2C, the file containing the list is 80213A2C.lst.
Note! Only the first 50 cached objects are listed; if there are more than 50, use the upload
command. See “
namespace ns1 object list all
upload object list <namespace> <SCP>
5. You can also list and delete based on patterns. For example; you can specify *.flv as a
pattern. Media Flow Controller does not support a full Regular Expression for deleting or
listing. The command namespace ns1 object list all is equivalent to namespace ns1 object list /abc/def/*.
Terminology” on page 30 for the scp URL format).
Using namespace for Live Streaming Delivery Without Caching
An example namespace configuration to deliver live streaming objects without caching is
given; the delivery protocol and live-pub-point commands both enter you to prefix mode.
namespace <name>
match uri <uri-prefix>
origin-server rtsp <IP_address | hostname> [port]
status active
delivery protocol rtsp
exit
live-pub-point <pp_ name>
receive-mode on-demand
status active
exit
exit
Media Flow Controller Administrator’s Guide Media Flow Controller Configuration Tasks (CLI)
Using namespace for Live Streaming Delivery With Caching
An example namespace configuration to deliver live streaming objects with caching is given;
the delivery protocol and live-pub-point commands both enter you to prefix mode.
namespace <name>
match uri <uri-prefix>
origin-server rtsp <IP_address | hostname> [port]
status active
delivery protocol rtsp
exit
live-pub-point <pp_ name>
receive-mode on-demand
status active
caching enable
exit
exit
Using namespace for Proxy Configurations
You can use namespace settings to configure Media Flow Controller to operate as a proxy in
various ways.
•Reverse Proxy—Setting namespace origin-server to <FQDN> or server-map implies a
reverse proxy configuration. Media Flow Controller as an edge cache is effectively a
reverse proxy that reduces network and CPU load on an origin server by serving
previously-retrieved content, and enhances user experience by decreasing latency.
•Mid-Tier Proxy—Setting namespace origin-server to absolute-url implies a mid-tier
proxy configuration. As a mid-tier proxy, Media Flow Controller must be explicitly
configured in the browser to intercept all requests. After Media Flow Controller receives
traffic from the client, it separates the traffic; cacheable requests are sent via Media Flow
Controller for performance enhanced delivery. Non-cacheable requests are tunnelled. See
also “
Configuring Media Flow Controller Mid-Tier Proxy (CLI)” on page 203.
•Transparent Proxy—Setting namespace origin-server to follow header HOST or X-
NKN or follow dest-ip (with or without the use-client-ip argument) implies a transparent
proxy configuration. A transparent proxy is one that requires no browser configuration and
is not readily visible to end-users. As a transparent proxy where origin-server access is
derived from the HOST header, the X-NKN header, or the destination IP address given in
the incoming request, explicit origin-server configuration is disallowed. Use this as an
alternate to providing a single origin server address. Be sure that delivery protocol http allow-req is set to all (default). See also Example: Transparent Proxy Namespace
Configuration, after Table 10.
Creating a Namespace and Setting Namespace Options (CLI)87
Media Flow Controller Configuration Tasks (CLI)Media Flow Controller Administrator’s Guide
Table 10, gives details on the configurations and defaults per proxy deployment.
Table 10Namespace origin-server and origin-request Dependencies per Proxy Deployment
DNS resolved IP address of
server-map origin-server
None (NFS mounted)
None (NFS mounted)
DNS resolved IP address of
origin-server chosen from
the client request
DNS resolved IP address of
the origin-server from the
HOST header
the origin-server from the
given header
No DNS resolution. Origin IP
is client destination IP
is client destination IP
Important! If a non-default origin-request host header inherit incoming-req value is
configured against an origin-server setting, the behavior is undefined and no error or warning
is issued. For example, if origin-server http absolute-url is set (Mid-Tier proxy), and you setorigin-request host-header inherit incoming-req deny, the behavior is undefined.
In Release 2.0.4, some namespace configurations are required for a transparent proxy;
specifically, you must set proxy-mode transparent on-ip. Note! The non-default delivery
protocol http origin-request option values given are set automatically when proxy-mode
transparent on-ip is configured. The value shown for origin-fetch content-store media
object-size is only a recommendation; default value is 0 (zero).
namespace tproxy
match uri / precedence 1
origin-server http follow dest-ip use-client-ip
origin-request x-forwarded-for disable
origin-request host-header inherit incoming-req permit
origin-fetch content-store media object-size 32768
status active
exit
exit
Using namespace match virtual-host
You can specify a virtual host for the namespace match criteria; see Virtu al Host for
definition. To do this, enter the IP address of the virtual host and, optionally, a port number;
you can also set a precedence, if needed. In this configuration, the incoming session's
destination IP is used to find the match to the namespace. In order for the match to be based
only on destination IP you should set domain to any. In that way, the incoming session's
destination IP and destination port (if given) are used to match to the namespace. Examples,
from namespace prefix mode:
•Match all sessions whose destination IP is 10.1.1.1 to the namespace:
match virtual-host 10.1.1.1
•Match all incoming HTTP REQ with destination IP 10.1.1.1 and port 8080 to this
namespace:
match virtual-host 10.1.1.1:8080
•M at ch all inc om in g RE Q on de stin at ion por t 80 80 to this nam esp ace:
match virtual-host 0.0.0.0:8080
Configuring Media Flow Controller Namespaces (CLI)
Configure namespaces to set fine-grained delivery policies; every Media Flow Controller
deployment must have at least one namespace, and usually several.
To configure a namespace:
1. Configure a namespace with a name (enters you to namespace configuration mode, use
exit when finished); optionally inherit another namespace’s cache or UUID. Use show
namespace list to find namespace UUIDs. See namespace for CLI details.
namespace <name> [cache-inherit <namespace:UUID>]
2. Configure domain settings (default is any). Note! The domain you enter should match
whatever you have configured as HOST header, unless using regex; you may append a
port number as well if needed (and used in HOST header). See “
domain regex” on page 82 and “Using namespace domain <FQDN:Port>” on page 83 for
details.
domain {any | <FQDN> | regex <regex>}
3. Configure origin-server settings (example uses http); multiple origin servers can be
configured with the server-map option; port specification is optional. See “
Configuring Server-Maps (CLI)” on page 79, for more information. See (namespace)
4. Configure match criteria options (determines the URI to cache). All match options may
utilize the precedence argument to break ties when namespaces are defined with the
same match criteria. See “
Using namespace match <criteria> precedence” on page 84,
•header— (http only) A header name and value; can also be a regex. Optionally , set a
precedence.
•query-string—(http only) A defined query param; can also be a regex. Optionally,
set a precedence.
•uri—A <uri-prefix>; can als o be a regex. See “
uri-prefix” on page 34 for uri-prefix
definition and usage details. Optionally, set a precedence.
•virtual-host—The IP address must be a /32 address; it can take a special value of
0.0.0.0, which means any IP address. Port number specification is optional. To map
requests by TCP port number only, set the IP address to 0.0.0.0 and configure the port
number. If you set the domain to any, configure virtual-host IP to 0.0.0.0, then
requests can be assigned to a namespace based solely on the port number on which
the request comes in to Media Flow Controller. Optionally, set a precedence.
Note! All regex values should be enclosed in single quotes; for example, a regex for
www.example.com plus example.com could be this: ‘^.*\example\.com’.
5. Configure delivery protocol options; only origin-fetch options are available for rtsp.
Note! To enable delivery protocol rtsp, press enter after rtsp; then set RTSP options.
•client-request [cookie | query-string]—(http only) Optionally, set an action,
whether or not to cache (default), for cookies or objects with a query-string (such
objects are typically dynamic and often not ap propriate for caching). F or query-string
you can also opt to not cache the query-string itself.
•origin-request—(http only) Optionally, configure param eters for dat a requeste d from
origin. See (namespace) delivery protocol http origin-request for CLI details.
test-vos (config namespace test delivery protocol http) #
Location action delete
test-vos (config namespace test
cache-age-default 14400
test-vos (config namespace test
forwarded-for enable
test-vos (config namespace test
test-vos (config namespace test) # exit
namespace test
#
domain any
#
origin-server http example.com/video
#
delivery protocol http
client-request cookie
client-response header
delivery protocol http
delivery protocol http
delivery protocol http
) # origin-fetch
) # origin-request x-
) # exit
6. Optionally, make live-pub-point settings if needed for live streaming.
•caching—Enable caching for this service (default is disabled).
•receive-mode—Set a method for receiving live streaming:
•on-demand—When a request is received.
•sdp-name <URL>—Use an SDP (service delivery protocol) file to set the live
publishing point. The URL can be scp://... or http://... only. After Media Flow
Controller encounters this, it pulls in the file from the specified location, and saves
it in the file system (not disk cache) so it is available for RTP/RTSP. Optionally,
choose immediate, to start as soon as the file is retrieved or enter a start-time
and, optionally, an end-time. See “
format).
•status—Make active or inactive the live-pub-point.
7. Set parameters for pre-staging content from origin; authentication schemes must be preconfigured to be used. See namespace for CLI details. The ftp user is auto-generated as <namespace>_ftpuser, without a password (login disallowed). Set the password here;
this entry overrides a user <namespace>_ftpuser password setting. Verify with show usernames. Remove set password with no pre-stage ftp user <user_name>.
pre-stage ftp user <name> password {RADIUS | TACACS | <password>
Creating a Namespace and Setting Namespace Options (CLI)91
Media Flow Controller Configuration Tasks (CLI)Media Flow Controller Administrator’s Guide
test-vos (config namespace test) # show usernames
USERNAME FULL NAME CAPABILITY ACCOUNT STATUS
admin System Administrator admin No password required for login
cmcrendv CMC Rendezvous User cmcrendv Local password login disabled
monitor System Monitor monitor No password required for login
test_ftpuser ftpuser Password set
test-vos (config namespace test) # no pre-stage ftp user test_ftpuser
test-vos (config namespace test) # show usernames
USERNAME FULL NAME CAPABILITY ACCOUNT STATUS
admin System Administrator admin No password required for login
cmcrendv CMC Rendezvous User cmcrendv Local password login disabled
monitor System Monitor monitor No password required for login
test_ftpuser ftpuser
Local password login disabled
8. Also optional, add an existing virtual-player to the new namespace.
virtual-player <name>
9. Activate the namespace. Verify configurations with show namespace <name>.
status active
10. Type exit to leave namespace configuration mode.
Example:
test-vos (config namespace test) # virtual-player test
test-vos (config namespace test) # status active
test-vos (config namespace test) # exit
Note! Configuration changes, including a namespace deletion, may not be updated for up to
30 seconds. This is due to a deferred update scheme that requires an HTTP request. An
internal probe ensures that such a request occurs at least every 30 seconds.
Managing the Media Flow Controller Disk Cache (CLI)
The media caches/disks are active and enabled by defau lt and typically require no config uring.
However, you must deactivate and disable disks and caching to change disks. Before you
activate or enable a cache, run show media-cache disk list and get the name assigned to
the disk to use in configuration. See media-cache for CLI details.
Media Flow Controller supports 3 cache tiers corresponding to SSD (tier 1), SAS HDD (tier 2),
and SATA HDD (tier 3). "Hot" content generally stays in tier1 (the highest). Media Flow
Controller promotes contents between the cache tiers based on content hotness (see “
Content (Short Tail vs. Long Tail)” on page 31 for definition). As content gets hotter, it is
promoted to the next higher tier. 1st time content is always put in the lowest cache tier. The
default values are: tier1 weight = 6, tier2 weight = 2, tier3 weight = 1. So, any content
requested once is cached in Tier 3; requested twice and it is promoted to Tier2; and, if
requested 6 times, it is promoted to Tier1.
Media Flow Controller Administrator’s Guide Media Flow Controller Configuration Tasks (CLI)
Analyzing the Disk Cache
When Media Flow Controller is having caching issues, you want to check the disk cache. To
analyze the media disk cache:
1. Get system-assigned disk names to use in configuration. Use list to view all disk drives,
their names, physical location, seri al number, type, and capacity. Use cache_name to
view information on the specified cache.
show media-cache disk {list |<cache_name>}
show media-cache disk list
Example:
test-vos (config) # show media-cache disk list
show media-cache disk list
Device Type Tier Active Cache Free Space State
------ ---- ---- ------ ----- ---------- ----dc_1 SATA Tier-3 yes yes 38890 MiB cache running
dc_2 SATA Tier-3 yes yes 68668 MiB cache running
Total Free Space: 107486 MiB
test-vos-cl66 (config) # show media-cache disk dc_1
Disk Cache Configuration & Status:
2. Determine the fre e block th re sh old s of th e disk cache s.
show media-cache free-block threshold
3. Disable a disk if you need to pull the disk for any maintenance purposes; for example, to
upgrade to a higher capacity disk, replace a SATA disk with a SAS disk, replace a failed
disk, reformat the disk, or if contents should not be cached.
media-cache disk <cache_name> cache disable
4. Deactivate a disk cache. Media Flow Controller allows OIR (On-line Insertion and
Removal) of HDD (Hard Disk Drives). However, the HDD MUST be made inactive to be
removed. When a new HDD is in the disk, it must be made active and (if so decided)
enabled for caching.
media-cache disk <cache_name> status inactive
5. Put in a new drive and mount it.
media-cache disk mount-new
6. Find the new (inactive) disk’s name.
show media-cache disk list
7. Activate or re-activate a media-cache disk.
media-cache disk <cache_name> status active
8. Format the disk if it is newly inserted and empty or you do not want to use its contents. Do
this after you issue the mount command.
media-cache disk <cache_name> format
Managing the Media Flow Controller Disk Cache (CLI)93
Media Flow Controller Configuration Tasks (CLI)Media Flow Controller Administrator’s Guide
9. Enable or re-enable a disk for caching.
media-cache disk <cache_name> cache enable
Example:
test-vos (config) # show media-cache disk list
Device Type Tier Active Cache Free Space State
These are the disk state messages you might get when managing the media-cache disk.
DM2_MGMT_STATE_CACHEABLE = "disk cacheable, but cache not enabled"
DM2_MGMT_STATE_INVAL_FORMAT_BEFORE_MOUNT and
DM2_MGMT_STATE_FORMAT_UNKNOWN_AFTER_MOUNT = "disk has wrong format
hence not cacheable"
DM2_MGMT_STATE_DEACTIVATED = "disk has been deactivated";
DM2_MGMT_STATE_ACTIVATED = "disk has been activated";
Media Flow Controller Administrator’s Guide Media Flow Controller Configuration Tasks (CLI)
DM2_MGMT_STATE_IMPROPER_UNMOUNT and
DM2_MGMT_STATE_IMPROPER_MOUNT = "soft disk error, try to clear"
DM2_MGMT_STATE_CACHE_RUNNING = "cache running";
DM2_MUST_FORMAT = “Disk Cache Enable Failed - Disk Cache must be form atted before
enabling”
DEFAULT = "unknown state, please try again a little later";
When a disk cache error is displayed, a first step to take is bringing down the disk and bringing
it back up; to do, first find cache names, then act on the problem cache:
show media-cache disk list
media-cache disk <cache_name> status inactive
media-cache disk <cache_name> status active
media-cache disk <cache_name> enable
Replacing Bad Disks
In order to replace a bad disk, first disable and inactivate the disk, and then add a new disk.
This procedure uses dc_bad for the disk name; replace appropriately.
1. Discover the bad disk’s name.
show media disk list
2. Disable the bad disk by name.
media-cache disk dc_bad cache disable
3. Make the bad disk inactive.
media-cache disk dc_bad status inactive
4. Pull the drive, put in a new drive and mount the new disk.
media-cache disk mount-new
5. Find the inactive disk’s name.
show media-cache disk list
6. Activate the new disk .
media-cache disk dc_new status active
7. Format the new disk ; takes approximately five minutes.
media-cache disk dc_new format
8. Enable the new disk .
media-cache disk dc_new cache enable
Important! This procedure will not work when adding a new disk or disks to a Juniper
Networks VXA Series to a slot that was never configured. In such a case, please follow the
instructions in the VXA Series hardware guides for adding a new disk using the Adaptec Utility
or see “
Inserting New Disks into a VXA Series Media Flow Engine” on page 95.
Inserting New Disks into a VXA Series Media Flow Engine
The task “Replacing Bad Disks” on page 95 is incorrect for VXA Series hardware when adding
one or more new disks to a slot that was never used (configured) before because Media Flow
Controller only searches for new disks at manufacture time. Use this procedure instead.
Managing the Media Flow Controller Disk Cache (CLI)95
Media Flow Controller Configuration Tasks (CLI)Media Flow Controller Administrator’s Guide
To add a disk, or disks, on a VXA Series Media Flow Engine to an unconfigured slot:
1. From Enable or Configuration mode in the CLI, check the current drive list; you may
want to note the drives you have installed:
show media-cache disk list
2. Insert the new disks and reboot:
reload
3. When you are prompted to open the Adaptec Utility, press Ctrl+a to open the utility.
The Adaptec Utility menu is displayed.
4. Select Array Configuration Utility.
The Configuration Change confirmation window is displayed.
5. Select Accept.
The Configuration Utility Main menu is displayed.
6. Use the arrow keys to select Initialize Drives, and press Enter.
A list of discovered drives is displayed.
7. Select the drive or drives that you added, and press Enter.
A warning message is displayed.
If you are unsure which drives to select, you can use the Esc key to exit to the
Adaptec Utility menu and use the Disk Utilities function to identify the drives.
8. Enter Yes.
An Initializing is Done message is displayed.
9. Press any key to continue.
The Configuration Utility Main menu is displayed.
10. Select Create JBOD, and press Enter.
A drives list is displayed.
11. Select the new drives, and press Enter.
A confirmation window is displayed.
12. Enter Yes.
The Adaptec Utility menu is displayed.
13. Press Esc to exit the Adaptec Utility.
The system reboots automatically.
14. Using the Media Flow Controller CLI, mount the new disks and activate them:
media-cache disk mount-new
show media-cache disk list
media-cache disk <disk_name> activate
15. Verify the new disks are properly mounted:
show media-cache disk list
Note! The documented disk replacement procedure for replacing a bad disk on VXA Series
works correctly provided that Media Flow Controller can still identify the disk (show mediacache disk list).
Media Flow Controller Administrator’s Guide Media Flow Controller Configuration Tasks (CLI)
Installing and Using FMS in Media Flow Controller (CLI)
Before you configure FMS in Media Flow Controller, see “Before You Configure Media Flow
Controller” on page 58.
Media Flow Controller has the ability to work with Adobe Flash Media Server (FMS) to stream
Flash videos over Real Time Messaging Protocol™ (RTMP).
FMS RTMP delivery service listens on Transmission Control Protocol (TCP) port 1935; the
FMS administration service listens on TCP port 1111. RTMP is a proprietary protocol
developed by Adobe Systems for streaming audio, video and data over the Internet, between
a Flash player and a server.
•“Installing FMS on Media Flow Controller (CLI)” on page 97
•“Modifying and Restarting the FMS Service (CLI)” on page 99
•“Configuring the FMS Admin Console—First Time (CLI)” on page 100
•“Configuring FMS on Media Flow Controller for Video On Demand (CLI)” on page 100
•“Applying the Adobe Full-Function FMS Server License (CLI)” on page 103
Installing FMS on Media Flow Controller (CLI)
To install FMS, you must first download the image; you can do this directly from Adobe (the
“Development Server” version, available for free, is adequate for this procedure, but it is
limited to 10 simultaneous streams). First download the image to a Web or F TP/SCP serv er to
which you have access. Use these CLI commands at the (config) # prompt (must have adm in
privileges and enter enable and then configure terminal first):
The download command downloads the image given in the URL (SCP, HTTP, or FTP) to the
directory /nkn/adobe/downloads directory that is visible in th e FMS shell. See “
on page 30 for the scp URL format).
The install command shows files in the FMS download directory and, when the install image
is given, interactively installs FMS.
Important! It is critical that a few of the installation questions are answered with the correct
values; be sure to use these values as indicated in the following step procedure.
1. Accept the license agreement and enter your FMS server serial number or leave blank
and press Enter to install the FMS Development Server. The FMS Development Server is
free, but limited to 10 simultaneous streams.
Do you agree with the license agreement? (y/n): y
Please enter your Flash Media Server 3.5 serial number.
You have not entered a serial number. Falling back to the Adobe Flash
Media Development Server!
Would you like to try again? y/n: Default [n]: n
Adobe Flash Media Server 3.5 requires approximately 200MB of disk space.
2. Enter the correct directory for the installation, /nkn/adobe/fms.
Terminology”
The installer will install Adobe Flash Media Server 3.5 in the following
directory. Default [/opt/adobe/fms]: /nkn/adobe/fms
Installing and Using FMS in Media Flow Controller (CLI)97
Media Flow Controller Configuration Tasks (CLI)Media Flow Controller Administrator’s Guide
3. If you get a previous installation warning, overwrite it.
WARNING: The installer has detected a previous installation.
Do you want the installer to overwrite the previous installation with this
installation or quit this installer? (y/q) Default [y]: y
4. Enter the port on which the FMS is to communicate, 1935.
The Adobe Flash Media Server communicates on the IANA-assigned port of
1935, which is the port most Flash applications expect, and can also
communicate on port 80, both for tunneling Flash over HTTP, and for
proxying HTTP to a webserver.
Please enter the Adobe Flash Media Server port(s), comma-separated Defaul t
[1935,80]: 1935
5. Enter the port on which the FMS Admin service is to run, 1111.
Please enter the port to use for the Admin service. You can only specify
one admin port. Default [1111]: 1111
6. Enter credentials for using the FMS Admin Console. Example uses admin / admin.
The administrative user name and password you provide here is required to
use the Adobe Flash Media Server Management Console for administration,
monitoring, and debugging.
Please enter the administrative username: admin
Please enter the administrative password:
Please do not enter a blank password.
Please enter the administrative password: *****
Confirm password: *****
7. Enter a username for the user the FMS is to run as; Media Flow Controller requires this to
be admin.
When the Adobe Flash Media Server service is started, the service can be
run as a user other than "root". The server would change to this user when
the server is started and has acquired its ports.
Please enter the user that the Adobe Flash Media Server service will run
as Default user [nobody]: admin
8. Enter a group for the FMS service user; Media Flow Controller requires this to be admin.
Please enter a valid user group for the "admin" user: Default group
[admin]: admin
9. Decline Apache installation.
Do you want to install apache? (y/n) Default [y]: n
10. Decline FM S ru nn ing as a da em o n.
Do you want the Adobe Flash Media Server service to run as a daemon? (y/n)
Default [y]: n
11 . Decline starting FMS after this installation.
Do you want to start the Adobe Flash Media Server after the installation
is done? (y/n) Default [y]: n
----------- Install Action Summary ----------WARNING: You have chosen to overwrite a previous installation.
Installation directory = /nkn/adobe/fms
Flash Media Server Port = 1935
Media Flow Controller Administrator’s Guide Media Flow Controller Configuration Tasks (CLI)
Flash Media Admin Server Port = 1111
Administrative username = admin
Administrative password = (suppressed)
service owner = admin
service user = admin
service group = admin
12. Finish the installation.
Proceed with the installation? (y/n/q): y
Modifying and Restarting the FMS Service (CLI)
You must manually configure two FMS files. If any configuration changes are made to FMS,
including installation, the FMS services need to be restarted.
1. Modify the FMS server and adminserver files using vi. To do this, first log in to the FMS
shell from the CLI config mode in Media Flow Controller:
application fms shell
2. Locate the server and adminserver files and edit them as indicated; for this line:
if [ "X$USERID" != "Xroot" ]; then
Change to:
if [ "X$USERID" != "Xadmin" ]; then
Example:
test-vos # enable
test-vos # configure terminal
test-vos (config) # application fms shell
BusyBox v1.00 (2008.12.21-08:07+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.
# ls
fms lib bin
# cd fms
# ls
documentation tcSrvMsg fmsadmin.pid
applications uninstallFMS modules
auto_fms_start_enabled fmsmgr tools
shmrd logo.gif dh1024.pem
fmsmaster.pid logs scriptlib
licenses conf fmscore
fmsmaster fmsadmin libasneu.so.1
server webroot readme.htm
License.htm samples dh512.pem
touch tmp adminserver
License.txt fmsedge
3. Exit the FMS shell by typing exit; the window closes and you must open a new session to
Media Flow Controller.
4. In the new Media Flow Controller session, enter config mode and restart FMS:
service restart mod-rtmp-admin
service restart mod-rtmp-fms
Installing and Using FMS in Media Flow Controller (CLI)99
Media Flow Controller Configuration Tasks (CLI)Media Flow Controller Administrator’s Guide
Configuring the FMS Admin Console—First Time (CLI)
The FMS Admin Console allows you to monitor and manage FMS activity, including the
current FMS user sessions, streams, and performance. The Media Flow Controller Webbased Management Console lets you monitor only the delivery of the files configured under
VOD.
Note! Do not use your Media Flow Controller as a Web server for the FMS Admin Console.
To use the FMS Admin Console to monitor FMS activity, you need to copy three files under
the FMS installation directory to the doc root of your origin-server; We recommend placing
these files in a directory separate from your FMS video files directory.
1. To obtain the three files, you can download the FMS Development Server to your originserver and unpack it.
2. You can locate the thr ee files you need in the fms/webroot dire ctory of the unpacked FMS
Development Server tarball:
4. Login with the FMS Admin Console credentials you configured in step 6 of “Installing FMS
on Media Flow Controller (CLI)” on page 97 and the IP address of your Media Flow
Controller for Server Address.
5. Complete FMS setup on Media Flow Controller by following the instructions given in
“
Configuring FMS on Media Flow Controller for Video On Demand (CLI) .”
The advantage to installing the FMS Admin Console before FMS configuration is complete is
that, when FMS configuration on Media Flow Controller is complete, you can immediately
check the installation via the FMS Admin Console. Otherwise, you must send appropriately
defined traffic and verify FMS processing through the Media Flow Controller. You can do this
either by looking at the logs and graphs in the Media Flow Controlle r Web-based Mana gement
Console or by using show counters at the CLI to observe FMS traffic.
Configuring FMS on Media Flow Controller for Video On Demand (CLI)
To configure FMS for video on demand (VOD), log in to the FMS shell from the CLI config
mode in Media Flow Controller:
application fms shell
This CLI command takes you to the FMS installation directory and from there, all FMS
configuration changes can be done. The configuration entails creating a Media Flow Controller
FMS directory and namespace or namespaces.
When an RTMP request comes to FMS, it scans the configuration file in the application
directory /fms/applications to find the requested file. You configure Media Flow Controller
namespace to correspond with the configuration of VOD_DIR.