SteelHeadā„¢ Deployment Guide : Policy-Based Routing Virtual In-Path Deployments : Overview of PBR
  
Overview of PBR
PBR is a packet redirection mechanism that allows you to define policies to route packets instead of relying on routing protocols. PBR redirects packets to SteelHeads that are in a virtual in-path deployment. This section includes the following topics:
  • PBR Failover and Cisco Discovery Protocol
  • Alternate PBR Failover Mechanisms
  • You define PBR policies on your router for switching packets. PBR policies can be based on identifiers available in access lists, such as the source IP address, destination IP address, protocol, source port, or destination port.
    When a PBR-enabled router interface receives a packet that matches a defined policy, PBR switches the packet according to the rule defined for the policy. If a packet does not match a defined policy, the packet is routed by the IP address specified in the routing table entry that most closely matches the destination address.
    To avoid an infinite loop, PBR must be enabled on the router interfaces where client traffic arrives, and disabled on the router interface that is connected to the SteelHead.
    PBR is enabled as a global configuration and applied on an interface basis. Each virtual in-path interface can be used simultaneously for receiving traffic redirected through PBR; physically, the WAN port is cabled and used to receive the redirected traffic.
    The SteelHead that intercepts traffic redirected by PBR is configured with both in-path and virtual in-path support enabled.
    PBR Failover and Cisco Discovery Protocol
    A major issue with PBR is that it can cause a traffic black hole; that is, it drops all packets to a destination if the device it is redirecting to fails. You can avoid the traffic black holes by enabling PBR to track whether or not the PBR next-hop IP address is available. You configure the PBR-enabled router to use the Cisco Discovery Protocol (CDP). CDP is a protocol used by Cisco routers and switches to obtain information such as neighbor IP addresses, models, and IOS versions. The protocol runs at the OSI Layer-2 using the 802.3 Ethernet frame. You also enable CDP on the SteelHead.
    CDP must be enabled on the SteelHead that is used in the PBR deployment. You enable CDP using the in-path cdp enable CLI command. For details, see the Riverbed Command-Line Interface Reference Manual.
    CDP enables SteelHeads to provide automatic failover for PBR deployments. You configure the SteelHead to send out CDP frames. The PBR-enabled router uses these frames to determine whether the SteelHead is operational. If the SteelHead is not operational, the PBR-enabled router stops receiving the CDP frames, and PBR stops switching traffic to the SteelHead.
    The SteelHead must be physically connected to the PBR-enabled router for CDP to send frames. If a switch or other Layer-2 device is located between the PBR-enabled router and the SteelHead, CDP frames cannot reach the router. If the CDP frames do not reach the router, the router assumes that the SteelHead is not operational.
    CDP is not supported as a failover mechanism on all Cisco platforms. For information about whether your Cisco device supports this feature, refer to your router documentation.
    To enable CDP on the SteelHead
  • Connect to the SteelHead CLI and enter the following commands:
  • enable
    configure terminal
    in-path cdp enable
    write memory
    restart
    You must save your changes and restart the SteelHead for your changes to take effect.
    To enable CDP failover on the router
  • On the PBR router, at the system prompt, use the set ip next-hop verify-availability command. For details, refer to your router documentation.
  • ICMP and HTTP GET can both also be used to track whether or not the PBR next-hop IP address is available.
    When you configure the set ip next-hop verify-availability Cisco router command, PBR sends a packet in the following manner:
  • PBR checks the CDP neighbor table to verify that the PBR next-hop IP address is available.
  • If the PBR next-hop IP address is available, PBR sends an ARP request for the address, obtains an answer for it, and redirects traffic to the PBR next-hop IP address (the SteelHead).
  • PBR continues sending traffic to the next-hop IP address as long as the ARP requests obtain answers for the next-hop IP address.
  • If the ARP request fails to obtain an answer, PBR checks the CDP table. If there is no entry in the CDP table, PBR stops using the route map to send traffic. This verification provides a failover mechanism.
  • A Cisco 6500 router and switch combination that is configured in hybrid mode does not support PBR with CDP. A hybrid setup requires that you use a native setup for PBR with CDP to work. This configuration fails because all routing is performed on the MSFC. The MSFC is treated as an independent system in a hybrid setup. Therefore, when you run the show cdp neighbors Cisco command on the MSFC, it displays the supervisor card as its only neighbor. PBR does not detect the devices that are connected to the switch ports. As a result, PBR does not redirect any traffic for route maps that use the set ip next-hop verify-availability Cisco command. For details, refer to your router documentation.
    Alternate PBR Failover Mechanisms
    Several other PBR failover methods exist:
  • Object tracking
  • Dedicated Layer-3 subnet
  • Scriptable programming language
  • Object tracking is a Cisco IOS feature. The Cisco router generates synthetic traffic through a variety of methods (HTTP GET, ping, TCP connect, and so on) to determine if the SteelHead interface is available. If the SteelHead interface is declared unavailable by object tracking, then the router moves to the next SteelHead, or routes the packet normally.
    For more information about object tracking, see Configuring a SteelHead with Object Tracking.
    You can deploy the SteelHead on a dedicated Layer-3 subnet. A dedicated Layer-3 subnet provides a simple approach to failover without incurring additional CPU load on the Layer-3 device. The SteelHead must be the only device in the subnet, and connected to the Layer-3 device. If the SteelHead becomes unavailable, the dedicated Layer-3 subnet disappears from the routing table and the packet is routed normally. When all the interfaces for a VLAN or subnet do not connect to a Layer-3 switch, the corresponding route is withdrawn from the routing table and the policy statement is bypassed.
    If you use a Layer-3 switch, there cannot be another interface in the WAN optimization VLAN, including 802.1Q trunks.
    Some Layer-3 devices include a scriptable programming language: for example, Cisco Embedded Event Manager. You can use a scriptable programing language to actively detect an event, and initiate a series of CLI commands to disable PBR. If an event occurs indicating the SteelHead has failed, the PBR configuration is automatically removed. If the event reverses, the PBR configuration is automatically reapplied.