【Cisco】IPSLA×HSRP　設定編(IPSLA)

【前提】
■IPSLA
・通信の到達性を監視対象とする(icmp-echo・reahability)
・icmp-echo先はGoogleパブリックDNSとする(8.8.8.8)
・Frequencyにて送信間隔を調整
・delay downにて障害発生時の切替時間を調整
　※頻繁に切替が発生しないように調整目的

■HSRP
・回線RT(A・B)を用意しHSRPにて冗長構成とする
・decrementを定義しIPSLA疎通不可の際はPriorityを下げる
・preemptを定義し常にPriorityが高いほうが通信制御を実施する
・HSRP渡り、回線RTのLAN側は同一のVLANとして定義(SVI)



■構成図(前提)
![qiita_通常時構成図_ver02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3532067/32c96288-3593-2d0e-36d2-529c8be424f0.png)





【設定内容①】

```ruby:回線RT1のIPSLA設定
ip sla auto discovery
ip sla 1
icmp-echo 8.8.8.8 source-interface GigabitEthernet8
frequency 5
ip sla schedule 1 life forever start-time now
```

<dl>
  <dt>ip sla auto discovery</dt>
  <dd> ip sla の対向機器(responder) を自動的に検知し追加する機能ですが
このコマンドが意図せず有効になっていることによる問題などは特にありません。
   「no ip sla auto discovery」にて該当設は無効となります。<font color="#5507FF">※下記URL参照</font>

</dl>

<br>


https://community.cisco.com/t5/tkb-%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%A4%E3%83%B3%E3%83%95%E3%83%A9-sr-%E3%82%B3%E3%83%AC%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3/%E3%82%B7%E3%82%B9%E3%82%B3%E3%83%AB%E3%83%BC%E3%82%BF%E3%81%A7%E5%86%8D%E8%B5%B7%E5%8B%95%E5%BE%8C%E3%81%AB-ip-sla-auto-discovery-%E3%81%8C%E3%82%B3%E3%83%B3%E3%83%95%E3%82%A3%E3%82%B0%E3%81%AB%E8%BF%BD%E5%8A%A0%E3%81%95%E3%82%8C%E3%82%8B/ta-p/3157750



<br>
<br>
<dt>ip sla 1</dt>
  <dd>ip sla [operation-unmber]。1は識別子として適当な数値を設定 </dd>

<br><dt>icmp-echo 8.8.8.8 source-interface GigabitEthernet8</dt>
icmp-echo { destination-ip-address | destination-hostname } [ source-ip { ip-address | hostname } | source-interface interface-name ]。
Source-ipやsource-interfaceを指定しなかった場合でもルーティングテーブルに従い宛先に対して適切なIFから出力される想定 </dd>
  
<br><dt>frequency 5</dt>
  <dd>frequency seconds。5秒間隔でicmpを送る </dd>

<br><dt>ip sla schedule 1 life forever start-time now</dt>
  <dd>ip sla schedule operation-number [ life { forever | seconds }] [ start-time { hh : mm [: ss ] [ month day | day month ] | pending | now | after hh : mm : ss }] [ ageout seconds ] [ recurring ]。
上記の設定ではStart-time nowとして今すぐ開始、life foreverとして実施期間を永久としています
<br> </dd>

:::note warn
重要
「ip sla schedule」を設定しないとicmp-echoは開始されない

:::

<br>
<br>


【設定内容➁】

```ruby:回線RT1のSLA オブジェクト トラッキングの設定

track 10 ip sla 1 reachability
delay down 20
```

<br>
<dt>track 10 ip sla 1 reachability</dt>
  <dd>track [object-number] ip sla [operation-number] reachability。
　<br>IP SLA IP ホストの到達可能性をトラッキングの設定
 </dd>
<br>
<dt>delay down 20</dt>
  <dd>track [object-number] ip sla [operation-number] reachability。
