Route Monitor
Overview
Object Tracking provides a mechanism for tracking the reachability status of objects, such as IP status, using Internet Protocol Service Level Agreement (IP SLA). This feature empowers users to monitor the state of these objects and make decisions based on their status. It permits the configuration of multiple track objects on interfaces, delivering flexibility in managing network link status.
Feature Characteristics
Object Tracking establishes a distinct separation between the tracked objects and the actions initiated by a client when there's a change in the state of a tracked object. Users can configure object tracking types as any or all on the interface, alongside track IDs that specify which statuses to monitor. Modify the interface's link status to either up or down based on the selected track type and the statuses of the associated track IDs.
When using Track type all, the feature performs a Boolean AND operation, requiring every object configured on the interface to be in an up state for the interface itself to be considered up. If any of these objects are not in an up state, the interface is set to down.
Conversely, Track type any operates as a Boolean OR function, necessitating that at least one object configured on the interface must be in an up state for the interface to remain up. If none of the tracked objects are in an up state, the interface is marked as down.
Benefits
Users can ensure network reliability by defining specific tracking criteria and actions, allowing them to take appropriate measures when tracked objects experience status change. This contributes to improved network management and performance.
Prerequisites
Before configuring and utilizing Object Tracking, ensure the following prerequisites:
Track IDs: Users must define and configure the track IDs and corresponding objects they want to track for reachability. These track IDs are essential for the feature to work effectively. Deleting all track IDs from the interface will bring the interface up if it was previously down.
Interface Configuration: The feature involves configuring track types on interfaces. Therefore, ensuring that the interfaces are correctly configured and operational is important. In cases where an interface has both object tracking configurations and next-hop reachability, deleting the object tracking configurations is necessary to bring the interface back up if it goes down.
Object Tracking Criteria: Define the specific criteria and conditions for tracking an object’s reachability, such as IP status, using IP SLA.
Configuration
The below topology illustrates a network configuration involving three routers, R1, R2, and R3, with a central device referred to as the Device Under Test (DUT) positioned in the middle. This topology represents a linear or sequential network structure that showcases the Route Monitor feature.
Topology
A series of configurations were implemented on routers R1, R2, and R3, as well as on the DUT, to showcase the functionality of the Route Monitor feature. The objective was to demonstrate the configuration of network routers to monitor the reachability status of specific IPv4 and IPv6 addresses using IP SLA and illustrate that these configurations can work in conjunction with the Route Monitor feature to enable informed decisions based on the reachability status of tracked objects.
Route Monitor Topology
IPv4 Configuration
DUT
Use the following configuration to set up an IP SLA and enable object tracking on a network device. These commands assign IPv4 addresses to interfaces, configure specific IP SLA parameters such as threshold, timeout, and frequency, create a time-range for scheduling measurements, and establish static routes with nexthop addresses. Configure object tracking to monitor the reachability of tracked objects. These configurations highlight the versatility and functionality of the network device by allowing it to monitor IPv4 addresses, make decisions based on object tracking, and optimize network operations.
DUT#configure terminal | Enter configure mode. |
DUT(config)#interface xe50 | Enter interface mode xe50. |
DUT(config-if)#ip address 2.2.2.1/24 | Assign the IP address 2.2.2.1 with a subnet mask of /24 to interface xe50. |
DUT(config-if)#exit | Exit interface mode xe50. |
DUT(config)#interface xe51 | Enter interface mode xe51. |
DUT(config-if)#ip address 1.1.1.2/24 | Assign the IP address 1.1.1.2 with a subnet mask of /24 to interface xe51. |
DUT(config-if)#exit | Exit interface mode xe51. |
DUT(config)#ip sla 1 | Create an IP SLA operation with index 1. |
DUT(config-ip-sla)#icmp-echo ipv4 3.3.3.1 source-interface xe50 | Configure the SLA to send ICMP echo requests to destination IPv4 address 3.3.3.1 using interface xe50 as the source. |
DUT(config-ip-sla-echo)#threshold 1000 | Set the threshold value for SLA to 1000 milliseconds. |
DUT(config-ip-sla-echo)#timeout 1000 | Set the timeout value for SLA to 1000 milliseconds. |
DUT(config-ip-sla-echo)#frequency 5 | Configure the frequency value for SLA to send ICMP echo packets every 5 seconds. |
DUT(config-ip-sla-echo)#exit | Exit IP SLA echo mode. |
DUT(config-ip-sla)#exit | Exit IP SLA mode. |
DUT(config)#time-range tr1 | Create a time range named tr1. |
DUT(config-tr)#start-time 11:22 3 july 2021 | Set the start time for the time range to 11:22 on July 3, 2021. |
DUT(config-tr)#end-time after 200 | Set the end time to be 200 minutes from the start time. |
DUT(config-tr)#exit | Exit time-range mode. |
DUT(config)#ip sla schedule 1 time-range tr1 | Schedule IP SLA operation 1 to run within the specified time range tr1. |
DUT(config)#track 1 ip sla 1 reachability | Creating a tracking object to monitor the reachability status of IP SLA operation 1. |
DUT(config-object-track)#exit | Exit object track mode. |
DUT(config)#ip route 3.3.3.0/24 2.2.2.2 track 1 | Add a static route for the destination network 3.3.3.0/24 with next-hop IP 2.2.2.2, tracked by tracking object 1. |
DUT(config)#ip route 5.5.5.0/24 1.1.1.2 | Add a static route for the destination network 5.5.5.0/24 with next-hop IP 1.1.1.2. |
DUT(config)#ip route 6.6.6.0/24 2.2.2.2 track 1 | Add a static route for the destination network 6.6.6.0/24 with next-hop IP 2.2.2.2, tracked by tracking object 1. |
DUT(config)#ip route 6.6.6.0/24 1.1.1.2 10 | Add a static route for the destination network 6.6.6.0/24 with next-hop IP 1.1.1.2 and a metric of 10. |
DUT(config)#commit | Commit the candidate configuration to the running configuration. |
DUT(config)#interface xe51 | Enter interface mode xe51. |
DUT(config-if)#object-tracking all | Enable object tracking for all tracking objects on interface xe51. |
DUT(config-if)#object-tracking 1 | Configure object tracking 1 on interface xe51. |
DUT(config-if)#object-tracking 2 | Configure object tracking 2 on interface xe51. |
DUT(config-if)#exit | Exit interface mode. |
DUT(config)#exit | Exit configure mode. |
By configuring the routes below, R1, R2, and R3 effectively forward network traffic to its designated destinations within the network. These configurations actively contribute to efficient routing operations and ensure network traffic reaches its targets.
R1
R1#configure terminal | Enter configure mode. |
R1(config)#interface xe1 | Enter interface mode xe1. |
R1(config-if)#ip address 1.1.1.1/24 | Assign the IP address 1.1.1.1 with a subnet mask of /24 to interface xe1. |
R1(config-if)#commit | Commit the candidate configuration to the running configuration. |
R1(config-if)#exit | Exit interface mode xe1. |
R1(config)#ip route 2.2.2.0/24 1.1.1.2 | Add a static route for the destination network 2.2.2.0/24 with next-hop IP 1.1.1.2. |
R1(config)#ip route 3.3.3.0/24 1.1.1.2 | Add a static route for the destination network 3.3.3.0/24 with next-hop IP 1.1.1.2. |
R1(config)#commit | Commit the candidate configuration to the running configuration. |
R1(config)#exit | Exit configure mode. |
R2
R2#configure terminal | Enter configure mode. |
R2(config)#interface xe1 | Enter interface mode xe1. |
R2(config-if)#ip address 2.2.2.2/24 | Assign the IP address 2.2.2.2 with a subnet mask of /24 to interface xe1. |
R2(config-if)#exit | Exit interface mode xe1. |
R2(config)#interface xe2 | Enter interface mode xe2. |
R2(config-if)#ip address 3.3.3.1/24 | Assign the IP address 3.3.3.1 with a subnet mask of /24 to interface xe2. |
R2(config-if)#exit | Exit interface mode xe2. |
R2(config)#ip route 1.1.1.0/24 2.2.2.1 | Add a static route for the destination network 1.1.1.0/24 with next-hop IP 2.2.2.1. |
R2(config)#commit | Commit the candidate configuration to the running configuration. |
R2(config)#exit | Exit configure mode. |
R3
R3#configure terminal | Enter configure mode. |
R3(config)#interface xe1 | Enter interface mode xe1. |
R3(config-if)#ip address 3.3.3.2/24 | Assign the IP address 3.3.3.2 with a subnet mask of /24 to interface xe1. |
R3(config-if)#commit | Commit the candidate configuration to the running configuration. |
R3(config-if)#exit | Exit interface mode xe1. |
R3(config)#ip route 1.1.1.0/24 3.3.3.1 | Add a static route for the destination network 1.1.1.0/24 with next-hop IP 3.3.3.1. |
R3(config)#ip route 2.2.2.0/24 3.3.3.1 | Add a static route for the destination network 2.2.2.0/24 with next-hop IP 3.3.3.1. |
R3(config)#commit | Commit the candidate configuration to the running configuration. |
R3(config)#exit | Exit configure mode. |
Validation
The following show output displays information about the IPv4 route table, IP SLA reachability tracking, and interface status on a network device running OcNOS.
DUT
DUT#show track
TRACK Id: 1
IP SLA 1 reachability
Reachability is UP
4 changes, last change : 2019 Mar 14 14:53:47
Track interface : xe51
DUT#show ip route track-table
ip route 3.3.3.0 255.255.255.0 2.2.2.2 track 1 state is [up]
ip route 6.6.6.0 255.255.255.0 2.2.2.2 track 1 state is [up]
DUT#show ip route
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2,
ia - IS-IS inter area, E - EVPN,
v - vrf leaked
* - candidate default
IP Route Table for VRF "default"
C 1.1.1.0/24 is directly connected, xe51, 00:55:38
C 2.2.2.0/24 is directly connected, xe50, 00:49:50
S 3.3.3.0/24 [1/0] via 2.2.2.2, xe50, 00:00:03
S 5.5.5.0/24 [1/0] via 1.1.1.2, xe51, 00:08:12
S 6.6.6.0/24 [1/0] via 2.2.2.2, xe50, 00:00:03
Gateway of last resort is not set
DUT#show interface brief xe51
Codes: ETH - Ethernet, LB - Loopback, AGG - Aggregate, MLAG - MLAG Aggregate
FR - Frame Relay, TUN -Tunnel, PBB - PBB Logical Port, VP - Virtual Port
CVP - Channelised Virtual Port, METH - Management Ethernet, UNK- Unknown
ED - ErrDisabled, PD - Protocol Down, AD - Admin Down, IA - InActive
PD(Min L/B) - Protocol Down Min-Links/Bandwidth
OTD - Object Tracking Down
DV - DDM Violation, NA - Not Applicable
NOM - No operational members, PVID - Port Vlan-id
Ctl - Control Port (Br-Breakout/Bu-Bundle)
--------------------------------------------------------------------------------
Ethernet Type PVID Mode Status Reason Speed Port ch# Ctl Br/Bu Loopbk Interface
--------------------------------------------------------------------------------
xe51 ETH -- routed down OTD 10g -- No No
IPv6 Configuration
DUT
Use the following configuration to set up an IP SLA and enable object tracking on a network device. These commands assign IPv6 addresses to interfaces, configure specific IP SLA parameters such as threshold, timeout, and frequency, create a time-range for scheduling measurements, and establish static routes with nexthop addresses. Configure object tracking to monitor the reachability of tracked objects. These configurations highlight the versatility and functionality of the network device by allowing it to monitor IPv6 addresses, make decisions based on object tracking, and optimize network operations.
DUT#configure terminal | Enter configure mode. |
DUT(config)#interface xe50 | Enter interface mode xe50. |
DUT(config-if)#ipv6 address 2000::1/64 | Assign an IPv6 address (2000::1/64) to interface xe50. |
DUT(config-if)#exit | Exit interface mode xe50. |
DUT(config)#interface xe51 | Enter interface mode xe51. |
DUT(config-if)#ipv6 address 1000::2/64 | Assign an IPv6 address (1000::2/64) to interface xe51. |
DUT(config-if)#exit | Exit interface mode xe51. |
DUT(config)#ip sla 1 | Create an IP SLA operation with index 1. |
DUT(config-ip-sla)#icmp-echo ipv6 3000::1 source-interface xe50 | Configure the SLA to send IPv6 ICMP echo requests to destination IPv6 address 3000::1 using interface xe50 as the source. |
DUT(config-ip-sla-echo)#threshold 1000 | Set the threshold value for SLA to 1000 milliseconds. |
DUT(config-ip-sla-echo)#timeout 1000 | Set the timeout value for SLA to 1000 milliseconds. |
DUT(config-ip-sla-echo)#frequency 5 | Configure the frequency value for SLA to send IPv6 ICMP echo packets every 5 seconds. |
DUT(config-ip-sla-echo)#exit | Exit IP SLA echo mode. |
DUT(config-ip-sla)#exit | Exit IP SLA mode. |
DUT(config)#time-range tr1 | Create a time range named tr1. |
DUT(config-tr)#start-time 11:22 3 july 2021 | Set the start time for the time range to 11:22 on July 3, 2021. |
DUT(config-tr)#end-time after 200 | Set the end time to be 200 minutes from the start time. |
DUT(config-tr)#exit | Exit time-range mode. |
DUT(config)#ip sla schedule 1 time-range tr1 | Schedule IP SLA operation 1 to run within the specified time range tr1. |
DUT(config)#track 1 ip sla 1 reachability | Creating a tracking object to monitor the reachability status of IP SLA operation 1. |
DUT(config-object-track)#exit | Exit object track mode. |
DUT(config)#ipv6 route 3000::0/64 2000::2 track 1 | Add an IPv6 static route for the destination network 3000::0/64 with a next-hop IPv6 2000::2, tracked by tracking object 1. |
DUT(config)#ipv6 route 3333::1/128 1000::1 | Add an IPv6 static route for the destination network 3333::1/128 with next-hop IPv6 1000::1. |
DUT(config)#ipv6 route 3333::1/128 2000::2 track 1 | Add an IPv6 static route for the destination network 6.6.6.0/24 with next-hop IPv6 2000::2, tracked by tracking object 1. |
DUT(config)#ipv6 route 3333::1/128 1000::1 10 | Add an IPv6 static route for the destination network 3333::1/128 with next-hop IP 1000::1 and a metric of 10. |
DUT(config)#commit | Commit the candidate configuration to the running configuration. |
DUT(config)#interface xe51 | Enter interface mode xe51. |
DUT(config-if)#object-tracking all | Enable object tracking for all tracking objects on interface xe51. |
DUT(config-if)#object-tracking 1 | Configure object tracking 1 on interface xe51. |
DUT(config-if)#object-tracking 2 | Configure object tracking 2 on interface xe51. |
DUT(config-if)#exit | Exit interface mode. |
DUT(config)#exit | Exit configure mode. |
By configuring the routes below, R1, R2, and R3 effectively forward network traffic to its designated destinations within the network. These configurations actively contribute to efficient routing operations and ensure network traffic reaches its targets.
R1
R1#configure terminal | Enter configure mode. |
R1(config)#interface xe1 | Enter interface mode xe1. |
R1(config-if)#ipv6 address 1000::1/64 | Assign the IPv6 address 1000::1 with a subnet mask of /64 to interface xe1. |
R1(config-if)#commit | Commit the candidate configuration to the running configuration. |
R1(config-if)#exit | Exit interface mode xe1. |
R1(config)#ipv6 route 2000::0/64 1000::2 | Add an IPv6 static route for the destination network 2000::0/64 with next-hop IPv6 1000::2. |
R1(config)#ipv6 route 3000::0/64 1000::2 | Add an IPv6 static route for the destination network 3000::0/64 with next-hop IPv6 1000::2. |
R1(config)#commit | Commit the candidate configuration to the running configuration. |
R1(config)#exit | Exit configure mode. |
R2
R2#configure terminal | Enter configure mode. |
R2(config)#interface xe1 | Enter interface mode xe1. |
R2(config-if)#ipv6 address 2000::2/64 | Assign the IPv6 address 2000::2 with a subnet mask of /64 to interface xe1. |
R2(config-if)#exit | Exit interface mode xe1. |
R2(config)#interface xe2 | Enter interface mode xe2. |
R2(config-if)#ipv6 address 3000::1/64 | Assign the IPv6 address 3000::1 with a subnet mask of /64 to interface xe2. |
R2(config-if)#exit | Exit interface mode xe2. |
R2(config)#ipv6 route 1000::0/64 2000::1 | Add an IPv6 static route for the destination network 1000::0/64 with next-hop IPv6 2000::1. |
R2(config)#commit | Commit the candidate configuration to the running configuration. |
R2(config)#exit | Exit configure mode. |
R3
R3#configure terminal | Enter configure mode. |
R3(config)#interface xe1 | Enter interface mode xe1. |
R3(config-if)#ipv6 address 3000::2/64 | Assign the IPv6 address 3000::2 with a subnet mask of /64 to interface xe1. |
R3(config-if)#commit | Commit the candidate configuration to the running configuration. |
R3(config-if)#exit | Exit interface mode xe1. |
R3(config)#ipv6 route 1000::0/64 3000::1 | Add an IPv6 static route for the destination network 1000::0/64 with next-hop IPv6 3000::1. |
R3(config)#ipv6 route 2000::0/64 3000::1 | Add an IPv6 static route for the destination network 2000::0/64 with next-hop IPv6 3000::1. |
R3(config)#commit | Commit the candidate configuration to the running configuration. |
R3(config)#exit | Exit configure mode. |
Validation
The following show output displays the information about IP SLA reachability tracking, IPv6 route tables, and interface status on a network device running OcNOS.
DUT
DUT#show track
TRACK Id: 1
IP SLA 1 reachability
Reachability is UP
4 changes, last change : 2019 Mar 14 14:53:47
Track interface : xe51
DUT#show ip route track-table
ipv6 route 3000::0/64 2000::2 track 1 state is [up]
ipv6 route 3333::1/128 2000::2 track 1 state is [up]
DUT#show ip sla summary
IP SLA Operation Summary
Codes: * active, ^ inactive
ID Type Destination Stats Return Last
(usec) Code Run
-------------------------------------------------------------------
*1 icmp-echo 3000::1 16000 OK 2019 Mar 11 1
6:11:40
-------------------------------------------------------------------
DUT#show ipv6 route
IPv6 Routing Table
Codes: K - kernel route, C - connected, S - static, D- DHCP, R - RIP,
O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1,
E2 - OSPF external type 2, E - EVPN N1 - OSPF NSSA external type 1,
N2 - OSPF NSSA external type 2, i - IS-IS, B - BGP,
v - vrf leaked
Timers: Uptime
IP Route Table for VRF "default"
C ::1/128 via ::, lo, 00:04:46
C 1000::/64 via ::, xe51, 00:02:48
C 2000::/64 via ::, xe50, 00:02:48
S 3000::/64 [1/0] via 2000::2, xe50, 00:02:48
S 3333::1/128 [1/0] via 2000::2, xe50, 00:02:48
DUT#show interface brief xe51
Codes: ETH - Ethernet, LB - Loopback, AGG - Aggregate, MLAG - MLAG Aggregate
FR - Frame Relay, TUN -Tunnel, PBB - PBB Logical Port, VP - Virtual Port
CVP - Channelised Virtual Port, METH - Management Ethernet, UNK- Unknown
ED - ErrDisabled, PD - Protocol Down, AD - Admin Down, IA - InActive
PD(Min L/B) - Protocol Down Min-Links/Bandwidth
OTD - Object Tracking Down
DV - DDM Violation, NA - Not Applicable
NOM - No operational members, PVID - Port Vlan-id
Ctl - Control Port (Br-Breakout/Bu-Bundle)
---------------------------------------------------------------------------------------
Ethernet Type PVID Mode Status Reason Speed Port Ch # Ctl Br/Bu Loopbk
Interface
----------------------------------------------------------------------------------------
xe51 ETH -- routed down OTD 10g -- No No
Implementation Examples
Here is a practical scenario and use case for Object Tracking implementation:
Link Redundancy: Object Tracking can be used to monitor the reachability of primary and backup network links. If the primary link fails or becomes congested, the system can automatically switch traffic to the backup link, ensuring uninterrupted network connectivity.
Load Balancing: Object Tracking helps optimize load balancing by continuously assessing the health and availability of servers or paths. If a server becomes overloaded or fails, traffic can be intelligently redirected to healthy servers, improving resource utilization and user experience.
Failover Testing and Verification: Object Tracking provides a mechanism for simulating network failures and verifying failover mechanisms. By configuring tracked objects to mimic real-world conditions, network administrators can assess the resilience of their network configurations and ensure they perform as expected during failures.
New CLI Commands
The Route Monitor feature introduces the following configuration commands. For more information, refer to the Interface Commands, IP Service Level Agreements Commands, and Object Tracking Commands chapters in the System Management Guide.
object-tracking
Use this command to configure track IDs and options on the interfaces.
Use the no parameter with this command to remove the configurations.
These commands configure object tracking on interfaces, with specific track IDs and tracked objects set to determine what gets tracked and affects the interface's status.
The object-tracking command provides flexibility, enabling both all and any tracking behaviors for influencing the interface's status. A maximum of 8 track IDs can be configured per interface. It is possible to configure the same track IDs or options on multiple interfaces.
Command Syntax
object-tracking <1-500>
object-tracking <all | any>
no object-tracking <1-500>
no object-tracking <all | any>
Parameters
<1-500>
Object tracking ID
all
Boolean AND operation. Each object configured on the interface must be in an up state for the interface itself to be in an up state; otherwise, it will be brought down.
any
Boolean OR operation. At least one object configured on the interface must be in an up state; otherwise, the interface will be brought down.
Default
None
Command Mode
Interface mode
Applicability
This command was introduced in OcNOS version 6.4.1.
Example
Here are some example commands for configuring object tracking in the interface mode.
OcNOS(config)#int xe5
OcNOS(config-if)#object-tracking 10
OcNOS(config-if)#object-tracking all
OcNOS(config-if)#commit
OcNOS(config-if)#no object-tracking 10
OcNOS(config-if)#no object-tracking all
OcNOS(config-if)#commit
OcNOS(config-if)#exit
Troubleshooting
Interface Status: Verify the status of the interface linked with object tracking. If the configured track type is all, confirm that all tracked objects are in an up state to consider the interface as up. In the case of the track type being any, ensure that at least one tracked object is up to maintain the interface in an up state.
Abbreviations
The following are some key abbreviations and their meanings relevant to this document:
Acronym | Description |
NSM | Network and Service Management |
IP SLA | Internet Protocol Service Level Agreement |
DUT | Device Under Test |
Glossory
The following provides definitions for key terms used throughout this document.
Object Tracking | A feature that monitors the reachability status of objects, such as IP status, using IP SLA and allows users to take actions based on their status. |
Track Object | An object configured for tracking within the Object Tracking feature. These objects can represent specific network components or conditions, such as IP addresses or link statuses. |
Track ID | A unique identifier associated with a track object that enables the system to monitor and assess the status of that object. |
Track Type | The configuration specifies how the interface's link status should be determined based on the statuses of associated track objects. It can be set to all or any. |
Track Type “All” | A track type that uses a Boolean AND function, requiring that all tracked objects be in an up state for the interface to be considered up. |
Track Type “Any” | A track type that uses a Boolean OR function, ensuring that at least one tracked object is in an up state for the interface to remain up. |