6-8 Performance Routing (PfR) — 経路の品質を測って出口を選ぶ
PfRv3 は受信側の BR が遅延やジッタを測り、閾値を越えると TCA で送信元の MC に知らせて traffic class ごとに出口を変えます。csr1000v 17.3 の MC/BR 3 台で、制御に入る条件と切替・復帰を実測します。
1. 前節の振り返りと本節の内容
前節 6-7 DMVPN (実践) では、mGRE が tunnel destination を書かないトンネルであり、その相手の実アドレスを NHRP が解決することを扱いました。登録は起動時に spoke から NHS へ送られ、解決は通信が起きてから走ります。Phase 3 では hub の ip nhrp redirect と集約によって、近道が NHRP の経路として経路表に載りました。
6-7 の末尾は、本節について次の順で予告しました。経路の品質を測って出口を選ぶ仕組みであること、DMVPN が決めたのは「どのトンネルを張るか」までで、そのトンネルが速いか遅いかは一度も測っていないこと、遅延やロスを見て通信ごとに出口を変える層であること、6-4 が予告として置いたアプリケーション認識ルーティングの話がここで合流すること、そして測る対象と、測った結果をどう転送に反映するのかです。本節はこの 5 つを次の場所で受けます。
| 6-7 §16 の予告 | 本節での受け方 | 場所 |
|---|---|---|
| 経路の品質を測って出口を選ぶ | PfR の構成要素(MC と BR)と、出口が決まるまでの流れ | §3 / §8 / §10 |
| DMVPN はトンネルの速さを測っていない | 経路制御プロトコルは劣化(brownout)では経路を変えないこと(§2)と、PfR が何を単位に、どの装置で測るか(§7) | §2 / §7 |
| 遅延やロスを見て通信ごとに出口を変える | 出口を変える単位は traffic class(同じ宛先 prefix・同じ DSCP のフローの集約)で、フロー 1 本ごとではない。遅延・損失・経路断をそれぞれ注入し、損失の注入では損失を理由とする出口の変更は記録されなかった(§13) | §7 / §11 / §13 / §14 |
| 6-4 の AAR 予告の合流 | AAR と PfR の対比(計測手段・判定基準の置き場所・見る指標) | §15 |
| 何を測り、どう転送に反映するか | 受信側の測定から TCA、出口の変更まで。経路表は変えずに転送だけを変える | §10 / §11 |
3 行目の「通信ごとに」は、本節では言い換えます。PfR が出口を決める単位は traffic class(以下 TC)で、同じ宛先 prefix・同じ DSCP を持つフローをまとめたものです(§7)。6-1 で見た MPLS ラベルの TC (Traffic Class) フィールドとは別物です。
6-4 SD-WAN 設計と運用 の §10.4 は、2 つを本節へ送りました。AAR と PfR の対比と、測定値から経路が切り替わるまでの詳細です。前者は §15 で、後者は §11 で扱います。
本節は出典に基づく部分と、本ラボの実測に基づく部分を分けて書きます。
| 層 | どこ | 何を根拠にしているか |
|---|---|---|
| 出典層 | §2 / §3 / §7.1 / §8.1・§9.1・§12.1 / §15 と、§6・§7.2・§10・§13・§14・§17 の引用の段落 | Cisco の PfRv3 設定ガイド(IOS XE 17.x と 16.12)、PfRv3 Workflow and Operation Guide(2014 年)、PfRv3 Command Reference、Cisco TAC の IWAN / PfRv3 の解説、IWAN から SD-WAN への移行ガイド、SD-WAN の AAR / EAAR 章、CSR 1000v の資料、Cisco Press の書籍のサンプル章 |
| 実測層 | §4〜§14 の show 出力と config、§8・§9 の表 | CML 上の csr1000v 17.03.08a 3 台と alpine 2 台。同じ構成で組み直した 2 回の撮影 |
| 測っていないこと | §16 | — |
本ラボは同じ構成と同じ撮影の手順でラボを組み直し、2 回撮影しています。以下、1 回分の組み立てと撮影を run と呼び、撮影の順に 3 回目・4 回目と書きます(1 回目と 2 回目は途中で止まった撮影で、本節の根拠には使っていません)。出力を貼るたびに、どちらの run かを添えます。
3 回目は、最後の Phase K の後に取得スクリプトの停止の条件が誤って働きました。K は最後の Phase なので撮り逃しはなく、4 回目はその条件を直して撮っています。
取得スクリプトは Phase D の後(Phase の一覧は §4.2)、各 Phase の直前の撮影の EF の状態(制御の外か、制御下で INET・MPLS のどちらに居るか)で手順を分けました。流す量と行うかどうかが変わるのは D-cap で、D-cap の直前の撮影で EF が制御下で MPLS に居れば D-cap は行いません。それ以外は DEFAULT を止めて EF を 16 kbps に下げ、AF11 は制御下で INET に置かれていれば 128 kbps のまま、そうでなければ 8 kbps に下げます(§9.6・§9.7)。2 回の run とも、D-cap は行っています。
同じ手順でも run によって結果が分かれた項目があり、その一覧は §4.3 に置きます。時刻は、断りの無いかぎり BRANCH の機器の時計(UTC)で、run をまたいで時刻や値を混ぜません。取得スクリプトの待ち時間などの WSL(取得スクリプト側)の時計の値は、そう断って書きます。
以下に貼る実機出力は改変していません。長い出力から一部を抜き出した箇所には …(省略) を置きました。プロンプトと投入コマンドを 1 行にまとめた表記(BRANCH# show … と PC-B $ traceroute … の形)は本節の組み立てで、取得の記録ではコマンドが見出しの行として別に残っています。取得スクリプトが書いた説明の行は機器の出力ではないので載せていません。
2. PfR の位置づけと版
PfR (Performance Routing) は、WAN の出口が複数あるときに、経路の性能を測って通信の出口を選ぶ Cisco の機能です。本節の PfR は IOS XE の PfRv3 (Performance Routing Version 3) を指します。17.x の設定ガイドは、PfRv3 を PfR の後継と位置づけています。
Performance Routing Version 3 (PfRv3) is the evolution of Performance Routing (PfR).
PfRv3 は IWAN (Intelligent WAN) に組み込まれた機能で、IWAN の終了とともに対応も終わりました。同じ章の冒頭は次のとおりです。
PfRv3 is integrated with IWAN and support for IWAN is discontinued from Cisco IOS XE 17.4 therefore ending the support for PfRv3.
PfRv3 is not supported beyond Cisco IOS XE Release 17.3
17.3 が PfRv3 の最後の系列です。同じ章は Catalyst 8000 Edge Platforms も非対応としています。
PfRv3 is not supported on Cisco Catalyst 8000 Edge Platforms.
この文が仮想ルータの Catalyst 8000V を含むかを明言した文は、§20 の資料には見当たりません。CSR 1000v の設定ガイドは、CSR 1000v の移行先として Catalyst 8000V を案内しています。
For details on Cisco CSR 1000v and Cisco ISRv upgrade to Cisco C8000V, see the Cisco Catalyst 8000V Edge Software Installation And Configuration Guide.
移行先の方式について、17.x のガイド自身は SD-WAN を勧めています。
Customers are encouraged to migrate to Cisco’s SD-WAN solution, that has Application-aware Routing and a centralized controller to enable SLA-based routing along with performance measurement and monitoring.
6-4 §10.4 の「Cisco の製品系列では PfR としても実装されています」は、17.3 までの IOS XE にあてはまる記述です。
本ラボの 3 台は、この最後の系列の csr1000v です。4 回目の run の BRANCH の出力は以下のとおりです(3 回目も 3 台とも同じ値)。
BRANCH# show version | include Cisco IOS XE Software|License Level|throughput
Cisco IOS XE Software, Version 17.03.08a
License Level: ax
The current throughput level is 1000 kbps PfRv3 が出口を選ぶときに見るものは、17.x のガイドが 1 文で挙げています。
PfRv3 monitors network performance and selects best path for each application based on criteria such as reachability, delay, jitter, and loss.
到達性・遅延・ジッタ・損失の 4 つです。5-1 QoS の必要性と 3 モデル の 4 指標(帯域・遅延・ジッタ・損失)と比べると、帯域の代わりに到達性が入ります。帯域は出口の容量として別に扱われます(§9)。
経路制御プロトコルだけでは劣化に反応しない理由を、Cisco Press の書籍は次のように書いています(cisco.com の一次資料ではなく、書籍の 1 章を 2018 年 1 月に公開したサンプル章です)。
The backup path is used only when the primary link goes down and not when there is performance degradation or brownouts over the primary path because the routing protocol peers are usually still up and running and do not detect such performance issues.
隣接が張れている限り、劣化(brownout)では経路が変わらない、という書き方です。6-7 §16 の「そのトンネルが速いか遅いかは一度も測っていない」は、この状態を指します。
ここまでが出典です。
3. 構成要素 — MC と BR
PfR の装置は 2 つの役割に分かれます。出口を判断する master controller (MC) と、WAN のインタフェースを持ち MC の判断に従って転送を変える border router (BR) です。Cisco Press の書籍は次のように書きます。
PfR is composed of devices performing several roles, which are master controller (MC) and border router (BR). The MC serves as the control plane of PfR, and the BR is the forwarding plane which selects the path based on MC decisions.
MC は、6-3 / 6-4 の SD-WAN Controller のような独立した製品ではなく、IOS XE のルータに設定する役割の 1 つです。BR も、6-6 の border node(ファブリックと外との境界)とは別の役割です。
17.x のガイドは役割を 4 つ挙げています。
There are four different roles a device can play in PfRv3 configuration:
Hub-master controller — The master controller at the hub site, which can be either a data center or a head quarter. All policies are configured on hub-master controller. It acts as master controller for the site and makes optimization decision.
Hub-border router — The border controller at the hub site. PfRv3 is enabled on the WAN interfaces of the hub-border routers. You can configure more than one WAN interface on the same device. You can have multiple hub border devices. On the hub-border router, PfRv3 must be configured with the address of the local hub-master controller, path names, and path-ids of the external interfaces. You can use the global routing table (default VRF) or define specific VRFs for the hub-border routers.
Branch-master controller — The branch-master controller is the master controller at the branch site. There is no policy configuration on this device. It receives policy from the hub-master controller. This device acts as master controller for the branch site and makes optimization decision.
Branch- border router — The border device at the branch-site. There is no configuration other than enabling of PfRv3 border-master controller on the device. The WAN interface that terminates on the device is detected automatically.
hub MC は policy を書く唯一の装置ですが、判断の中心ではありません。2014 年の Workflow Guide は 2 か所で次のように書いています。
It is important to note that the Hub MC is NOT a centralized Master Controller for all Border Routers on all sites.
Remember that all Master Controllers are making local path decision, there is no Centralized MC making global decisions.
17.x のガイドは、policy を hub MC にだけ書き、peering で各拠点の MC へ配ると書きます。
Domain policies are defined only on the hub-master controller and then sent over peering infrastructure to all the branch-master controllers.
16.12 のガイドは、拠点を識別する site-id に、MC の source-interface の Loopback のアドレスを使うと書きます。
The source-interface loopback also serves as a site ID of a particular site (hub or branch) on the master controller.
PfR の site-id は IP アドレスの形をとり、6-3 の SD-WAN の整数の site-id とは別物です。本ラボの hub site の site-id は HUB-MC の Loopback0(10.1.0.1)で、HUB-BR の 10.1.0.2 ではありません。
3.1 語の書き分け
同じ字面の語が、既刊の節では別の意味で出ています。対応は次のとおりです。
| 語 | 既刊での意味 | PfR での意味 |
|---|---|---|
| TC | 6-1: MPLS ラベルの 3 ビットの Traffic Class フィールド | PfR の traffic class。同じ宛先 prefix・同じ DSCP のフローの集約 |
| Controller | 6-3 / 6-4: SD-WAN Controller(旧 vSmart)。独立した制御の装置 | PfR の master controller (MC)。ルータに設定する役割 |
| border | 6-6: border node。ファブリックと外の境界 | PfR の border router (BR)。WAN の出口を持つ装置 |
| hub | 6-7: DMVPN の hub(NHS) | PfR の hub site。本ラボの HUB-BR は NHS と PfR の hub BR を 1 台で兼ねる |
| site-id | 6-3: SD-WAN の整数の site-id | MC の Loopback の IP アドレス |
| policy | 第 5 章の policy-map / 6-4 の集中ポリシー | PfR の domain policy(class・閾値・path-preference) |
3.2 対応表と本ラボの構成
PfRv3 の対応機種の表で、CSR 1000v の行は次のとおりです。
Cisco CSR 1000v Series Routers Cisco IOS XE 3.14 or later Hub site (master controller) Branch site (master controller and border router)
CSR 1000v が載っているのは hub の MC と branch の MC と BR の 2 つで、hub BR の行はありません。本ラボの HUB-BR(csr1000v)は、この対応表の外の構成です。16.12 のガイドと 2014 年の Workflow Guide の設定例には、HubBR1 という名前の CSR1000V が現れます。ただし、例があることを対応の根拠にはしません。
上の 17.x の役割定義(hub BR の段落)は、hub BR に path-ids の設定を must としています。2014 年の Workflow Guide の hub BR の必須項目は path 名までで、path-id は入っていません。
On the Hub Border Routers, PfR must be configured with: • The source-interface of local border router • The address of the local MC • The path name on external interfaces
本ラボは path-id を入れていません。17.x の必須項目から外れた構成で、それでも BRANCH は WAN インタフェースを MPLS と INET として認識しました(§6)。
hub BR の台数について、TAC の解説は transport ごとに 1 台を勧め、理由を経路の設定が簡単になることとしています。
It is recommended to use a DMVPN hub (PfRv3 BR) per provider and transport on the hub. It makes the routing configuration much easier.
本ラボの HUB-BR は 1 台で 2 つの transport を収容しており、この推奨には従っていません。同じ解説の設計の要約は 1 台で終端する形も挙げていますが、hub と branch のどちらの話かは書いていません。
The MPLS and Internet connections can be terminated on a single router, or terminated on two separate routers for additional resiliency.
ここまでが出典です。§4 からは本ラボの実測です。
4. 本ラボの構成
本ラボは csr1000v 3 台と alpine 2 台で組みました。役割の割り当ては次のとおりです。
| 装置 | PfR の役割 | ほかに兼ねる役 |
|---|---|---|
| HUB-MC | hub MC(hub site の site-id = 10.1.0.1) | なし。HUB-BR とだけ繋がり、データの経路に入らない |
| HUB-BR | hub BR | DMVPN の hub(NHS) |
| BRANCH | branch MC と branch BR の同居 | DMVPN の spoke |
| PC-H | hub 側の端末(10.1.10.10) | iperf の受信側 |
| PC-B | branch 側の端末(10.2.10.10) | iperf の送信側と traceroute の送信元 |
WAN は HUB-BR と BRANCH を直結した 2 本で、Gi2 を MPLS、Gi3 を INET と呼びます。その上に DMVPN を 2 本(Tunnel100 = MPLS / Tunnel200 = INET)張り、EIGRP 100 で経路を運びます。4 回目の run の各装置のアドレスは以下のとおりです。
HUB-MC# show ip interface brief | exclude unassigned
Interface IP-Address OK? Method Status Protocol
GigabitEthernet1 172.16.1.231 YES TFTP up up
GigabitEthernet2 10.1.12.1 YES TFTP up up
Loopback0 10.1.0.1 YES TFTP up up HUB-BR(4 回目)は以下のとおりです。
HUB-BR# show ip interface brief | exclude unassigned
Interface IP-Address OK? Method Status Protocol
GigabitEthernet1 172.16.1.232 YES TFTP up up
GigabitEthernet2 192.0.2.1 YES TFTP up up
GigabitEthernet3 198.51.100.1 YES TFTP up up
GigabitEthernet4 10.1.12.2 YES TFTP up up
GigabitEthernet5 10.1.10.1 YES TFTP up up
Loopback0 10.1.0.2 YES TFTP up up BRANCH(4 回目)は以下のとおりです。
BRANCH# show ip interface brief | exclude unassigned
Interface IP-Address OK? Method Status Protocol
GigabitEthernet1 172.16.1.233 YES TFTP up up
GigabitEthernet2 192.0.2.2 YES TFTP up up
GigabitEthernet3 198.51.100.2 YES TFTP up up
GigabitEthernet4 10.2.10.1 YES TFTP up up
Loopback0 10.2.0.1 YES TFTP up up show ip interface brief はプレフィックス長を印字しません。day0 で設定したプレフィックス長と、端末のデフォルトゲートウェイは以下のとおりです。3 回目と 4 回目で同じ値です。
| 装置 | インタフェース | アドレス / プレフィックス長 |
|---|---|---|
| HUB-MC | Gi2(HUB-BR の Gi4 と接続) | 10.1.12.1/30 |
| HUB-BR | Gi2(MPLS)/ Gi3(INET) | 192.0.2.1/30 / 198.51.100.1/30 |
| HUB-BR | Gi4(HUB-MC の Gi2 と接続)/ Gi5(hub の LAN) | 10.1.12.2/30 / 10.1.10.1/24 |
| BRANCH | Gi2(MPLS)/ Gi3(INET)/ Gi4(branch の LAN) | 192.0.2.2/30 / 198.51.100.2/30 / 10.2.10.1/24 |
| 3 台とも | Loopback0 | /32(10.1.0.1 / 10.1.0.2 / 10.2.0.1) |
| 3 台とも | Gi1(管理用・Mgmt-vrf) | /24(172.16.1.231〜233) |
| PC-H | eth0 | 10.1.10.10/24。デフォルトゲートウェイは 10.1.10.1(HUB-BR の Gi5) |
| PC-B | eth0 | 10.2.10.10/24。デフォルトゲートウェイは 10.2.10.1(BRANCH の Gi4) |
Tunnel100 と Tunnel200 のアドレスは、§4.1 の投入のとおり /24(hub 側 10.0.100.1 / 10.0.200.1・BRANCH 側 10.0.100.10 / 10.0.200.10)です。
day0 には、アドレスのほかに cdp run(物理インタフェースに cdp enable、管理用の Gi1 は no cdp enable)、logging buffered 512000 informational、service timestamps log datetime msec と、管理用の SSH の行を入れています。csr1000v 17.03.08a は CDP が既定で無効なので(6-7 §14)、次の配線の照合には cdp run が要ります。
配線は CDP で照合しました。4 回目の HUB-BR から見ると、BRANCH の Gi2 と Gi3 がそれぞれ自分の Gi2(MPLS)と Gi3(INET)に繋がっています。
HUB-BR# show cdp neighbors
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone,
D - Remote, C - CVTA, M - Two-port Mac Relay
Device ID Local Intrfce Holdtme Capability Platform Port ID
BRANCH.lab.local Gig 3 172 R I CSR1000V Gig 3
BRANCH.lab.local Gig 2 165 R I CSR1000V Gig 2
HUB-MC.lab.local Gig 4 172 R I CSR1000V Gig 2
Total cdp entries displayed : 3劣化を注入する前の基準として、2 経路とも往復 1 ms で通ることを撮りました(4 回目・BRANCH)。
BRANCH# ping 192.0.2.1 repeat 10
Type escape sequence to abort.
Sending 10, 100-byte ICMP Echos to 192.0.2.1, timeout is 2 seconds:
!!!!!!!!!!
Success rate is 100 percent (10/10), round-trip min/avg/max = 1/1/1 ms
BRANCH# ping 198.51.100.1 repeat 10
Type escape sequence to abort.
Sending 10, 100-byte ICMP Echos to 198.51.100.1, timeout is 2 seconds:
!!!!!!!!!!
Success rate is 100 percent (10/10), round-trip min/avg/max = 1/1/1 ms4.1 6-7 との DMVPN の設定の差
本ラボの DMVPN は 6-7 の型を 2 本に増やしたものですが、6-7 と同じ設定ではありません。4 回目の run で HUB-BR に投入した行は以下のとおりです。
HUB-BR# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
HUB-BR(config)#interface Tunnel100
HUB-BR(config-if)# description DMVPN over MPLS
HUB-BR(config-if)# ip address 10.0.100.1 255.255.255.0
HUB-BR(config-if)# no ip redirects
HUB-BR(config-if)# ip mtu 1400
HUB-BR(config-if)# ip nhrp network-id 100
HUB-BR(config-if)# ip nhrp map multicast dynamic
HUB-BR(config-if)# ip tcp adjust-mss 1360
HUB-BR(config-if)# tunnel source GigabitEthernet2
HUB-BR(config-if)# tunnel mode gre multipoint
HUB-BR(config-if)# tunnel key 100
HUB-BR(config-if)#exit
HUB-BR(config)#interface Tunnel200
HUB-BR(config-if)# description DMVPN over INET
HUB-BR(config-if)# ip address 10.0.200.1 255.255.255.0
HUB-BR(config-if)# no ip redirects
HUB-BR(config-if)# ip mtu 1400
HUB-BR(config-if)# ip nhrp network-id 200
HUB-BR(config-if)# ip nhrp map multicast dynamic
HUB-BR(config-if)# ip tcp adjust-mss 1360
HUB-BR(config-if)# tunnel source GigabitEthernet3
HUB-BR(config-if)# tunnel mode gre multipoint
HUB-BR(config-if)# tunnel key 200
HUB-BR(config-if)# delay 10000
HUB-BR(config-if)#exit
HUB-BR(config)#router eigrp 100
HUB-BR(config-router)# network 10.0.0.0
HUB-BR(config-router)#exit
HUB-BR(config)#end
HUB-BR#6-7 の hub は Phase 1 から no ip split-horizon eigrp 100 と ip nhrp holdtime 300 を入れていましたが、本ラボの 2 本のトンネルには入れていません。spoke が 1 台だけで、spoke 間の経路もトンネルも本ラボには無いためです。
代わりに、2 本のトンネルに別の tunnel key(Tunnel100 に 100・Tunnel200 に 200)を付け、INET を劣後させるための delay 10000 を Tunnel200 に入れています。2 本は tunnel source も別(Gi2 / Gi3)で、本構成で key が必須かは確かめていません。BRANCH 側(4 回目)は以下のとおりです。
BRANCH# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
BRANCH(config)#interface Tunnel100
BRANCH(config-if)# description DMVPN over MPLS
BRANCH(config-if)# ip address 10.0.100.10 255.255.255.0
BRANCH(config-if)# no ip redirects
BRANCH(config-if)# ip mtu 1400
BRANCH(config-if)# ip nhrp network-id 100
BRANCH(config-if)# ip nhrp nhs 10.0.100.1 nbma 192.0.2.1 multicast
BRANCH(config-if)# ip tcp adjust-mss 1360
BRANCH(config-if)# tunnel source GigabitEthernet2
BRANCH(config-if)# tunnel mode gre multipoint
BRANCH(config-if)# tunnel key 100
BRANCH(config-if)#exit
BRANCH(config)#interface Tunnel200
BRANCH(config-if)# description DMVPN over INET
BRANCH(config-if)# ip address 10.0.200.10 255.255.255.0
BRANCH(config-if)# no ip redirects
BRANCH(config-if)# ip mtu 1400
BRANCH(config-if)# ip nhrp network-id 200
BRANCH(config-if)# ip nhrp nhs 10.0.200.1 nbma 198.51.100.1 multicast
BRANCH(config-if)# ip tcp adjust-mss 1360
BRANCH(config-if)# tunnel source GigabitEthernet3
BRANCH(config-if)# tunnel mode gre multipoint
BRANCH(config-if)# tunnel key 200
BRANCH(config-if)# delay 10000
BRANCH(config-if)#exit
BRANCH(config)#router eigrp 100
BRANCH(config-router)# network 10.0.0.0
BRANCH(config-router)#exit
BRANCH(config)#end
BRANCH#HUB-MC はトンネルを持たず、HUB-BR との直結リンクで EIGRP だけを動かします(4 回目)。
HUB-MC# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
HUB-MC(config)#router eigrp 100
HUB-MC(config-router)# network 10.0.0.0
HUB-MC(config-router)#exit
HUB-MC(config)#end
HUB-MC#4.2 Phase の一覧
本ラボは同じトポロジのまま設定と操作を足していき、各 Phase の前後を撮りました。
| Phase | 投入・操作 | 主に確かめたこと |
|---|---|---|
| 0 | day0 のまま(アドレス・CDP・logging の行。§4) | 版・配線・注入前の RTT |
| A | DMVPN 2 本と EIGRP | PfR を入れる前の経路(§5) |
| B | PfR のドメイン | MC と BR の接続と policy の配布(§6) |
| C | PC-B から PC-H へ 3 本流す(集約なし) | TC と channel の姿、制御に入らない状態(§7 / §8) |
| D | HUB-BR の両トンネルに集約 10.1.0.0/16 | 制御に入るか(§8) |
| D-hold | 何も変えずに待つ | 再評価をまたいで置き場所が変わるか(§9) |
| D-route | BRANCH の Tunnel100 の delay を変えて戻す | 経路の更新だけで置き場所が変わるか(§9) |
| D-cap | bandwidth を変えずに流量だけを下げ、戻す | 流量を下げたときの置き場所(§9) |
| E | 両端の両トンネルに bandwidth 1000 | 出口の容量が 1000 Kbps のときの出口と経路表(§9 / §10) |
| F | MPLS に片方向 200 ms の遅延 | 測定から出口の変更まで(§11) |
| G | 劣化を残して待ち、解除する | 元の出口へ戻る時刻(§12) |
| H | MPLS に 10 % の損失 | 損失の注入の結果(§13) |
| I | MPLS のリンクを止める | 経路断の結果(§14) |
| J | 何もしない | 掲載用の running-config(§6) |
| K | 集約を外し、全流量を止めて ageout を待ってから流し直す。MPLS に遅延を入れて撮った後に解除し、新しい TC の年齢が 300 秒を越えてから集約を戻す | 制御に入る条件を逆向きに確かめる(§8)。制御の外での TCA(§11.6) |
4.3 run によって分かれた項目
同じ手順の 2 回の run で、次の項目の結果が分かれました(D-cap は、§1 に書いた規則で手順も分かれています)。表の語(UN-CONTROLLED・TCA・Route Change History など)は §6〜§14 で導入するもので、この表は本文を読んだ後に戻る一覧です。どちらかの結果を一般化しません。
| 項目 | 3 回目 | 4 回目 | 場所 |
|---|---|---|---|
| D(集約の後) | 投入の直後の撮影から 325 秒たっても EF / AF11 とも UN-CONTROLLED | 09:28:33 に EF / AF11 とも制御に入り、どちらも INET に置かれた | §8 |
| D-cap(流量だけを下げる。手順も分岐) | MPLS に載っていた AF11 も 8 kbps に下げた。08:06:32 に制御に入り、EF = MPLS / AF11 = INET | INET に置かれていた AF11 は 128 kbps のまま。制御中の EF が 09:40:38 に INET から MPLS へ移った | §9 |
| F の最初の TCA 受信ログの指標と切替の理由 | one-way-delay と jitter の 2 項目・理由 Delay | jitter の 1 項目だけ・理由 Jitter | §11 |
| H(損失 10 %) | 出口の変更は記録されなかった(EF は MPLS のまま) | Route Change History と syslog に INET への出口の変更が記録された(理由 Next hop down)。traceroute の hop 2 は * で、3 系統はそろっていない | §13 |
| I の到達不能の TCA の起点 | TCA-Origin=10.2.0.1(L) | TCA-Origin=10.1.0.2(R) | §14 |
| K で集約を戻した後 | 機器の時計で、集約を戻した後に制御に入ったと言える | 秒単位の印字では、集約を戻した時刻との前後が決まらない | §8 |
5. PfR を入れる前の経路
Phase A の時点では、PfR はまだ何もしていません。DMVPN の 2 本のトンネルは両方とも立っています。4 回目の run の BRANCH の出力は以下のとおりです。
BRANCH# show dmvpn
…(省略)
Interface: Tunnel100, IPv4 NHRP Details
Type:Spoke, NHRP Peers:1,
# Ent Peer NBMA Addr Peer Tunnel Add State UpDn Tm Attrb
----- --------------- --------------- ----- -------- -----
1 192.0.2.1 10.0.100.1 UP 00:01:03 S
Interface: Tunnel200, IPv4 NHRP Details
Type:Spoke, NHRP Peers:1,
# Ent Peer NBMA Addr Peer Tunnel Add State UpDn Tm Attrb
----- --------------- --------------- ----- -------- -----
1 198.51.100.1 10.0.200.1 UP 00:00:36 SEIGRP の隣接も 2 本です(4 回目・BRANCH)。
BRANCH# show ip eigrp neighbors
EIGRP-IPv4 Neighbors for AS(100)
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
1 10.0.200.1 Tu200 13 00:00:33 32 1398 0 9
0 10.0.100.1 Tu100 14 00:00:33 32 1398 0 10HUB-MC の隣接は HUB-BR との直結リンクの 1 本だけです(4 回目・HUB-MC)。
HUB-MC# show ip eigrp neighbors
EIGRP-IPv4 Neighbors for AS(100)
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
0 10.1.12.2 Gi2 14 00:00:24 4 100 0 11BRANCH の経路表で、hub 側の経路はすべて Tunnel100(MPLS)経由の 1 本ずつです。コードに p はありません(4 回目・BRANCH)。
BRANCH# show ip route eigrp
…(省略)
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 11 subnets, 3 masks
D 10.1.0.1/32 [90/27008256] via 10.0.100.1, 00:00:25, Tunnel100
D 10.1.0.2/32 [90/27008000] via 10.0.100.1, 00:00:36, Tunnel100
D 10.1.10.0/24 [90/26880256] via 10.0.100.1, 00:00:36, Tunnel100
D 10.1.12.0/30 [90/26880256] via 10.0.100.1, 00:00:36, Tunnel100hub LAN の 10.1.10.0/24 を詳しく見ても、経路も転送表も Tunnel100 だけです(4 回目・BRANCH)。
BRANCH# show ip route 10.1.10.0
Routing entry for 10.1.10.0/24
Known via "eigrp 100", distance 90, metric 26880256, precedence routine (0), type internal
Redistributing via eigrp 100
Last update from 10.0.100.1 on Tunnel100, 00:00:38 ago
Routing Descriptor Blocks:
* 10.0.100.1, from 10.0.100.1, 00:00:38 ago, via Tunnel100
Route metric is 26880256, traffic share count is 1
Total delay is 50010 microseconds, minimum bandwidth is 100 Kbit
Reliability 255/255, minimum MTU 1400 bytes
Loading 1/255, Hops 1
BRANCH# show ip cef 10.1.10.10
10.1.10.0/24
nexthop 10.0.100.1 Tunnel100INET 側は経路表には載りませんが、EIGRP の topology には 2 本目として残っています(4 回目・BRANCH)。
BRANCH# show ip eigrp topology 10.1.10.0/24
EIGRP-IPv4 Topology Entry for AS(100)/ID(10.2.0.1) for 10.1.10.0/24
State is Passive, Query origin flag is 1, 1 Successor(s), FD is 26880256
Descriptor Blocks:
10.0.100.1 (Tunnel100), from 10.0.100.1, Send flag is 0x0
Composite metric is (26880256/2816), route is Internal
Vector metric:
Minimum bandwidth is 100 Kbit
Total delay is 50010 microseconds
Reliability is 255/255
Load is 1/255
Minimum MTU is 1400
Hop count is 1
Originating router is 10.1.0.2
10.0.200.1 (Tunnel200), from 10.0.200.1, Send flag is 0x0
Composite metric is (28160256/2816), route is Internal
Vector metric:
Minimum bandwidth is 100 Kbit
Total delay is 100010 microseconds
Reliability is 255/255
Load is 1/255
Minimum MTU is 1400
Hop count is 1
Originating router is 10.1.0.22 本目(Tunnel200)の報告距離 2816 は、1 本目の FD 26880256 より小さい値です。3-4 EIGRP の定義どおり、INET 側は Feasible Successor の条件を満たしています。2 本の Total delay は 50010 と 100010 マイクロ秒で、Tunnel200 のほうが大きいのは、Tunnel200 に入れた delay 10000 の結果です。
PC-B から 3 つの DSCP で traceroute を打つと、hop 2 はどれも 10.0.100.1(HUB-BR の Tunnel100)でした(4 回目・PC-B)。
PC-B $ traceroute -n -m 4 -q 1 -w 2 -t 184 10.1.10.10
traceroute to 10.1.10.10 (10.1.10.10), 4 hops max, 46 byte packets
1 *
2 10.0.100.1 1.199 ms
3 *
4 10.1.10.10 1.542 ms
PC-B $ traceroute -n -m 4 -q 1 -w 2 -t 40 10.1.10.10
traceroute to 10.1.10.10 (10.1.10.10), 4 hops max, 46 byte packets
1 10.2.10.1 0.578 ms
2 10.0.100.1 0.910 ms
3 10.1.10.10 1.437 ms
PC-B $ traceroute -n -m 4 -q 1 -w 2 -t 0 10.1.10.10
traceroute to 10.1.10.10 (10.1.10.10), 4 hops max, 46 byte packets
1 10.2.10.1 0.630 ms
2 10.0.100.1 1.006 ms
3 10.1.10.10 1.716 ms-t 184 は ToS の値で、DSCP の EF (46) を 2 ビット左へずらした値(46 × 4 = 184)です。-t 40 は AF11 (10) です。PfR を入れる前は、DSCP に関係なく全部の通信が経路表どおり MPLS を通ります。
6. PfR のドメインの構成
Phase B では 3 台に PfR を入れました。4 回目の run の HUB-MC の投入は以下のとおりです。
HUB-MC# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
HUB-MC(config)#ip prefix-list ENT seq 5 permit 10.0.0.0/8 le 24
HUB-MC(config)#ip prefix-list HUB-SITE seq 5 permit 10.1.0.0/16 le 24
HUB-MC(config)#domain default
HUB-MC(config-domain)# vrf default
HUB-MC(config-domain-vrf)# master hub
HUB-MC(config-domain-vrf-mc)# source-interface Loopback0
HUB-MC(config-domain-vrf-mc)# enterprise-prefix prefix-list ENT
HUB-MC(config-domain-vrf-mc)# site-prefixes prefix-list HUB-SITE
HUB-MC(config-domain-vrf-mc)# monitor-interval 2 dscp ef
HUB-MC(config-domain-vrf-mc)# class VOICE sequence 10
HUB-MC(config-domain-vrf-mc-class)# match dscp ef policy voice
HUB-MC(config-domain-vrf-mc-class)# path-preference MPLS fallback INET
HUB-MC(config-domain-vrf-mc-class)# exit
HUB-MC(config-domain-vrf-mc)# class BULK sequence 20
HUB-MC(config-domain-vrf-mc-class)# match dscp af11 policy bulk-data
HUB-MC(config-domain-vrf-mc-class)# path-preference INET fallback MPLS
HUB-MC(config-domain-vrf-mc-class)# exit
HUB-MC(config-domain-vrf-mc)# exit
HUB-MC(config-domain-vrf)# exit
HUB-MC(config-domain)#exit
HUB-MC(config)#end
HUB-MC#master hub が hub MC の役割です。enterprise-prefix は社内のアドレスの範囲を、site-prefixes は hub site の prefix を静的に与えます。16.12 のガイドは、静的な site-prefix が要るのは hub と transit site だけだと書きます。
The site-prefix prefix-list defines static site-prefix for the local site and disables automatic site-prefix learning on the border router. The static-site prefix list is only required for hub and transit sites.
transit site は、17.x の設定ガイドでは hub 側に複数のデータセンタを置く機能の語で、本ラボには置いていません。2014 年の Workflow Guide は、spoke 間の通信が通る DMVPN の hub も transit site と呼びます。資料によって語の範囲が違います。
class は 2 つです。EF を policy voice と path-preference MPLS fallback INET、AF11 を policy bulk-data と path-preference INET fallback MPLS にしました。EF は MPLS を、AF11 は INET を第一の出口とする指定です。monitor-interval 2 dscp ef は EF の監視の間隔を 2 秒にします(§7)。
HUB-BR(4 回目)には、border の役割と、MC のアドレスと、トンネルごとの path 名だけを入れました。
HUB-BR# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
HUB-BR(config)#domain default
HUB-BR(config-domain)# vrf default
HUB-BR(config-domain-vrf)# border
HUB-BR(config-domain-vrf-br)# source-interface Loopback0
HUB-BR(config-domain-vrf-br)# master 10.1.0.1
HUB-BR(config-domain-vrf-br)# exit
HUB-BR(config-domain-vrf)# exit
HUB-BR(config-domain)#exit
HUB-BR(config)#interface Tunnel100
HUB-BR(config-if)# domain default path MPLS
HUB-BR(config-if)#exit
HUB-BR(config)#interface Tunnel200
HUB-BR(config-if)# domain default path INET
HUB-BR(config-if)#exit
HUB-BR(config)#end
HUB-BR#BRANCH(4 回目)には、border と branch MC の同居(master local)と、hub MC のアドレスだけを入れました。class も path 名も書いていません。
BRANCH# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
BRANCH(config)#domain default
BRANCH(config-domain)# vrf default
BRANCH(config-domain-vrf)# border
BRANCH(config-domain-vrf-br)# source-interface Loopback0
BRANCH(config-domain-vrf-br)# master local
BRANCH(config-domain-vrf-br)# exit
BRANCH(config-domain-vrf)# master branch
BRANCH(config-domain-vrf-mc)# source-interface Loopback0
BRANCH(config-domain-vrf-mc)# hub 10.1.0.1
BRANCH(config-domain-vrf-mc)# exit
BRANCH(config-domain-vrf)# exit
BRANCH(config-domain)#exit
BRANCH(config)#end
BRANCH#16.12 のガイドは、branch の BR では WAN インタフェースも path 名も書かないと明記しています。
You need not provision any external interfaces for border routers on branch. Interfaces are learnt during the discovery process together with the path names (colors).
6.1 別の装置の MC と BR の接続
HUB-BR は、自分の Loopback0(10.1.0.2)とは別の装置の MC(10.1.0.1)に接続しました。4 回目の HUB-BR の出力は以下のとおりです(3 回目も同じ)。
HUB-BR# show domain default border status
Fri Sep 25 09:26:22.852
--------------------------------------------------------------------
**** Border Status ****
Instance Status: UP
Present status last updated: 00:01:35 ago
Loopback: Configured Loopback0 UP (10.1.0.2)
Master: 10.1.0.1
Master version: 2
Connection Status with Master: UP
MC connection info: CONNECTION SUCCESSFUL
Connected for: 00:01:35
Route-Control: Enabled
Asymmetric Routing: Disabled
Remote Branch Bandwidth Check: Disabled
Minimum Mask Length Internet: 24
Minimum Mask Length Enterprise: 24
Connection Keepalive: 10 seconds
Sampling: off
Channel Unreachable Threshold Timer: 4 seconds
Minimum Packet Loss Calculation Threshold: 15 packets
Minimum Byte Loss Calculation Threshold: 10240 bytes
Monitor cache usage: 4000 (20%) Auto allocated
Minimum Requirement: Met
Smart Probe Profile:
General Monitor:
Current Provision Level: Master Hub
Master Hub:
Packets per burst: 1
Interval(secs): 1
Quick Monitor:
Current Provision Level: Master Hub
Master Hub:
Packets per burst: 20
Interval(secs): 1
Notification to PD:
add: 1, upd: 1, del: 0
Channel Based Measurement:
State: Disabled
External Wan interfaces:
Name: Tunnel100 Interface Index: 14 SNMP Index: 9 SP: MPLS Status: UP Zero-SLA: NO Path of Last Resort: Disabled
Name: Tunnel200 Interface Index: 15 SNMP Index: 10 SP: INET Status: UP Zero-SLA: NO Path of Last Resort: Disabled
…(省略)Master: 10.1.0.1 と Connection Status with Master: UP が、MC と BR が別の装置で繋がっていることを示します。External Wan interfaces: には Tunnel100 が SP: MPLS、Tunnel200 が SP: INET として並びます。BRANCH の border status では、Master: が自分自身の 10.2.0.1 になっています(4 回目・BRANCH)。
BRANCH# show domain default border status
Fri Sep 25 09:26:29.458
--------------------------------------------------------------------
**** Border Status ****
Instance Status: UP
Present status last updated: 00:01:36 ago
Loopback: Configured Loopback0 UP (10.2.0.1)
Master: 10.2.0.1
Master version: 2
Connection Status with Master: UP
MC connection info: CONNECTION SUCCESSFUL
Connected for: 00:01:36
…(省略)HUB-BR は HUB-MC から globals・pmi・site-prefix・Capability の 4 つを購読しています(4 回目・HUB-BR)。
HUB-BR# show domain default border peering
Peering state: Enabled
Origin: Loopback0(10.1.0.2)
Peering type: Peer(With 10.1.0.1)
Subscribed service:
globals (5) :
Last Notification Info: 00:01:37 ago, Size: 1426, Compressed size: 576, Status: Peering Success, Count: 1
pmi (3) :
Last Notification Info: 00:01:37 ago, Size: 2359, Compressed size: 519, Status: Peering Success, Count: 1
site-prefix (1) :
Last Notification Info: 00:00:15 ago, Size: 234, Compressed size: 171, Status: Peering Success, Count: 3
Capability (4) :
Last Notification Info: 00:00:15 ago, Size: 475, Compressed size: 259, Status: Peering Success, Count: 4
Published service: N/AHUB-MC の側では、Published service: に cent-policy を含む 5 つのサービスが並んでいます(4 回目・HUB-MC)。各サービスの中身は撮っていません。
HUB-MC# show domain default master peering
Peering state: Enabled
Origin: Loopback0(10.1.0.1)
Peering type: Listener
Subscribed service:
cent-policy (2) :
site-prefix (1) :
Last Notification Info: 00:00:09 ago, Size: 234, Compressed size: 171, Status: Peering Success, Count: 2
Capability (4) :
Last Notification Info: 00:00:09 ago, Size: 475, Compressed size: 259, Status: Peering Success, Count: 2
globals (5) :
pmi (3) :
Published service:
site-prefix (1) :
Last Publish Info: 00:02:41 ago, Reason: On-Demand , Size: 242, Compressed size: 159, Status: Peering Success
cent-policy (2) :
Last Publish Info: 00:02:34 ago, Size: 1789, Compressed size: 413, Status: Peering Success
pmi (3) :
Last Publish Info: 00:02:31 ago, Size: 2359, Compressed size: 499, Status: Peering Success
Capability (4) :
Last Publish Info: 00:00:51 ago, Reason: On-Demand , Size: 478, Compressed size: 235, Status: Peering Success
globals (5) :
Last Publish Info: 00:02:54 ago, Size: 1426, Compressed size: 556, Status: Peering Successこの peering は EIGRP の上に載っています。16.12 のガイドは、master hub を入れると EIGRP SAF の自動構成が既定で有効になると書きます。
When the master hub is configured, EIGRP SAF auto-configuration is enabled by default and requests from remote sites are sent to the hub-master controller.
HUB-MC の derived-config には、利用者が書いた router eigrp 100 とは別に、自動生成の EIGRP が現れました(4 回目・HUB-MC)。
HUB-MC# show derived-config | section eigrp
router eigrp 100
network 10.0.0.0
router eigrp #AUTOCFG# (API-generated auto-configuration, not user configurable)
!
service-family ipv4 autonomous-system 59501
!
…(省略)
sf-interface Loopback0
hello-interval 120
hold-time 600
exit-sf-interface
…(省略)
topology base
exit-sf-topology
remote-neighbors source Loopback0 unicast-listen
exit-service-familyHUB-MC は hub として動作し、branch site(10.2.0.1)を発見しました(4 回目・HUB-MC)。
HUB-MC# show domain default master status
*** Domain MC Status ***
Master VRF: Global
Instance Type: Hub
Instance id: 0
Operational status: Up
Configured status: Up
Loopback IP Address: 10.1.0.1
Global Config Last Publish status: Peering Success
Smart Probe Profile:
General Monitor:
Packets per burst: 1
Interval(secs): 1
Quick Monitor:
Packets per burst: 20
Interval(secs): 1
Load Balancing:
Admin Status: Disabled
Operational Status: Down
Enterprise top level prefixes configured: 1
Route Control: Enabled
…(省略)HUB-MC が発見した site の一覧は以下のとおりです(4 回目・HUB-MC)。
HUB-MC# show domain default master discovered-sites
*** Domain MC DISCOVERED sites ***
Number of sites: 2
*Traffic classes [Performance based][Load-balance based]
Site ID: 10.2.0.1
Site Discovered:00:01:15 ago
DSCP :af11[10]-Number of traffic classes[0][0]
DSCP :ef[46]-Number of traffic classes[0][0]
Site Traffic Classes: 0
Site ID: 255.255.255.255
Site Discovered:00:02:52 ago
DSCP :af11[10]-Number of traffic classes[0][0]
DSCP :ef[46]-Number of traffic classes[0][0]
Site Traffic Classes: 0
--------------------------------------------------------------------------------Load Balancing: の Admin Status: Disabled は、本ラボが load-balance を入れていない状態の印字です(§10)。discovered-sites の 2 つ目の Site ID: 255.255.255.255 の意味は確かめていません。
6.2 branch への policy の配布
BRANCH の policy の表示には、BRANCH に書いていない class VOICE と class BULK が載っています(4 回目・BRANCH。3 回目も同じ)。
BRANCH# show domain default master policy
--------------------------------------------------------------------------------
Group-policy-list:
--------------------------------------------------------------------------------
Global-policy-list:
class VOICE sequence 10
path-preference MPLS fallback INET
class type: Dscp Based
match dscp ef policy voice
priority 2 packet-loss-rate threshold 1.0 percent
priority 1 one-way-delay threshold 150 msec
priority 3 jitter threshold 30000 usec
priority 2 byte-loss-rate threshold 1.0 percent
app stick: disable
class BULK sequence 20
path-preference INET fallback MPLS
class type: Dscp Based
match dscp af11 policy bulk-data
priority 2 packet-loss-rate threshold 5.0 percent
priority 1 one-way-delay threshold 300 msec
priority 2 byte-loss-rate threshold 5.0 percent
app stick: disable
--------------------------------------------------------------------------------
Local-policy-list:
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------同じ時点の BRANCH の running-config には、class も path-preference もありません(4 回目・BRANCH)。
BRANCH# show running-config | section domain
ip domain name lab.local
domain default
vrf default
border
source-interface Loopback0
master local
master branch
source-interface Loopback0
hub 10.1.0.1hub MC にだけ書いた class と閾値が、branch の MC の Global-policy-list に載っています。閾値は policy voice と policy bulk-data のテンプレートが展開した値で、17.x のガイドのテンプレートの表と照合できます。
Voice Priority 1 one-way-delay threshold 150 threshold 150 (msec) Priority 2 packet-loss-rate threshold 1 (%) Priority 2 byte-loss-rate threshold 1 (%) Priority 3 jitter 30 (msec)
Bulk-data Priority 1 one-way-delay threshold 300 (msec) Priority 2 byte-loss-rate threshold 5 (%) Priority 2 packet-loss-rate threshold 5 (%)
voice は one-way-delay 150 ms(優先度 1)・損失 1 %(優先度 2)・jitter 30 ms(優先度 3)、bulk-data は one-way-delay 300 ms です。機器の表示では one-way-delay が msec、jitter が usec(30000 usec = 30 ms)で、単位の書き方が違います。表の threshold 150 threshold 150 の重複は原典の表記のままです。
BRANCH の MC の status は以下のとおりです(4 回目・BRANCH)。タイマーと閾値の行は、本ラボがどの装置にも設定していない値の印字です。
BRANCH# show domain default master status
*** Domain MC Status ***
Master VRF: Global
Instance Type: Branch
Instance id: 0
Operational status: Up
Configured status: Up
Loopback IP Address: 10.2.0.1
Operational Mode: With Hub
Load Balancing:
Operational Status: Down
Route Control: Enabled
Transit Site Affinity: Enabled
95% Bandwidth Check: Enabled
Remote Branch Bandwidth Check: Disabled
Load Sharing: Enabled
Connection Keepalive: 10 seconds
Mitigation mode Aggressive: Disabled
Policy threshold variance: 20
Minimum Mask Length Internet: 24
Minimum Mask Length Enterprise: 24
Syslog TCA suppress timer: 180 seconds
Traffic-Class Ageout Timer: 5 minutes
Global Fallback Timer: 3 minutes
Minimum Packet Loss Calculation Threshold: 15 packets
Minimum Bytes Loss Calculation Threshold: 10240 bytes
Branch to Branch Traffic Control: Enabled
Direct Cloud Access : Disabled
Maximum Traffic Classes Supported: 4000
Minimum Requirement: Met
Borders:
IP address: 10.2.0.1
Version: 2
Connection status: CONNECTED (Last Updated 00:01:34 ago )
Interfaces configured:
Name: Tunnel200 | type: external | Service Provider: INET | Status: UP | Zero-SLA: NO | Path of Last Resort: Disabled
Number of default Channels: 0
Path-id list: 0:0
Name: Tunnel100 | type: external | Service Provider: MPLS | Status: UP | Zero-SLA: NO | Path of Last Resort: Disabled
Number of default Channels: 0
Path-id list: 0:0
Tunnel if: Tunnel0このうち §7〜§12 で使うのは、Global Fallback Timer: 3 minutes(§12)、Traffic-Class Ageout Timer: 5 minutes(§8)、Minimum Mask Length Enterprise: 24(§7)、95% Bandwidth Check: Enabled(§9)の 4 行です。Interfaces configured: には Tunnel200 が Service Provider: INET、Tunnel100 が Service Provider: MPLS として並び、BRANCH が WAN インタフェースと path 名を知っていることが分かります。
6.3 掲載用の running-config
Phase I の後、Phase K の前(Phase J)に撮った 3 台の PfR の設定は以下のとおりです(4 回目。3 回目も同じ)。
HUB-MC# show running-config | section domain
ip domain name lab.local
domain default
vrf default
master hub
source-interface Loopback0
site-prefixes prefix-list HUB-SITE
monitor-interval 2 dscp ef
enterprise-prefix prefix-list ENT
class VOICE sequence 10
match dscp ef policy voice
path-preference MPLS fallback INET
class BULK sequence 20
match dscp af11 policy bulk-data
path-preference INET fallback MPLS HUB-BR(4 回目)は以下のとおりです。
HUB-BR# show running-config | section domain
ip domain name lab.local
domain default
vrf default
border
source-interface Loopback0
master 10.1.0.1
domain path MPLS
domain path INETBRANCH(4 回目)は以下のとおりです。
BRANCH# show running-config | section domain
ip domain name lab.local
domain default
vrf default
border
source-interface Loopback0
master local
master branch
source-interface Loopback0
hub 10.1.0.1HUB-BR の | section domain には、投入した domain default path MPLS が domain path MPLS という形で、インタフェースの行を伴わずに現れています。インタフェースの側から見ると、同じ行はトンネルの設定の中にあります(4 回目・HUB-BR)。
HUB-BR# show running-config interface Tunnel100
Building configuration...
Current configuration : 332 bytes
!
interface Tunnel100
description DMVPN over MPLS
bandwidth 1000
ip address 10.0.100.1 255.255.255.0
no ip redirects
ip mtu 1400
ip nhrp network-id 100
ip summary-address eigrp 100 10.1.0.0 255.255.0.0
ip tcp adjust-mss 1360
tunnel source GigabitEthernet2
tunnel mode gre multipoint
tunnel key 100
domain path MPLS
endbandwidth 1000 は Phase E で、ip summary-address eigrp 100 10.1.0.0 255.255.0.0 は Phase D で足した行です。§4.1 で投入した ip nhrp map multicast dynamic は、この表示には出ていません。6-7 §14 で見たのと同じで、6-7 §14 が引いた資料は、この行を 16.3 以降は既定で有効な行としています。
7. 測る単位 — TC・channel・smart probe
7.1 出典: 測る単位と測る場所
PfR が出口を決める単位は traffic class です。16.12 のガイドの定義は次のとおりです。
PfRv3 manages aggregation of flows called traffic classes. A traffic class is an aggregation of flow going to the same destination prefix, with the same DSCP and application name (if application-based policies are used).
同じ宛先 prefix・同じ DSCP(アプリケーション方式の policy ならアプリケーション名も)のフローの集約です。6-7 の予告が「通信ごと」と書いた単位は、この TC にあたります。性能の監視も DSCP 単位です。
Scalable passive monitoring — PfRv3 uses Unified Monitor to monitor traffic going into WAN links and traffic coming from the WAN links. It monitors performance metrics based on per DSCP instead of per flow or per prefix basis.
2014 年の Workflow Guide は、学習と監視の向きを分けて書いています。
PfR version 3 leverages AVC/MMA infrastructure for passive performance monitoring, includes site- prefix and traffic-class learning on WAN interface egress direction, and per DSCP performance monitoring on ingress direction.
TC と site prefix は WAN インタフェースの出ていく向きで学習し、性能は入ってくる向きで DSCP ごとに測ります。測った値をまとめる単位が channel です。
A channel is a unique combination of destination site-Id, path name, and DSCP value. A channel is created when there is a new DSCP value, or an interface, or a site is added to the network. Performance is measured per channel on remote site and feedback is sent to the source site in case of performance failure.
channel は宛先の site・path(本ラボでは MPLS と INET)・DSCP の組です。引用の 3 文目にあるとおり、性能は受信側の site で測り、性能が落ちたときだけ送信元の site へ知らせます。その知らせが TCA です。17.x の一覧表は TCA を threshold crossing alert(閾値を越えたことの通知)と展開しています。
Displays channel status information and the unreachable threshold crossing alerts (TCA) and on demand export (ODE) instances on a hub-master controller.
2014 年の Workflow Guide は、TCA を送るのが宛先側の BR で、受け取るのが送信元の MC であることを書いています。
Destination border router exports ODE metrics together TCA for impacted channels; on source MC, ODE received are listed so that you can now check the performance metrics
Source MC receives TCA and ODE , then make a policy decision when there is policy violated;
遅延は片方向の値(one-way delay)で扱い、2014 年の Workflow Guide はそれを往復の時間の半分と定義しています。
one-way-delay is half of round-trip time between two sites(network-delay-avg);
PfRv3 は、測定に smart probe も使います。17.x のガイドの概要の章の説明は次のとおりです(原文の there in no traffic の誤記はそのまま)。
Smart probing — PfRv3 uses probing mechanism that generates traffic only when there in no traffic. It generates real-time transport protocol traffic, which allows measuring jitter and packet loss using performance monitors.
同じ 17.x のガイドの Probe Reduction の章は、smart probe を 3 種類に分けています。
Smart probe are of three types:
Active Channel Probe—Active channel probe is sent out to measure network delay if no probe is sent out for past 10 seconds interval.
Unreachable Probe—Unreachable probe is used to detect channel reachability when there is no traffic send out.
Burst Probe—Burst probes are used to calculate delay, loss, jitter on a channel that is not carrying active user traffic.
Active Channel Probe は、過去 10 秒 probe を送っていない channel に、遅延を測るために送る probe です。Burst Probe は active な user traffic の載っていない channel に送る probe で、その既定の送り方は同じ章の smart-probe burst の説明に書かれています。
Specifies the number of packets to be sent in a probe burst and the interval between the bursts. The default values are as follows: 1 packet every 1 second for default monitor 20 packets every 1 second for quick monitor
2014 年の Workflow Guide は、通信の無い channel で 500 ms に 10 パケット、通信がある channel で 10 秒に 1 パケットと書きます。
Smart Probes sent over all channels periodically, 10 packets per 500ms if channel is idle and 1 packet per 10s if real traffic exists;
10 秒の間隔の probe は、17.x(Active Channel Probe)にも 2014 年版にもあります(条件の書き方は違います)。版で値が違うのは、user traffic の載っていない(2014 年版の言い方では idle な)channel に送る burst の送り方で、17.x の既定は通常の監視(default monitor)で 1 秒に 1 パケット・quick monitor で 1 秒に 20 パケット、2014 年版は 500 ms に 10 パケットです。
本ラボの 17.3 の border status は Packets per burst: 1 / Interval(secs): 1 と、quick monitor の Packets per burst: 20 / Interval(secs): 1 を印字していました(§6.1 の出力)。監視の間隔は 16.12 のガイドで既定 30 秒、重要な通信には 2 秒の quick monitor の例が示されています。
For critical applications monitor interval is set to 2 seconds. Default value is 30 seconds. You can lower the monitor interval for critical applications to achieve a fast fail over to the secondary path. This is known as quick monitor.
本ラボが EF に入れた monitor-interval 2 dscp ef は、この 2 秒の例と同じ値です。ここまでが出典です。
7.2 実測: 集約なしの 3 本の通信
Phase C では、PC-H で iperf の受信を 3 つ立て、PC-B から EF・AF11・DEFAULT の 3 本の UDP を流しました。4 回目の run のコマンドは以下のとおりです(端末のエコーは省略)。
PC-H $ pkill iperf 2>/dev/null; sleep 1; rm -f /tmp/s*.log; nohup iperf -s -u -p 5001 -i 10 >/tmp/s5001.log 2>&1 & nohup iperf -s -u -p 5002 -i 10 >/tmp/s5002.log 2>&1 & nohup iperf -s -u -p 5003 -i 10 >/tmp/s5003.log 2>&1 & echo servers-started
…(省略)
servers-startedPC-B(4 回目)では 3 本の送信を始めました。
PC-B $ pkill iperf 2>/dev/null; sleep 1; rm -f /tmp/c*.log; nohup iperf -c 10.1.10.10 -u -p 5001 -S 0xb8 -b 64k -l 200 -t 19800 >/tmp/c5001.log 2>&1 & nohup iperf -c 10.1.10.10 -u -p 5002 -S 0x28 -b 128k -l 1000 -t 19800 >/tmp/c5002.log 2>&1 & nohup iperf -c 10.1.10.10 -u -p 5003 -S 0x00 -b 64k -l 1000 -t 19800 >/tmp/c5003.log 2>&1 & echo clients-started
…(省略)
clients-started-S 0xb8 は EF、-S 0x28 は AF11、-S 0x00 は DEFAULT です。レートは EF が 64 kbps(200 バイト)、AF11 が 128 kbps、DEFAULT が 64 kbps(どちらも 1000 バイト)です。
BRANCH の MC には、EF と AF11 の 2 つの TC が立ちました(4 回目・BRANCH)。
BRANCH# show domain default master traffic-classes
Dst-Site-Prefix: 10.1.10.0/24 DSCP: ef [46] Traffic class id:2
Clock Time: 09:27:10 (UTC) 09/25/2026
TC Learned: 00:00:09 ago
Present State: UN-CONTROLLED at border 10.2.0.1 (An attempt to control will be made 00:00:22 later)
Destination Site ID bitmap: 0x1
Destination Site ID: 0.0.0.0
Class-Sequence in use: 10
Class Name: VOICE using policy voice
BW Updated: - ago
Route Change History:
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Dst-Site-Prefix: 10.1.10.0/24 DSCP: af11 [10] Traffic class id:4
Clock Time: 09:27:10 (UTC) 09/25/2026
TC Learned: 00:00:09 ago
Present State: UN-CONTROLLED at border 10.2.0.1 (An attempt to control will be made 00:00:22 later)
Destination Site ID bitmap: 0x1
Destination Site ID: 0.0.0.0
Class-Sequence in use: 20
Class Name: BULK using policy bulk-data
BW Updated: - ago
Route Change History:
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total Traffic Classes: 2 Site: 2 Internet: 0同じ時点の BRANCH の転送表は以下のとおりです(4 回目・BRANCH)。
BRANCH# show ip cef 10.1.10.10
10.1.10.0/24
nexthop 10.0.100.1 Tunnel100一覧の形でも確かめられます(4 回目・BRANCH)。
BRANCH# show domain default master traffic-classes summary
APP - APPLICATION, TC-ID - TRAFFIC-CLASS-ID, APP-ID - APPLICATION-ID
Current-EXIT - Service-Provider(PFR-label)/Border/Interface(Channel-ID)
UC - UNCONTROLLED, PE - PICK-EXIT, CN - CONTROLLED, UK - UNKNOWN
Dst-Site-Pfx Dst-Site-Id State DSCP TC-ID APP-ID APP Current-Exit
10.1.10.0/24 UC ef[46] 2 N/A N/A UK(0:0|0:0)/0.0.0.0/UK(Ch:0)
10.1.10.0/24 UC af11[10] 4 N/A N/A UK(0:0|0:0)/0.0.0.0/UK(Ch:0)
Total Traffic Classes: 2 Site: 2 Internet: 0読み取れることは 3 つです。
- TC は DSCP ごとに立ち、DEFAULT の TC は立っていません(
Total Traffic Classes: 2)。DEFAULT は policy のどの class にも当たらない通信です(§10) - TC の
Present State:はUN-CONTROLLEDで、An attempt to control will be made 00:00:22 laterと次の試行までの残り時間が印字されています。master の TC のDestination Site ID:は0.0.0.0です(§8) - TC の宛先(
Dst-Site-Prefix:)は10.1.10.0/24です。hub の site prefix(10.1.0.0/16)ではありません
最後の点を、BRANCH の site prefix の表と並べます(4 回目・BRANCH)。
BRANCH# show domain default master site-prefix
Change will be published between 5-60 seconds
Next Publish 21:45:47 later
Prefix DB Origin: 10.2.0.1
Last publish Status : Peering Success
Total publish errors : 0
Total learned prefix discards: 0
Prefix Flag: S-From SAF; L-Learned; T-Top Level; C-Configured; M-shared
Site-id Site-prefix Last Updated DC Bitmap Flag
--------------------------------------------------------------------------------
10.1.0.1 10.1.0.1/32 00:02:30 ago 0x1 S,C
10.1.0.1 10.1.0.0/16 00:02:30 ago 0x1 S,C,M
10.2.0.1 10.2.0.1/32 00:02:31 ago 0x0 C
10.2.0.1 10.2.10.1/32 00:02:30 ago 0x0 L
10.2.0.1 10.2.10.0/24 00:02:30 ago 0x0 L
255.255.255.255 *10.0.0.0/8 00:02:30 ago 0x0 S,T
--------------------------------------------------------------------------------hub site(10.1.0.1)の site prefix は 10.1.0.1/32 と 10.1.0.0/16 の 2 行で、10.1.10.0/24 はありません。本ラボの TC の宛先は、site prefix の表に無い値でした。2014 年の Workflow Guide は、TC を識別する key を site prefix の列と書いています。
One egress performance monitor “MON-Egress-aggregate-0-48-9” to collect bandwidth per Traffic Class - Note the key fields: pfr site destination prefix ipv4, mask, ip dscp, or application ID used to identify a Traffic Class.
2014 年の資料の説明と例は TC を site prefix(DB にある値)で識別する形で、本ラボの 17.3 の TC の宛先はそれとは値が違います。違いの原因(版・既定値・設定・学習した時点の経路)は確かめていません。/24 の候補は 2 つあります。1 つは BRANCH が印字する Minimum Mask Length Enterprise: 24(§6.2)で、Command Reference は minimum mask を egress の flow に当てて prefix を作る値と説明します。
Minimum mask value is applied on IP addresses to generate a prefix to be used on egress flows
もう 1 つは、学習した時点の経路表と転送表の prefix です。本ラボの TC は集約の無い Phase C で学習され、その時点の CEF の prefix は上のとおり 10.1.10.0/24 でした。本ラボは 2 つの候補がどちらも /24 を与える条件でしか TC を学習させていないので、区別できません。
7.3 channel の組み合わせ(宛先の site × path × DSCP)
同じ Phase C の BRANCH には channel が 6 本立ちました(4 回目・BRANCH。MPLS の EF の channel だけを全部載せ、ほかは見出しの行だけ)。
BRANCH# show domain default master channels
Legend: * (Value obtained from Network delay:)
Legend: *[255] (DCA Channel)
Channel Id: 5 Dst Site-Id: 10.1.0.1 Link Name: INET DSCP: af11 [10] pfr-label: 0:0 | 0:0 [0x0] TCs: 0 BackupTCs: 0
…(省略)
Channel Id: 3 Dst Site-Id: 10.1.0.1 Link Name: INET DSCP: ef [46] pfr-label: 0:0 | 0:0 [0x0] TCs: 0 BackupTCs: 0
…(省略)
Channel Id: 2 Dst Site-Id: 10.1.0.1 Link Name: INET DSCP: default [0] pfr-label: 0:0 | 0:0 [0x0] TCs: 0 BackupTCs: 0
…(省略)
Channel Id: 6 Dst Site-Id: 10.1.0.1 Link Name: MPLS DSCP: af11 [10] pfr-label: 0:0 | 0:0 [0x0] TCs: 0 BackupTCs: 0
…(省略)
Channel Id: 1 Dst Site-Id: 10.1.0.1 Link Name: MPLS DSCP: default [0] pfr-label: 0:0 | 0:0 [0x0] TCs: 0 BackupTCs: 0
…(省略)
Channel Id: 4 Dst Site-Id: 10.1.0.1 Link Name: MPLS DSCP: ef [46] pfr-label: 0:0 | 0:0 [0x0] TCs: 0 BackupTCs: 0
Channel Created: 00:00:20 ago
Provisional State: Initiated and open
Operational state: Available
Channel to hub: TRUE
Inter-DC Channel: FALSE
Two-hop Channel: FALSE
Interface Type: External
Interface Id: 13
Supports Zero-SLA: Yes
Muted by Zero-SLA: No
Estimated Channel Egress Bandwidth: 0 Kbps
Immitigable Events Summary:
Total Performance Count: 0, Total BW Count: 0
Site Prefix List
10.1.0.1/32 (Routable)
10.1.0.0/16 (Unreachable)
ODE Statistics:
Received: 0
TCA Statistics:
Received: 0 ; Processed: 0 ; Unreach_rcvd: 0 ; Local Unreach_rcvd: 0
TCA lost byte rate: 0
TCA lost packet rate: 0
TCA one-way-delay: 0
TCA network-delay: 0
TCA jitter mean: 0宛先の site(10.1.0.1)が 1 つ、path が 2 つ、DSCP が 3 つ(default / ef / af11)で、2 × 3 = 6 本です。どの channel も Site Prefix List に 10.1.0.0/16 (Unreachable) を持ち、Estimated Channel Egress Bandwidth: は 0 Kbps です(§8)。TCA Statistics: はまだ全部 0 です。
channel ごとの next-hop と、その経路の出どころ(EIGRP)は以下のとおりです(4 回目・BRANCH)。
BRANCH# show domain default border channels parent-route
Border Channel Parent Route Details:
Channel id: 1, Dscp: defa [0], Site-Id: 10.1.0.1, Path: MPLS, Interface: Tunnel100
Nexthop: 10.0.100.1, PFR-Label: 0:0 | 0:0 [0x0]
Protocol: EIGRP
Channel id: 2, Dscp: defa [0], Site-Id: 10.1.0.1, Path: INET, Interface: Tunnel200
Nexthop: 10.0.200.1, PFR-Label: 0:0 | 0:0 [0x0]
Protocol: EIGRP
Channel id: 3, Dscp: ef [2E], Site-Id: 10.1.0.1, Path: INET, Interface: Tunnel200
Nexthop: 10.0.200.1, PFR-Label: 0:0 | 0:0 [0x0]
Protocol: EIGRP
Channel id: 4, Dscp: ef [2E], Site-Id: 10.1.0.1, Path: MPLS, Interface: Tunnel100
Nexthop: 10.0.100.1, PFR-Label: 0:0 | 0:0 [0x0]
Protocol: EIGRP
Channel id: 5, Dscp: af11 [A], Site-Id: 10.1.0.1, Path: INET, Interface: Tunnel200
Nexthop: 10.0.200.1, PFR-Label: 0:0 | 0:0 [0x0]
Protocol: EIGRP
Channel id: 6, Dscp: af11 [A], Site-Id: 10.1.0.1, Path: MPLS, Interface: Tunnel100
Nexthop: 10.0.100.1, PFR-Label: 0:0 | 0:0 [0x0]
Protocol: EIGRP7.4 受信側の HUB-BR のカウンタ
受信側の HUB-BR で、MPLS の EF の channel(BRANCH から HUB への向き)のカウンタを、Phase C の TC の 1 回目と 2 回目と同時に撮りました。4 回目の 1 回目は以下のとおりです(HUB-BR)。
HUB-BR# show domain default border channels
…(省略)
Channel id: 4
Version : 3
Channel Type : External
Site id : 10.2.0.1
DSCP : ef[46]
Service provider : MPLS
…(省略)
Number of Probes received : 300
…(省略)
Number of Data Packets received : 609
…(省略)2 回目(4 回目・HUB-BR)は以下のとおりです。
HUB-BR# show domain default border channels
…(省略)
Channel id: 4
Version : 3
Channel Type : External
Site id : 10.2.0.1
DSCP : ef[46]
Service provider : MPLS
…(省略)
Number of Probes received : 1140
…(省略)
Number of Data Packets received : 2285
…(省略)同じ channel id 4 で、2 回の撮影のあいだに Number of Probes received は 300 → 1140、Number of Data Packets received は 609 → 2285 に増えました。3 回目も同じ channel で 170 → 1149 と 356 → 2316 でした。TC が UN-CONTROLLED(§7.2・§8.2)で、BRANCH の channel が TCs: 0(§7.3)の Phase C では、EF のデータが流れている channel でも、probe の受信数は増えています。
同じ 2 回の撮影には、データの流れていない INET の channel も入っています。DSCP ごとに並べると以下のとおりです(4 回目・HUB-BR。括弧内は Number of Data Packets received)。
| DSCP | MPLS の Number of Probes received | INET の Number of Probes received |
|---|---|---|
| ef | 300 → 1140(609 → 2285) | 300 → 1140(0 → 0) |
| af11 | 15 → 57(244 → 915) | 15 → 57(0 → 0) |
| default | 73 → 115(269 → 605) | 73 → 115(0 → 0) |
Phase C の probe の受信数は、データの有無では分かれず、DSCP で分かれていました。3 回目も ef が 170 → 1149、af11 が 9 → 58、default が 75 → 124 で、2 経路とも同じ値です。撮影の間隔を、MPLS の EF のデータの増分を 1 秒 40 パケット(64 kbps・200 バイト)で割った時間(4 回目 約 42 秒・3 回目 約 49 秒)で読むと、ef は 1 秒に約 20 個、af11 と default は 1 秒に約 1 個です(受信側でデータが欠けていないとした算術です)。§6.1 の border status が印字した Quick Monitor(Packets per burst: 20 / Interval(secs): 1)と General Monitor(Packets per burst: 1 / Interval(secs): 1)と同じ数で、ef には monitor-interval 2 dscp ef を入れています(§6)。
Phase F の HUB-BR の 3 回の撮影(注入前・切替後・その次。§11.4)では、制御下の TC が置かれた channel で probe の増え方が変わりました。4 回目の AF11 の 2 つの channel は以下のとおりです。
- id 5(af11・INET。BRANCH の AF11 の TC が制御下で置かれている経路): probe 203 → 206 → 208、データ 17867 → 18304 → 18660
- id 3(af11・MPLS): probe 1204 → 1231 → 1254、データ 1379 のまま
AF11 のデータの増分を 1 秒 16 パケット(128 kbps・1000 バイト)で割ると、2 つの間隔は約 27 秒と約 22 秒です。制御下の AF11 が置かれた INET の channel では、probe が +3 / +2 で約 10 秒に 1 個になり、同じ間の MPLS の channel は +27 / +23 で 1 秒に約 1 個のままでした。3 回目も id 5 が 1040 → 1043 → 1045、id 3 が 1389 → 1416 → 1439 です。データが流れていて TC の無い default の MPLS の channel(4 回目 id 1)も、1262 → 1290 → 1312(+28 / +22)でした。
切替の後に制御下の EF が置かれた INET の EF の channel(id 6)は、切替後とその次の撮影の間(約 22 秒)に probe が 10975 → 11009(+34。3 回目は +33)で、10 秒に 1 個にはなっていません。
これらの観測は、17.x の概要の章の 1 文(traffic が無いときだけ生成する)とは合いません。Phase C では、データの流れている channel も probe を受けていたからです。約 10 秒に 1 個という数は、2014 年の資料の「通信があれば 10 秒に 1 パケット」とも 17.x の Active Channel Probe(§7.1)とも合いますが、そうなったのは制御下の AF11 の channel だけでした。どの種類の probe なのかは、パケットでは確かめていません。
送信側の BRANCH の border channels(Phase C。HUB-BR の 1 回目と 2 回目の撮影の間に撮影)は、ef・MPLS の channel の送信カウンタを Number of SMP Profile Bursts sent: 520・Number of Active Channel Probes sent: 0・Number of Reachability Probes sent: 1 と印字しました(4 回目・BRANCH)。3 回目の同じ channel は 399・1・1 です。3 つの値の和は、同じ channel の Number of Probes sent : の値(4 回目 521・3 回目 401)と同じです。機器の数え方では、この channel から送った probe のほぼ全部が SMP Profile Burst です。この数え方と §7.1 の 3 種類がどう対応するかは確かめていません。
8. 制御に入る前提 — hub の site prefix に対応する経路
8.1 出典: TC の 3 つの状態
2014 年の Workflow Guide は、TC の状態を 3 つに分けて定義しています。
Here are the possible states for a Traffic Class: • UNCONTROLLED: No parent route is found • CONTROLLED: found a path that meets the criteria • OUT OF POLICY: No path meets the criteria set in the policy
UNCONTROLLED の定義に挙がっているのは parent route が無いことだけです。parent route は、BR が宛先の site への channel を作る前に経路表から引く経路です。
Perform parent lookup in Routing Tables before creating any channel for a given site-id on the border router;
同じ箇所は、parent route を引けなかった channel の next-hop は 0.0.0.0 で not-available になると続けます。同じ資料が parent route と channel の next-hop を説明する表示の例でも、parent route は宛先の site-id の /32(10.2.10.10/32 など)で、その site への channel の next-hop はこの経路のゲートウェイです。
16.12 のガイドは、parent route を探す経路の優先順位を次のように書きます。
PRv3 determines parent route preference in the following order: NHRP cache (when spoke-to-spoke direct tunnels are established), BGP, EIGRP, static routes, and RIB.
制御外の TC の通信は、経路表どおりに転送されます。
Routing configuration means that when the traffic is uncontrolled, the routing table takes the responsibility of pushing the flow out of the box.
17.3 の機器の表記は UN-CONTROLLED で、原典の UNCONTROLLED とは字面が違います。ここまでが出典です。
8.2 実測: 集約なしの Phase C
Phase C の 2 回目の撮影でも、TC は UN-CONTROLLED のままでした(4 回目・BRANCH)。
BRANCH# show domain default master traffic-classes
Dst-Site-Prefix: 10.1.10.0/24 DSCP: ef [46] Traffic class id:2
Clock Time: 09:27:54 (UTC) 09/25/2026
TC Learned: 00:00:53 ago
Present State: UN-CONTROLLED at border 10.2.0.1 (An attempt to control will be made 00:00:09 later)
Destination Site ID bitmap: 0x1
Destination Site ID: 0.0.0.0
…(省略)
Dst-Site-Prefix: 10.1.10.0/24 DSCP: af11 [10] Traffic class id:4
Clock Time: 09:27:54 (UTC) 09/25/2026
TC Learned: 00:00:53 ago
Present State: UN-CONTROLLED at border 10.2.0.1 (An attempt to control will be made 00:00:09 later)
Destination Site ID bitmap: 0x1
Destination Site ID: 0.0.0.0
…(省略)2 回の撮影の間隔は、1 回目が予告した残り時間より長く空けています。
| run | 1 回目の Clock Time / TC Learned / 予告 | 2 回目の Clock Time / TC Learned | 2 回の差 |
|---|---|---|---|
| 3 回目 | 07:50:03 / 00:00:02 / 00:00:29 | 07:50:55 / 00:00:54 | 52 秒 |
| 4 回目 | 09:27:10 / 00:00:09 / 00:00:22 | 09:27:54 / 00:00:53 | 44 秒 |
予告された試行の時刻をまたいでも、TC は制御に入っていません。ただし 2 回とも TC の年齢は 60 秒未満です。Phase C だけでは、制御に入らない理由が経路にあるのか、TC がまだ若いことにあるのかを区別できません(§8.4 の Phase K で区別します)。
同じ時点の parent route は以下のとおりです(4 回目・BRANCH)。
BRANCH# show domain default border parent-route
Border Parent Route Details:
Prot: EIGRP, Network: 10.1.0.1/32, Gateway: 10.0.100.1, Interface: Tunnel100, Ref count: 3
Prot: EIGRP, Network: 10.1.0.1/32, Gateway: 10.0.200.1, Interface: Tunnel200, Ref count: 3parent route は、hub の site-id(10.1.0.1)を含む 10.1.0.1/32 です。ゲートウェイは §7.3 の channel の next-hop(10.0.100.1 / 10.0.200.1)と同じで、Ref count: 3 はトンネルごとの channel の数(DSCP 3 つ)と同じ値です。§8.1 の定義に照らすと、Phase C でも parent route は引けており、channel の next-hop も 0.0.0.0 ではありませんでした。2014 年の資料の「parent route が無い」は、本ラボの UN-CONTROLLED を字面どおりには説明しません(Phase K でも同じです。§8.4)。TC ごとの parent route の引き方は撮っていないので、機器の中の判定の手順は分かりません。
hub の site prefix 10.1.0.0/16 そのものは、Phase C の撮影の時点で BRANCH に届いています(§7.2 の site prefix の表。Last Updated は 00:02:30 ago)。届いていないのは、その prefix に対応する経路です。BRANCH の経路表には hub 側の /24 や /32 の個別の経路しか無く、10.1.0.0/16 の経路はありません(§5)。channel の Site Prefix List はこの間 10.1.0.0/16 (Unreachable) と印字し(§7.3)、集約を入れると (Active) に変わり(§8.3)、集約を外すと (Unreachable) に戻りました(§8.4)。
border の側の TC は、Destination Site ID: 10.1.0.1 を持ちながら UN-CONTROLLED です(4 回目・BRANCH)。
BRANCH# show domain default border traffic-classes
Src-Site-Prefix: ANY Dst-Site-Prefix: 10.1.10.0/24
DSCP: af11 [10] Traffic class id: 4
TC Learned: 00:00:24 ago
Present State: UN-CONTROLLED
Destination Site ID: 10.1.0.1
Blackhole: Not-Configured
--------------------------------------------------------------------
Src-Site-Prefix: ANY Dst-Site-Prefix: 10.1.10.0/24
DSCP: ef [46] Traffic class id: 2
TC Learned: 00:00:24 ago
Present State: UN-CONTROLLED
Destination Site ID: 10.1.0.1
Blackhole: Not-Configured
--------------------------------------------------------------------出口の利用率は、TC の 1 回目と 2 回目と同時に撮りました。4 回目の 1 回目は以下のとおりです(BRANCH)。
BRANCH# show domain default master exits
BR address: 10.2.0.1 | Name: Tunnel200 | type: external | Path: INET | path-id: 0 | PLR TCs: 0
Egress capacity: 100 Kbps | Egress BW: 2 Kbps | Ideal:0 Kbps | over: 2 Kbps | Egress Utilization: 2 %
Ingress capacity: 100 Kbps | Ingress BW: 2 Kbps | Ingress Utilization: 2 %
BR address: 10.2.0.1 | Name: Tunnel100 | type: external | Path: MPLS | path-id: 0 | PLR TCs: 0
Egress capacity: 100 Kbps | Egress BW: 42 Kbps | Ideal:0 Kbps | over: 42 Kbps | Egress Utilization: 42 %
Ingress capacity: 100 Kbps | Ingress BW: 2 Kbps | Ingress Utilization: 2 %
--------------------------------------------------------------------------------2 回目(4 回目・BRANCH)は以下のとおりです。
BRANCH# show domain default master exits
BR address: 10.2.0.1 | Name: Tunnel200 | type: external | Path: INET | path-id: 0 | PLR TCs: 0
Egress capacity: 100 Kbps | Egress BW: 36 Kbps | Ideal:0 Kbps | over: 18 Kbps | Egress Utilization: 36 %
Ingress capacity: 100 Kbps | Ingress BW: 31 Kbps | Ingress Utilization: 31 %
BR address: 10.2.0.1 | Name: Tunnel100 | type: external | Path: MPLS | path-id: 0 | PLR TCs: 0
Egress capacity: 100 Kbps | Egress BW: 363 Kbps | Ideal:0 Kbps | over: 335 Kbps | Egress Utilization: 363 %
Ingress capacity: 100 Kbps | Ingress BW: 31 Kbps | Ingress Utilization: 31 %
--------------------------------------------------------------------------------MPLS の利用率は 4 回目で 42 % → 363 %、3 回目で 207 % → 351 % でした。1 回目は流し始めの値で、Egress BW をどの時間で平均しているかは印字されません。Phase C の利用率を「制御に入るかを判定した時点で容量内だった」根拠には使いません。UN-CONTROLLED の TC には BW Used の欄が無く、channel の Estimated Channel Egress Bandwidth も 0 Kbps でした。
判定の時点で機器が TC の帯域をどう見積もったかは、印字からは分かりません。
8.3 実測: 集約の投入(Phase D)
Phase D では、HUB-BR の両トンネルに EIGRP の集約 10.1.0.0/16 を入れました。6-7 の Phase 3 と同じ ip summary-address eigrp の行ですが(6-7 の prefix は 192.168.0.0/16)、目的は違います。6-7 では近道を経路表に載せるための条件でした。本ラボでは、BRANCH に hub の site prefix と同じ範囲の経路を 1 本だけ届けるために使います。
投入の直前の TC は以下のとおりです(4 回目・BRANCH)。この Clock Time: が、投入した時刻の下限です。
BRANCH# show domain default master traffic-classes
Dst-Site-Prefix: 10.1.10.0/24 DSCP: ef [46] Traffic class id:2
Clock Time: 09:28:03 (UTC) 09/25/2026
TC Learned: 00:01:02 ago
Present State: UN-CONTROLLED at border 10.2.0.1 (An attempt to control will be made 00:00:30 later)
Destination Site ID bitmap: 0x1
Destination Site ID: 0.0.0.0
…(省略)
Dst-Site-Prefix: 10.1.10.0/24 DSCP: af11 [10] Traffic class id:4
Clock Time: 09:28:03 (UTC) 09/25/2026
TC Learned: 00:01:02 ago
Present State: UN-CONTROLLED at border 10.2.0.1 (An attempt to control will be made 00:00:30 later)
Destination Site ID bitmap: 0x1
Destination Site ID: 0.0.0.0
…(省略)投入した行は以下のとおりです(4 回目・HUB-BR)。
HUB-BR# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
HUB-BR(config)#interface Tunnel100
HUB-BR(config-if)# ip summary-address eigrp 100 10.1.0.0 255.255.0.0
HUB-BR(config-if)#exit
HUB-BR(config)#interface Tunnel200
HUB-BR(config-if)# ip summary-address eigrp 100 10.1.0.0 255.255.0.0
HUB-BR(config-if)#exit
HUB-BR(config)#end
HUB-BR#投入が戻った直後の TC は、まだ UN-CONTROLLED でした(4 回目・BRANCH)。この Clock Time:(09:28:27)が投入した時刻の上限です。
BRANCH# show domain default master traffic-classes
Dst-Site-Prefix: 10.1.10.0/24 DSCP: ef [46] Traffic class id:2
Clock Time: 09:28:27 (UTC) 09/25/2026
TC Learned: 00:01:26 ago
Present State: UN-CONTROLLED at border 10.2.0.1 (An attempt to control will be made 00:00:06 later)
Destination Site ID bitmap: 0x1
Destination Site ID: 0.0.0.0
…(省略)
Dst-Site-Prefix: 10.1.10.0/24 DSCP: af11 [10] Traffic class id:4
Clock Time: 09:28:27 (UTC) 09/25/2026
TC Learned: 00:01:26 ago
Present State: UN-CONTROLLED at border 10.2.0.1 (An attempt to control will be made 00:00:06 later)
Destination Site ID bitmap: 0x1
Destination Site ID: 0.0.0.0
…(省略)BRANCH の経路表は集約の 1 本になりました。その直後に撮った TC と並べます(4 回目・BRANCH)。
BRANCH# show ip route eigrp
…(省略)
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 8 subnets, 3 masks
D p 10.1.0.0/16 [90/26880256] via 10.0.100.1, 00:00:08, Tunnel100
BRANCH# show domain default master traffic-classes
Dst-Site-Prefix: 10.1.10.0/24 DSCP: ef [46] Traffic class id:2
Clock Time: 09:28:31 (UTC) 09/25/2026
TC Learned: 00:01:30 ago
Present State: UN-CONTROLLED at border 10.2.0.1 (An attempt to control will be made 00:00:03 later)
Destination Site ID bitmap: 0x1
Destination Site ID: 0.0.0.0
…(省略)集約経路の年齢は 8 秒で、直後の TC の Clock Time: は 09:28:31 です。BRANCH が集約経路を入れた時刻は 09:28:23 以前と、同じ機器の時計の算術で読めます(秒の丸めを含みます)。
parent route は 10.1.0.0/16 になり、両方のトンネルに立ちました(4 回目・BRANCH)。集約で経路表から 10.1.0.1/32 が消えたので、hub の site-id を含む経路が /16 に替わった形です。
BRANCH# show domain default border parent-route
Border Parent Route Details:
Prot: EIGRP, Network: 10.1.0.0/16, Gateway: 10.0.100.1, Interface: Tunnel100, Ref count: 3
Prot: EIGRP, Network: 10.1.0.0/16, Gateway: 10.0.200.1, Interface: Tunnel200, Ref count: 3EF の channel の Site Prefix List も 10.1.0.0/16 (Active) に変わりました(4 回目・BRANCH)。
BRANCH# show domain default master channels dscp ef
Legend: * (Value obtained from Network delay:)
Legend: *[255] (DCA Channel)
Channel Id: 3 Dst Site-Id: 10.1.0.1 Link Name: INET DSCP: ef [46] pfr-label: 0:0 | 0:0 [0x0] TCs: 1 BackupTCs: 0
…(省略)
Site Prefix List
10.1.0.1/32 (Routable)
10.1.0.0/16 (Active)
…(省略)
Channel Id: 4 Dst Site-Id: 10.1.0.1 Link Name: MPLS DSCP: ef [46] pfr-label: 0:0 | 0:0 [0x0] TCs: 0 BackupTCs: 0
…(省略)
Site Prefix List
10.1.0.1/32 (Routable)
10.1.0.0/16 (Active)
…(省略)そして 4 回目の run では、09:28:33 に EF と AF11 の 2 つの TC が制御に入りました(BRANCH)。
BRANCH# show domain default master traffic-classes
Dst-Site-Prefix: 10.1.10.0/24 DSCP: ef [46] Traffic class id:2
Clock Time: 09:28:59 (UTC) 09/25/2026
TC Learned: 00:01:58 ago
Present State: CONTROLLED
Current Performance Status: in-policy
Current Service Provider: INET since 00:00:25 (hold until 64 sec)
Previous Service Provider: Unknown
(A fallback provider. Primary provider will be re-evaluated 00:02:35 later)
BW Used: 108 Kbps
Present WAN interface: Tunnel200 in Border 10.2.0.1
Present Channel (primary): 3 INET pfr-label:0:0 | 0:0 [0x0]
Backup Channel: none
Destination Site ID bitmap: 0x1
Destination Site ID: 10.1.0.1 (Active)
Class-Sequence in use: 10
Class Name: VOICE using policy voice
BW Updated: 00:00:28 ago
Reason for Latest Route Change: Uncontrolled to Controlled Transition
Route Change History:
Date and Time Previous Exit Current Exit Reason
1: 09:28:33 (UTC) 09/25/26 None(0:0|0:0)/0.0.0.0/None (Ch:0) INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:3) Uncontrolled to Controlled Transition
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Dst-Site-Prefix: 10.1.10.0/24 DSCP: af11 [10] Traffic class id:4
Clock Time: 09:28:59 (UTC) 09/25/2026
TC Learned: 00:01:58 ago
Present State: CONTROLLED
Current Performance Status: in-policy
Current Service Provider: INET since 00:00:25 (hold until 64 sec)
Previous Service Provider: Unknown
BW Used: 143 Kbps
Present WAN interface: Tunnel200 in Border 10.2.0.1
Present Channel (primary): 5 INET pfr-label:0:0 | 0:0 [0x0]
Backup Channel: none
Destination Site ID bitmap: 0x1
Destination Site ID: 10.1.0.1 (Active)
Class-Sequence in use: 20
Class Name: BULK using policy bulk-data
BW Updated: 00:00:28 ago
Reason for Latest Route Change: Uncontrolled to Controlled Transition
Route Change History:
Date and Time Previous Exit Current Exit Reason
1: 09:28:33 (UTC) 09/25/26 None(0:0|0:0)/0.0.0.0/None (Ch:0) INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:5) Uncontrolled to Controlled Transition
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total Traffic Classes: 2 Site: 2 Internet: 0遷移の時刻 09:28:33 は、投入が戻った直後の撮影(09:28:27)より後で、集約経路を入れた時刻の上限(09:28:23)より後です。4 回目では、集約を入れた後に EF と AF11 が制御に入ったと、BRANCH の時計で言えます。遷移の時刻は、投入の直前の撮影(09:28:03)に印字された予告(30 秒後)と同じ秒でした。一致しても、その周期で判定しているとは確かめていません。
制御に入った TC には Destination Site ID: 10.1.0.1 (Active)、BW Used、Current Service Provider が現れました。EF は INET に置かれ、(A fallback provider. Primary provider will be re-evaluated 00:02:35 later) と印字されています。EF の primary は MPLS なので、fallback の INET に置かれた状態です。AF11 は primary の INET です。
制御に入ったときの syslog には、経路の変更の TC_PATH_CHG は出ていません(4 回目・BRANCH)。
BRANCH# show logging | include DOMAIN|TCA|PFR|MC|BR-
*Sep 25 09:27:01.015: %DOMAIN-6-MC_TC_ID_RESET: Master Controller traffic class id counter got reset: site_id=10.2.0.1, domain=default, vrf=defaultReason for Latest Route Change: の Uncontrolled to Controlled Transition は制御に入ったときに置かれた出口で、ある出口から別の出口へ「移った」記録ではありません。「移った」と呼ぶのは、制御に入った後の出口の変更で、Route Change History・syslog の TC_PATH_CHG・traceroute の hop 2 の 3 つで確かめたものに限ります。Route Change History と syslog の 2 つしかそろわなかった変更は、「出口の変更が記録された」と書き分けます(§13.2)。
3 回目の run では、同じ操作の後も制御に入りませんでした。投入の直後の撮影(07:51:28)から 325 秒後の TC は以下のとおりです(3 回目・BRANCH)。
BRANCH# show domain default master traffic-classes
Dst-Site-Prefix: 10.1.10.0/24 DSCP: ef [46] Traffic class id:2
Clock Time: 07:56:53 (UTC) 09/25/2026
TC Learned: 00:06:52 ago
Present State: UN-CONTROLLED at border 10.2.0.1 (An attempt to control will be made 00:00:21 later)
Destination Site ID bitmap: 0x1
Destination Site ID: 0.0.0.0
…(省略)
Dst-Site-Prefix: 10.1.10.0/24 DSCP: af11 [10] Traffic class id:4
Clock Time: 07:56:53 (UTC) 09/25/2026
TC Learned: 00:06:52 ago
Present State: UN-CONTROLLED at border 10.2.0.1 (An attempt to control will be made 00:00:21 later)
Destination Site ID bitmap: 0x1
Destination Site ID: 0.0.0.0
…(省略)同じ時点の出口の利用率は、MPLS 351 % / INET 35 % でした(3 回目・BRANCH)。
BRANCH# show domain default master exits
BR address: 10.2.0.1 | Name: Tunnel100 | type: external | Path: MPLS | path-id: 0 | PLR TCs: 0
Egress capacity: 100 Kbps | Egress BW: 351 Kbps | Ideal:0 Kbps | over: 351 Kbps | Egress Utilization: 351 %
Ingress capacity: 100 Kbps | Ingress BW: 30 Kbps | Ingress Utilization: 30 %
BR address: 10.2.0.1 | Name: Tunnel200 | type: external | Path: INET | path-id: 0 | PLR TCs: 0
Egress capacity: 100 Kbps | Egress BW: 35 Kbps | Ideal:0 Kbps | over: 35 Kbps | Egress Utilization: 35 %
Ingress capacity: 100 Kbps | Ingress BW: 30 Kbps | Ingress Utilization: 30 %
--------------------------------------------------------------------------------3 回目でも、集約の後の経路表・parent route・channel の (Active) は 4 回目と同じ形でした。site prefix に対応する経路が立っても、それだけで制御に入るとは限らない、という観測です。2014 年の資料の定義の字面(parent route が無ければ UNCONTROLLED)と合わないのは、C と K の UN-CONTROLLED も同じです(§8.2)。
2 つの run の投入の直前の値を比べても、分岐を分ける差は見つかりませんでした。TC の年齢は両 run とも 00:01:02、試行の予告は両 run とも 00:00:30、MPLS の利用率は 3 回目 351 % / 4 回目 363 %、MPLS の EF の channel の TCA と ODE の受信数は両 run とも 0 です。撮っていない量が効いた可能性は残ります(§16)。
8.4 実測: 集約の撤去と再投入(Phase K)
Phase K は、F〜J(§11〜§14)を終えた後に、同じことを逆向きに確かめる Phase です。このときトンネルは Phase E(§9.8)で入れた bandwidth 1000 で、出口の容量は 1000 Kbps あります。HUB-BR から集約だけを外しました(4 回目・HUB-BR)。
HUB-BR# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
HUB-BR(config)#interface Tunnel100
HUB-BR(config-if)# no ip summary-address eigrp 100 10.1.0.0 255.255.0.0
HUB-BR(config-if)#exit
HUB-BR(config)#interface Tunnel200
HUB-BR(config-if)# no ip summary-address eigrp 100 10.1.0.0 255.255.0.0
HUB-BR(config-if)#exit
HUB-BR(config)#end
HUB-BR#BRANCH の経路表は個別の経路に戻りました(4 回目・BRANCH)。
BRANCH# show ip route eigrp
…(省略)
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 11 subnets, 3 masks
D p 10.1.0.1/32 [90/3968256] via 10.0.100.1, 00:00:20, Tunnel100
D p 10.1.0.2/32 [90/3968000] via 10.0.100.1, 00:00:20, Tunnel100
D p 10.1.10.0/24 [90/3840256] via 10.0.100.1, 00:00:20, Tunnel100
D p 10.1.12.0/30 [90/3840256] via 10.0.100.1, 00:00:20, Tunnel100parent route も、Phase C と同じ 10.1.0.1/32(hub の site-id を含む経路)に戻りました(4 回目・BRANCH)。
BRANCH# show domain default border parent-route
Border Parent Route Details:
Prot: EIGRP, Network: 10.1.0.1/32, Gateway: 10.0.100.1, Interface: Tunnel100, Ref count: 3
Prot: EIGRP, Network: 10.1.0.1/32, Gateway: 10.0.200.1, Interface: Tunnel200, Ref count: 3制御中だった既存の 2 つの TC は、No Channels Available を理由に UN-CONTROLLED へ戻りました(4 回目・BRANCH。3 回目も同じ形)。
BRANCH# show domain default master traffic-classes
Dst-Site-Prefix: 10.1.10.0/24 DSCP: ef [46] Traffic class id:2
Clock Time: 10:06:45 (UTC) 09/25/2026
TC Learned: 00:39:44 ago
Present State: UN-CONTROLLED at border 10.2.0.1 (An attempt to control will be made 00:00:07 later)
Destination Site ID bitmap: 0x1
Destination Site ID: 0.0.0.0
Class-Sequence in use: 10
Class Name: VOICE using policy voice
BW Updated: 00:00:14 ago
Route Change History:
Date and Time Previous Exit Current Exit Reason
1: 10:06:21 (UTC) 09/25/26 MPLS(0:0|0:0)/10.2.0.1/Tu100 (Ch:11) None(0:0|0:0)/0.0.0.0/None (Ch:0) No Channels Available
2: 10:05:11 (UTC) 09/25/26 INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:3) MPLS(0:0|0:0)/10.2.0.1/Tu100 (Ch:11) Move to higher preferred link, same active/standby status NH
3: 10:02:10 (UTC) 09/25/26 MPLS(0:0|0:0)/10.2.0.1/Tu100 (Ch:8) INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:3) Exit Deleted
4: 10:00:10 (UTC) 09/25/26 INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:3) MPLS(0:0|0:0)/10.2.0.1/Tu100 (Ch:8) Move to higher preferred link, same active/standby status NH
5: 09:57:05 (UTC) 09/25/26 MPLS(0:0|0:0)/10.2.0.1/Tu100 (Ch:4) INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:3) Next hop down
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
…(省略)一度制御に入った TC が外れるかは、制御に入る条件の判定には使わず、記録だけにします。新しい TC を観るため、PC-B の送信を全部止めると、TC は ageout で 0 本になりました(4 回目・BRANCH。BRANCH は Traffic-Class Ageout Timer: 5 minutes を印字しています)。
BRANCH# show domain default master traffic-classes summary
APP - APPLICATION, TC-ID - TRAFFIC-CLASS-ID, APP-ID - APPLICATION-ID
Current-EXIT - Service-Provider(PFR-label)/Border/Interface(Channel-ID)
UC - UNCONTROLLED, PE - PICK-EXIT, CN - CONTROLLED, UK - UNKNOWN
Dst-Site-Pfx Dst-Site-Id State DSCP TC-ID APP-ID APP Current-Exit
Total Traffic Classes: 0 Site: 0 Internet: 0同じ 3 本を流し直すと、新しい TC が立ちました(EF = id 8・AF11 = id 6。集約を外す前は 2 と 4)。2 回目の撮影は以下のとおりです(4 回目・BRANCH)。
BRANCH# show domain default master traffic-classes
Dst-Site-Prefix: 10.1.10.0/24 DSCP: ef [46] Traffic class id:8
Clock Time: 10:14:27 (UTC) 09/25/2026
TC Learned: 00:00:56 ago
Present State: UN-CONTROLLED at border 10.2.0.1 (An attempt to control will be made 00:00:06 later)
Destination Site ID bitmap: 0x1
Destination Site ID: 0.0.0.0
…(省略)
Dst-Site-Prefix: 10.1.10.0/24 DSCP: af11 [10] Traffic class id:6
Clock Time: 10:14:27 (UTC) 09/25/2026
TC Learned: 00:00:56 ago
Present State: UN-CONTROLLED at border 10.2.0.1 (An attempt to control will be made 00:00:06 later)
Destination Site ID bitmap: 0x1
Destination Site ID: 0.0.0.0
…(省略)
BRANCH# show ip cef 10.1.10.10
10.1.10.0/24
nexthop 10.0.100.1 Tunnel100
BRANCH# show domain default master exits
BR address: 10.2.0.1 | Name: Tunnel200 | type: external | Path: INET | path-id: 0 | PLR TCs: 0
Egress capacity: 1000 Kbps | Egress BW: 36 Kbps | Ideal:0 Kbps | over: 36 Kbps | Egress Utilization: 3 %
Ingress capacity: 1000 Kbps | Ingress BW: 31 Kbps | Ingress Utilization: 3 %
BR address: 10.2.0.1 | Name: Tunnel100 | type: external | Path: MPLS | path-id: 0 | PLR TCs: 0
Egress capacity: 1000 Kbps | Egress BW: 363 Kbps | Ideal:0 Kbps | over: 363 Kbps | Egress Utilization: 36 %
Ingress capacity: 1000 Kbps | Ingress BW: 31 Kbps | Ingress Utilization: 3 %出口の容量は 1000 Kbps、MPLS の利用率は 36 % です。容量に空きがある条件でも、TC は UN-CONTROLLED でした。流し直した後の channel の Site Prefix List は、10.1.0.0/16 (Unreachable) です(4 回目・BRANCH)。
BRANCH# show domain default master channels dscp ef
…(省略)
Channel Id: 16 Dst Site-Id: 10.1.0.1 Link Name: MPLS DSCP: ef [46] pfr-label: 0:0 | 0:0 [0x0] TCs: 0 BackupTCs: 0
Channel Created: 00:01:20 ago
…(省略)
Site Prefix List
10.1.0.1/32 (Routable)
10.1.0.0/16 (Unreachable)
…(省略)同じ時点の parent route は、Phase C と同じ 10.1.0.1/32 です(4 回目・BRANCH)。
BRANCH# show domain default border parent-route
Border Parent Route Details:
Prot: EIGRP, Network: 10.1.0.1/32, Gateway: 10.0.100.1, Interface: Tunnel100, Ref count: 3
Prot: EIGRP, Network: 10.1.0.1/32, Gateway: 10.0.200.1, Interface: Tunnel200, Ref count: 3新しい TC は、集約を戻す直前まで 5 回撮り、5 回とも UN-CONTROLLED でした。
| 撮影 | 3 回目 Clock Time / TC Learned | 4 回目 Clock Time / TC Learned |
|---|---|---|
| 流し直した後 1 回目 | 08:38:03 / 00:00:02 | 10:13:42 / 00:00:11 |
| 同 2 回目 | 08:38:55 / 00:00:54 | 10:14:27 / 00:00:56 |
| 遅延注入の前 | 08:39:11 / 00:01:10 | 10:14:48 / 00:01:17 |
| 遅延注入の後(取得スクリプトの待ち 90 秒) | 08:41:03 / 00:03:02 | 10:16:40 / 00:03:09 |
| 集約を戻す直前 | 08:43:12 / 00:05:11 | 10:18:50 / 00:05:19 |
5 回とも Destination Site ID: は 0.0.0.0 で、Route Change History に行はありません。TC の年齢が 300 秒を越えても、容量に空きがあっても、site prefix に対応する経路が無い間は制御に入りませんでした。途中の遅延注入(§11.6)の間も同じです。集約を戻す直前の TC は以下のとおりです(4 回目・BRANCH)。
BRANCH# show domain default master traffic-classes
Dst-Site-Prefix: 10.1.10.0/24 DSCP: ef [46] Traffic class id:8
Clock Time: 10:18:50 (UTC) 09/25/2026
TC Learned: 00:05:19 ago
Present State: UN-CONTROLLED at border 10.2.0.1 (An attempt to control will be made 00:00:22 later)
Destination Site ID bitmap: 0x1
Destination Site ID: 0.0.0.0
…(省略)
Dst-Site-Prefix: 10.1.10.0/24 DSCP: af11 [10] Traffic class id:6
Clock Time: 10:18:50 (UTC) 09/25/2026
TC Learned: 00:05:19 ago
Present State: UN-CONTROLLED at border 10.2.0.1 (An attempt to control will be made 00:00:22 later)
Destination Site ID bitmap: 0x1
Destination Site ID: 0.0.0.0
…(省略)集約を D と同じ行で戻しました(4 回目・HUB-BR)。
HUB-BR# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
HUB-BR(config)#interface Tunnel100
HUB-BR(config-if)# ip summary-address eigrp 100 10.1.0.0 255.255.0.0
HUB-BR(config-if)#exit
HUB-BR(config)#interface Tunnel200
HUB-BR(config-if)# ip summary-address eigrp 100 10.1.0.0 255.255.0.0
HUB-BR(config-if)#exit
HUB-BR(config)#end
HUB-BR#経路表は集約の 1 本になり、同じ TC id(8 / 6)が制御に入りました(4 回目・BRANCH)。
BRANCH# show ip route eigrp
…(省略)
10.0.0.0/8 is variably subnetted, 8 subnets, 3 masks
D p 10.1.0.0/16 [90/3840256] via 10.0.100.1, 00:00:09, Tunnel100
BRANCH# show domain default master traffic-classes
Dst-Site-Prefix: 10.1.10.0/24 DSCP: ef [46] Traffic class id:8
Clock Time: 10:19:22 (UTC) 09/25/2026
TC Learned: 00:05:51 ago
Present State: CONTROLLED
Current Performance Status: in-policy
Current Service Provider: MPLS since 00:00:10 (hold until 79 sec)
Previous Service Provider: Unknown
(Network event - traffic class will be re-evaluated 00:02:53 later)
BW Used: 108 Kbps
…(省略)遷移の行が入った撮影は以下のとおりです(4 回目・BRANCH)。
BRANCH# show domain default master traffic-classes
Dst-Site-Prefix: 10.1.10.0/24 DSCP: ef [46] Traffic class id:8
Clock Time: 10:19:27 (UTC) 09/25/2026
TC Learned: 00:05:56 ago
Present State: CONTROLLED
Current Performance Status: in-policy
Current Service Provider: MPLS since 00:00:15 (hold until 74 sec)
Previous Service Provider: Unknown
(Network event - traffic class will be re-evaluated 00:02:48 later)
BW Used: 108 Kbps
Present WAN interface: Tunnel100 in Border 10.2.0.1
…(省略)
Reason for Latest Route Change: Uncontrolled to Controlled Transition
Route Change History:
Date and Time Previous Exit Current Exit Reason
1: 10:19:11 (UTC) 09/25/26 None(0:0|0:0)/0.0.0.0/None (Ch:0) MPLS(0:0|0:0)/10.2.0.1/Tu100 (Ch:16) Uncontrolled to Controlled Transition
…(省略)
Dst-Site-Prefix: 10.1.10.0/24 DSCP: af11 [10] Traffic class id:6
Clock Time: 10:19:27 (UTC) 09/25/2026
TC Learned: 00:05:56 ago
Present State: CONTROLLED
Current Performance Status: in-policy
Current Service Provider: INET since 00:00:15 (hold until 74 sec)
Previous Service Provider: Unknown
(Network event - traffic class will be re-evaluated 00:02:48 later)
BW Used: 143 Kbps
Present WAN interface: Tunnel200 in Border 10.2.0.1
…(省略)
Reason for Latest Route Change: Uncontrolled to Controlled Transition
Route Change History:
Date and Time Previous Exit Current Exit Reason
1: 10:19:11 (UTC) 09/25/26 None(0:0|0:0)/0.0.0.0/None (Ch:0) INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:13) Uncontrolled to Controlled Transition
…(省略)2 つの run の時刻を並べます(どちらも BRANCH の時計)。
| run | 戻す直前 | 戻して直後の TC | 集約経路の年齢と直後の TC → 集約経路を入れた時刻の上限 | 遷移 |
|---|---|---|---|---|
| 3 回目 | 08:43:12 UN-CONTROLLED | 08:43:41 既に CONTROLLED | 9 秒・08:43:45 → 08:43:36 | 08:43:39 |
| 4 回目 | 10:18:50 UN-CONTROLLED | 10:19:18 既に CONTROLLED | 9 秒・10:19:22 → 10:19:13 | 10:19:11 |
3 回目の遷移(08:43:39)は、集約経路を入れた時刻の上限(08:43:36)より 3 秒後で、3 回目では集約を戻した後に制御に入ったと言えます。3 回目の該当の行は以下のとおりです(3 回目・BRANCH)。
BRANCH# show ip route eigrp
…(省略)
10.0.0.0/8 is variably subnetted, 8 subnets, 3 masks
D p 10.1.0.0/16 [90/3840256] via 10.0.100.1, 00:00:09, Tunnel100同じ 3 回目の TC の Route Change History は以下のとおりです(3 回目・BRANCH)。
BRANCH# show domain default master traffic-classes
…(省略)
1: 08:43:39 (UTC) 09/25/26 None(0:0|0:0)/0.0.0.0/None (Ch:0) MPLS(0:0|0:0)/10.2.0.1/Tu100 (Ch:8) Uncontrolled to Controlled Transition
…(省略)
1: 08:43:39 (UTC) 09/25/26 None(0:0|0:0)/0.0.0.0/None (Ch:0) INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:6) Uncontrolled to Controlled Transition
…(省略)4 回目の遷移(10:19:11)は、集約経路を入れた時刻の上限(10:19:13)より前の値です。秒単位の印字では、4 回目の遷移が集約を戻した後だったかは決まりません。4 回目で投入との前後が撮れているのは、Phase D の側です(§8.3)。
もう 1 点、集約を戻す前の最後の channel(遅延注入の後の撮影)は、この注入の TCA の履歴を持っていました(§11.6)。3 回目の K の結果は、channel の TCA の履歴がある状態での観測です。
8.5 制御に入る前提のまとめ
本ラボで、集約の投入と制御に入った時刻との前後を機器の時計で決められたのは、4 回目の Phase D(集約を入れた後)と 3 回目の Phase K(集約を戻した後)の 2 か所です。逆向きには、Phase C(両 run・容量 100 Kbps)と Phase K(両 run とも 5 回の撮影すべて・容量 1000 Kbps・最後の撮影で年齢 300 秒超)で、site prefix に対応する経路が無い間は制御に入りませんでした。hub の site prefix に対応する経路は、本ラボの観測の上で制御に入る前提でした。
一方で、3 回目の Phase D は経路が立っても 300 秒以上制御に入らなかったので、前提がそろえば必ず入るとは言えません。3 回目で制御に入ったのは、流量を下げた Phase D-cap のときです(§9)。
9. 出口の容量と TC の置き場所
9.1 出典: 出口の容量としての bandwidth
2014 年の Workflow Guide は、トンネルの bandwidth が PfR の出口の容量になり、既定は 100 kbps で、サービスプロバイダの帯域に合わせて設定するものだと書きます。
“bandwidth 100000” indicates the bandwidth capacity on the tunnel interface, and this BW exported to Hub MC each 30 seconds, and used for bandwidth control and optimization. By default, it is 100kbps, and should be configured based on the bandwidth provided by Service Provider.
本ラボの csr1000v 17.03.08a のトンネルの既定の bandwidth は 100 Kbit(§5 の minimum bandwidth is 100 Kbit)で、PfR の出口の表示は Egress capacity: 100 Kbps でした(§8.2)。6-7 §14 が引いた「EIGRP を使うなら 1000 以上」という推奨の値を、6-7 は実機に入れていません。本ラボは Phase E で両端の両トンネルに bandwidth 1000 を入れ、機体の throughput(1000 kbps)と同じ値にしました。
出口の選び方について、17.x のガイドは空き帯域で並べてから path-preference の順に並べ直すと書き、同じ段落の例で、fallback の候補の中では空き帯域が悪いときに次の候補を考慮すると書いています。
During Policy Decision Point (PDP), the exits are first sorted on the available bandwidth and then a second sort algorithm places all primary path preferences in the front of the list followed by fallback preferences.
If you have a configuration of primary Internet Service Provider (ISP) 1 and ISP2 and ISP3 as fallback, during policy decision, ISP1 is selected as the primary channel and if ISP2 is equally good it is selected as the fallback.
ISP3 is considered only if ISP2 is bad in bandwidth availability.
空き帯域は並べ方にも、fallback の候補の選び方(例の範囲)にも使われます。ただし、何を「悪い」とするか、容量を超えた出口を候補から外すか、容量を超えると制御に入らないのかは、どの文も書いていません。Cisco Press の書籍は、next-hop の上書きの根拠に性能と出口の利用率を並べて挙げています。
As an adjunct, PfR uses the next-hop information from the routing protocol and overrides it based on real-time performance and link utilization ratio.
機器は 95% Bandwidth Check: Enabled と印字しますが(§6.2)、この項目を定義した文は §20 の資料に見当たりません。ここまでが出典です。
9.2 実測: 2 つの run の並び
§8 で見たとおり、Phase D の結果が 2 つの run で分かれたので、D の後の撮り方も run ごとに違います。先に全体を表にまとめます。
| Phase | 4 回目(D で制御に入った run) | 3 回目(D で制御に入らなかった run) |
|---|---|---|
| D(集約) | 09:28:33 に EF / AF11 とも INET。投入の直前の出口は INET 36 % / MPLS 363 %、置いた後は INET 172 % / MPLS 214 % | 325 秒後も UN-CONTROLLED。MPLS 351 % |
| D-hold(何も変えない) | 印字上の再評価の予定時刻(09:31:35)をまたいで EF は INET のまま | UN-CONTROLLED のまま |
| D-route(経路の更新だけ) | EF は INET のまま | UN-CONTROLLED のまま |
| D-cap(流量だけを下げる) | 09:40:38 に EF が INET から MPLS へ移った | 08:06:32 に制御に入り、EF = MPLS / AF11 = INET |
| D-cap(流量を戻す) | EF は MPLS のまま | EF は MPLS のまま |
E(bandwidth 1000) | E の前から EF は MPLS。E での移動は撮れていない | 同左 |
9.3 4 回目: 容量 100 Kbps の INET への配置
4 回目の Phase D で TC を置いた後の出口は以下のとおりです(BRANCH。遷移 09:28:33 の 26 秒後の TC の撮影の直後)。
BRANCH# show domain default master exits
BR address: 10.2.0.1 | Name: Tunnel200 | type: external | Path: INET | path-id: 0 | PLR TCs: 0
Egress capacity: 100 Kbps | Egress BW: 172 Kbps | Ideal:0 Kbps | over: 172 Kbps | Egress Utilization: 172 %
Ingress capacity: 100 Kbps | Ingress BW: 32 Kbps | Ingress Utilization: 32 %
DSCP: af11[10]-Number of Traffic Classes[1]
DSCP: ef[46]-Number of Traffic Classes[1]
BR address: 10.2.0.1 | Name: Tunnel100 | type: external | Path: MPLS | path-id: 0 | PLR TCs: 0
Egress capacity: 100 Kbps | Egress BW: 214 Kbps | Ideal:0 Kbps | over: 214 Kbps | Egress Utilization: 214 %
Ingress capacity: 100 Kbps | Ingress BW: 31 Kbps | Ingress Utilization: 31 %
--------------------------------------------------------------------------------容量 100 Kbps の INET に、EF と AF11(BW Used の計 108 + 143 = 251 Kbps)が置かれました。集約の投入の直前(09:28:03。遷移の 30 秒前で、そこから流量は変えていません)の出口は INET 36 % / MPLS 363 % で、PfR は EF を、容量を超えた primary の MPLS ではなく fallback の INET に置いています。置いた後の INET は 172 %、D-hold では 250〜259 % になりました。判定に使った値(その時点の利用率か、BW Used を足した見込みか)は印字されないので、容量を超えた出口を避けたかどうかは、この観測からは決まりません。
9.4 4 回目: 状態を変えない待機(D-hold)
D-hold では、何も変えずに 30 秒ごとに TC と出口を撮りました。5 回目の撮影では、次の再評価までの残り時間が 21 秒と印字されています(4 回目・BRANCH)。
BRANCH# show domain default master traffic-classes
Dst-Site-Prefix: 10.1.10.0/24 DSCP: ef [46] Traffic class id:2
Clock Time: 09:31:14 (UTC) 09/25/2026
TC Learned: 00:04:13 ago
Present State: CONTROLLED
Current Performance Status: in-policy
Current Service Provider: INET since 00:02:40
Previous Service Provider: Unknown
(A fallback provider. Primary provider will be re-evaluated 00:00:21 later)
BW Used: 108 Kbps
Present WAN interface: Tunnel200 in Border 10.2.0.1
Present Channel (primary): 3 INET pfr-label:0:0 | 0:0 [0x0]
Backup Channel: none
…(省略)30 秒後の 6 回目では、残り時間が 2 分 52 秒に戻っています(4 回目・BRANCH)。
BRANCH# show domain default master traffic-classes
Dst-Site-Prefix: 10.1.10.0/24 DSCP: ef [46] Traffic class id:2
Clock Time: 09:31:44 (UTC) 09/25/2026
TC Learned: 00:04:43 ago
Present State: CONTROLLED
Current Performance Status: in-policy
Current Service Provider: INET since 00:03:10
Previous Service Provider: Unknown
(A fallback provider. Primary provider will be re-evaluated 00:02:52 later)
BW Used: 108 Kbps
Present WAN interface: Tunnel200 in Border 10.2.0.1
Present Channel (primary): 3 INET pfr-label:0:0 | 0:0 [0x0]
Backup Channel: none
…(省略)同じ 6 回目の撮影の出口は以下のとおりです(4 回目・BRANCH)。
BRANCH# show domain default master exits
BR address: 10.2.0.1 | Name: Tunnel200 | type: external | Path: INET | path-id: 0 | PLR TCs: 0
Egress capacity: 100 Kbps | Egress BW: 250 Kbps | Ideal:0 Kbps | over: 250 Kbps | Egress Utilization: 250 %
Ingress capacity: 100 Kbps | Ingress BW: 30 Kbps | Ingress Utilization: 30 %
DSCP: af11[10]-Number of Traffic Classes[1]
DSCP: ef[46]-Number of Traffic Classes[1]
BR address: 10.2.0.1 | Name: Tunnel100 | type: external | Path: MPLS | path-id: 0 | PLR TCs: 0
Egress capacity: 100 Kbps | Egress BW: 106 Kbps | Ideal:0 Kbps | over: 106 Kbps | Egress Utilization: 106 %
Ingress capacity: 100 Kbps | Ingress BW: 30 Kbps | Ingress Utilization: 30 %印字の上では 09:31:14 + 21 秒 = 09:31:35 に次の再評価の予定があり、その後の 09:31:44 には次の予定が 09:34:36 になっています。予定の時刻をまたいでも、EF は INET に留まりました。Route Change History の 1 行目は、6 回の撮影すべてで 09:28:33 のままです。
D-hold の最後の撮影(09:32:00)は以下のとおりです(4 回目・BRANCH)。(hold until …) の印字は消えています。
BRANCH# show domain default master traffic-classes
Dst-Site-Prefix: 10.1.10.0/24 DSCP: ef [46] Traffic class id:2
Clock Time: 09:32:00 (UTC) 09/25/2026
TC Learned: 00:04:59 ago
Present State: CONTROLLED
Current Performance Status: in-policy
Current Service Provider: INET since 00:03:26
Previous Service Provider: Unknown
(A fallback provider. Primary provider will be re-evaluated 00:02:36 later)
BW Used: 108 Kbps
Present WAN interface: Tunnel200 in Border 10.2.0.1
Present Channel (primary): 3 INET pfr-label:0:0 | 0:0 [0x0]
Backup Channel: none
Destination Site ID bitmap: 0x1
Destination Site ID: 10.1.0.1 (Active)
Class-Sequence in use: 10
Class Name: VOICE using policy voice
BW Updated: 00:00:29 ago
Reason for Latest Route Change: Uncontrolled to Controlled Transition
Route Change History:
Date and Time Previous Exit Current Exit Reason
1: 09:28:33 (UTC) 09/25/26 None(0:0|0:0)/0.0.0.0/None (Ch:0) INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:3) Uncontrolled to Controlled Transition
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
…(省略)同じ時点の出口は以下のとおりです(4 回目・BRANCH)。
BRANCH# show domain default master exits
BR address: 10.2.0.1 | Name: Tunnel200 | type: external | Path: INET | path-id: 0 | PLR TCs: 0
Egress capacity: 100 Kbps | Egress BW: 258 Kbps | Ideal:0 Kbps | over: 258 Kbps | Egress Utilization: 258 %
Ingress capacity: 100 Kbps | Ingress BW: 31 Kbps | Ingress Utilization: 31 %
DSCP: af11[10]-Number of Traffic Classes[1]
DSCP: ef[46]-Number of Traffic Classes[1]
BR address: 10.2.0.1 | Name: Tunnel100 | type: external | Path: MPLS | path-id: 0 | PLR TCs: 0
Egress capacity: 100 Kbps | Egress BW: 109 Kbps | Ideal:0 Kbps | over: 109 Kbps | Egress Utilization: 109 %
Ingress capacity: 100 Kbps | Ingress BW: 31 Kbps | Ingress Utilization: 31 %
--------------------------------------------------------------------------------D-hold の出口は、1 回目(09:29:14)が MPLS 214 % / INET 172 %、2 回目以降の 5 回が MPLS 105〜109 % / INET 250〜259 % でした。MPLS の空き(容量 − Egress BW)は、EF の BW Used(108 Kbps)に足りない状態が続いています。syslog に TC_PATH_CHG は出ず、PC-B の traceroute の EF の hop 2 は 10.0.200.1(INET)で、TC の置き場所と一致しました(4 回目・PC-B)。
PC-B $ traceroute -n -m 4 -q 1 -w 2 -t 184 10.1.10.10
traceroute to 10.1.10.10 (10.1.10.10), 4 hops max, 46 byte packets
1 10.2.10.1 0.674 ms
2 10.0.200.1 1.534 ms
3 10.1.10.10 1.518 ms
PC-B $ traceroute -n -m 4 -q 1 -w 2 -t 40 10.1.10.10
traceroute to 10.1.10.10 (10.1.10.10), 4 hops max, 46 byte packets
1 10.2.10.1 0.766 ms
2 10.0.200.1 0.912 ms
3 10.1.10.10 1.285 ms
PC-B $ traceroute -n -m 4 -q 1 -w 2 -t 0 10.1.10.10
traceroute to 10.1.10.10 (10.1.10.10), 4 hops max, 46 byte packets
1 10.2.10.1 0.471 ms
2 10.0.100.1 1.528 ms
3 10.1.10.10 1.341 ms9.5 4 回目: 経路の更新だけの対照(D-route)
D-route は、容量も流量も変えずに EIGRP の経路の更新だけを 2 回起こす対照です。BRANCH の Tunnel100 に delay 5001 を入れ(4 回目・BRANCH)、
BRANCH# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
BRANCH(config)#interface Tunnel100
BRANCH(config-if)# delay 5001
BRANCH(config-if)#exit
BRANCH(config)#end
BRANCH#120 秒以上待ってから no delay で戻しました(4 回目・BRANCH)。
BRANCH# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
BRANCH(config)#interface Tunnel100
BRANCH(config-if)# no delay
BRANCH(config-if)#exit
BRANCH(config)#end
BRANCH#集約経路の metric は 26880256 → 26880512 → 26880256 と変わって戻りました。delay 5001 の後は以下のとおりです(4 回目・BRANCH)。
BRANCH# show ip route eigrp
…(省略)
10.0.0.0/8 is variably subnetted, 8 subnets, 3 masks
D p 10.1.0.0/16 [90/26880512] via 10.0.100.1, 00:02:12, Tunnel100no delay の後は以下のとおりです(4 回目・BRANCH)。
BRANCH# show ip route eigrp
…(省略)
10.0.0.0/8 is variably subnetted, 8 subnets, 3 masks
D p 10.1.0.0/16 [90/26880256] via 10.0.100.1, 00:02:12, Tunnel100BRANCH の syslog の %SYS-5-CONFIG_I で読むと、2 つの投入の時刻は 09:32:19.243 と 09:34:50.514 でした(4 回目)。出口の容量は 100 Kbps のままです(4 回目・BRANCH)。
BRANCH# show domain default master exits
BR address: 10.2.0.1 | Name: Tunnel200 | type: external | Path: INET | path-id: 0 | PLR TCs: 0
Egress capacity: 100 Kbps | Egress BW: 258 Kbps | Ideal:0 Kbps | over: 258 Kbps | Egress Utilization: 258 %
Ingress capacity: 100 Kbps | Ingress BW: 31 Kbps | Ingress Utilization: 31 %
DSCP: af11[10]-Number of Traffic Classes[1]
DSCP: ef[46]-Number of Traffic Classes[1]
BR address: 10.2.0.1 | Name: Tunnel100 | type: external | Path: MPLS | path-id: 0 | PLR TCs: 0
Egress capacity: 100 Kbps | Egress BW: 109 Kbps | Ideal:0 Kbps | over: 109 Kbps | Egress Utilization: 109 %
Ingress capacity: 100 Kbps | Ingress BW: 31 Kbps | Ingress Utilization: 31 %delay 5001 の後の撮影でも、戻す直前の撮影でも、EF は INET のままです(4 回目・BRANCH)。
BRANCH# show domain default master traffic-classes
Dst-Site-Prefix: 10.1.10.0/24 DSCP: ef [46] Traffic class id:2
Clock Time: 09:34:30 (UTC) 09/25/2026
TC Learned: 00:07:29 ago
Present State: CONTROLLED
Current Performance Status: in-policy
Current Service Provider: INET since 00:05:56
Previous Service Provider: Unknown
(A fallback provider. Primary provider will be re-evaluated 00:00:06 later)
BW Used: 108 Kbps
Present WAN interface: Tunnel200 in Border 10.2.0.1
Present Channel (primary): 3 INET pfr-label:0:0 | 0:0 [0x0]
Backup Channel: none
…(省略)no delay を入れる直前(09:34:39)は以下のとおりです(4 回目・BRANCH)。
BRANCH# show domain default master traffic-classes
Dst-Site-Prefix: 10.1.10.0/24 DSCP: ef [46] Traffic class id:2
Clock Time: 09:34:39 (UTC) 09/25/2026
TC Learned: 00:07:38 ago
Present State: CONTROLLED
Current Performance Status: in-policy
Current Service Provider: INET since 00:06:05
Previous Service Provider: Unknown
(A fallback provider. Primary provider will be re-evaluated 00:02:58 later)
BW Used: 108 Kbps
Present WAN interface: Tunnel200 in Border 10.2.0.1
Present Channel (primary): 3 INET pfr-label:0:0 | 0:0 [0x0]
Backup Channel: none
…(省略)経路の更新だけでは、EF は MPLS へ動きませんでした。2 つの撮影から、再評価の予定は 09:34:36 の次が 09:37:37 と読めます。戻した後の traceroute でも EF の hop 2 は 10.0.200.1 で、syslog に TC_PATH_CHG は出ていません(4 回目・PC-B)。
PC-B $ traceroute -n -m 4 -q 1 -w 2 -t 184 10.1.10.10
traceroute to 10.1.10.10 (10.1.10.10), 4 hops max, 46 byte packets
1 10.2.10.1 1.600 ms
2 10.0.200.1 1.439 ms
3 10.1.10.10 1.697 ms9.6 4 回目: 流量だけを下げる対照(D-cap)
D-cap は、bandwidth を変えずに MPLS に載る流量を下げる対照です。DEFAULT を止め、EF を 16 kbps(200 バイト = 10 pps)に下げ、INET に置かれていた AF11 は元のまま流し直しました(4 回目。端末のエコーは省略)。
PC-H $ pkill iperf 2>/dev/null; sleep 1; rm -f /tmp/s*.log; nohup iperf -s -u -p 5001 -i 10 >/tmp/s5001.log 2>&1 & nohup iperf -s -u -p 5002 -i 10 >/tmp/s5002.log 2>&1 & nohup iperf -s -u -p 5003 -i 10 >/tmp/s5003.log 2>&1 & echo servers-started
…(省略)
servers-startedPC-B(4 回目)では EF と AF11 の 2 本だけを流し直しました。
PC-B $ pkill iperf 2>/dev/null; sleep 1; rm -f /tmp/c*.log; nohup iperf -c 10.1.10.10 -u -p 5001 -S 0xb8 -b 16k -l 200 -t 19800 >/tmp/c5001.log 2>&1 & nohup iperf -c 10.1.10.10 -u -p 5002 -S 0x28 -b 128k -l 1000 -t 19800 >/tmp/c5002.log 2>&1 & echo clients-started
…(省略)
clients-startedEF の元のレートでは、EF の BW Used(108 Kbps)だけで MPLS の容量 100 Kbps を超えるので、EF 自身のレートも下げています。流し直しは数秒で終わり、TC は ageout していません。流し直しの前の 09:37:13 と後の 09:37:21 で、EF の TC id は 2 のまま、TC Learned: は 00:10:12 → 00:10:20 と続いていました。PC-H の受信は以下のとおりです(4 回目・PC-H)。
PC-H $ tail -4 /tmp/s5001.log
[ 2] 180.00-190.00 sec 19.5 KBytes 16.0 Kbits/sec 0.143 ms 0/100 (0%)
[ 2] 190.00-200.00 sec 19.5 KBytes 16.0 Kbits/sec 0.194 ms 0/100 (0%)
[ 2] 200.00-210.00 sec 19.5 KBytes 16.0 Kbits/sec 0.158 ms 0/100 (0%)
[ 2] 210.00-220.00 sec 19.5 KBytes 16.0 Kbits/sec 0.144 ms 0/100 (0%)
PC-H $ tail -4 /tmp/s5002.log
[ 2] 180.00-190.00 sec 156 KBytes 128 Kbits/sec 0.214 ms 0/160 (0%)
[ 2] 190.00-200.00 sec 155 KBytes 127 Kbits/sec 0.326 ms 0/159 (0%)
[ 2] 200.00-210.00 sec 157 KBytes 129 Kbits/sec 0.171 ms 0/161 (0%)
[ 2] 210.00-220.00 sec 156 KBytes 128 Kbits/sec 0.134 ms 0/160 (0%)
PC-H $ tail -4 /tmp/s5003.log
------------------------------------------------------------
[ 1] local 10.1.10.10 port 5003 connected with 10.2.10.10 port 44594
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 1] 0.00-0.87 sec 7.81 KBytes 73.2 Kbits/sec 0.068 ms 5091/5099 (1e+02%)EF は 10 秒ごとに 100 個(10 pps)を受け、DEFAULT(5003)は 10 秒ごとの受信の行が無くなりました。下げた直後の 09:37:33 の撮影では、EF の BW Used はまだ 81 Kbps、MPLS は 105 % でした(4 回目・BRANCH)。
BRANCH# show domain default master traffic-classes
Dst-Site-Prefix: 10.1.10.0/24 DSCP: ef [46] Traffic class id:2
Clock Time: 09:37:33 (UTC) 09/25/2026
TC Learned: 00:10:32 ago
Present State: CONTROLLED
Current Performance Status: in-policy
Current Service Provider: INET since 00:08:59
Previous Service Provider: Unknown
(A fallback provider. Primary provider will be re-evaluated 00:00:04 later)
BW Used: 81 Kbps
Present WAN interface: Tunnel200 in Border 10.2.0.1
Present Channel (primary): 3 INET pfr-label:0:0 | 0:0 [0x0]
Backup Channel: none
…(省略)
BRANCH# show domain default master exits
BR address: 10.2.0.1 | Name: Tunnel200 | type: external | Path: INET | path-id: 0 | PLR TCs: 0
Egress capacity: 100 Kbps | Egress BW: 250 Kbps | Ideal:0 Kbps | over: 250 Kbps | Egress Utilization: 250 %
Ingress capacity: 100 Kbps | Ingress BW: 30 Kbps | Ingress Utilization: 30 %
DSCP: af11[10]-Number of Traffic Classes[1]
DSCP: ef[46]-Number of Traffic Classes[1]
BR address: 10.2.0.1 | Name: Tunnel100 | type: external | Path: MPLS | path-id: 0 | PLR TCs: 0
Egress capacity: 100 Kbps | Egress BW: 105 Kbps | Ideal:0 Kbps | over: 105 Kbps | Egress Utilization: 105 %
Ingress capacity: 100 Kbps | Ingress BW: 30 Kbps | Ingress Utilization: 30 %30 秒後の 09:38:03 では、EF の BW Used は 27 Kbps、MPLS は 43 % です(4 回目・BRANCH)。
BRANCH# show domain default master traffic-classes
Dst-Site-Prefix: 10.1.10.0/24 DSCP: ef [46] Traffic class id:2
Clock Time: 09:38:03 (UTC) 09/25/2026
TC Learned: 00:11:02 ago
Present State: CONTROLLED
Current Performance Status: in-policy
Current Service Provider: INET since 00:09:29
Previous Service Provider: Unknown
(A fallback provider. Primary provider will be re-evaluated 00:02:35 later)
BW Used: 27 Kbps
Present WAN interface: Tunnel200 in Border 10.2.0.1
Present Channel (primary): 3 INET pfr-label:0:0 | 0:0 [0x0]
Backup Channel: none
…(省略)
BRANCH# show domain default master exits
BR address: 10.2.0.1 | Name: Tunnel200 | type: external | Path: INET | path-id: 0 | PLR TCs: 0
Egress capacity: 100 Kbps | Egress BW: 177 Kbps | Ideal:0 Kbps | over: 177 Kbps | Egress Utilization: 177 %
Ingress capacity: 100 Kbps | Ingress BW: 30 Kbps | Ingress Utilization: 30 %
DSCP: af11[10]-Number of Traffic Classes[1]
DSCP: ef[46]-Number of Traffic Classes[1]
BR address: 10.2.0.1 | Name: Tunnel100 | type: external | Path: MPLS | path-id: 0 | PLR TCs: 0
Egress capacity: 100 Kbps | Egress BW: 43 Kbps | Ideal:0 Kbps | over: 43 Kbps | Egress Utilization: 43 %
Ingress capacity: 100 Kbps | Ingress BW: 32 Kbps | Ingress Utilization: 32 %09:37:33 の撮影は次の再評価まで 4 秒(09:37:37)、09:38:03 の撮影は 2 分 35 秒(09:40:38)と印字しています。09:37:37 の予定の前後は、EF 81 Kbps・MPLS 105 % の撮影と、27 Kbps・43 % の撮影に挟まれており、どちらの値のときに評価されたかは撮れていません。EF は 09:37:37 の後も INET に留まり、09:40:38 の撮影では残り 1 秒と印字しています(4 回目・BRANCH)。
BRANCH# show domain default master traffic-classes
Dst-Site-Prefix: 10.1.10.0/24 DSCP: ef [46] Traffic class id:2
Clock Time: 09:40:38 (UTC) 09/25/2026
TC Learned: 00:13:37 ago
Present State: CONTROLLED
Current Performance Status: in-policy
Current Service Provider: INET since 00:12:04
Previous Service Provider: Unknown
(A fallback provider. Primary provider will be re-evaluated 00:00:01 later)
BW Used: 27 Kbps
Present WAN interface: Tunnel200 in Border 10.2.0.1
Present Channel (primary): 3 INET pfr-label:0:0 | 0:0 [0x0]
Backup Channel: none
Destination Site ID bitmap: 0x1
…(省略)
BRANCH# show domain default master exits
BR address: 10.2.0.1 | Name: Tunnel200 | type: external | Path: INET | path-id: 0 | PLR TCs: 0
Egress capacity: 100 Kbps | Egress BW: 178 Kbps | Ideal:0 Kbps | over: 151 Kbps | Egress Utilization: 178 %
Ingress capacity: 100 Kbps | Ingress BW: 31 Kbps | Ingress Utilization: 31 %
DSCP: af11[10]-Number of Traffic Classes[1]
BR address: 10.2.0.1 | Name: Tunnel100 | type: external | Path: MPLS | path-id: 0 | PLR TCs: 0
Egress capacity: 100 Kbps | Egress BW: 36 Kbps | Ideal:0 Kbps | over: 36 Kbps | Egress Utilization: 36 %
Ingress capacity: 100 Kbps | Ingress BW: 31 Kbps | Ingress Utilization: 31 %
DSCP: ef[46]-Number of Traffic Classes[1]そして 09:40:38 に、EF は INET から MPLS へ移りました(4 回目・BRANCH)。
BRANCH# show domain default master traffic-classes
Dst-Site-Prefix: 10.1.10.0/24 DSCP: ef [46] Traffic class id:2
Clock Time: 09:40:53 (UTC) 09/25/2026
TC Learned: 00:13:52 ago
Present State: CONTROLLED
Current Performance Status: in-policy
Current Service Provider: MPLS since 00:00:15 (hold until 74 sec)
Previous Service Provider: INET pfr-label: 0:0 | 0:0 [0x0] for 724 sec
BW Used: 27 Kbps
Present WAN interface: Tunnel100 in Border 10.2.0.1
Present Channel (primary): 4 MPLS pfr-label:0:0 | 0:0 [0x0]
Backup Channel: 3 INET pfr-label:0:0 | 0:0 [0x0]
Destination Site ID bitmap: 0x1
Destination Site ID: 10.1.0.1 (Active)
Class-Sequence in use: 10
Class Name: VOICE using policy voice
BW Updated: 00:00:22 ago
Reason for Latest Route Change: Move to higher preferred link, same active/standby status NH
Route Change History:
Date and Time Previous Exit Current Exit Reason
1: 09:40:38 (UTC) 09/25/26 INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:3) MPLS(0:0|0:0)/10.2.0.1/Tu100 (Ch:4) Move to higher preferred link, same active/standby status NH
2: 09:28:33 (UTC) 09/25/26 None(0:0|0:0)/0.0.0.0/None (Ch:0) INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:3) Uncontrolled to Controlled Transition
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
…(省略)syslog にも同じ秒の TC_PATH_CHG が出ています(4 回目・BRANCH)。
BRANCH# show logging | include DOMAIN|TCA|PFR|MC|BR-
*Sep 25 09:27:01.015: %DOMAIN-6-MC_TC_ID_RESET: Master Controller traffic class id counter got reset: site_id=10.2.0.1, domain=default, vrf=default
*Sep 25 09:40:38.585: %DOMAIN-5-TC_PATH_CHG: Traffic class Path Changed. Details: Instance=0: VRF=default: Source Site ID=10.2.0.1: Destination Site ID=10.1.0.1: Reason=Move to higher preferred link, same active/standby status NH: TCA-ID=1: Policy Violated=VOICE: TC=[Site id=10.1.0.1, TC ID=2, Site prefix=10.1.10.0/24, DSCP=ef(46), App ID=0]: Original Exit=[CHAN-ID=3, BR-IP=10.2.0.1, DSCP=ef[46], Interface=Tunnel200, Path=[label=0:0 | 0:0 [0x0]]]: New Exit=[CHAN-ID=4, BR-IP=10.2.0.1, DSCP=ef[46], Interface=Tunnel100, Path=MPLS[label=0:0 | 0:0 [0x0]]]PC-B の traceroute の EF の hop 2 も 10.0.100.1 に変わりました(4 回目・PC-B)。
PC-B $ traceroute -n -m 4 -q 1 -w 2 -t 184 10.1.10.10
traceroute to 10.1.10.10 (10.1.10.10), 4 hops max, 46 byte packets
1 10.2.10.1 0.491 ms
2 10.0.100.1 1.096 ms
3 10.1.10.10 1.348 ms
PC-B $ traceroute -n -m 4 -q 1 -w 2 -t 40 10.1.10.10
traceroute to 10.1.10.10 (10.1.10.10), 4 hops max, 46 byte packets
1 10.2.10.1 0.447 ms
2 10.0.200.1 0.900 ms
3 10.1.10.10 2.525 ms
PC-B $ traceroute -n -m 4 -q 1 -w 2 -t 0 10.1.10.10
traceroute to 10.1.10.10 (10.1.10.10), 4 hops max, 46 byte packets
1 10.2.10.1 0.609 ms
2 10.0.100.1 0.980 ms
3 10.1.10.10 1.542 msRoute Change History・syslog・traceroute の 3 つがそろった移動です。理由の文字列は Move to higher preferred link, same active/standby status NH でした。
4 回目では、bandwidth を変えずに MPLS に載る流量と EF 自身のレートを下げた後の再評価で、EF が MPLS へ移りました。印字上の再評価の予定は 09:31:35 / 09:34:36 / 09:37:37 / 09:40:38 と約 3 分おきに並び、EF は最初の 3 つの予定では INET に留まり、4 つ目の予定(09:40:38)と同じ秒に MPLS へ移っています。ただし D-cap では流量・EF のレート・D からの経過時間が同時に変わっているので、どの量が効いたかは切り分けていません。
流量を元の 3 本に戻しました(4 回目・PC-B。端末のエコーは省略)。
PC-B $ pkill iperf 2>/dev/null; sleep 1; rm -f /tmp/c*.log; nohup iperf -c 10.1.10.10 -u -p 5001 -S 0xb8 -b 64k -l 200 -t 19800 >/tmp/c5001.log 2>&1 & nohup iperf -c 10.1.10.10 -u -p 5002 -S 0x28 -b 128k -l 1000 -t 19800 >/tmp/c5002.log 2>&1 & nohup iperf -c 10.1.10.10 -u -p 5003 -S 0x00 -b 64k -l 1000 -t 19800 >/tmp/c5003.log 2>&1 & echo clients-started
…(省略)
clients-started戻した後の 2 回の撮影(09:41:42 / 09:45:10)とも、EF は MPLS のままで、Route Change History の 1 行目は 09:40:38 のままでした。2 回目は以下のとおりです(4 回目・BRANCH)。
BRANCH# show domain default master traffic-classes
Dst-Site-Prefix: 10.1.10.0/24 DSCP: ef [46] Traffic class id:2
Clock Time: 09:45:10 (UTC) 09/25/2026
TC Learned: 00:18:09 ago
Present State: CONTROLLED
Current Performance Status: in-policy
Current Service Provider: MPLS since 00:04:31
Previous Service Provider: INET pfr-label: 0:0 | 0:0 [0x0] for 724 sec
BW Used: 108 Kbps
Present WAN interface: Tunnel100 in Border 10.2.0.1
Present Channel (primary): 4 MPLS pfr-label:0:0 | 0:0 [0x0]
Backup Channel: 3 INET pfr-label:0:0 | 0:0 [0x0]
Destination Site ID bitmap: 0x1
Destination Site ID: 10.1.0.1 (Active)
Class-Sequence in use: 10
Class Name: VOICE using policy voice
BW Updated: 00:00:09 ago
Reason for Latest Route Change: Move to higher preferred link, same active/standby status NH
Route Change History:
Date and Time Previous Exit Current Exit Reason
1: 09:40:38 (UTC) 09/25/26 INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:3) MPLS(0:0|0:0)/10.2.0.1/Tu100 (Ch:4) Move to higher preferred link, same active/standby status NH
2: 09:28:33 (UTC) 09/25/26 None(0:0|0:0)/0.0.0.0/None (Ch:0) INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:3) Uncontrolled to Controlled Transition
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
…(省略)9.7 3 回目: 流量を下げた後の制御開始
3 回目の run は、D-hold と D-route の間も UN-CONTROLLED のままでした。D-hold の最後(08:00:32)も制御に入らず、D-hold の間の MPLS の利用率は 242〜468 % でした。D-route では metric が 4 回目と同じ値で変わって戻り、TC は 6 回の撮影とも UN-CONTROLLED でした。
3 回目の D-cap では、DEFAULT を止め、EF を 16 kbps、MPLS に載っていた AF11 を 8 kbps(1 pps)に下げました。下げたレートで流し直した直後の撮影(08:05:54)は UN-CONTROLLED で、An attempt to control will be made 00:00:08 later と印字されていました(3 回目・BRANCH)。exits を含む次の撮影(08:06:06)でもまだ UN-CONTROLLED で、MPLS は 330 %、予告は 00:00:26 later に戻っていました(3 回目・BRANCH)。流量を下げた後の最初の予告時刻(08:06:02)では、制御に入っていません。
BRANCH# show domain default master traffic-classes
Dst-Site-Prefix: 10.1.10.0/24 DSCP: ef [46] Traffic class id:2
Clock Time: 08:06:06 (UTC) 09/25/2026
TC Learned: 00:16:05 ago
Present State: UN-CONTROLLED at border 10.2.0.1 (An attempt to control will be made 00:00:26 later)
Destination Site ID bitmap: 0x1
Destination Site ID: 0.0.0.0
…(省略)
BRANCH# show domain default master exits
BR address: 10.2.0.1 | Name: Tunnel100 | type: external | Path: MPLS | path-id: 0 | PLR TCs: 0
Egress capacity: 100 Kbps | Egress BW: 330 Kbps | Ideal:0 Kbps | over: 330 Kbps | Egress Utilization: 330 %
…(省略)30 秒後の撮影(08:06:36)では、EF は制御に入って MPLS に置かれ、MPLS の利用率は 69 % でした(3 回目・BRANCH)。
BRANCH# show domain default master traffic-classes
Dst-Site-Prefix: 10.1.10.0/24 DSCP: ef [46] Traffic class id:2
Clock Time: 08:06:36 (UTC) 09/25/2026
TC Learned: 00:16:35 ago
Present State: CONTROLLED
Current Performance Status: in-policy
Current Service Provider: MPLS since 00:00:04 (hold until 85 sec)
Previous Service Provider: Unknown
BW Used: 27 Kbps
Present WAN interface: Tunnel100 in Border 10.2.0.1
Present Channel (primary): 3 MPLS pfr-label:0:0 | 0:0 [0x0]
Backup Channel: 4 INET pfr-label:0:0 | 0:0 [0x0]
…(省略)
BRANCH# show domain default master exits
BR address: 10.2.0.1 | Name: Tunnel100 | type: external | Path: MPLS | path-id: 0 | PLR TCs: 0
Egress capacity: 100 Kbps | Egress BW: 69 Kbps | Ideal:0 Kbps | over: 60 Kbps | Egress Utilization: 69 %
Ingress capacity: 100 Kbps | Ingress BW: 30 Kbps | Ingress Utilization: 30 %
DSCP: ef[46]-Number of Traffic Classes[1]
…(省略)遷移の時刻は 08:06:32 で、EF は MPLS、AF11 は INET に置かれました(3 回目・BRANCH)。
BRANCH# show domain default master traffic-classes
Dst-Site-Prefix: 10.1.10.0/24 DSCP: ef [46] Traffic class id:2
Clock Time: 08:06:41 (UTC) 09/25/2026
TC Learned: 00:16:39 ago
Present State: CONTROLLED
Current Performance Status: in-policy
Current Service Provider: MPLS since 00:00:08 (hold until 81 sec)
Previous Service Provider: Unknown
BW Used: 27 Kbps
Present WAN interface: Tunnel100 in Border 10.2.0.1
Present Channel (primary): 3 MPLS pfr-label:0:0 | 0:0 [0x0]
Backup Channel: 4 INET pfr-label:0:0 | 0:0 [0x0]
Destination Site ID bitmap: 0x1
Destination Site ID: 10.1.0.1 (Active)
Class-Sequence in use: 10
Class Name: VOICE using policy voice
BW Updated: 00:00:10 ago
Reason for Latest Route Change: Uncontrolled to Controlled Transition
Route Change History:
Date and Time Previous Exit Current Exit Reason
1: 08:06:32 (UTC) 09/25/26 None(0:0|0:0)/0.0.0.0/None (Ch:0) MPLS(0:0|0:0)/10.2.0.1/Tu100 (Ch:3) Uncontrolled to Controlled Transition
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
…(省略)
1: 08:06:32 (UTC) 09/25/26 None(0:0|0:0)/0.0.0.0/None (Ch:0) INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:6) Uncontrolled to Controlled Transition
…(省略)制御に入ったときの syslog に TC_PATH_CHG はありません(3 回目・BRANCH)。
BRANCH# show logging | include DOMAIN|TCA|PFR|MC|BR-
*Sep 25 07:50:01.021: %DOMAIN-6-MC_TC_ID_RESET: Master Controller traffic class id counter got reset: site_id=10.2.0.1, domain=default, vrf=default3 回目では、bandwidth も経路も変えずに流量だけを下げたら、制御に入りました。遷移の時刻は、08:06:06 の撮影が予告した試行の時刻(26 秒後)と同じ秒です。この観測を、容量が制御に入る前提だとは書きません。D からの経過時間(投入の直後の撮影から約 15 分)とも分けられないためです。
流量を元に戻した後も制御は外れず、2 回の撮影(08:07:59 / 08:11:27)とも EF は MPLS のままでした。2 回目の出口は以下のとおりです(3 回目・BRANCH)。
BRANCH# show domain default master exits
BR address: 10.2.0.1 | Name: Tunnel100 | type: external | Path: MPLS | path-id: 0 | PLR TCs: 0
Egress capacity: 100 Kbps | Egress BW: 187 Kbps | Ideal:0 Kbps | over: 187 Kbps | Egress Utilization: 187 %
Ingress capacity: 100 Kbps | Ingress BW: 31 Kbps | Ingress Utilization: 31 %
DSCP: ef[46]-Number of Traffic Classes[1]
…(省略)EF は、容量を超えた MPLS(187 %)に置かれたままでした。
9.8 Phase E — bandwidth 1000
Phase E では、両端の両トンネルに bandwidth 1000 を入れました(4 回目・HUB-BR と BRANCH)。
HUB-BR# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
HUB-BR(config)#interface Tunnel100
HUB-BR(config-if)# bandwidth 1000
HUB-BR(config-if)#exit
HUB-BR(config)#interface Tunnel200
HUB-BR(config-if)# bandwidth 1000
HUB-BR(config-if)#exit
HUB-BR(config)#end
HUB-BR#BRANCH(4 回目)にも同じ行を入れました。
BRANCH# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
BRANCH(config)#interface Tunnel100
BRANCH(config-if)# bandwidth 1000
BRANCH(config-if)#exit
BRANCH(config)#interface Tunnel200
BRANCH(config-if)# bandwidth 1000
BRANCH(config-if)#exit
BRANCH(config)#end
BRANCH#BRANCH の %SYS-5-CONFIG_I で読んだ BRANCH への投入の時刻は 09:46:02.368 です(4 回目)。両 run とも、E の前から EF は MPLS に居たので、E での EF の移動は撮れていません。E の直前と後で、Route Change History の 1 行目は同じ(4 回目 09:40:38 / 3 回目 08:06:32)でした。
bandwidth は PfR の出口の容量と同時に EIGRP の metric も変えます。集約経路の metric は、D の 26880256(§8.3)が E の後は 3840256 になりました(§10)。E で何かが変わった場合でも、容量の変化と経路の更新は切り分けられない操作です。
9.9 出口の容量についての観測のまとめ
2 つの run の観測を並べると、次のようになります。
- 容量を超えた出口に TC が置かれたままのことがありました(4 回目の D と D-hold の INET 172〜259 %、3 回目の D-cap で流量を戻した後の MPLS 187 %)
- 4 回目では、MPLS の空きが EF に足りない間は再評価をまたいでも EF は INET に留まり(D-hold)、経路の更新だけでは動かず(D-route)、流量と EF のレートを下げた後の再評価で MPLS へ移りました(D-cap)
- 3 回目では、流量を下げたときに制御に入りました(D-cap)
どちらの run も 1 回ずつの観測で、D-cap は流量・EF のレート・経過時間が同時に変わります。「容量を超えると制御に入らない」「容量を超えた出口には置かれない」は、どちらもこの 2 回の観測からは言えません。出口の容量は、本ラボでは制御に入る前提としては扱いません。
10. 制御に入った後の出口と経路表
Phase E の後、EF と AF11 はどちらも制御下で、class ごとに出口が分かれています(4 回目・BRANCH)。
BRANCH# show domain default master traffic-classes
Dst-Site-Prefix: 10.1.10.0/24 DSCP: ef [46] Traffic class id:2
Clock Time: 09:46:35 (UTC) 09/25/2026
TC Learned: 00:19:34 ago
Present State: CONTROLLED
Current Performance Status: in-policy
Current Service Provider: MPLS since 00:05:57
Previous Service Provider: INET pfr-label: 0:0 | 0:0 [0x0] for 724 sec
(Network event - traffic class will be re-evaluated 00:02:23 later)
BW Used: 108 Kbps
Present WAN interface: Tunnel100 in Border 10.2.0.1
Present Channel (primary): 4 MPLS pfr-label:0:0 | 0:0 [0x0]
Backup Channel: 3 INET pfr-label:0:0 | 0:0 [0x0]
Destination Site ID bitmap: 0x1
Destination Site ID: 10.1.0.1 (Active)
Class-Sequence in use: 10
Class Name: VOICE using policy voice
BW Updated: 00:00:04 ago
Reason for Latest Route Change: Move to higher preferred link, same active/standby status NH
Route Change History:
Date and Time Previous Exit Current Exit Reason
1: 09:40:38 (UTC) 09/25/26 INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:3) MPLS(0:0|0:0)/10.2.0.1/Tu100 (Ch:4) Move to higher preferred link, same active/standby status NH
2: 09:28:33 (UTC) 09/25/26 None(0:0|0:0)/0.0.0.0/None (Ch:0) INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:3) Uncontrolled to Controlled Transition
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Dst-Site-Prefix: 10.1.10.0/24 DSCP: af11 [10] Traffic class id:4
Clock Time: 09:46:35 (UTC) 09/25/2026
TC Learned: 00:19:34 ago
Present State: CONTROLLED
Current Performance Status: in-policy
Current Service Provider: INET since 00:18:01
Previous Service Provider: Unknown
(Network event - traffic class will be re-evaluated 00:02:23 later)
BW Used: 143 Kbps
Present WAN interface: Tunnel200 in Border 10.2.0.1
Present Channel (primary): 5 INET pfr-label:0:0 | 0:0 [0x0]
Backup Channel: none
Destination Site ID bitmap: 0x1
Destination Site ID: 10.1.0.1 (Active)
Class-Sequence in use: 20
Class Name: BULK using policy bulk-data
BW Updated: 00:00:04 ago
Reason for Latest Route Change: Uncontrolled to Controlled Transition
Route Change History:
Date and Time Previous Exit Current Exit Reason
1: 09:28:33 (UTC) 09/25/26 None(0:0|0:0)/0.0.0.0/None (Ch:0) INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:5) Uncontrolled to Controlled Transition
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total Traffic Classes: 2 Site: 2 Internet: 0EF は MPLS(primary)、AF11 は INET(primary)です。(Network event - traffic class will be re-evaluated 00:02:23 later) という印字も現れましたが、その意味は確かめていません。border の側の TC も同じ出口を持っています(4 回目・BRANCH)。
BRANCH# show domain default border traffic-classes
Src-Site-Prefix: ANY Dst-Site-Prefix: 10.1.10.0/24
DSCP: af11 [10] Traffic class id: 4
TC Learned: 00:19:43 ago
Present State: CONTROLLED
Destination Site ID: 10.1.0.1
If_index: 14
Primary chan id: 5
Primary chan Presence: LOCAL CHANNEL
Primary interface: Tunnel200
Primary Nexthop: 10.0.200.1 (EIGRP)
Backup Channel not available
Direct Cloud Access : Disabled
--------------------------------------------------------------------
Src-Site-Prefix: ANY Dst-Site-Prefix: 10.1.10.0/24
DSCP: ef [46] Traffic class id: 2
TC Learned: 00:19:43 ago
Present State: CONTROLLED
Destination Site ID: 10.1.0.1
If_index: 13
Primary chan id: 4
Primary chan Presence: LOCAL CHANNEL
Primary interface: Tunnel100
Primary Nexthop: 10.0.100.1 (EIGRP)
Backup chan id: 3
Backup chan Presence: LOCAL CHANNEL
Backup interface: Tunnel200
Direct Cloud Access : Disabled
--------------------------------------------------------------------AF11 は Primary interface: Tunnel200 / Primary Nexthop: 10.0.200.1 (EIGRP) で、INET の出口を使っています。ところが、BRANCH の経路表と転送表は Tunnel100 のままです(4 回目・BRANCH)。
BRANCH# show ip route 10.1.10.10
Routing entry for 10.1.0.0/16
Known via "eigrp 100", distance 90, metric 3840256, precedence routine (0), type internal
Redistributing via eigrp 100
Last update from 10.0.100.1 on Tunnel100, 00:00:49 ago
Overrides from "PfR"
Routing Descriptor Blocks:
* 10.0.100.1, from 10.0.100.1, 00:00:49 ago, via Tunnel100
Route metric is 3840256, traffic share count is 1
Total delay is 50010 microseconds, minimum bandwidth is 1000 Kbit
Reliability 255/255, minimum MTU 1400 bytes
Loading 30/255, Hops 1
BRANCH# show ip cef 10.1.10.10
10.1.0.0/16
nexthop 10.0.100.1 Tunnel100AF11 を INET に出していても、経路表と CEF は Tunnel100(MPLS)を指したままです。PfR は経路表を書き換えずに、TC ごとの転送だけを変えています。Cisco Press の書籍は、PfR を経路制御プロトコルの代わりではないと書いています。
PfR is not a replacement for the routing protocol and never will be.
出口の容量は 1000 Kbps になり、利用率は MPLS 18 % / INET 17 % でした(4 回目・BRANCH)。
BRANCH# show domain default master exits
BR address: 10.2.0.1 | Name: Tunnel200 | type: external | Path: INET | path-id: 0 | PLR TCs: 0
Egress capacity: 1000 Kbps | Egress BW: 175 Kbps | Ideal:0 Kbps | over: 175 Kbps | Egress Utilization: 17 %
Ingress capacity: 1000 Kbps | Ingress BW: 30 Kbps | Ingress Utilization: 3 %
DSCP: af11[10]-Number of Traffic Classes[1]
BR address: 10.2.0.1 | Name: Tunnel100 | type: external | Path: MPLS | path-id: 0 | PLR TCs: 0
Egress capacity: 1000 Kbps | Egress BW: 180 Kbps | Ideal:0 Kbps | over: 180 Kbps | Egress Utilization: 18 %
Ingress capacity: 1000 Kbps | Ingress BW: 30 Kbps | Ingress Utilization: 3 %
DSCP: ef[46]-Number of Traffic Classes[1]
--------------------------------------------------------------------------------PC-B の traceroute では、EF と DEFAULT の hop 2 が 10.0.100.1(MPLS)、AF11 の hop 2 が 10.0.200.1(INET)でした(4 回目・PC-B)。
PC-B $ traceroute -n -m 4 -q 1 -w 2 -t 184 10.1.10.10
traceroute to 10.1.10.10 (10.1.10.10), 4 hops max, 46 byte packets
1 10.2.10.1 0.524 ms
2 10.0.100.1 0.924 ms
3 10.1.10.10 1.346 ms
PC-B $ traceroute -n -m 4 -q 1 -w 2 -t 40 10.1.10.10
traceroute to 10.1.10.10 (10.1.10.10), 4 hops max, 46 byte packets
1 10.2.10.1 0.412 ms
2 10.0.200.1 0.915 ms
3 10.1.10.10 1.519 ms
PC-B $ traceroute -n -m 4 -q 1 -w 2 -t 0 10.1.10.10
traceroute to 10.1.10.10 (10.1.10.10), 4 hops max, 46 byte packets
1 10.2.10.1 0.893 ms
2 10.0.100.1 0.934 ms
3 10.1.10.10 2.021 msDEFAULT には TC が立たず、経路表どおりに MPLS を通っています。16.12 のガイドは、load-balance を有効にしない場合の default class を次のように書きます。
When load balancing is enabled, all the traffic that falls in the default class is load balanced. When load balancing is disabled, PfRv3 deletes this default class and traffic is not load balanced and is routed based on the routing table information.
本ラボは load-balance を入れていません(HUB-MC の Admin Status: Disabled。§6.1)。
10.1 p と Overrides from "PfR" の意味の範囲
経路表の Overrides from "PfR" の行とコード p は、TC が UN-CONTROLLED だった Phase C のうちから出ていました(4 回目・BRANCH)。
BRANCH# show ip route 10.1.10.0
Routing entry for 10.1.10.0/24
Known via "eigrp 100", distance 90, metric 26880256, precedence routine (0), type internal
Redistributing via eigrp 100
Last update from 10.0.100.1 on Tunnel100, 00:05:31 ago
Overrides from "PfR"
Routing Descriptor Blocks:
* 10.0.100.1, from 10.0.100.1, 00:05:31 ago, via Tunnel100
Route metric is 26880256, traffic share count is 1
Total delay is 50010 microseconds, minimum bandwidth is 100 Kbit
Reliability 255/255, minimum MTU 1400 bytes
Loading 1/255, Hops 1
BRANCH# show ip route 10.1.10.0 255.255.255.0 longer-prefixes
…(省略)
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 11 subnets, 3 masks
D p 10.1.10.0/24 [90/26880256] via 10.0.100.1, 00:05:35, Tunnel100Phase A(PfR を入れる前)の同じ経路にはこの 2 つがありませんでした(§5)。PfR を入れた後、TC が UN-CONTROLLED の間から付いていたので、p と Overrides from "PfR" は TC が制御下にあることの証拠にはなりません。制御下かどうかは master traffic-classes の Present State: で読みます。6-7 などの既刊の節の show ip route の凡例にも p - overrides from PfR が出ていますが、凡例の行があることも PfR が動いている証拠にはなりません。
11. 遅延の注入 — 測定値から切り替わるまで
6-4 §10.4 が送った 2 つ目の約束は、測定値から経路が切り替わるまでの詳細です。
11.1 注入の前提
劣化を注入する前に、EF が primary の MPLS に居て、直前の変更の hold until の印字が消えていることを確かめました。4 回目の撮影は以下のとおりです(BRANCH)。
BRANCH# show domain default master traffic-classes
Dst-Site-Prefix: 10.1.10.0/24 DSCP: ef [46] Traffic class id:2
Clock Time: 09:47:01 (UTC) 09/25/2026
TC Learned: 00:20:00 ago
Present State: CONTROLLED
Current Performance Status: in-policy
Current Service Provider: MPLS since 00:06:22
Previous Service Provider: INET pfr-label: 0:0 | 0:0 [0x0] for 724 sec
(Network event - traffic class will be re-evaluated 00:01:57 later)
BW Used: 108 Kbps
Present WAN interface: Tunnel100 in Border 10.2.0.1
Present Channel (primary): 4 MPLS pfr-label:0:0 | 0:0 [0x0]
Backup Channel: 3 INET pfr-label:0:0 | 0:0 [0x0]
Destination Site ID bitmap: 0x1
Destination Site ID: 10.1.0.1 (Active)
Class-Sequence in use: 10
Class Name: VOICE using policy voice
BW Updated: 00:00:00 ago
Reason for Latest Route Change: Move to higher preferred link, same active/standby status NH
Route Change History:
Date and Time Previous Exit Current Exit Reason
1: 09:40:38 (UTC) 09/25/26 INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:3) MPLS(0:0|0:0)/10.2.0.1/Tu100 (Ch:4) Move to higher preferred link, same active/standby status NH
2: 09:28:33 (UTC) 09/25/26 None(0:0|0:0)/0.0.0.0/None (Ch:0) INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:3) Uncontrolled to Controlled Transition
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
…(省略)EF は MPLS since 00:06:22 で、同じ撮影の syslog に、それより前の %DOMAIN-5-TCA はありません(3 回目は MPLS since 00:06:33)。fallback の出口に居るだけの TC に劣化を注入すると、元から INET に居たものを「劣化で移った」と読む誤りになります。制御に入った直後の EF が fallback の INET に置かれることは、4 回目の D でも起きていました(§8.3)。
11.2 注入
注入には、CML 2.10 のリンク条件付けの API を使いました。MPLS のリンク(HUB-BR の Gi2 と BRANCH の Gi2)の condition に、"enabled": true と "latency": 200 を PATCH しています。enabled は既定で false で、virl2_client 2.9.1 の Link.set_condition() はこの値を送らないので、それだけでは効きません。PATCH の後に GET で enabled と operational の latency を読み返し、ping の RTT でも確かめました。
注入の前の RTT は以下のとおりです(4 回目・BRANCH)。
BRANCH# ping 192.0.2.1 repeat 10
Type escape sequence to abort.
Sending 10, 100-byte ICMP Echos to 192.0.2.1, timeout is 2 seconds:
!!!!!!!!!!
Success rate is 100 percent (10/10), round-trip min/avg/max = 1/1/1 msCML の API の読み返しは以下のとおりです(4 回目。CML の応答で、機器の出力ではありません)。
{
"bandwidth": null,
"latency": 200,
…(省略)
"enabled": true,
"operational": {
"bandwidth": 0,
"latency": 200,
…(省略)
}注入の後の RTT は以下のとおりです(4 回目・BRANCH)。
BRANCH# ping 192.0.2.1 repeat 10 timeout 3
Type escape sequence to abort.
Sending 10, 100-byte ICMP Echos to 192.0.2.1, timeout is 3 seconds:
!!!!!!!!!!
Success rate is 100 percent (10/10), round-trip min/avg/max = 401/401/402 msRTT は 1 ms から 401 ms になりました。往復で 400 ms 増えており、PfR の one-way delay(往復の半分)では 200 ms にあたります。voice の閾値 150 ms を越える量です。
11.3 TCA と切替
4 回目の BRANCH の syslog は以下のとおりです(直前の 2 行は省略)。
BRANCH# show logging | include DOMAIN|TCA|PFR|MC|BR-
…(省略)
*Sep 25 09:47:16.014: %DOMAIN-5-TCA: TCA Received. Details: Instance id=0: VRF=default: Source Site ID=10.2.0.1: Destination Site ID=10.1.0.1: TCA-ID=2: TCA-Origin=10.1.0.2(R): Exit=[CHAN-ID=4, BR-IP=10.2.0.1, DSCP=ef[46], Interface=Tunnel100, Path=MPLS[label=0:0 | 0:0 [0x0]]]: Policy Violated=VOICE: thresholds(actual/config)=[P3=jitter(66742/30000)]
*Sep 25 09:47:18.670: %DOMAIN-5-TC_PATH_CHG: Traffic class Path Changed. Details: Instance=0: VRF=default: Source Site ID=10.2.0.1: Destination Site ID=10.1.0.1: Reason=Jitter: TCA-ID=3: Policy Violated=VOICE: TC=[Site id=10.1.0.1, TC ID=2, Site prefix=10.1.10.0/24, DSCP=ef(46), App ID=0]: Original Exit=[CHAN-ID=4, BR-IP=10.2.0.1, DSCP=ef[46], Interface=Tunnel100, Path=MPLS[label=0:0 | 0:0 [0x0]]]: New Exit=[CHAN-ID=3, BR-IP=10.2.0.1, DSCP=ef[46], Interface=Tunnel200, Path=INET[label=0:0 | 0:0 [0x0]]]3 回目の BRANCH の syslog は以下のとおりです(直前の 1 行は省略)。
BRANCH# show logging | include DOMAIN|TCA|PFR|MC|BR-
…(省略)
*Sep 25 08:13:22.022: %DOMAIN-5-TCA: TCA Received. Details: Instance id=0: VRF=default: Source Site ID=10.2.0.1: Destination Site ID=10.1.0.1: TCA-ID=1: TCA-Origin=10.1.0.2(R): Exit=[CHAN-ID=3, BR-IP=10.2.0.1, DSCP=ef[46], Interface=Tunnel100, Path=MPLS[label=0:0 | 0:0 [0x0]]]: Policy Violated=VOICE: thresholds(actual/config)=[P1=one-way-delay(200/150)],[P3=jitter(66804/30000)]
*Sep 25 08:13:25.251: %DOMAIN-5-TC_PATH_CHG: Traffic class Path Changed. Details: Instance=0: VRF=default: Source Site ID=10.2.0.1: Destination Site ID=10.1.0.1: Reason=Delay: TCA-ID=2: Policy Violated=VOICE: TC=[Site id=10.1.0.1, TC ID=2, Site prefix=10.1.10.0/24, DSCP=ef(46), App ID=0]: Original Exit=[CHAN-ID=3, BR-IP=10.2.0.1, DSCP=ef[46], Interface=Tunnel100, Path=MPLS[label=0:0 | 0:0 [0x0]]]: New Exit=[CHAN-ID=4, BR-IP=10.2.0.1, DSCP=ef[46], Interface=Tunnel200, Path=INET[label=0:0 | 0:0 [0x0]]]TCA の TCA-Origin=10.1.0.2(R) の 10.1.0.2 は HUB-BR の Loopback0 です。受信側の HUB-BR を起点とする TCA が、送信元の BRANCH に届き、その後に EF の出口が変わりました。出典の「性能は受信側で測り、落ちたときだけ送信元へ知らせる」(§7.1)と同じ向きです。(R) の意味を説明した文は、§20 の資料にはありません。
BRANCH の TCA 受信ログ(%DOMAIN-5-TCA)には、thresholds(actual/config) として実測値と設定値の組が印字されています。BRANCH の MC も同じ policy を持っているので(§6.2)、TCA のパケットが何を運んだか、比較がどちらの装置で行われたかは、この印字からは決まりません。最初の TCA 受信ログに印字された指標は run で分かれました。
| run | 掲載した TCA 受信ログ(BRANCH の時計) | 印字された指標 | 出口変更ログ(BRANCH の時計) | 切替の理由 | TCA-ID(TCA 受信ログ / 出口変更ログ) | 2 つのログの時刻の差 |
|---|---|---|---|---|---|---|
| 3 回目 | 08:13:22.022 | P1=one-way-delay(200/150) と P3=jitter(66804/30000) | 08:13:25.251 | Delay | 1 / 2 | 3.229 秒 |
| 4 回目 | 09:47:16.014 | P3=jitter(66742/30000) だけ | 09:47:18.670 | Jitter | 2 / 3 | 2.656 秒 |
3 回目の one-way-delay(200/150) は、注入した片方向 200 ms と voice の閾値 150 ms の組です。
表の右端の秒数は、掲載した TCA 受信ログの時刻から出口変更ログの時刻までの差で、どちらも BRANCH の時計です。2 つのログの TCA-ID は違う値で、syslog に出た TCA 受信ログは各 run で 1 本だけでした。切替の引き金になった TCA がこの 1 本かは確かめていないので、この秒数を 1 つの TCA の処理にかかった時間とは読みません。注入の操作は、CML の API を呼んだ WSL(取得スクリプト側)の時計でしか記録しておらず、機器の時計と揃っていないので、「注入から TCA まで」の時間も書きません。
TC の Route Change History にも、理由が run ごとの文字列で残りました。4 回目は以下のとおりです(BRANCH)。
BRANCH# show domain default master traffic-classes
Dst-Site-Prefix: 10.1.10.0/24 DSCP: ef [46] Traffic class id:2
Clock Time: 09:47:35 (UTC) 09/25/2026
TC Learned: 00:20:34 ago
Present State: CONTROLLED
Current Performance Status: in-policy
Current Service Provider: INET since 00:00:16 (hold until 73 sec)
Previous Service Provider: MPLS pfr-label: 0:0 | 0:0 [0x0] for 400 sec
(A fallback provider. Primary provider will be re-evaluated 00:02:43 later)
BW Used: 108 Kbps
Present WAN interface: Tunnel200 in Border 10.2.0.1
Present Channel (primary): 3 INET pfr-label:0:0 | 0:0 [0x0]
Backup Channel: 4 MPLS pfr-label:0:0 | 0:0 [0x0]
Destination Site ID bitmap: 0x1
Destination Site ID: 10.1.0.1 (Active)
Class-Sequence in use: 10
Class Name: VOICE using policy voice
BW Updated: 00:00:04 ago
Reason for Latest Route Change: Jitter
Route Change History:
Date and Time Previous Exit Current Exit Reason
1: 09:47:18 (UTC) 09/25/26 MPLS(0:0|0:0)/10.2.0.1/Tu100 (Ch:4) INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:3) Out-of-Policy (Jitter Mean: 50 usec)
2: 09:40:38 (UTC) 09/25/26 INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:3) MPLS(0:0|0:0)/10.2.0.1/Tu100 (Ch:4) Move to higher preferred link, same active/standby status NH
3: 09:28:33 (UTC) 09/25/26 None(0:0|0:0)/0.0.0.0/None (Ch:0) INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:3) Uncontrolled to Controlled Transition
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
…(省略)3 回目は以下のとおりです(BRANCH)。
BRANCH# show domain default master traffic-classes
Dst-Site-Prefix: 10.1.10.0/24 DSCP: ef [46] Traffic class id:2
Clock Time: 08:13:40 (UTC) 09/25/2026
TC Learned: 00:23:39 ago
Present State: CONTROLLED
Current Performance Status: in-policy
Current Service Provider: INET since 00:00:15 (hold until 74 sec)
Previous Service Provider: MPLS pfr-label: 0:0 | 0:0 [0x0] for 412 sec
(A fallback provider. Primary provider will be re-evaluated 00:02:46 later)
BW Used: 108 Kbps
Present WAN interface: Tunnel200 in Border 10.2.0.1
Present Channel (primary): 4 INET pfr-label:0:0 | 0:0 [0x0]
Backup Channel: 3 MPLS pfr-label:0:0 | 0:0 [0x0]
Destination Site ID bitmap: 0x1
Destination Site ID: 10.1.0.1 (Active)
Class-Sequence in use: 10
Class Name: VOICE using policy voice
BW Updated: 00:00:09 ago
Reason for Latest Route Change: Delay
Route Change History:
Date and Time Previous Exit Current Exit Reason
1: 08:13:25 (UTC) 09/25/26 MPLS(0:0|0:0)/10.2.0.1/Tu100 (Ch:3) INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:4) Out-of-Policy (One Way Delay : 200 msec)
2: 08:06:32 (UTC) 09/25/26 None(0:0|0:0)/0.0.0.0/None (Ch:0) MPLS(0:0|0:0)/10.2.0.1/Tu100 (Ch:3) Uncontrolled to Controlled Transition
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
…(省略)4 回目の Out-of-Policy (Jitter Mean: 50 usec) の 50 usec と、TCA の jitter(66742/30000) の関係は確かめていません。AF11 は両 run とも元から INET のままで、動いたのは EF だけです。切替後の EF は INET since 00:00:16 (hold until 73 sec)(4 回目)/ 00:00:15 (hold until 74 sec)(3 回目)で、どちらも since と hold until の和は 89 秒です。hold until の意味を説明した文は、§20 の資料にはありません。
11.4 channel のカウンタの差
BRANCH の MPLS の EF の channel(4 回目は id 4)は、注入の前は TCA を受けていません(4 回目・BRANCH)。
BRANCH# show domain default master channels dscp ef
…(省略)
Channel Id: 4 Dst Site-Id: 10.1.0.1 Link Name: MPLS DSCP: ef [46] pfr-label: 0:0 | 0:0 [0x0] TCs: 1 BackupTCs: 0
Channel Created: 00:20:06 ago
…(省略)
Site Prefix List
10.1.0.1/32 (Routable)
10.1.0.0/16 (Routable)
ODE Statistics:
Received: 0
TCA Statistics:
Received: 0 ; Processed: 0 ; Unreach_rcvd: 0 ; Local Unreach_rcvd: 0
TCA lost byte rate: 0
TCA lost packet rate: 0
TCA one-way-delay: 0
TCA network-delay: 0
TCA jitter mean: 0切替後の同じ channel は以下のとおりです(4 回目・BRANCH)。
BRANCH# show domain default master channels dscp ef
Legend: * (Value obtained from Network delay:)
Legend: *[255] (DCA Channel)
…(省略)
Channel Id: 4 Dst Site-Id: 10.1.0.1 Link Name: MPLS DSCP: ef [46] pfr-label: 0:0 | 0:0 [0x0] TCs: 0 BackupTCs: 1
Channel Created: 00:20:36 ago
…(省略)
Site Prefix List
10.1.0.1/32 (Routable)
10.1.0.0/16 (Active)
ODE Statistics:
Received: 11
ODE Stats Bucket Number: 1
Last Updated : 00:00:01 ago
Packet Count : 40
Byte Count : 3840
One Way Delay : 200 msec*
Loss Rate Pkts: 0.0 %
Loss Rate Byte: 0.0 %
Jitter Mean : 358 usec
Unreachable : FALSE
ODE Stats Bucket Number: 2
Last Updated : 00:00:03 ago
Packet Count : 40
Byte Count : 3840
One Way Delay : 200 msec*
Loss Rate Pkts: 0.0 %
Loss Rate Byte: 0.0 %
Jitter Mean : 98 usec
Unreachable : FALSE
TCA Statistics:
Received: 22 ; Processed: 5 ; Unreach_rcvd: 0 ; Local Unreach_rcvd: 0
TCA lost byte rate: 0
TCA lost packet rate: 0
TCA one-way-delay: 0
TCA network-delay: 20
TCA jitter mean: 2
Latest TCA Bucket
Last Updated : 00:00:01 ago
One Way Delay : 200 msec*
Loss Rate Pkts: NA
Loss Rate Byte: NA
Jitter Mean : NA
Unreachability: FALSE同じ channel の TCA Statistics: の Received は 0 → 22、TCA network-delay は 0 → 20 に増え(3 回目は id 3 で 0 → 22 と 0 → 22)、TCs: 1 BackupTCs: 0 が TCs: 0 BackupTCs: 1 に変わりました。ODE の bucket には One Way Delay : 200 msec* が残っています。凡例の * は、値が Network delay から得られたことを示します。channel のカウンタは累積値なので、1 回の値ではなく、同じ channel の前後の差で読んでいます。
受信側の HUB-BR では、EF のデータの受信が INET の channel だけで増えました。切替後と、その次の撮影を並べます(4 回目・HUB-BR)。
HUB-BR# show domain default border channels
…(省略)
Channel id: 4
Version : 3
Channel Type : External
Site id : 10.2.0.1
DSCP : ef[46]
Service provider : MPLS
…(省略)
Number of Data Packets received : 18583
…(省略)
Channel id: 6
Version : 3
Channel Type : External
Site id : 10.2.0.1
DSCP : ef[46]
Service provider : INET
…(省略)
Number of Data Packets received : 23865
…(省略)次の撮影(4 回目・HUB-BR)は以下のとおりです。
HUB-BR# show domain default border channels
…(省略)
Channel id: 4
Version : 3
Channel Type : External
Site id : 10.2.0.1
DSCP : ef[46]
Service provider : MPLS
…(省略)
Number of Data Packets received : 18583
…(省略)
Channel id: 6
Version : 3
Channel Type : External
Site id : 10.2.0.1
DSCP : ef[46]
Service provider : INET
…(省略)
Number of Data Packets received : 24755
…(省略)INET の EF の channel(id 6)は 23865 → 24755(+890)、MPLS の EF の channel(id 4)は 18583 → 18583(+0)です。3 回目も +888 と +0 でした。注入前の INET の EF の channel の値は、3 回目 265 に対して 4 回目 23288 と大きく違います。4 回目は D から D-cap までの間 EF が INET に居た分が積算されているためで、1 回の値からは「移った」とは読めません。
11.5 経路表と DEFAULT の通信
EF が INET へ移った後も、BRANCH の経路表と CEF は Tunnel100 のままでした(4 回目・BRANCH)。
BRANCH# show ip route 10.1.10.10
Routing entry for 10.1.0.0/16
Known via "eigrp 100", distance 90, metric 3840256, precedence routine (0), type internal
Redistributing via eigrp 100
Last update from 10.0.100.1 on Tunnel100, 00:01:58 ago
Overrides from "PfR"
Routing Descriptor Blocks:
* 10.0.100.1, from 10.0.100.1, 00:01:58 ago, via Tunnel100
Route metric is 3840256, traffic share count is 1
Total delay is 50010 microseconds, minimum bandwidth is 1000 Kbit
Reliability 255/255, minimum MTU 1400 bytes
Loading 30/255, Hops 1
BRANCH# show ip cef 10.1.10.10
10.1.0.0/16
nexthop 10.0.100.1 Tunnel100PC-B の traceroute では、EF と AF11 の hop 2 が 10.0.200.1(INET)で RTT は約 201 ms、DEFAULT の hop 2 は 10.0.100.1(MPLS)で約 402 ms でした(4 回目・PC-B)。
PC-B $ traceroute -n -m 4 -q 1 -w 2 -t 184 10.1.10.10
traceroute to 10.1.10.10 (10.1.10.10), 4 hops max, 46 byte packets
1 10.2.10.1 0.369 ms
2 10.0.200.1 201.082 ms
3 10.1.10.10 201.663 ms
PC-B $ traceroute -n -m 4 -q 1 -w 2 -t 40 10.1.10.10
traceroute to 10.1.10.10 (10.1.10.10), 4 hops max, 46 byte packets
1 10.2.10.1 0.591 ms
2 10.0.200.1 203.006 ms
3 10.1.10.10 203.992 ms
PC-B $ traceroute -n -m 4 -q 1 -w 2 -t 0 10.1.10.10
traceroute to 10.1.10.10 (10.1.10.10), 4 hops max, 46 byte packets
1 10.2.10.1 2.054 ms
2 10.0.100.1 402.494 ms
3 10.1.10.10 402.084 mspolicy の無い DEFAULT は、劣化した MPLS に残っています。EF の約 201 ms は、往路が INET・復路が劣化した MPLS と読める値ですが、traceroute の hop 2 が示すのは往路の出口だけで、復路は撮っていません。
PC-H の EF の受信ログには、順序の入れ替わりが 1 行だけ記録されていました(3 回目も 1 行で、390〜400 秒の区間に 7 個)。区間は PC-H の iperf の相対時刻で、BRANCH の時計とは突き合わせていないので、切替と同じ区間かは確かめていません。4 回目は以下のとおりです(PC-H)。
PC-H $ grep -n out-of-order /tmp/s5001.log
49:[ 2] 370.00-380.00 sec 7 datagrams received out-of-order11.6 制御の外での測定と TCA
Phase K の途中(集約を外して TC が UN-CONTROLLED の間)にも、MPLS に同じ遅延を入れました。取得スクリプトが注入の後に 90 秒待ってから(WSL 側の待ち時間)、channel と TC を撮っています。機器の時計では、注入の前後の撮影の間隔は、channel の Channel Created の差で 107 秒、TC の Clock Time: の差で 112 秒です(両 run とも)。
注入前の MPLS の EF の channel(4 回目は id 16)の TCA の受信は、下の表の注入前の値のとおり 0 です。注入の後の撮影は以下のとおりです(4 回目・BRANCH)。
BRANCH# show domain default master channels dscp ef
…(省略)
Channel Id: 16 Dst Site-Id: 10.1.0.1 Link Name: MPLS DSCP: ef [46] pfr-label: 0:0 | 0:0 [0x0] TCs: 0 BackupTCs: 0
Channel Created: 00:03:07 ago
…(省略)
Site Prefix List
10.1.0.1/32 (Routable)
10.1.0.0/16 (Unreachable)
ODE Statistics:
Received: 48
ODE Stats Bucket Number: 1
Last Updated : 00:00:00 ago
Packet Count : 120
Byte Count : 22080
One Way Delay : 200 msec*
Loss Rate Pkts: 0.0 %
Loss Rate Byte: 0.0 %
Jitter Mean : 126 usec
Unreachable : FALSE
ODE Stats Bucket Number: 2
Last Updated : 00:00:02 ago
Packet Count : 120
Byte Count : 22080
One Way Delay : 200 msec*
Loss Rate Pkts: 0.0 %
Loss Rate Byte: 0.0 %
Jitter Mean : 159 usec
Unreachable : FALSE
TCA Statistics:
Received: 96 ; Processed: 24 ; Unreach_rcvd: 0 ; Local Unreach_rcvd: 0
TCA lost byte rate: 0
TCA lost packet rate: 0
TCA one-way-delay: 0
TCA network-delay: 96
TCA jitter mean: 0
Latest TCA Bucket
Last Updated : 00:00:00 ago
One Way Delay : 200 msec*
…(省略)| run | channel / Channel Created | TCA Statistics Received | TCA network-delay | ODE Received | TCA lost packet rate |
|---|---|---|---|---|---|
| 3 回目 | id 8 / 00:11:19 → 00:13:06 | 0 → 94 | 0 → 94 | 0 → 47 | 0 → 0 |
| 4 回目 | id 16 / 00:01:20 → 00:03:07 | 0 → 96 | 0 → 96 | 0 → 48 | 0 → 0 |
TC が制御の外にある間も、受信側の測定と TCA は動いていました。この間、TC は UN-CONTROLLED のままでした(§8.4 の表の「遅延注入の後」)。channel の id は 4 回目では K の ageout の後に作り直されて(11 → 16)、3 回目では ageout をまたいで同じ id 8 のまま残りました。
この撮影の後、条件付けを DELETE で外し、ping で RTT が 1 ms に戻ったことを確かめてから、取得スクリプト側の時計で約 2 分後(127 秒後)に集約を戻しました(§8.4)。
12. 元の出口への復帰 — Global Fallback Timer
12.1 出典: 評価の期間としての fallback-timer
Command Reference は、backup の出口へ移った TC が primary へ戻るかを評価し直す期間を fallback-timer と呼び、既定を 3 分としています(Command History では 16.10.1 で導入)。
To specify the time interval for re-evaluating a primary path after traffic has changed to a backup path, use the fallback-timer command in domain class configuration mode.
Evaluation period (called timeout) for re-evaluating the performance of the primary path, to determine whether to switch a traffic class from a backup path back to the primary path. If the primary path meets the performance requirements specified for the traffic class again, PfRv3 switches the traffic class to the primary path.
Possible values: 1 to 1440 minutes Default: 3 minutes
Increasing the time causes PfRv3 to evaluate the primary path over a longer time.
Dampening temporarily increases the evaluation period if a traffic class has been switched more than once from the primary path to a backup path within a short time.
原典の言い方は「時点」ではなく評価の期間です。期間を延ばすと primary をより長い時間で評価し、その評価で primary が TC の要件を再び満たせば primary へ戻します。dampening は期間を一時的に延ばします。
17.3 の機器は、同じ既定値を Global Fallback Timer: 3 minutes と印字していました(§6.2)。この項目名は原典には出てきません。ここまでが出典です。
12.2 実測: 劣化を残したままの待機
Phase F の切替の後も注入を続け、切替から 180 秒を越えた時点の TC を撮りました(4 回目・BRANCH)。
BRANCH# show domain default master traffic-classes
Dst-Site-Prefix: 10.1.10.0/24 DSCP: ef [46] Traffic class id:2
Clock Time: 09:50:46 (UTC) 09/25/2026
TC Learned: 00:23:45 ago
Present State: CONTROLLED
Current Performance Status: in-policy
Current Service Provider: INET since 00:03:27
Previous Service Provider: MPLS pfr-label: 0:0 | 0:0 [0x0] for 400 sec
(A fallback provider. Primary provider will be re-evaluated 00:02:34 later)
BW Used: 108 Kbps
Present WAN interface: Tunnel200 in Border 10.2.0.1
Present Channel (primary): 3 INET pfr-label:0:0 | 0:0 [0x0]
Backup Channel: 4 MPLS pfr-label:0:0 | 0:0 [0x0]
Destination Site ID bitmap: 0x1
Destination Site ID: 10.1.0.1 (Active)
Class-Sequence in use: 10
Class Name: VOICE using policy voice
BW Updated: 00:00:15 ago
Reason for Latest Route Change: Jitter
Route Change History:
Date and Time Previous Exit Current Exit Reason
1: 09:47:18 (UTC) 09/25/26 MPLS(0:0|0:0)/10.2.0.1/Tu100 (Ch:4) INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:3) Out-of-Policy (Jitter Mean: 50 usec)
2: 09:40:38 (UTC) 09/25/26 INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:3) MPLS(0:0|0:0)/10.2.0.1/Tu100 (Ch:4) Move to higher preferred link, same active/standby status NH
3: 09:28:33 (UTC) 09/25/26 None(0:0|0:0)/0.0.0.0/None (Ch:0) INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:3) Uncontrolled to Controlled Transition
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
…(省略)同じ時点の RTT はまだ約 401 ms です(4 回目・BRANCH)。
BRANCH# ping 192.0.2.1 repeat 10 timeout 3
Type escape sequence to abort.
Sending 10, 100-byte ICMP Echos to 192.0.2.1, timeout is 3 seconds:
!!!!!!!!!!
Success rate is 100 percent (10/10), round-trip min/avg/max = 401/401/402 ms| run | 切替 | 解除前の Clock Time | 印字の残り時間 → 次の予定 | 切替 + 180 秒 |
|---|---|---|---|---|
| 3 回目 | 08:13:25 | 08:16:49 | 00:02:38 → 08:19:27 | 08:16:25 |
| 4 回目 | 09:47:18 | 09:50:46 | 00:02:34 → 09:53:20 | 09:50:18 |
次の予定は切替 + 180 秒より後で、機器の印字の上では次の評価期間に入っていました。劣化が残っている間、EF は INET に留まり、Route Change History の 1 行目は F の切替のままです。
12.3 実測: 解除の後の復帰
CML の条件付けを DELETE で外すと(GET の読み返しは "enabled": false)、RTT は 1 ms 台に戻りました(4 回目・BRANCH)。
BRANCH# ping 192.0.2.1 repeat 10
Type escape sequence to abort.
Sending 10, 100-byte ICMP Echos to 192.0.2.1, timeout is 2 seconds:
!!!!!!!!!!
Success rate is 100 percent (10/10), round-trip min/avg/max = 1/1/2 msRTT の回復を確かめた直後の TC の Clock Time: が、解除した時刻の上限です(4 回目 09:50:57・3 回目 08:16:59)。この時点では EF はまだ INET でした。その後、EF は MPLS へ戻りました(4 回目・BRANCH)。
BRANCH# show domain default master traffic-classes
Dst-Site-Prefix: 10.1.10.0/24 DSCP: ef [46] Traffic class id:2
Clock Time: 09:53:36 (UTC) 09/25/2026
TC Learned: 00:26:35 ago
Present State: CONTROLLED
Current Performance Status: in-policy
Current Service Provider: MPLS since 00:00:15 (hold until 74 sec)
Previous Service Provider: INET pfr-label: 0:0 | 0:0 [0x0] for 362 sec
BW Used: 108 Kbps
Present WAN interface: Tunnel100 in Border 10.2.0.1
Present Channel (primary): 4 MPLS pfr-label:0:0 | 0:0 [0x0]
Backup Channel: 3 INET pfr-label:0:0 | 0:0 [0x0]
Destination Site ID bitmap: 0x1
Destination Site ID: 10.1.0.1 (Active)
Class-Sequence in use: 10
Class Name: VOICE using policy voice
BW Updated: 00:00:05 ago
Reason for Latest Route Change: Move to higher preferred link, same active/standby status NH
Route Change History:
Date and Time Previous Exit Current Exit Reason
1: 09:53:20 (UTC) 09/25/26 INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:3) MPLS(0:0|0:0)/10.2.0.1/Tu100 (Ch:4) Move to higher preferred link, same active/standby status NH
2: 09:47:18 (UTC) 09/25/26 MPLS(0:0|0:0)/10.2.0.1/Tu100 (Ch:4) INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:3) Out-of-Policy (Jitter Mean: 50 usec)
3: 09:40:38 (UTC) 09/25/26 INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:3) MPLS(0:0|0:0)/10.2.0.1/Tu100 (Ch:4) Move to higher preferred link, same active/standby status NH
4: 09:28:33 (UTC) 09/25/26 None(0:0|0:0)/0.0.0.0/None (Ch:0) INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:3) Uncontrolled to Controlled Transition
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
…(省略)戻った時刻は 4 回目 09:53:20、3 回目 08:19:27 で、どちらも解除前の撮影の Clock Time: に印字の残り時間を足した時刻と同じ秒でした。syslog にも同じ秒の TC_PATH_CHG が出ています(4 回目・BRANCH)。
BRANCH# show logging | include DOMAIN|TCA|PFR|MC|BR-
…(省略)
*Sep 25 09:53:20.812: %DOMAIN-5-TC_PATH_CHG: Traffic class Path Changed. Details: Instance=0: VRF=default: Source Site ID=10.2.0.1: Destination Site ID=10.1.0.1: Reason=Move to higher preferred link, same active/standby status NH: TCA-ID=59: Policy Violated=VOICE: TC=[Site id=10.1.0.1, TC ID=2, Site prefix=10.1.10.0/24, DSCP=ef(46), App ID=0]: Original Exit=[CHAN-ID=3, BR-IP=10.2.0.1, DSCP=ef[46], Interface=Tunnel200, Path=[label=0:0 | 0:0 [0x0]]]: New Exit=[CHAN-ID=4, BR-IP=10.2.0.1, DSCP=ef[46], Interface=Tunnel100, Path=MPLS[label=0:0 | 0:0 [0x0]]]PC-B の traceroute の EF の hop 2 も 10.0.100.1 に戻りました(4 回目・PC-B)。
PC-B $ traceroute -n -m 4 -q 1 -w 2 -t 184 10.1.10.10
traceroute to 10.1.10.10 (10.1.10.10), 4 hops max, 46 byte packets
1 10.2.10.1 0.447 ms
2 10.0.100.1 1.063 ms
3 10.1.10.10 1.428 ms既定の評価期間(3 分)を越えても劣化の間は戻らず、解除の後、印字された再評価の予定の時刻に戻りました。Previous Service Provider: の for 362 sec(3 回目は 361 秒)は 180 秒を超えています。Global Fallback Timer との関係は値のまま記録します。
戻りの理由の文字列(Move to higher preferred link, same active/standby status NH)は、原典の例に出てくる Backup to Primary path preference transition とは字面が違います。同じ意味かは確かめていません。
時間に関わる数字は 3 種類あり、別物です。
| 数字 | 何か | 本ラボの値 |
|---|---|---|
| hold | 変更の後、hold until が印字されている間。意味を説明した原典は無い | since との和が 89 秒 |
| Global Fallback Timer | primary を評価し直す期間。既定 3 分 | 印字の予定の時刻が約 3 分おき |
| 掲載した TCA 受信ログ → 出口変更ログ | 2 つの syslog の時刻の差(BRANCH の時計)。TCA-ID が違い、1 つの TCA の処理時間としては確かめていない | 3.229 秒(3 回目)/ 2.656 秒(4 回目)(§11.3) |
13. 損失の注入
MPLS のリンクに loss 10 % を、§11.2 と同じ手順("enabled": true を明示した PATCH と GET の読み返し)で入れました。取得スクリプトは損失が効いたことを ping で確かめてから、最大 300 秒、EF が INET へ移るのを待っています。3 回目は 308 秒で待ちを打ち切って注入の約 5 分半後に解除し、4 回目は待ち始めてから 114 秒で、EF が INET に置かれたことを確かめています(どちらも WSL の取得スクリプト側の時計の値)。結果は run で分かれました。
13.1 3 回目の結果
注入が効いていることは ping で確かめました(3 回目・BRANCH)。
BRANCH# ping 192.0.2.1 repeat 100 timeout 1
Type escape sequence to abort.
Sending 100, 100-byte ICMP Echos to 192.0.2.1, timeout is 1 seconds:
!!.!!!!..!!..!!!!..!!!!!!!!!!!..!!.!.!!!!!!!!!!!!!..!!!!!!.!!!!!!!!!!!
!.!!.!!!!!!!!!.!..!!!!!.!.!!!!
Success rate is 79 percent (79/100), round-trip min/avg/max = 1/1/2 ms注入後の撮影(08:26:49)でも、EF は MPLS のままで、Route Change History の 1 行目は G の戻り(08:19:27)のままでした(3 回目・BRANCH)。
BRANCH# show domain default master traffic-classes
Dst-Site-Prefix: 10.1.10.0/24 DSCP: ef [46] Traffic class id:2
Clock Time: 08:26:49 (UTC) 09/25/2026
TC Learned: 00:36:48 ago
Present State: CONTROLLED
Current Performance Status: in-policy
Current Service Provider: MPLS since 00:07:22
Previous Service Provider: INET pfr-label: 0:0 | 0:0 [0x0] for 361 sec
BW Used: 108 Kbps
Present WAN interface: Tunnel100 in Border 10.2.0.1
Present Channel (primary): 3 MPLS pfr-label:0:0 | 0:0 [0x0]
Backup Channel: 4 INET pfr-label:0:0 | 0:0 [0x0]
Destination Site ID bitmap: 0x1
Destination Site ID: 10.1.0.1 (Active)
Class-Sequence in use: 10
Class Name: VOICE using policy voice
BW Updated: 00:00:18 ago
Reason for Latest Route Change: Move to higher preferred link, same active/standby status NH
Route Change History:
Date and Time Previous Exit Current Exit Reason
1: 08:19:27 (UTC) 09/25/26 INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:4) MPLS(0:0|0:0)/10.2.0.1/Tu100 (Ch:3) Move to higher preferred link, same active/standby status NH
2: 08:13:25 (UTC) 09/25/26 MPLS(0:0|0:0)/10.2.0.1/Tu100 (Ch:3) INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:4) Out-of-Policy (One Way Delay : 200 msec)
3: 08:06:32 (UTC) 09/25/26 None(0:0|0:0)/0.0.0.0/None (Ch:0) MPLS(0:0|0:0)/10.2.0.1/Tu100 (Ch:3) Uncontrolled to Controlled Transition
…(省略)MPLS の EF の channel(id 3)のカウンタは、注入の前後で変わっていません。注入前(3 回目・BRANCH)は以下のとおりです。
BRANCH# show domain default master channels dscp ef
…(省略)
Channel Id: 3 Dst Site-Id: 10.1.0.1 Link Name: MPLS DSCP: ef [46] pfr-label: 0:0 | 0:0 [0x0] TCs: 1 BackupTCs: 0
Channel Created: 00:31:14 ago
…(省略)
ODE Statistics:
Received: 109
…(省略)
TCA Statistics:
Received: 218 ; Processed: 55 ; Unreach_rcvd: 0 ; Local Unreach_rcvd: 0
TCA lost byte rate: 0
TCA lost packet rate: 0
…(省略)注入後(3 回目・BRANCH)は以下のとおりです。
BRANCH# show domain default master channels dscp ef
…(省略)
Channel Id: 3 Dst Site-Id: 10.1.0.1 Link Name: MPLS DSCP: ef [46] pfr-label: 0:0 | 0:0 [0x0] TCs: 1 BackupTCs: 0
Channel Created: 00:36:50 ago
…(省略)
ODE Statistics:
Received: 109
…(省略)
TCA Statistics:
Received: 218 ; Processed: 55 ; Unreach_rcvd: 0 ; Local Unreach_rcvd: 0
TCA lost byte rate: 0
TCA lost packet rate: 0
…(省略)TCA Statistics: の Received は 218 のまま、TCA lost packet rate は 0 のまま、ODE Statistics: の Received は 109 のままでした(218 は F 以降の累積です)。3 回目は、本ラボの条件(iperf の UDP・loss 10 %・この撮影までの間)で EF は移りませんでした。原因は切り分けていません。
この結果から「PfR は損失を見ない」とは言えません。出典の policy には損失の閾値(voice は 1 %)があり(§6.2)、2014 年の Workflow Guide は損失を RTP の流れで測ると書いています。
Jitter and packet loss metrics are measured based on RTP flows, either by data traffic or smart- probe RTP traffic when channel is idle;
本ラボの EF は iperf の UDP で流しており、RTP として送っていません。これが結果に関わったかは確かめていません(§16)。
13.2 4 回目の結果(Next hop down)
4 回目の ping は以下のとおりです(BRANCH)。
BRANCH# ping 192.0.2.1 repeat 100 timeout 1
Type escape sequence to abort.
Sending 100, 100-byte ICMP Echos to 192.0.2.1, timeout is 1 seconds:
!!!!!!!!.!.!!!!!.!!!!!!!!..!!!!!.!!!!!!.!.!.!.!!!!!!!.!!!!!!!!!!!!!!!!
!!!!!!!!!.!!!!.!.!!!!!!!!!!!!.
Success rate is 85 percent (85/100), round-trip min/avg/max = 1/1/3 ms4 回目では、EF の Route Change History に 09:57:05 の INET への出口の変更が記録されました。理由は Next hop down です(4 回目・BRANCH)。
BRANCH# show domain default master traffic-classes
Dst-Site-Prefix: 10.1.10.0/24 DSCP: ef [46] Traffic class id:2
Clock Time: 09:57:09 (UTC) 09/25/2026
TC Learned: 00:30:08 ago
Present State: CONTROLLED
Current Performance Status: in-policy
Current Service Provider: INET since 00:00:04 (hold until 85 sec)
Previous Service Provider: MPLS pfr-label: 0:0 | 0:0 [0x0] for 224 sec
(A fallback provider. Primary provider will be re-evaluated 00:00:01 later)
BW Used: 108 Kbps
Present WAN interface: Tunnel200 in Border 10.2.0.1
Present Channel (primary): 3 INET pfr-label:0:0 | 0:0 [0x0]
Backup Channel: none
Destination Site ID bitmap: 0x1
Destination Site ID: 10.1.0.1 (Active)
Class-Sequence in use: 10
Class Name: VOICE using policy voice
BW Updated: 00:00:08 ago
Reason for Latest Route Change: Next hop down
Route Change History:
Date and Time Previous Exit Current Exit Reason
1: 09:57:05 (UTC) 09/25/26 MPLS(0:0|0:0)/10.2.0.1/Tu100 (Ch:4) INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:3) Next hop down
2: 09:53:20 (UTC) 09/25/26 INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:3) MPLS(0:0|0:0)/10.2.0.1/Tu100 (Ch:4) Move to higher preferred link, same active/standby status NH
3: 09:47:18 (UTC) 09/25/26 MPLS(0:0|0:0)/10.2.0.1/Tu100 (Ch:4) INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:3) Out-of-Policy (Jitter Mean: 50 usec)
4: 09:40:38 (UTC) 09/25/26 INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:3) MPLS(0:0|0:0)/10.2.0.1/Tu100 (Ch:4) Move to higher preferred link, same active/standby status NH
…(省略)syslog にも同じ秒の TC_PATH_CHG が出ています(4 回目・BRANCH)。
BRANCH# show logging | include DOMAIN|TCA|PFR|MC|BR-
…(省略)
*Sep 25 09:57:05.081: %DOMAIN-5-TC_PATH_CHG: Traffic class Path Changed. Details: Instance=0: VRF=default: Source Site ID=10.2.0.1: Destination Site ID=10.1.0.1: Reason=Next hop down: TCA-ID=63: Policy Violated=VOICE: TC=[Site id=10.1.0.1, TC ID=2, Site prefix=10.1.10.0/24, DSCP=ef(46), App ID=0]: Original Exit=[CHAN-ID=4, BR-IP=10.2.0.1, DSCP=ef[46], Interface=Tunnel100, Path=MPLS[label=0:0 | 0:0 [0x0]]]: New Exit=[CHAN-ID=3, BR-IP=10.2.0.1, DSCP=ef[46], Interface=Tunnel200, Path=INET[label=0:0 | 0:0 [0x0]]]PC-B の traceroute の EF の hop 2 は * で、3 つ目の証拠はそろいませんでした(4 回目・PC-B)。
PC-B $ traceroute -n -m 4 -q 1 -w 2 -t 184 10.1.10.10
traceroute to 10.1.10.10 (10.1.10.10), 4 hops max, 46 byte packets
1 10.2.10.1 0.504 ms
2 *
3 10.1.10.10 1.645 msそろったのは Route Change History と syslog の 2 つなので、この変更は §8.3 の定義の「移った」には数えず、「出口の変更が記録された」と書きます。
注入後の BRANCH の EF の channel の一覧には、INET の channel(id 3)の行だけがあり、MPLS の EF の channel の行がありません(4 回目・BRANCH)。
BRANCH# show domain default master channels dscp ef
Legend: * (Value obtained from Network delay:)
Legend: *[255] (DCA Channel)
Channel Id: 3 Dst Site-Id: 10.1.0.1 Link Name: INET DSCP: ef [46] pfr-label: 0:0 | 0:0 [0x0] TCs: 1 BackupTCs: 0
…(省略)注入前の撮影(09:54:53)より後の %DOMAIN-5-TCA は同じ syslog にありません。解除の後、Route Change History に 10:00:10 の MPLS への出口の変更が記録されました。同じ秒の TC_PATH_CHG(10:00:10.961)は、Phase I の直前に撮った syslog に残っています。この後の traceroute は撮っていないので、これも 2 つの記録です。変更後の出口は (Ch:8) で、注入前の (Ch:4) とは別の channel id でした(4 回目・BRANCH)。
BRANCH# show domain default master traffic-classes
…(省略)
Route Change History:
Date and Time Previous Exit Current Exit Reason
1: 10:00:10 (UTC) 09/25/26 INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:3) MPLS(0:0|0:0)/10.2.0.1/Tu100 (Ch:8) Move to higher preferred link, same active/standby status NH
2: 09:57:05 (UTC) 09/25/26 MPLS(0:0|0:0)/10.2.0.1/Tu100 (Ch:4) INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:3) Next hop down
3: 09:53:20 (UTC) 09/25/26 INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:3) MPLS(0:0|0:0)/10.2.0.1/Tu100 (Ch:4) Move to higher preferred link, same active/standby status NH
…(省略)Next hop down の記録からは、この出口の変更が損失によるものとは言えません。損失の TCA の逐語は撮れておらず、何の next hop が down と判定されたか(EIGRP の隣接・NHRP・channel のどれか)も撮っていません。損失について本ラボの実測で言えるのは、この 2 つの観測までです。損失の閾値は、出典のテンプレートと policy の表示(§6.2)に拠ります。
14. 経路断
MPLS のリンクを CML で止めました。断の前には、EF が MPLS に居て hold until の印字が消えていることを確かめています(4 回目 MPLS since 00:01:48・3 回目 00:07:35)。BRANCH の syslog は以下のとおりです(4 回目・BRANCH。それより前の行は省略)。
BRANCH# show logging | include DOMAIN|TCA|PFR|MC|BR-|LINEPROTO
…(省略)
*Sep 25 10:02:10.140: %DOMAIN-5-TCA: UNREACHABLE Received. Details: Instance id=0: VRF=default: Source Site ID=10.2.0.1: Destination Site ID=10.1.0.1: TCA-ID=67: TCA-Origin=10.1.0.2(R): Exit=[CHAN-ID=8, BR-IP=10.2.0.1, DSCP=ef[46], Interface=Tunnel100, Path=MPLS[label=0:0 | 0:0 [0x0]]
*Sep 25 10:02:10.668: %DOMAIN-5-TC_PATH_CHG: Traffic class Path Changed. Details: Instance=0: VRF=default: Source Site ID=10.2.0.1: Destination Site ID=10.1.0.1: Reason=Exit Deleted: TCA-ID=68: Policy Violated=VOICE: TC=[Site id=10.1.0.1, TC ID=2, Site prefix=10.1.10.0/24, DSCP=ef(46), App ID=0]: Original Exit=[CHAN-ID=8, BR-IP=10.2.0.1, DSCP=ef[46], Interface=Tunnel100, Path=MPLS[label=0:0 | 0:0 [0x0]]]: New Exit=[CHAN-ID=3, BR-IP=10.2.0.1, DSCP=ef[46], Interface=Tunnel200, Path=INET[label=0:0 | 0:0 [0x0]]]3 回目は以下のとおりです(3 回目・BRANCH)。
BRANCH# show logging | include DOMAIN|TCA|PFR|MC|BR-|LINEPROTO
…(省略)
*Sep 25 08:27:13.193: %DOMAIN-5-TCA: UNREACHABLE Received. Details: Instance id=0: VRF=default: Source Site ID=10.2.0.1: Destination Site ID=10.1.0.1: TCA-ID=67: TCA-Origin=10.2.0.1(L): Exit=[CHAN-ID=3, BR-IP=10.2.0.1, DSCP=ef[46], Interface=Tunnel100, Path=MPLS[label=0:0 | 0:0 [0x0]]
*Sep 25 08:27:13.333: %DOMAIN-5-TC_PATH_CHG: Traffic class Path Changed. Details: Instance=0: VRF=default: Source Site ID=10.2.0.1: Destination Site ID=10.1.0.1: Reason=Exit Deleted: TCA-ID=70: Policy Violated=VOICE: TC=[Site id=10.1.0.1, TC ID=2, Site prefix=10.1.10.0/24, DSCP=ef(46), App ID=0]: Original Exit=[CHAN-ID=3, BR-IP=10.2.0.1, DSCP=ef[46], Interface=Tunnel100, Path=MPLS[label=0:0 | 0:0 [0x0]]]: New Exit=[CHAN-ID=4, BR-IP=10.2.0.1, DSCP=ef[46], Interface=Tunnel200, Path=INET[label=0:0 | 0:0 [0x0]]]到達不能の TCA(UNREACHABLE Received)と Exit Deleted の切替は、どちらの run でも同じ秒でした。一方で、TCA の起点の印字は run で分かれました。4 回目は TCA-Origin=10.1.0.2(R)(HUB-BR の Loopback0)、3 回目は TCA-Origin=10.2.0.1(L)(BRANCH 自身の Loopback0)です。
同じ操作でも起点の印字が違い、(L) / (R) の意味を説明した文は §20 の資料にありません。断をどちらの装置が検知したかは、この印字からは言えません。2014 年の Workflow Guide は、到達不能の判定と通知を次のように書いています。
Channel declare as RX unreachable when no traffic over channel over 1 second monitor interval Channel is deleted if idle for 5 minutes when all traffic-classes on channel get aging out
Unreachable TCA will feedback to local and remote master controller;
到達不能の TCA は local と remote の両方の MC へ返る、という書き方です。2014 年の資料の 1 秒に対し、17.3 の機器は Channel Unreachable Threshold Timer: 4 seconds と印字していました(§6.1 の HUB-BR の出力)。2020 年の移行ガイドの出力例も 4 秒で、版によって書き方が違います。
TC の Route Change History も Exit Deleted です(4 回目・BRANCH)。
BRANCH# show domain default master traffic-classes
Dst-Site-Prefix: 10.1.10.0/24 DSCP: ef [46] Traffic class id:2
Clock Time: 10:02:24 (UTC) 09/25/2026
TC Learned: 00:35:23 ago
Present State: CONTROLLED
Current Performance Status: in-policy
Current Service Provider: INET since 00:00:14 (hold until 75 sec)
Previous Service Provider: MPLS pfr-label: 0:0 | 0:0 [0x0] for 119 sec
(A fallback provider. Primary provider will be re-evaluated 00:02:46 later)
BW Used: 108 Kbps
Present WAN interface: Tunnel200 in Border 10.2.0.1
Present Channel (primary): 3 INET pfr-label:0:0 | 0:0 [0x0]
Backup Channel: none
Destination Site ID bitmap: 0x1
Destination Site ID: 10.1.0.1 (Active)
Class-Sequence in use: 10
Class Name: VOICE using policy voice
BW Updated: 00:00:23 ago
Reason for Latest Route Change: Exit Deleted
Route Change History:
Date and Time Previous Exit Current Exit Reason
1: 10:02:10 (UTC) 09/25/26 MPLS(0:0|0:0)/10.2.0.1/Tu100 (Ch:8) INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:3) Exit Deleted
2: 10:00:10 (UTC) 09/25/26 INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:3) MPLS(0:0|0:0)/10.2.0.1/Tu100 (Ch:8) Move to higher preferred link, same active/standby status NH
…(省略)経路断では、経路表も Tunnel200 へ変わりました(4 回目・BRANCH)。
BRANCH# show ip route 10.1.10.10
Routing entry for 10.1.0.0/16
Known via "eigrp 100", distance 90, metric 5120256, precedence routine (0), type internal
Redistributing via eigrp 100
Last update from 10.0.200.1 on Tunnel200, 00:00:11 ago
Overrides from "PfR"
Routing Descriptor Blocks:
* 10.0.200.1, from 10.0.200.1, 00:00:11 ago, via Tunnel200
Route metric is 5120256, traffic share count is 1
Total delay is 100010 microseconds, minimum bandwidth is 1000 Kbit
Reliability 255/255, minimum MTU 1400 bytes
Loading 255/255, Hops 1遅延の注入(§11.5)では経路表が Tunnel100 のままだったのと対照的です。経路断は「経路表は変わらない」の例にはなりません。EIGRP が経路を切り替えたのと PfR の Exit Deleted のどちらが先かは決められません。経路表の Last update … 00:00:11 ago は最後に更新されてからの経過時間で、切り替えた瞬間とは限らないためです。
断の間も、BRANCH の GigabitEthernet2 と Tunnel100 は up/up のままでした(4 回目・BRANCH)。
BRANCH# show ip interface brief | exclude unassigned
Interface IP-Address OK? Method Status Protocol
GigabitEthernet1 172.16.1.233 YES TFTP up up
GigabitEthernet2 192.0.2.2 YES TFTP up up
GigabitEthernet3 198.51.100.2 YES TFTP up up
GigabitEthernet4 10.2.10.1 YES TFTP up up
Loopback0 10.2.0.1 YES TFTP up up
Tunnel0 10.2.0.1 YES unset up up
Tunnel100 10.0.100.10 YES manual up up
Tunnel200 10.0.200.10 YES manual up up 断の前の MPLS の EF の channel は Unreach_rcvd / Local Unreach_rcvd がどちらも 0 でしたが、断の後の一覧には MPLS の EF の channel の行が無く(INET だけ)、前後の差については何も言えません。PC-B の traceroute の EF の hop 2 は 10.0.200.1 でした(4 回目・PC-B)。
PC-B $ traceroute -n -m 4 -q 1 -w 2 -t 184 10.1.10.10
traceroute to 10.1.10.10 (10.1.10.10), 4 hops max, 46 byte packets
1 10.2.10.1 0.719 ms
2 10.0.200.1 1.062 ms
3 10.1.10.10 1.870 msリンクを戻すと、EF は MPLS へ戻りました(4 回目 10:05:11・3 回目 08:30:13)。戻り先の channel は (Ch:11) で、断の前の (Ch:8) とは別の id です(4 回目・BRANCH)。
BRANCH# show domain default master traffic-classes
…(省略)
Reason for Latest Route Change: Move to higher preferred link, same active/standby status NH
Route Change History:
Date and Time Previous Exit Current Exit Reason
1: 10:05:11 (UTC) 09/25/26 INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:3) MPLS(0:0|0:0)/10.2.0.1/Tu100 (Ch:11) Move to higher preferred link, same active/standby status NH
2: 10:02:10 (UTC) 09/25/26 MPLS(0:0|0:0)/10.2.0.1/Tu100 (Ch:8) INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:3) Exit Deleted
3: 10:00:10 (UTC) 09/25/26 INET(0:0|0:0)/10.2.0.1/Tu200 (Ch:3) MPLS(0:0|0:0)/10.2.0.1/Tu100 (Ch:8) Move to higher preferred link, same active/standby status NH
…(省略)15. AAR との対比
6-4 §10.4 が送った 1 つ目の約束は、AAR と PfR の対比です。6-4 は AAR について、BFD の計測に乗っていることと、その設定が Controller 側に置かれることの 2 点を書きました。この 2 点に 6-4 §10.1 が挙げた「見る指標」を加えると、対比の軸は 3 つになります。AAR の側はすべて出典で、本ラボは AAR を動かしていません。
表の PfR の側には、出典に加えて本ラボの実測の場所を添えました。
15.1 必須の 3 軸
| 軸 | PfR(IOS XE の PfRv3) | AAR(Cisco Catalyst SD-WAN) |
|---|---|---|
| 計測手段 | 受信側の BR が、入ってくる向きで DSCP ごとに受動的に測る。smart probe も送る(17.x の資料では 3 種類。§7.1)。本ラボでは、制御下の TC が載っていない channel もデータの有無に関わらず probe を受け(§7.4)、HUB-BR を起点とする TCA が BRANCH へ届いた(§11.3) | トンネルの端点間の BFD で常時測る。17.4.1a 以降の Per-Class AAR では、app-probe-class ごとに DSCP を持てる |
| 判定基準の置き場所 | hub MC に書き、peering で全拠点の MC へ配る。本ラボでは BRANCH に書いていない class が BRANCH に載った(§6.2) | SD-WAN Controller に置き、Controller が edge へ push する |
| 見る指標 | 到達性・遅延(片方向 = 往復の半分)・ジッタ・損失。policy は one-way-delay・packet-loss-rate・byte-loss-rate・jitter の閾値を持つ。出口の容量も申告される(§9.1) | loss・latency・jitter |
計測手段について、AAR の章は BFD による計測を次のように書きます。
Application-aware routing uses the BFD Hello packets to measure the loss, latency, and jitter on the links.
BFD の DSCP は既定で 48 ですが、その文は Per-Class AAR(17.4.1a 以降)の節にあり、同じ節は DSCP 48 で測った値が実データの扱いを反映しないことと、app-probe-class が DSCP を持つことを続けて書いています。
The BFD control messages are sent with a high priority Differentiated Services Code Point (DSCP) marking of 48.
The SLA metrics based on the high priority packet does not reflect the priority that is received by the actual data that flows through the edge device.
An application probe class (app-probe-class) comprises of a forwarding class, color, and DSCP.
AAR の章は、SAIE による受動的な監視にも触れています。「AAR は能動的な計測だけ」とは言えません。
Passive monitoring methods rely on the Cisco Catalyst SD-WAN Application Intelligence Engine (SAIE) flow and monitoring actual traffic.
判定基準の置き場所について、AAR の章は次のように書きます。
An application-aware routing policy is a type of centralized data policy: you configure it on the Cisco SD-WAN Controller, and the controller automatically pushes it to the affected Cisco IOS XE Catalyst SD-WAN devices.
PfR の policy は hub MC に書かれて各拠点の MC へ配られますが、判断するのは各拠点の MCです(§3 の Workflow Guide の引用)。AAR では Controller が policy を push し、edge が各パケットに SLA action を当てます。移行ガイドは、AAR の SLA class を PfRv3 の domain policy から作った実例を載せ、それを「最も近い代替」と呼んでいます。
Application Performance Optimization: Application aware routing policies that offer SLA protection and preferred path selection for specific applications. (App-Route SLA classes derived from the IWAN PfRv3 domain policy)
The policy below provides the closest alternative to the previous pfrv3 policy configured under IWAN sections.
見る指標のうち latency について、AAR の章は片道と往復の両方に触れ、EAAR の章は BFD echo の往復時間と定義しています。PfR の one-way delay(往復の半分)と AAR の latency の閾値は、同じ量として並べません。
15.2 判定の時間の粒度
判定の時間の粒度は、3 段に分けて並べます。並べる数字は、監視の間隔・集計の窓・検出までの収束時間と、何の時間かがそれぞれ違います。
① 既定値どうし。PfR の監視の間隔(monitor-interval)は、16.12 のガイドで既定 30 秒です(§7.1)。AAR は既定で poll 10 分・multiplier 6 で、直近 1 時間の値で SLA を分類します。
By default, the poll interval is 10 minutes.
For the default poll interval of 10 minutes and the default multiplier of 6, the loss, latency, and jitter information collected over the last hour is considered when classifying the SLA of each tunnel.
同じ本の Enhanced application-aware routing(EAAR)の章は、既定のままでは緩やかな劣化の検出に 10 分〜1 時間かかると書いています。
However, the default convergence time for detection of slowly degrading WAN circuits is between 10 minutes and 1 hour.
既定値を、何の時間かで分けると以下のとおりです。
| 既定値 | 何の時間か | 出典 |
|---|---|---|
PfR の monitor-interval 30 秒 | 監視の間隔 | 16.12 のガイド(§7.1) |
| AAR の poll 10 分 | 損失・遅延・ジッタの平均を取る間隔 | AAR の章 |
| AAR の poll × multiplier = 1 時間 | SLA の分類に使う値を集める窓 | AAR の章 |
| 既定のままでの 10 分〜1 時間 | 緩やかな劣化を検出するまでの収束時間 | EAAR の章 |
種類の違う時間どうしを並べても、切替の速さの比にはなりません。PfR の側の 30 秒は監視の間隔の値で、AAR の側の 10 分〜1 時間は収束時間の値です。本ラボの PfR の実測でも、注入から出口の変更までの時間は機器の時計で測れていません(§11.3)。また、ここで比べているのは既定値で、AAR の性質ではありません。
② 変更できる。AAR の poll と multiplier は変えられます。
The poll interval is user-configurable (with the bfd app-route poll-interval command).
The multiplier is user-configurable (with the bfd app-route multiplier command).
PfR の監視の間隔も、§7.1 の 16.12 のガイドの引用のとおり、重要な通信について短くできます。本ラボは HUB-MC に monitor-interval 2 dscp ef を入れ、EF の監視の間隔を 2 秒にしました(§6)。2 秒は 16.12 のガイドが quick monitor の例に挙げる値で、既定値ではありません。
③ EAAR。17.12.1a 以降の EAAR は、既定で無効で、有効にすると poll 10 秒・multiplier 6 が既定になります。
Cisco IOS XE Catalyst SD-WAN Release 17.12.1a and later. Cisco Catalyst SD-WAN Manager Release 20.12.1 and later.
The EAAR feature is disabled by default to support existing deployments.
When the enhanced application aware PfR is enabled, the default poll-interval of 10 seconds and multiplier of 6 is used for SLA enforcement and switchover. To modify these settings, use the following configuration options:
15.3 SD-WAN の資料の「PfR」
EAAR の章には PfR という略語が繰り返し出ます。章は PfR を performance routing data とも Performance Routing(PfR (Performance Routing) metrics)とも展開し、EAAR の機能の名前(enhanced application aware PfR / enhanced PfR)にも使います。どれも SD-WAN のトンネルの BFD や inline data による計測に基づく語で、IOS XE の PfR(PfRv3)とは別物です。章は、損失・遅延・ジッタの計測値を BFD が集めると書きます。
BFD (Bidirectional Forwarding Detection) detects link failure conditions and gathers performance routing data (PfR), including loss, latency, and jitter information of Cisco Catalyst SD-WAN tunnels (both IPsec and GRE). Each BFD hello packet collects the following information:
ただし同じ章は、EAAR の計測を BFD だけでは説明していません。EAAR の利点として、インラインの実データ(inline data)を使った計測の改善を挙げています。
Improved the PfR metrics (loss/latency/jitter) measurements by introducing inline data that allows for more accurate and detailed measurements of these metrics.
一方で、相手の装置が 17.12.1a に上げられておらず EAAR も無効な場合や、両側が 17.12.1a でも EAAR が無効な場合は、BFD ベースの計測に戻ると書いています。
If both the local and remote sides are using Cisco IOS XE Catalyst SD-WAN Release 17.12.1a but the EAAR feature is not enabled, the system will revert to using BFD based measurements.
inline data で何をどう測るかは、章に書かれていません。同じ章の PfR CLI(bfd enhanced-app-route の行)や pfr-poll-interval の PfR も SD-WAN の側の語で、IOS XE の PfRv3 の CLI(domain default)ではありません。以後、SD-WAN の側は「EAAR の計測値」と呼び、PfR とは書きません。
15.4 補助の軸
| 軸 | PfR | AAR |
|---|---|---|
| 判断する装置 | 各拠点の MC(hub MC は集中コントローラではない) | Controller が policy を push し、edge がパケットに当てる |
| どの class にも当たらない通信 | load-balance を入れなければ default class は無く、経路表どおり(§10) | positive policy として受け入れる |
| 本ラボでの実測 | あり(§4〜§14) | なし(6-4 も AAR を観測していない) |
どれにも当たらない通信について、AAR の章は次のように書きます。
Because application-aware routing policy accepts nonmatching traffic by default, it is considered as a positive policy.
16. 本ラボで確かめていないこと
本節の実測は、2 回の run の show 出力に収まる範囲です。以下は観測していません。
- transit site・load-balance・アプリケーション単位の policy(NBAR)。どれも設定していません。アプリケーション方式の policy には非対称経路が不可という制約があると 17.x のガイドは書いています
- IPsec で保護した DMVPN。平文の mGRE です(6-7 と同じ)
- hub BR を transport ごとに 1 台にした構成、2 台目の branch、branch 間の通信の制御。ノードを増やしていません
- hub から branch への向きの TC。iperf は PC-B から PC-H への片方向で、HUB-MC の TC は撮っていません
- path-id と channel-based measurement。どちらも入れていません(channel-based measurement は 16.11.1 からの別の計測方式)
- Phase D の結果が run で分かれた理由。投入の直前に撮った値(TC の年齢・予告・MPLS の利用率・channel の TCA と ODE)には差が見つかりませんでした。撮っていない量が効いた可能性は残ります
- 出口の容量が置き場所や制御の入口に効く条件。D-cap は流量・EF のレート・経過時間が、E は bandwidth と EIGRP の metric が同時に変わります。各 run 1 回ずつの観測で、どの量が効いたかは切り分けていません。
95% Bandwidth CheckとDestination Site ID: 0.0.0.0の意味も確かめていません bandwidthが帯域を絞るか。本ラボはbandwidthを出口の容量の宣言として使い、シェーパやポリサは入れていません。Egress Utilizationの値はEgress BWを宣言したEgress capacityで割った値にあたり(4 回目の Phase C の MPLS は 363 Kbps / 100 Kbps で 363 %)、100 % を超える値も宣言との比です。4 回目の D-cap で、容量 100 Kbps の INET に置かれた AF11 の 128 kbps が、iperf の受信で損失 0 % だったこと(§9.6)は観測しましたが、bandwidthの設定そのものが帯域を制限するかは、出典の文でも対照の実験でも確かめていません- 制御に入った直後に EF が fallback に置かれる理由(4 回目の D)。投入の直前の MPLS は 363 % でしたが、判定に使った値は印字されません(§9.3)
UN-CONTROLLEDの間に機器が見積もった帯域。BW Usedの欄が無く、channel の見積もりも 0 Kbps でした- 集約の下で学習した TC の宛先。本ラボの TC はどれも集約の無い状態で学習しています。TC の宛先
/24の決まり方(minimum mask か、学習時点の経路か)と、2014 年の資料の形(site prefix で識別)との違いの原因も確かめていません。minimum mask length を変えた場合も試していません - hub の site prefix を個別の経路に合わせた対照。本節が追った hub の site prefix は
10.1.0.0/16で(§7.2)、それに対応する経路は集約の投入と撤去で出し入れしました(§8)。本ラボで10.1.0.0/16に対応した経路は、集約の経路だけです。集約を入れずに site prefix の側を hub の LAN の/24(10.1.10.0/24)に合わせ、個別の経路のまま比べる対照は取っていません - smart probe の中身。どの種類の probe かは、パケットでは確かめていません(機器の送信カウンタの内訳は §7.4)。受信数の差(DSCP ごとの差と、制御下の AF11 の channel だけ約 10 秒に 1 個になったこと。§7.4)と送信カウンタの数え方が、§7.1 のどの種類の probe の条件に当たるかも確かめていません
- 注入から TCA までの時間。注入の操作は、CML の API を呼んだ WSL(取得スクリプト側)の時計でしか記録しておらず、機器の時計と揃っていません。機器どうしも NTP で揃えていないので、HUB-BR が TCA を送った時刻と BRANCH が受けた時刻の差も書けません
- 遅延の閾値だけによる切替。F の遅延の注入では、TCA 受信ログには jitter の閾値超えが両 run で印字され(3 回目は
one-way-delay(200/150)と並んでjitter(66804/30000)、4 回目はjitter(66742/30000)だけ)、切替の理由は 3 回目Delay・4 回目Jitterと分かれました(§11.3)。遅延の注入で jitter の閾値超えが印字された理由は確かめていません。判定の指標を one-way-delay に絞った対照(custom の policy)も取っていません - 損失の注入の結果の原因。3 回目は出口の変更が記録されず、4 回目は Route Change History と syslog に
Next hop downの出口の変更が記録されました(traceroute の hop 2 は*)。本ラボの損失は MPLS のリンク全体に入れたもので、EF の通信だけを落とす注入ではありません(§13 の ping も落ちています)。EF は RTP ではない iperf の UDP です。この組み方では、損失の閾値による切替と、到達性の喪失による切替を実験の上で分けられず、4 回目のNext hop downの原因もこの組み方では特定できません(§13.2)。RTP で流す対照も取っていません (L)/(R)・hold until・Syslog TCA suppress timerの意味。どれも出典に説明が見当たりません。hold untilの印字がある間に劣化の注入や経路断を行った場合の動作も試していませんInitiated and open/Discovered and openの意味。2014 年の資料は、channel に active な traffic class があればInitiated_n_open、無ければDiscovered_n_openと書きます。17.3 の Phase C の BRANCH では、どの channel もTCs: 0でしたが、TC が学習された DSCP(ef・af11)の channel はInitiated and open、TC の立たなかった default の channel は両経路ともDiscovered and openでした(両 run)。hub 側は逆で、Phase C の HUB-MC の master channels と HUB-BR の border channels(2 回の撮影)では、default の channel が両経路ともInitiated and open、ef・af11 の channel がDiscovered and openでした(両 run)。状態が何で決まるかは確かめていません- 経路断で EIGRP と PfR のどちらが先に効いたか
- 6-7 との設定の差(split-horizon など)の影響
- IPv6 と NAT。17.x のガイドはどちらも非対応としています
- 17.4 以降と Catalyst 8000V。17.x のガイドは 17.4 以降を非対応としています
- AAR / EAAR の動作。§15 の AAR 側はすべて出典です
17. 落とし穴・補足
TC が制御に入らないときは、まず site prefix に対応する経路を見ます。本ラボでは、hub から個別の経路(/24 や /32)しか届いていない間、channel の Site Prefix List が 10.1.0.0/16 (Unreachable)、master の TC の Destination Site ID: が 0.0.0.0、という 2 つがそろって現れました。parent route は hub の site-id を含む 10.1.0.1/32 が引けているので、この徴候には数えません(§8.2)。遅延を注入しても TC は動かないので、「PfR が効かない」ように見えます。ただし経路がそろっても入らなかった run もあります(§8.3)。
トンネルの既定の bandwidth は、そのまま PfR の出口の容量になります。csr1000v 17.03.08a のトンネルの既定は 100 Kbit で、PfR は Egress capacity: 100 Kbps と印字しました。この値のままでは、数本の通信で利用率が 100 % を大きく超えます(Phase C の MPLS は 4 回目 363 % / 3 回目 351 %)。
出典は、サービスプロバイダの帯域に合わせて設定するものと書いています(§9.1)。bandwidth は EIGRP の metric も変えるので、変更の前後で経路の選び方も変わります。
制御に入った直後の TC は fallback の出口に居ることがあります。4 回目の D では、EF は primary の MPLS ではなく fallback の INET に置かれ、(A fallback provider. Primary provider will be re-evaluated … later) と印字されました。この状態で劣化を注入すると、元から INET に居たものを「劣化で移った」と読む誤りになります。注入の前に、対象の TC が primary に居て hold until の印字が消えていることを確かめます(§11.1)。
p と Overrides from "PfR" は制御の証拠になりません。UN-CONTROLLED の間から付いています(§10.1)。制御下かは Present State: で読みます。
hold・Global Fallback Timer・掲載した TCA 受信ログから出口変更ログまでの時間は、別の数字です(§12.3 の表)。本ラボの遅延・損失の注入と経路断は、どれも EF の hold until の印字が消えてから行いました(§11.1・§14)。hold until の印字がある間の動作は確かめていません(§16)。
channel のカウンタは累積値で、channel は作り直されることがあります。4 回目の F の HUB-BR の受信数は、D から D-cap までの積算を含んでいました(3 回目は F の前に EF の TC が INET に置かれたことが無く、注入前の値は 265 でした。§11.4)。K の ageout の後、4 回目では channel の id が 11 から 16 に変わりました。差は同じ channel id の中の前後で取ります。
1 回の run の結果を一般化しません。同じ手順でも、D の分岐・F の理由(Delay / Jitter)・H の結果・I の起点((L) / (R))が run で分かれました。検証を自動化するときも、判定の文字列を結果(Delay や (L))で決め打ちすると、別の run で誤って失敗になります。本ラボでは、記事の数値の検証器は、切替や断を Out-of-Policy ( や UNREACHABLE Received のように結果に依らず出る文字列で見つけ、見つけた行の値(F の理由・I の起点など)は run ごとに分けた期待値と照合しました。一方、取得スクリプトは F の切替を Out-of-Policy (One Way Delay と Reason=Delay で探しており、理由が Jitter だった 4 回目では切替を取り逃しました(INET へ移った最新の行で読み直して先へ進んでいます)。
出力を文字列で判定するときは部分一致に注意します。CONTROLLED は UN-CONTROLLED の一部で、ef は default の一部です。本ラボは Present State: の後ろの語や DSCP: ef [ の形で判定しました。
17.3 と 2014 年の資料の出力は書式が違います。17.3 は Reason for Latest Route Change:(17.x の設定ガイドの例と同じ)、2014 年の資料は Reason for Route Change: です。17.3 の UN-CONTROLLED・Exit Deleted・Move to higher preferred link, same active/standby status NH・Global Fallback Timer は、§20 の原典のどこにも出てきません。原典の例の文字列と 17.3 の文字列が同じ意味かは確かめていないので、出力は 17.3 の実物だけを貼りました。
ラボで no domain を打つ前に、既知の不具合を確認します。CSR 1000v 17.3 のリリースノートは、PfR IWAN を無効にしたときの NHRP のクラッシュを 17.3.5 の Open Bugs に載せています。
CSCwa18588 IOSd Nhrp core due to a segmentation fault when disabling PfR IWANs
17.3.6 以降の一覧には記載が無く、17.3.8a での状態は書かれていません。本ラボは no domain を打たず、ラボごと停止・削除して片付けました。
show running-config | section domain は、インタフェースの行を伴わない domain path を返します(§6.3)。インタフェースごとの path 名を確かめるときは、show running-config interface Tunnel100 のようにインタフェースを指定します。
18. 本節と第 6 章のまとめ
本節では、PfRv3 が経路の品質を測って出口を選ぶ流れを、csr1000v 17.03.08a の MC と BR で確かめました。hub MC にだけ書いた class と閾値は、peering で branch の MC に載りました(§6.2)。性能は受信側の BR が channel(宛先の site・path・DSCP の組)ごとに測り、閾値を越えると TCA で送信元の MC へ知らせます(§7・§11)。MC が TC ごとに出口を選び直し、BR がその出口へ転送します。
TC が制御に入ったのは、hub の site prefix に対応する経路(本ラボでは集約の 10.1.0.0/16)がある間だけでしたが、経路があっても入らなかった run もあります(§8.5)。出口の容量は、容量を超えた出口に TC が置かれたままのこともあり、本ラボでは制御に入る前提として扱っていません(§9.9)。制御に入った後も PfR は経路表を書き換えずに TC ごとの転送だけを変え、経路表の p は制御の証拠になりませんでした(§10)。
遅延の注入では、TCA の後に EF だけが INET へ移り、切替の理由は run で Delay と Jitter に分かれました(§11)。解除の後、EF は印字された再評価の予定の時刻に MPLS へ戻りました(§12)。損失の注入では損失を理由とする出口の変更は記録されず(3 回目は移らず、4 回目は Next hop down)、損失の閾値による切替は確かめていません(§13)。経路断では、経路表も Tunnel200 へ変わりました(§14)。
PfRv3 は IOS XE 17.3 が最後の系列です(§2)。確かめていないことは §16 にまとめてあります。
第 6 章は、拠点と拠点をどう結ぶかを 8 節で扱いました。
6-1 MPLS 基礎 は、ラベルで転送するとはどういうことかを 1 本の経路で追いました。ラベルの値は下流の LSR が決めて上流がそれを使うこと、配られた広告を全部持つ LIB と使う 1 本だけを持つ LFIB が別物であること、出口の 1 つ手前でラベルが外れること、経路が変わると LFIB だけが入れ替わることを実機で確かめています。
6-2 MPLS L3VPN は、その上に顧客ごとの経路表を載せました。VRF が 1 台の中で経路表を分け、RD が同じ prefix を 2 本のまま運べる形にし、RT が入れ先を決めます。パケットにはラベルが 2 枚積まれ、外は道順を、内は誰の経路表かを表し、コアの P は顧客の経路を持たないまま運びます。ここまでの 2 節は、事業者が用意した網の話でした。
6-3 Cisco SD-WAN 概要 と 6-4 SD-WAN 設計と運用 は、拠点側の装置がオーバーレイを張る方式へ主語を移しました。仕事は管理・制御・オーケストレーション・データの 4 つの平面に割れて Manager・Controller・Validator・WAN Edge がそれぞれを担当し、TLOC は system IP・color・encapsulation の 3 つ組で識別され、OMP は経路だけでなく鍵とポリシーも運びます。実機では、Controller の居ない cEdge の上で TLOC がローカルに立つところと、transport の数で number-active-wan-interfaces が 2 と 1 に割れるところを撮り、SLA class を書く階層が edge に無いことも確かめました。AAR の掘り下げは本節へ送られました。
6-5 VXLAN / EVPN は、L2 のセグメントを L3 網の上に延ばしました。包むのは元のフレームのヘッダとペイロードで、線路上のフレームは 50 バイト大きくなり、素の VXLAN の flood-and-learn を BGP EVPN が制御プレーンでの配布に置き換えます。6-6 SD-Access は同じオーバーレイをキャンパスの側から扱い、コントロールプレーンが LISP、データプレーンが VXLAN であること、端末が EID として map-server へ登録され、リモートの居場所が経路表ではなく map-cache に載ることを、Catalyst Center 無しの CLI で確かめました。
6-7 DMVPN (実践) は、WAN を挟んだ拠点間のトンネルを必要になったときに張る仕組みを扱いました。mGRE は tunnel destination を書かないトンネルで、相手の実アドレスは NHRP が解決します。Phase 3 では、hub の ip nhrp redirect と集約によって、近道が Known via "nhrp", distance 250 の経路として経路表に載りました。本節 6-8 は、そのトンネルの品質を測って出口を選ぶ PfR を扱いました。
第 6 章のうち SD-WAN(6-3 / 6-4)と SD-Access(6-6)は、Controller や Catalyst Center を含むラボを組まずに、装置の CLI で確かめられる範囲を実測しました。6-7 の DMVPN と本節の PfR は、宛先の解決と出口の選択を、ルータの CLI だけで組んで確かめた節です。6-3 以降の各節は、実機で確かめたことと資料に拠ることを分けて書き、確かめていないことを節ごとに一覧にしています。
19. 次章
第 6 章では、拠点と拠点をどう結ぶかを扱いました。次章の主題は、その装置をプログラムから扱う方法です。
第 7 章 Programmability 編は全 6 節です。XML / JSON と SSH / HTTP の組み合わせで装置の設定と状態を読み書きする NETCONF / RESTCONF、そのデータの形を決める YANG モデル(IETF と OpenConfig)、状態を Subscribe と Push で受け取る gNMI と Model-Driven Telemetry、装置の中でスクリプトを動かす Python on Box / Guest Shell、イベントを契機に動作を起こす Embedded Event Manager (EEM)、そして初期設定を自動で投入する Day 0 ZTP が並びます。
第 6 章にも、その入口がありました。6-3 では SD-WAN Manager が WAN Edge の設定の投入に NETCONF を使い、6-6 では Catalyst Center の Provision が Plug and Play を含んでいました。本節の PfR も、hub MC 1 か所に書いた policy が各拠点へ配られる形で、設定を 1 か所から配る仕組みを CLI の範囲で持っていました。次章では、装置の設定と状態を人の手の CLI ではなくプログラムで扱う仕組みを見ていきましょう。
20. 出典
本節が参照した資料です。16 件を 2026 年 9 月 24 日、1 件(EAAR の章)を 9 月 25 日に取得しました。本文中の > の引用はその時点のページ・PDF の逐語です。
手元の機体は csr1000v 17.03.08a で、Cisco の資料は別のリリースを対象としているものを含みます。Cisco Press の記事は cisco.com の一次資料ではありません。
Command Reference のページは 2017 年の更新日を表記していますが、中身には 16.10.1 と 16.11.1 の Command History があります。