拡張オブジェクトトラッキング
拡張オブジェクトトラッキング機能は、追跡対象のオブジェクトと、オブジェクトの状態変化に応じて実行されるアクションを分離し、複数のクライアント(HSRP、VRRP、GLPBなど)が同じオブジェクトを追跡し、異なるアクションを実行できるようにします。オブジェクトは一意の番号で識別され、追跡プロセスはオブジェクトの変化を記録し、クライアントに通知します。ブール論理を使用して、複数のオブジェクトを組み合わせた柔軟なトラッキングが可能で、最大1000個のオブジェクトを追跡できますが、CPUリソースに依存するため、事前にテストが推奨されます。
インターフェース状態追跡
IPルーティングオブジェクトは、インターフェイス上でIPルーティングが有効であり、ラインプロトコル状態がアップで、IPアドレスが設定されている場合に稼働中と見なされます。一方、IPルーティングが無効、ラインプロトコルがダウン、またはIPアドレスが不明な場合、IPルーティングは停止します。track interface ip routingコマンドは、特にIPアドレスがネゴシエートされるインターフェイスで、回線プロトコルの状態よりも有用です。また、キャリア遅延タイマーを考慮する設定も可能です。
IP SLA オペレーション追跡
IP SLAのオペレーション追跡機能により、トラッキングクライアントはIP SLAオブジェクトからの出力を追跡し、それに基づいてアクションをトリガーできます。Cisco IOS IP SLAは、ネットワークパフォーマンスをアクティブに監視し、応答時間やパケット損失などのリアルタイムメトリックを収集するツールです。これらのデータは、トラブルシューティングや予防的な分析、ネットワーク設計に役立ちます。IP SLA操作は戻りコードを持ち、その値に基づいて操作の状態や到達可能性が追跡されます。
インターフェイスに関する設定
インターフェース追跡の設定
ラインプロトコルかIPルーティングを選択して、追跡設定モードに入ります。
Device(config)#track object-number interface type number [ line-protocol | ip routing ]
line-protocol インターフェイスのライン プロトコル状態を追跡します。 ip routing インターフェイスの IP ルーティング状態を追跡します。
オプション
追跡プロセスが追跡対象オブジェクトをポーリングする間隔を指定します。デフォルトは1秒です。
Device(config)#track timer interface {seconds | msec milliseconds}
インターフェイスのステータスを追跡するときに、EOT がキャリア遅延タイマーを考慮できるようにします。
Device(config)#carrier-delay
追跡対象オブジェクトの状態変化の通信を遅延する期間 (秒単位) を指定します。
Device(config)#delay {up seconds [down [seconds] | [up seconds] down seconds]}
設定例

R1,R2のGi0/3がダウンするとオブジェクトトラッキングが動作してHSRPのプライオリティを10下げるように設定しています。
R1(config)#track 100 interface Gi0/3 line-protocol
R1(config-track)#interface Gi0/0
R1(config-if)#standby 100 ip 192.168.100.254
R1(config-if)#standby 100 preempt
R1(config-if)#standby 100 priority 110
R1(config-if)#standby 100 track 100 decrement 10
R2(config)#track 100 interface Gi0/3 line-protocol
R2(config-track)#interface Gi0/0
R2(config-if)#standby 100 ip 192.168.100.254
R2(config-if)#standby 100 preempt
R2(config-if)#standby 100 priority 105
R2(config-if)#standby 100 track 100 decrement 10
PC1からR3までtracerouteを実施するとアクティブルータであるRT1を経由していることを確認できます。

RT1のGi0/3をダウンさせます。ダウンさせるとオブジェクトトラッキングが動作してHSRPのアクティブとスタンバイの切り変わりが発生したことを示すログが出力されました。
R1(config)#interface GigabitEthernet 0/3
R1(config-if)#shu
R1(config-if)#shutdown
R1(config-if)#
*Aug 16 13:50:18.858: %TRACK-6-STATE: 100 interface Gi0/3 line-protocol Up -> Down
*Aug 16 13:50:20.835: %LINK-5-CHANGED: Interface GigabitEthernet0/3, changed state to administratively down
*Aug 16 13:50:21.173: %HSRP-5-STATECHANGE: GigabitEthernet0/0 Grp 100 state Active -> Speak
*Aug 16 13:50:21.835: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/3, changed state to down
*Aug 16 13:50:31.438: %HSRP-5-STATECHANGE: GigabitEthernet0/0 Grp 100 state Speak -> Standby
R1のHSRPのプライオリティも10下がり100となっています。

改めてPC1からRT3までtracerouteを実施するとRT2を経由するようになっていることを確認できます。

