Oracle iPlanet Web Proxy Server 4.0.14 Administration Guide

Using the Internet Cache Protocol (ICP)

The Internet Cache Protocol (ICP) is an object location protocol that enables caches to communicate with one another. Caches can use ICP to send queries and replies about the existence of cached URLs and about the best locations from which to retrieve those URLs. In a typical ICP exchange, one cache will send an ICP query about a particular URL to all neighboring caches. Those caches will then send back ICP replies that indicate whether they contain that URL. If the caches do not contain the URL, they send back miss. If they do contain the URL, they send back hit.

Routing Through ICP Neighborhoods

ICP can be used for communication among proxies located in different administrative domains. It enables a proxy cache in one administrative domain to communicate with a proxy cache in another administrative domain. It is effective for situations in which several proxy servers want to communicate, but cannot all be configured from one master proxy as they are in a proxy array. Figure 12–3 shows an ICP exchange between proxies in different administrative domains.

The proxies that communicate with each other through ICP are called neighbors. You cannot have more than 64 neighbors in an ICP neighborhood. The two types of neighbors in an ICP neighborhood are parents and siblings. Only parents can access the remote server if no other neighbors have the requested URL. Your ICP neighborhood can have no parents or it can have more than one parent. Any neighbor in an ICP neighborhood that is not a parent is considered a sibling. Siblings cannot retrieve documents from remote servers unless the sibling is marked as the default route for ICP, and ICP uses the default.

You can use polling rounds to determine the order in which neighbors receive queries. A polling round is an ICP query cycle. For each neighbor, you must assign a polling round. If you configure all neighbors to be in polling round one, then all neighbors will be queried in one cycle at the same time. If you configure some of the neighbors to be in polling round 2, then all of the neighbors in polling round one are queried first and if none of them return a Hit, all round two proxies will be queried. The maximum number of polling rounds is two.

Since ICP parents are likely to be network bottlenecks, you can use polling rounds to lighten their load. A common setup is to configure all siblings to be in polling round one and all parents to be in polling round two. That way, when the local proxy requests a URL, the request goes to all of the siblings in the neighborhood first. If none of the siblings have the requested URL, the request goes to the parent. If the parent does not have the URL, the URL will retrieve it from a remote server.

Each neighbor in an ICP neighborhood must have at least one ICP server running. If a neighbor does not have an ICP server running, it cannot answer the ICP requests from their neighbors. Enabling ICP on your proxy server starts the ICP server if it is not already running.

Figure 12–3 ICP Exchange

Diagram showing an ICP exchange between proxies in different
administrative domains.

Setting Up ICP

This section provides details about setting up ICP. The general steps required to set up ICP are:

  1. (Optional) Add parents to your ICP neighborhood.

    For more information, see To Add Parent or Sibling Proxies to an ICP Neighborhood.

  2. Add siblings to your ICP neighborhood.

    For more information, see To Add Parent or Sibling Proxies to an ICP Neighborhood.

  3. Configure each neighbor in the ICP neighborhood.

    For more information, see To Edit a Configuration in an ICP Neighborhood.

  4. Enable ICP.

    For information, see To Enable ICP.

  5. If your proxy has siblings or parents in its ICP neighborhood, enable routing through an ICP neighborhood.

    For more information, see To Enable Routing Through an ICP Neighborhood.

ProcedureTo Add Parent or Sibling Proxies to an ICP Neighborhood

  1. Access the Server Manager, and click the Caching tab.

  2. Click the Configure ICP link.

    The Configure ICP page is displayed.

  3. In the Parent List section of the page, click the Add button.

    The ICP Parent page is displayed.

    • To add a parent proxy, click Add in the Parent List section of the page.

      The ICP Parent page is displayed.

    • To add a sibling proxy, click Add in the Sibling List section of the page.

      The ICP Sibling page is displayed.

  4. In the Machine Address field, type the IP address or host name of the proxy you are adding to the ICP neighborhood.

  5. In the ICP Port field, type the port number on which the proxy will listen for ICP messages.

  6. (Optional) In the Multicast Address field, type the multicast address to which the parent listens. A multicast address is an IP address to which multiple servers can listen.

    Using a multicast address enables a proxy to send one query to the network that all neighbors who are listening to that multicast address can see. This technique eliminates the need to send a query to each neighbor separately. Using multicast is optional.


    Note –

    Neighbors in different polling rounds should not listen to the same multicast address.


  7. In the TTL field, type the number of subnets that the multicast message will be forwarded to.

    If the TTL is set to 1, the multicast message will only be forwarded to the local subnet. If the TTL is 2, the message will go to all subnets that are one level away, and so on.


    Note –

    Multicast enables two unrelated neighbors to send ICP messages to each other. Therefore, to prevent unrelated neighbors from receiving ICP messages from the proxies in your ICP neighborhood, set a low TTL value in the TTL field.


  8. In the Proxy Port field, type the port for the proxy server on the parent.

  9. From the Polling Round drop-down list, choose the polling round that you want the parent to be in. The default polling round is 1.

  10. Click OK.

  11. Click Restart Required.

    The Apply Changes page is displayed.

  12. Click the Restart Proxy Server button to apply the changes.