　<font color="#5507FF">(設定任意)</font>トラッキング オブジェクトの通信ステートの変更を遅延させる
ための時間を秒数で指定。指定できる範囲は 1 ～ 180秒。IPSLAの設定において「frequency 5」commandでicmp-echoの間隔を指定しれいるが厳密に切り替わる時間の制限設けたい場合は「delay down」でしか制御ができない。「delay down」にて通信ステートの変更を遅延させることで瞬断での切り替わりや、通信品質に合わせた実装が可能。　　
 </dd>

<br>
<br>

【設定内容③】

```ruby:回線RT1のHSRPの設定
 interface Vlan1 
 ip address 192.168.4.253 255.255.255.0
 standby 1 ip 192.168.4.254
 standby 1 priority 120
 standby 1 preempt
 standby 1 track 10 decrement 30
```

<br>
<dt>standby 1 ip 192.168.4.254</dt>
  <dd>standby [group-number] ip。
<br>HSRPのVIPを定義。
 </dd>

<br>
<dt>standby 1 priority 120</dt>
  <dd>standby [group-number ] priority priority。
<br>Priorityのデフォルトは100になるため主系(RT1)のプライオリティを120とする。IPが同じ場合は
standbyで定義したグループ内の最大のIPがアクティブとなるため、プライオリティを設定しなくても
RT1がアクティブとなる想定の動作となる
 </dd>

<br>
<dt>standby 1 preempt</dt>
  <dd>standby [group-number ] preempt [delay minimum seconds | reload seconds | sync seconds ]。
設定したプライオリティの値において、値の大きい筐体がアクティブとして動作するように設定。
<dd><font color="#5507FF">※副系のpreempt設定に関して、実装するかは確認必須。復旧時に自動で切り戻すか、<br>原因を明確にし手動で切り変えるかの観点において基本設計書や方針を元に実装有無を判断。</font>
 </dd>


<br>
<dt> standby 1 track 10 decrement 30</dt>
  <dd>standby [group-number] track object-number [decrement [priority-decrement]]。
<br>定義したHSRPにオブジェクトをトラッキングし、オブジェクトのステートに基づいてホット スタンバイプライオリティの変更を行う。
<br>decrement priority-decrement：トラッキング オブジェクトがダウンした（またはアップに戻った）際の、ルータのホットスタンバイ プライオリティを減少（または増加）させる幅を指定する。指定
可能範囲は 1 ～ 255 で、デフォルトは 10 。
 </dd>


<br>
<br>
【実施したこと】
<br>■　検証内容
<br>・回線RT1のwan側(回線RT1‐外部RT間)のリンク障害を意図的に発生させた挙動を確認

<br>■　結果
<br>・RT1ではdelay down値の20秒＋デフォルトのtimeout値の5秒＋HSRPの切替動作含め、復旧までに約30秒
かかる結果となった。その際はRT1の「show ip sla statistics」にてreturn codeが正常をあらわすOK表示でないこと、Number of failuresの失敗パケットの数が上昇することの確認。「show standby brief 」にてRT2がACTIVEの役割を担うことの確認ができた。

<br>
<br>
<font color="#5507FF">※本構成において参照したURL一覧</font>
<br>①IPSLAによるHSRPトラッキング

https://www.infraexpert.com/study/ipsla2.html

➁IP SLA基本設定

https://community.cisco.com/t5/tkb-%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%A4%E3%83%B3%E3%83%95%E3%83%A9-%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88/ip-sla-%E3%81%AE%E5%9F%BA%E6%9C%AC%E8%A8%AD%E5%AE%9A/ta-p/3166458

③Cisco IOS IP SLA ICMP エコー動作の設定

https://www.cisco.com/c/ja_jp/td/docs/cian/ios/ios15-1s/cg/004/sla-15-1s/sla-icmp-echo.html#89073

④IP SLA - Object Tracking

https://www.infraexpert.com/study/ipsla1.html

⑤IP SLA オブジェクト トラッキングの設定

https://www.cisco.com/c/ja_jp/td/docs/sw/lanswt-access/cat3750swt/cg/009/swcfg/sweot.pdf