IPルートに関する設定
IPルートの設定
Device(config)#track object-number ip route ip-address/prefix-length [ reachability | metric threshold ]
| reachability | P ルートの到達可能性を追跡します。 |
| metric threshold | IP ルートのスケールされたメトリック値を追跡します。 |
オプション
追跡プロセスが追跡対象オブジェクトをポーリングする間隔を指定します。デフォルトは15秒です。
Device(config)#track timer interface {seconds | msec milliseconds}
追跡対象オブジェクトの状態変化の通信を遅延する期間 (秒単位) を指定します。
Device(config)#delay {up seconds [down [seconds] | [up seconds] down seconds]}
VPN ルーティングおよび転送(VRF)テーブルを設定します。
Device(config)#ip vrf vrf-name
追跡対象オブジェクトの解像度パラメータを指定します。(メトリック値を追跡している場合)
Device(config)#rack resolution ip route {eigrp | isis | ospf | static} resolution-value
デフォルト値以外のメトリックしきい値を設定します。(メトリック値を追跡している場合)
Device(config)#threshold metric {up number [down number] | down number [up number ]}
設定例

R1,R2から3.3.3.3までの到達性がダウンするとオブジェクトトラッキングが動作してHSRPのプライオリティを10下げるように設定しています。
R1(config)#track 100 ip route 3.3.3.3/32 reachability
R1(config-track)#exit
R1(config)#interface Gi0/0
R1(config-if)#standby 100 ip 192.168.100.254
R1(config-if)#standby 100 preempt
R1(config-if)#standby 100 priority 110
R1(config-if)#standby 100 track 100 decrement 10
R2(config)#track 100 ip route 3.3.3.3/32 reachability
R2(config-track)#exit
R2(config)#interface Gi0/0
R2(config-if)#standby 100 ip 192.168.100.254
R2(config-if)#standby 100 preempt
R2(config-if)#standby 100 priority 105
R2(config-if)#standby 100 track 100 decrement 10
PC1からR3までtracerouteを実施するとアクティブルータであるRT1を経由していることを確認できます。

宛先3.3.3.3のnexthopであるR3の192.168.13.3まで接続されているGi0/3をshutdownさせます。
オブジェクトトラックの100が発動してHSRPのアクティブとスタンバイが切り替わったことを示すログが出力されました。
R1(config)#do sh run | i ip route
track 100 ip route 3.3.3.3 255.255.255.255 reachability
ip route 3.3.3.3 255.255.255.255 192.168.13.3
R1(config)#int g0/3
R1(config-if)#shutdown
R1(config-if)#
*Aug 16 14:53:30.292: %LINK-5-CHANGED: Interface GigabitEthernet0/3, changed state to administratively down
*Aug 16 14:53:31.292: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/3, changed state to down
*Aug 16 14:53:31.486: %TRACK-6-STATE: 100 ip route 3.3.3.3/32 reachability Up -> Down
*Aug 16 14:53:32.493: %HSRP-5-STATECHANGE: GigabitEthernet0/0 Grp 100 state Active -> Speak
*Aug 16 14:53:44.409: %HSRP-5-STATECHANGE: GigabitEthernet0/0 Grp 100 state Speak -> Standby
PC1からRT3までtarcerouteを実施するとRT2を経由していることが分かります。

IP SLA に関する設定
IP SLA 追跡の設定
IP SLA オブジェクトの状態を追跡します。
Device(config)#track object-number ip sla operation-number [state | reachability]
state IP SLA オペレーションの状態の追跡 reachability IP SLA IPホストの到達可能性の追跡
オプション
追跡対象オブジェクトの状態変化の通信を遅延する期間 (秒単位) を指定します。
Device(config)#delay {up seconds [down seconds | [up seconds] down seconds}
設定例

R3はR1のGi0/3のIPアドレスである192.168.13.1をデフォルトゲートウェイとしています。192.168.13.1までICMP疎通が出来なくなりIP SLAがダウンしたときにオブジェクトトラッキングが動作してデフォルトゲートウェイが切り替わるように設定しています。
R3(config)#ip sla 10
R3(config-ip-sla)#icmp-echo 192.168.13.1
R3(config-ip-sla-echo)#frequency 60
R3(config-ip-sla-echo)#ip sla schedule 10 life forever start-time now
R3(config)#track 100 ip sla 10 reachability
R3(config-track)#ip route 0.0.0.0 0.0.0.0 192.168.13.1 track 100
R3(config)#ip route 0.0.0.0 0.0.0.0 192.168.23.2 250
現在DGWは192.168.13.1となっています。