ProcedureTo Edit a Configuration in an ICP Neighborhood

  1. Access the Server Manager, and click the Caching tab.

  2. Select the Configure ICP link. The Configure ICP page is displayed.

  3. Select the radio button next to the proxy you want to edit.

  4. Click the Edit button.

  5. Modify the appropriate information.

  6. Click OK.

  7. Click Restart Required.

    The Apply Changes page is displayed.

  8. Click the Restart Proxy Server button to apply the changes.

ProcedureTo Remove Proxies from an ICP Neighborhood

  1. Access the Server Manager, and click the Caching tab.

  2. Select the Configure ICP link. The Configure ICP page is displayed.

  3. Select the radio button next to the proxy you want to remove.

  4. Click the Delete button.

  5. Click Restart Required.

    The Apply Changes page is displayed.

  6. Click the Restart Proxy Server button to apply the changes.

ProcedureTo Configure the Local Proxy Server in Your ICP Neighborhood

You need to configure each neighbor, or local proxy, in your ICP neighborhood.

  1. Access the Server Manager, and click the Caching tab.

  2. Select the Configure ICP link.

    The Configure ICP page is displayed.

  3. In the Binding Address field, type the IP address to which the neighbor server will bind.

  4. In the Port field, type the port number to which the neighbor server will listen for ICP.

  5. In the Multicast Address field, type the multicast address to which the neighbor listens.

    A multicast address is an IP address to which multiple servers can listen. Using a multicast address enables a proxy to send one query to the network that all neighbors who are listening to that multicast address can see. This technique eliminates the need to send a query to each neighbor separately.

    If both a multicast address and bind address are specified for the neighbor, the neighbor uses the bind address to send replies and uses multicast to listen. If neither a bind address or a multicast address is specified, the operating system will decide which address to use to send the data.

  6. In the Default Route field, type the name or IP address of the proxy to which the neighbor should route a request when none of the neighboring proxies respond with a hit.

    If you type the word “origin” into this field, or if you leave the field blank, the default route will be to the origin server.

    If you choose “first responding parent” from the No Hit Behavior drop-down list , the route you type in the Default Route field will have no effect. The proxy only uses this route if you choose the default “no hit” behavior.

  7. In the second Port field, type the port number of the default route machine that you typed into the Default Route field.

  8. From the On No Hits, Route Through drop-down list, select the neighbor’s behavior when none of the siblings in the ICP neighborhood have the requested URL in their caches.

    The available options are:

    • first responding parent. The neighbor will retrieve the requested URL through the parent that first responds with a miss

    • default route. The neighbor will retrieve the requested URL through the machine specified in the Default Route field

  9. In the Server Count field, type the number of processes that will service ICP requests.

  10. In the Timeout field, type the maximum amount of time the neighbor will wait for an ICP response in each round.

  11. Click OK.

  12. Click Restart Required.

    The Apply Changes page is displayed.

  13. Click the Restart Proxy Server button to apply the changes.

ProcedureTo Enable ICP

  1. Access the Server Manager, and click the Preferences tab.

  2. Click the Configure System Preferences link.

    The Configure System Preferences page is displayed.

  3. Select the Yes radio button for ICP and Click OK.

  4. Click Restart Required.

    The Apply Changes page is displayed.

  5. Click the Restart Proxy Server button to apply the changes.

ProcedureTo Enable Routing Through an ICP Neighborhood

You need to enable routing through an ICP neighborhood only if your proxy has other siblings or parents in the ICP neighborhood. If your proxy is a parent to another proxy and does not have any siblings or parents of its own, then you need to enable ICP only for that proxy. You do not need to enable routing through an ICP neighborhood.

  1. Access the Server Manager, and click the Routing tab.

  2. Click the Set Routing Preferences link.

    The Set Routing Preferences page is displayed.

  3. Select the resource from the drop-down list or click the Regular Expression button, type a regular expression, and click OK.

  4. Select the radio button next to the Route Through option.

  5. Select the checkbox next to ICP.

  6. (Optional) To enable the client to retrieve a document directly from the ICP neighbor that has the document instead of going through another neighbor to get it, select the checkbox next to the Text Redirect option.

  7. Click OK.


    Caution – Caution –

    Redirect is not currently supported by any clients, so don’t use the feature at this time.


  8. Click Restart Required.

    The Apply Changes page is displayed.

  9. Click the Restart Proxy Server button to apply the changes.