Chapter 10: Proxy Routing
For networks that handle Internet-bound requests with strict rules, RealProxy can be configured to route requests for material delivered by certain RealServers through another RealProxy. This chapter explains how to set up proxy routing.
Overview
Proxy routing, sometimes known as chaining or parent/child, allows you to route RealProxy requests through other RealProxys.
The proxy routing feature instructs RealProxy to look at the address of the requested material, and to send it either to a specific RealProxy, or to send it directly to the RealServer that hosts the content.
The main RealProxy which handles requests bound for the Internet is called the parent RealProxy; the RealProxys located closest to the clients are called child RealProxys.
Typical uses for this feature include routing all requests for locally-served material directly to the RealServer, and forwarding all other requests through a gateway RealProxy.
Notes on Deploying This Feature
A parent RealProxy can also stream content to clients while simultaneously streaming data to a child RealProxy. While it is technically possible for a child RealProxy to also act as a parent RealProxy, it is not recommended.
Rules for Routing
Each child RealProxy directs its streams to other RealProxys by use of rules.
Rules are sorted in the order in which they appear in RealSystem Administrator. Therefore, it makes sense to put the rules which affect the most requests later in the list. Put the most specific rules first.
Use an asterisk (*) to indicate a wildcard section. There are some conditions for using the wildcard:
- You may use only one asterisk per rule. For example,
*.example.com
is a valid entry in the Routing Table box, but *.example.* is not. The following are all valid:*
(forwards all requests to the RealProxy shown in the list)*.com
(forwards all requests that end in .com)*.net
*.example.com
realproxy.*.com
realproxy.example.*
realproxy.department.example.* - The asterisk cannot be used with a string. It can be used only within periods. Thus,
real*.example.com
is not valid.
Proxy Routing and RealProxy Features
This section describes how proxy routing works with three of RealProxy's features.
Passthrough
The passthrough feature under proxy routing works like this:
- The client requests a stream through the child RealProxy. The child RealProxy proxies the request and sends it to the parent RealProxy outside the subnet. The parent RealProxy makes the request of the transmitter RealServer. The transmitter sends the data to the parent RealProxy.
- The child RealProxy streams the request to the client.
The parent RealProxy maintains the control connection to the transmitter RealServer; the child RealProxy doesn't contact the transmitter RealServer directly.
Caching
With caching, the parent RealProxy always forwards the cache data to the child RealProxy; it does not store cache data itself. If a client requests the same data directly from the parent RealProxy, that RealProxy must still contact the transmitter RealServer before filling its cache, even though it has sent the same data to the child RealProxy. This prevents the parent RealProxy cache from filling with data it hasn't requested.
Caching under proxy routing works like this:
- The client requests an on-demand stream, via the child RealProxy. The child RealProxy proxies the request and sends it to the parent RealProxy outside the subnet. The parent RealProxy makes the request of the transmitter RealServer. The transmitter sends the data to the parent RealProxy.
- The child RealProxy caches the data and streams the request to the client.
Notice that the parent RealProxy does not fill its cache with the data.
Pull Splitting
The following steps show proxy routing with the pull splitting feature:
- The client requests a stream, via the child RealProxy. The child RealProxy proxies the request and sends it to the parent RealProxy outside the subnet. The parent RealProxy makes the request of the transmitter RealServer. The transmitter sends the data to the parent RealProxy.
- The child RealProxy streams the data to the client.
- The second client to request the same material from the child RealProxy receives a split stream.
Notice that the splitting happens at the child level. A control connection is maintained with the transmitter, by way of the parent RealProxy. Splitting does not happen at the parent RealProxy; if a client connects to the parent RealProxy and requests the same stream, the parent RealProxy must proxy the request to the transmitter in the usual manner and splits that stream.
Customizing Proxy Routing Settings
When adjusting the proxy routing settings, you make changes to the child RealProxy only. You do not need to make any changes to the parent RealProxy.
To set up proxy routing:
- In RealSystem Administrator, click General Setup. Click Proxy Routing.
- In the Routing Table area, click Add New.
- In the Edit Rule box, type the rule information you want this child RealProxy to use.
- Click Edit.
- If this rule points involves a parent RealProxy (rather than simply allowing all requests that fit the rule to pass directly to a transmitter RealServer), use the following steps:
- From the Use Parent Proxy list, select
Yes
. - In the Parent Name box, type the host name or the IP address of the parent RealProxy where the client's request should be directed.
- In the RTSP Parent Port box, type the port number of the parent RealProxy to which requests for RTSP should be directed.
Match the parent RealProxy's value for RTSP Proxy Port (usually
554
). - In the PNA Parent Port box, type the port number of the parent RealProxy to which requests for PNA should be directed.
Match the parent RealProxy's value for PNA Proxy Port, usually
7070
. - In the Parent Cache Port box, type the port number of the parent RealProxy to which cache requests should be directed.
Match the parent RealProxy's value for Cache Port, usually
7878
.
- From the Use Parent Proxy list, select
- Repeat Step 2 through Step 5 for each rule that you will be adding.
- If you didn't add the rules in the order described in "Rules for Routing", reorder them using the up and down buttons located next to the Routing Table box.
- Click Apply.