R1でGi0/3をshutdownさせます。
R1(config)#interface GigabitEthernet 0/3
R1(config-if)#shutdown
R3で192.168.13.1までの疎通が出来なくなり、オブジェクトトラッキングが動作したことを示すログが出力され、デフォルトゲートウェイも192.168.23.2に変更されています。

追跡リストに関する設定
複数のトラッキング対象(オブジェクト)をグループ化し、それらの状態を論理的に組み合わせて評価することができます。
追跡リストとブール式の設定
追跡リスト オブジェクトを設定します。
Device(config)#track track-number list boolean {and | or}
追跡するオブジェクトを指定します。
Device(config-track)#object object-number [not]
not オブジェクトの状態を否定します。例えば、object 3 notとすると、オブジェクト 3 が起動しているときに、追跡リストはオブジェクト 3 がダウンしていると検出します。
追跡リストとしきい値の重みの設定
追跡リスト オブジェクトを設定します。
Device(config)#track track-number list threshold weight
| threshold | 追跡リストの状態がしきい値に基づいていることを指定します。 |
| weight | しきい値が指定された重みに基づいていることを指定します。 |
追跡するオブジェクトを指定します。
Device(config)#object object-number [weight weight-number]
weight weight-number 各オブジェクトのしきい値の重みを指定します。
しきい値の重みを指定します。
Device(config)#threshold weight {up number down number | up number | down number}
| up number | 有効な範囲は 1 ~ 255 です。 |
| down number | 範囲は up キーワードで選択した内容によって異なります 。 たとえば、up に 25 を設定すると、down の範囲は 0 ~ 24 になります。 |
追跡リストとしきい値のパーセンテージの設定
追跡リスト オブジェクトを設定します。
Device(config)#track track-number list threshold percentage
| threshold | 追跡リストの状態がしきい値に基づいていることを指定します。 |
| percentage | しきい値がパーセンテージに基づくことを指定します。 |
追跡するオブジェクトを指定します。
Device(config)#object object-number
しきい値のパーセンテージを指定します。
Device(config)#threshold percentage {up number [down number ] | down number [up number]}
| upnumber | 有効な範囲は 1 ~ 100 です。 |
| downnumber | 範囲はup キーワードで選択した内容によって異なります 。 たとえば、up に 25 を設定すると、down の範囲は 26 ~ 100 になります。 |
オプション
アップ状態とダウン状態間の追跡遅延を秒単位で指定します。
Device(config)#delay {up seconds [down seconds | [up seconds] down seconds}
追跡リストの設定例

設定例(追跡リストのブール式)
次の例は複数のループバックインターフェース(lo1, lo2, lo3)がアップのときトラッキングオブジェクト100がアップ状態になるように設定しています。
R1(config)#track 1 interface lo1 line-protocol
R1(config-track)#track 2 interface lo11 line-protocol
R1(config-track)#track 3 interface lo111 line-protocol
R1(config-track)#exit
R1(config)#track 100 list boolean and
R1(config-track)#object 1
R1(config-track)#object 2
R1(config-track)#object 3
設定例(追跡リストのしきい値の重み)
次の例は複数のループバックインターフェース(lo1, lo2, lo3)に閾値の重み20を設定しています。ダウン閾値は0でアップ閾値は40です。3つのインターフェースすべてがダウンしている場合にオブジェクトトラッキング100がダウンして、少なくとも2つのインターフェースがアップしている場合は20+20で>=40となるためアップします。
R1(config)#track 1 interface lo1 line-protocol
R1(config-track)#track 2 interface lo11 line-protocol
R1(config-track)#track 3 interface lo111 line-protocol
R1(config-track)#exit
R1(config)#track 100 list threshold weight
R1(config-track)#object 1 weight 20
R1(config-track)#object 2 weight 20
R1(config-track)#object 3 weight 20
R1(config-track)#threshold weight up 40 down 0
R1(config-track)#
設定例(追跡リストのしきい値パーセンテージ)
次の例では、トラック リスト 100 の 3つの GigabitEthernet インターフェイスが、アップしきい値パーセンテージ66%に設定されています。インターフェイスの 66%がアップの場合、トラック リストはアップになり、インターフェイスの 66% 未満がアップの場合、トラック リストはダウンになります。(ダウンの閾値はデフォルトの0なのでup状態からはすべてのインターフェイスがダウンしたときにダウンになります)
R1(config)#track 1 interface lo1 line-protocol
R1(config-track)#track 2 interface lo11 line-protocol
R1(config-track)#track 3 interface lo111 line-protocol
R1(config-track)#exit
R1(config)#track 100 list threshold percentage
R1(config-track)#object 1
R1(config-track)#object 2
R1(config-track)#object 3
R1(config-track)#threshold percentage up 66