CCC とは
ざっくり
- Multi-Protocol Label Switching(MPLS)を用いた Layer-2 tunneling
- Ethernet で使用可能(今どきethernet/tcpip以外使ってるところってどこ...)
- 遠隔地と同一IPセグメントを使用可能(L2スイッチの延長)
- スター型トポロジーだけでなくリング型トポロジーにも適用可能
- QoS環境下でも使用可能
- 暗号化はしない
- ユーザートラフィックをMPLS/CCCでカプセル化するためMTUの調整が必要
- Layer-2技術のためtracerouteなどではトラシュができない(interface counterで判断する)
Juniperマニュアル
CCC、TCC、Ethernet over MPLSの設定 | Junos OS | Juniper Networks
CCC(回線クロスコネクト)を使用すると、2 つの回線間に透過的な接続を設定できます。回線は、フレームリレー データリンク接続識別子(DLCI)、非同期転送モード(ATM)仮想回線(VC)、ポイントツーポイント プロトコル(PPP)インターフェイス、Cisco HDLC(ハイレベル データ リンク制御)インターフェイス、または MPLS ラベルスイッチ パス(LSP)になります。CCCを使用すると、送信元回線からのパケットは、最大でレイヤー2アドレスが変更される状態で宛先回線に配信されます。ヘッダーチェックサム、TTL(Time-to-live)デクリメント、プロトコル処理など、その他の処理は行われません。
構成
通常のネットワークとは異なり、ルータ~スイッチ間で通信ケーブル(IEEE802.3準拠)を2本接続する必要があります。
LANケーブル:1000BASE-T, 1000BASE-TX, 100BASE-TX, etc...
光ケーブル:10GBASE-SR, 1000BASE-SX, 10GBASE-LR, 1000BASE-LX, 10GBASE-BX-U/D, etc...
以下の設定例では Router-A
eth0/4
と Router-B
eth0/4
をL2-tunnelingで接続します。
Router-A
~Router-B
間のリンクが切れた場合用に Router-C
, Router-D
が存在していますが、冗長性考慮しない場合はなくても構いません。
CCCはあくまでL2-tunnelingのためループ対策などは別途行う必要があります。
設定例
IPアドレス帯
IPアドレス | 用途 |
---|---|
172.16.0.0/24 | Loopback |
172.16.1.0/24 | ルータ間接続 |
172.17.101.0/24 | VLAN101 |
172.17.102.0/24 | VLAN102 |
172.17.103.0/24 | VLAN103 |
VLAN(Virtual LAN)
VLAN番号 | 名前 |
---|---|
101 | vlan101 |
102 | vlan102 |
103 | vlan103 |
OSPF Cost
自動計算式
\displaylines{
Cost = \frac{10^8[bps]}{Bandwidth[bps]}
}
※100Mbps基準となっている為、実際に使用する場合には手動設定される場合が多い。(小数点以下は扱えないため cost=1
となる)
Bandwidth | 計算結果 | 実際の値 |
---|---|---|
100Mbps | 1 | 1 |
1000Mbps | 0.1 | 1 |
10Gbps | 0.01 | 1 |
今回は以下のようにした。(手動設定)
箇所 | 値 |
---|---|
ルータ間 | 1 |
端末向け(VRRP Master側) | 100 |
端末向け(VRRP Backup側) | 110 |
Router-A
Details
set interfaces lo0 unit 0 family inet 172.16.0.1/32
注: family mplsは、個々のインターフェイスまたは集合型イーサネットインターフェイスのいずれかで有効にできます。タグ付き VLAN インターフェイスで有効にすることはできません。
set interfaces eth0/0 description "To Router-B eth0/0"
set interfaces eth0/0 unit 0 family inet 172.16.1.1/30
set interfaces eth0/0 unit 0 family mpls
set interfaces eth0/1 description "To Router-C eth0/1"
set interfaces eth0/1 unit 0 family inet 172.16.1.10/30
set interfaces eth0/1 unit 0 family mpls
set interfaces eth0/2 shutdown
set interfaces eth0/3 description "To Switch-A eth0/3"
set interfaces eth0/3 vlan-tagging
set interfaces eth0/3 unit 0 family bridge interface-mode trunk
set interfaces eth0/3 unit 0 family bridge vlan-id-list 101-103
set interfaces eth0/4 description "To Switch-A eth0/4"
set interfaces eth0/4 vlan-tagging
set interfaces eth0/4 unit 101 encapsulation vlan-ccc
set interfaces eth0/4 unit 101 vlan-id 101
set interfaces eth0/4 unit 101 family ccc
set interfaces eth0/4 unit 102 encapsulation vlan-ccc
set interfaces eth0/4 unit 102 vlan-id 102
set interfaces eth0/4 unit 102 family ccc
set interfaces eth0/4 unit 103 encapsulation vlan-ccc
set interfaces eth0/4 unit 103 vlan-id 103
set interfaces eth0/4 unit 103 family ccc
下記は透過するVLANの数分記述します。
set interfaces eth0/4 unit {unit-number} encapsulation vlan-ccc
set interfaces eth0/4 unit {unit-number} vlan-id {vlan-number}
set interfaces eth0/4 unit {unit-number} family ccc
set interfaces irb unit 101 description vlan101
set interfaces irb unit 101 family inet address 172.17.101.2/24 vrrp-group 0 virtual-address 172.17.101.1
set interfaces irb unit 101 family inet address 172.17.101.2/24 vrrp-group 0 priority 128
set interfaces irb unit 101 family inet address 172.17.101.2/24 vrrp-group 0 accept-data
set interfaces irb unit 102 description vlan102
set interfaces irb unit 102 family inet address 172.17.102.2/24 vrrp-group 0 virtual-address 172.17.102.1
set interfaces irb unit 102 family inet address 172.17.102.2/24 vrrp-group 0 priority 128
set interfaces irb unit 102 family inet address 172.17.102.2/24 vrrp-group 0 accept-data
set interfaces irb unit 103 description vlan103
set interfaces irb unit 103 family inet address 172.17.103.2/24 vrrp-group 0 virtual-address 172.17.103.1
set interfaces irb unit 103 family inet address 172.17.103.2/24 vrrp-group 0 priority 128
set interfaces irb unit 103 family inet address 172.17.103.2/24 vrrp-group 0 accept-data
set bridge-domains vlan101 domain-type bridge
set bridge-domains vlan101 vlan-id 101
set bridge-domains vlan101 routing-interface irb.101
set bridge-domains vlan102 domain-type bridge
set bridge-domains vlan102 vlan-id 102
set bridge-domains vlan102 routing-interface irb.102
set bridge-domains vlan103 domain-type bridge
set bridge-domains vlan103 vlan-id 103
set bridge-domains vlan103 routing-interface irb.103
set protocols ospf area 0 interface lo0.0 passive
set protocols ospf area 0 interface eth0/0.0 interface-type p2p
set protocols ospf area 0 interface eth0/0.0 metric 1
set protocols ospf area 0 interface eth0/1.0 interface-type p2p
set protocols ospf area 0 interface eth0/1.0 metric 1
set protocols ospf area 1 interface irb.101 passive
set protocols ospf area 1 interface irb.101 metric 100
set protocols ospf area 1 interface irb.102 passive
set protocols ospf area 1 interface irb.102 metric 100
set protocols ospf area 1 interface irb.103 passive
set protocols ospf area 1 interface irb.103 metric 100
set protocols ldp interface eth0/0.0
set protocols ldp interface eth0/1.0
set protocols rsvp interface eth0/0.0
set protocols rsvp interface eth0/1.0
set protocols mpls no-cspf
set protocols mpls interface eth0/0.0
set protocols mpls interface eth0/1.0
set protocols mpls path RouterA-to-RouterB_Pri 172.16.1.2 strict
set protocols mpls path RouterA-to-RouterB_Sec 172.16.1.9 strict
set protocols mpls path RouterA-to-RouterB_Sec 172.16.1.6 strict
set protocols mpls path RouterA-to-RouterB_Sec 172.16.1.14 strict
set protocols mpls path RouterA-to-RouterB_Lst
set protocols mpls label-switched-path RouterA-to-RouterB_101 from 172.16.0.1
set protocols mpls label-switched-path RouterA-to-RouterB_101 to 172.16.0.2
set protocols mpls label-switched-path RouterA-to-RouterB_101 primary RouterA-to-RouterB_Pri
set protocols mpls label-switched-path RouterA-to-RouterB_101 secondary RouterA-to-RouterB_Sec standby
set protocols mpls label-switched-path RouterA-to-RouterB_101 secondary RouterA-to-RouterB_Lst
set protocols mpls label-switched-path RouterA-to-RouterB_102 from 172.16.0.1
set protocols mpls label-switched-path RouterA-to-RouterB_102 to 172.16.0.2
set protocols mpls label-switched-path RouterA-to-RouterB_102 primary RouterA-to-RouterB_Pri
set protocols mpls label-switched-path RouterA-to-RouterB_102 secondary RouterA-to-RouterB_Sec standby
set protocols mpls label-switched-path RouterA-to-RouterB_102 secondary RouterA-to-RouterB_Lst
set protocols mpls label-switched-path RouterA-to-RouterB_103 from 172.16.0.1
set protocols mpls label-switched-path RouterA-to-RouterB_103 to 172.16.0.2
set protocols mpls label-switched-path RouterA-to-RouterB_103 primary RouterA-to-RouterB_Pri
set protocols mpls label-switched-path RouterA-to-RouterB_103 secondary RouterA-to-RouterB_Sec standby
set protocols mpls label-switched-path RouterA-to-RouterB_103 secondary RouterA-to-RouterB_Lst
注: CSPF は、ネットワーク全体の最短パスが計算される場合に、特定の制限を考慮するために変更された最短パスファースト アルゴリズです。リンク保護がエリア間パスで正しく機能するためには、CSPF を無効にする必要があります。
set protocols connections remote-interface-switch To-RouterB_101 interface eth0/4.101
set protocols connections remote-interface-switch To-RouterB_101 transmit-lsp RouterA-to-RouterB_101
set protocols connections remote-interface-switch To-RouterB_101 receive-lsp RouterB-to-RouterA_101
set protocols connections remote-interface-switch To-RouterB_102 interface eth0/4.102
set protocols connections remote-interface-switch To-RouterB_102 transmit-lsp RouterA-to-RouterB_102
set protocols connections remote-interface-switch To-RouterB_102 receive-lsp RouterB-to-RouterA_102
set protocols connections remote-interface-switch To-RouterB_103 interface eth0/4.103
set protocols connections remote-interface-switch To-RouterB_103 transmit-lsp RouterA-to-RouterB_103
set protocols connections remote-interface-switch To-RouterB_103 receive-lsp RouterB-to-RouterA_103
Router-B
Details
set interfaces lo0 unit 0 family inet 172.16.0.2/32
set interfaces eth0/0 description "To Router-A eth0/0"
set interfaces eth0/0 unit 0 family inet 172.16.1.2/30
set interfaces eth0/0 unit 0 family mpls
set interfaces eth0/1 description "To Router-D eth0/1"
set interfaces eth0/1 unit 0 family inet 172.16.1.14/30
set interfaces eth0/1 unit 0 family mpls
set interfaces eth0/2 shutdown
set interfaces eth0/3 description "To Switch-B eth0/3"
set interfaces eth0/3 vlan-tagging
set interfaces eth0/3 unit 0 family bridge interface-mode trunk
set interfaces eth0/3 unit 0 family bridge vlan-id-list 101-103
set interfaces eth0/4 description "To Switch-B eth0/4"
set interfaces eth0/4 vlan-tagging
set interfaces eth0/4 unit 101 encapsulation vlan-ccc
set interfaces eth0/4 unit 101 vlan-id 101
set interfaces eth0/4 unit 101 family ccc
set interfaces eth0/4 unit 102 encapsulation vlan-ccc
set interfaces eth0/4 unit 102 vlan-id 102
set interfaces eth0/4 unit 102 family ccc
set interfaces eth0/4 unit 103 encapsulation vlan-ccc
set interfaces eth0/4 unit 103 vlan-id 103
set interfaces eth0/4 unit 103 family ccc
set interfaces irb unit 101 description vlan101
set interfaces irb unit 101 family inet address 172.17.101.3/24 vrrp-group 0 virtual-address 172.17.101.1
set interfaces irb unit 101 family inet address 172.17.101.3/24 vrrp-group 0 priority 64
set interfaces irb unit 101 family inet address 172.17.101.3/24 vrrp-group 0 accept-data
set interfaces irb unit 102 description vlan102
set interfaces irb unit 102 family inet address 172.17.102.3/24 vrrp-group 0 virtual-address 172.17.102.1
set interfaces irb unit 102 family inet address 172.17.102.3/24 vrrp-group 0 priority 64
set interfaces irb unit 102 family inet address 172.17.102.3/24 vrrp-group 0 accept-data
set interfaces irb unit 103 description vlan103
set interfaces irb unit 103 family inet address 172.17.103.3/24 vrrp-group 0 virtual-address 172.17.103.1
set interfaces irb unit 103 family inet address 172.17.103.3/24 vrrp-group 0 priority 64
set interfaces irb unit 103 family inet address 172.17.103.3/24 vrrp-group 0 accept-data
set bridge-domains vlan101 domain-type bridge
set bridge-domains vlan101 vlan-id 101
set bridge-domains vlan101 routing-interface irb.101
set bridge-domains vlan102 domain-type bridge
set bridge-domains vlan102 vlan-id 102
set bridge-domains vlan102 routing-interface irb.102
set bridge-domains vlan103 domain-type bridge
set bridge-domains vlan103 vlan-id 103
set bridge-domains vlan103 routing-interface irb.103
set protocols ospf area 0 interface lo0.0 passive
set protocols ospf area 0 interface eth0/0.0 interface-type p2p
set protocols ospf area 0 interface eth0/0.0 metric 1
set protocols ospf area 0 interface eth0/1.0 interface-type p2p
set protocols ospf area 0 interface eth0/1.0 metric 1
set protocols ospf area 1 interface irb.101 passive
set protocols ospf area 1 interface irb.101 metric 110
set protocols ospf area 1 interface irb.102 passive
set protocols ospf area 1 interface irb.102 metric 110
set protocols ospf area 1 interface irb.103 passive
set protocols ospf area 1 interface irb.103 metric 110
set protocols ldp interface eth0/0.0
set protocols ldp interface eth0/1.0
set protocols rsvp interface eth0/0.0
set protocols rsvp interface eth0/1.0
set protocols mpls no-cspf
set protocols mpls interface eth0/0.0
set protocols mpls interface eth0/1.0
set protocols mpls path RouterB-to-RouterA_Pri 172.16.1.1 strict
set protocols mpls path RouterB-to-RouterA_Sec 172.16.1.13 strict
set protocols mpls path RouterB-to-RouterA_Sec 172.16.1.5 strict
set protocols mpls path RouterB-to-RouterA_Sec 172.16.1.10 strict
set protocols mpls path RouterB-to-RouterA_Lst
set protocols mpls label-switched-path RouterB-to-RouterA_101 from 172.16.0.2
set protocols mpls label-switched-path RouterB-to-RouterA_101 to 172.16.0.1
set protocols mpls label-switched-path RouterB-to-RouterA_101 primary RouterB-to-RouterA_Pri
set protocols mpls label-switched-path RouterB-to-RouterA_101 secondary RouterB-to-RouterA_Sec standby
set protocols mpls label-switched-path RouterB-to-RouterA_101 secondary RouterB-to-RouterA_Lst
set protocols mpls label-switched-path RouterB-to-RouterA_102 from 172.16.0.2
set protocols mpls label-switched-path RouterB-to-RouterA_102 to 172.16.0.1
set protocols mpls label-switched-path RouterB-to-RouterA_102 primary RouterB-to-RouterA_Pri
set protocols mpls label-switched-path RouterB-to-RouterA_102 secondary RouterB-to-RouterA_Sec standby
set protocols mpls label-switched-path RouterB-to-RouterA_102 secondary RouterB-to-RouterA_Lst
set protocols mpls label-switched-path RouterB-to-RouterA_103 from 172.16.0.2
set protocols mpls label-switched-path RouterB-to-RouterA_103 to 172.16.0.1
set protocols mpls label-switched-path RouterB-to-RouterA_103 primary RouterB-to-RouterA_Pri
set protocols mpls label-switched-path RouterB-to-RouterA_103 secondary RouterB-to-RouterA_Sec standby
set protocols mpls label-switched-path RouterB-to-RouterA_103 secondary RouterB-to-RouterA_Lst
set protocols connections remote-interface-switch To-RouterA_101 interface eth0/4.101
set protocols connections remote-interface-switch To-RouterA_101 transmit-lsp RouterB-to-RouterA_101
set protocols connections remote-interface-switch To-RouterA_101 receive-lsp RouterA-to-RouterB_101
set protocols connections remote-interface-switch To-RouterA_102 interface eth0/4.102
set protocols connections remote-interface-switch To-RouterA_102 transmit-lsp RouterB-to-RouterA_102
set protocols connections remote-interface-switch To-RouterA_102 receive-lsp RouterA-to-RouterB_102
set protocols connections remote-interface-switch To-RouterA_103 interface eth0/4.103
set protocols connections remote-interface-switch To-RouterA_103 transmit-lsp RouterB-to-RouterA_103
set protocols connections remote-interface-switch To-RouterA_103 receive-lsp RouterA-to-RouterB_103
Router-C
Details
set interfaces lo0 unit 0 family inet 172.16.0.3/32
set interfaces eth0/0 description "To Router-D eth0/0"
set interfaces eth0/0 unit 0 family inet 172.16.1.5/30
set interfaces eth0/0 unit 0 family mpls
set interfaces eth0/1 description "To Router-A eth0/1"
set interfaces eth0/1 unit 0 family inet 172.16.1.9/30
set interfaces eth0/1 unit 0 family mpls
set interfaces eth0/2 shutdown
set interfaces eth0/3 shutdown
set interfaces eth0/4 shutdown
set protocols ospf area 0 interface lo0.0 passive
set protocols ospf area 0 interface eth0/0.0 interface-type p2p
set protocols ospf area 0 interface eth0/0.0 metric 1
set protocols ospf area 0 interface eth0/1.0 interface-type p2p
set protocols ospf area 0 interface eth0/1.0 metric 1
set protocols ldp interface eth0/0.0
set protocols ldp interface eth0/1.0
set protocols rsvp interface eth0/0.0
set protocols rsvp interface eth0/1.0
set protocols mpls no-cspf
set protocols mpls interface eth0/0.0
set protocols mpls interface eth0/1.0
Router-D
Details
set interfaces lo0 unit 0 family inet 172.16.0.4/32
set interfaces eth0/0 description "To Router-C eth0/0"
set interfaces eth0/0 unit 0 family inet 172.16.1.6/30
set interfaces eth0/0 unit 0 family mpls
set interfaces eth0/1 description "To Router-B eth0/1"
set interfaces eth0/1 unit 0 family inet 172.16.1.13/30
set interfaces eth0/1 unit 0 family mpls
set interfaces eth0/2 shutdown
set interfaces eth0/3 shutdown
set interfaces eth0/4 shutdown
set protocols ospf area 0 interface lo0.0 passive
set protocols ospf area 0 interface eth0/0.0 interface-type p2p
set protocols ospf area 0 interface eth0/0.0 metric 1
set protocols ospf area 0 interface eth0/1.0 interface-type p2p
set protocols ospf area 0 interface eth0/1.0 metric 1
set protocols ldp interface eth0/0.0
set protocols ldp interface eth0/1.0
set protocols rsvp interface eth0/0.0
set protocols rsvp interface eth0/1.0
set protocols mpls no-cspf
set protocols mpls interface eth0/0.0
set protocols mpls interface eth0/1.0
確認コマンド
コマンド | 確認可能ノード | 備考 |
---|---|---|
show configuration |
all | 設定情報 |
show configuration | display set |
all | 設定情報をset形式で出力 |
show configuration | display json |
all | 設定情報をjson形式で出力 |
show interfaces terse |
all | ciscoのshow ip interface brief
|
show interfaces |
all | interfaceの様々な情報を出す 更に細かく見る場合は detail や extensive を末尾に加える |
show vrrp |
Router-A, Router-B | VRRP status 現在のMaster/Backup状態が確認可能 |
show vrrp | match lcl |
Router-A, Router-B | 1行1件にして表のようにする(Virtual IPやMasterのIPアドレスは非表示) |
show ldp neighbor |
Router-A, Router-B | LDP neighbor status |
show rsvp neighbor |
Router-A, Router-B | RSVP neighbor status |
show mpls lsp |
Router-A, Router-B | MPLS LSP status Router-C, Router-D でも確認は可能( egress として表示される) |
show mpls lsp detail name RouterA-to-RouterB_101 |
Router-A | MPLS LSP status |
show mpls lsp detail name RouterA-to-RouterB_102 |
Router-A | MPLS LSP status |
show mpls lsp detail name RouterA-to-RouterB_103 |
Router-A | MPLS LSP status |
show mpls lsp detail name RouterB-to-RouterA_101 |
Router-B | MPLS LSP status |
show mpls lsp detail name RouterB-to-RouterA_102 |
Router-B | MPLS LSP status |
show mpls lsp detail name RouterB-to-RouterA_103 |
Router-B | MPLS LSP status |
show connections |
Router-A, Router-B | CCC Connectivity status ステータスで -> とか<- になってる場合はコンフィグ見直したほうがいい |
show connections brief |
Router-A, Router-B | CCC Connectivity status |
show connections To-RouterB_101 |
Router-A | CCC Connectivity status |
show connections To-RouterB_102 |
Router-A | CCC Connectivity status |
show connections To-RouterB_103 |
Router-A | CCC Connectivity status |
show connections To-RouterA_101 |
Router-B | CCC Connectivity status |
show connections To-RouterA_102 |
Router-B | CCC Connectivity status |
show connections To-RouterA_103 |
Router-B | CCC Connectivity status |
サンプル出力
show mpls lsp
Ingress LSP: 3 sessions
To From State Rt P ActivePath LSPname
172.16.0.2 172.16.0.1 Up 0 * RouterA-to-RouterB_Pri RouterA-to-RouterB_101
172.16.0.2 172.16.0.1 Up 0 * RouterA-to-RouterB_Pri RouterA-to-RouterB_102
172.16.0.2 172.16.0.1 Up 0 * RouterA-to-RouterB_Pri RouterA-to-RouterB_103
show mpls lsp detail name RouterA-to-RouterB_101
172.16.0.2
From: 172.16.0.1, State: Up, ActiveRoute: 0, LSPname: RouterA-to-RouterB_101, LSPid: xx
ActivePath: RouterA-to-RouterB_Pri (primary)
LSPtype: Static Configured, Penultimate hop popping
LoadBalance: Random
Follow destination IGP metric
Encoding type: Packet, Switching type: Packet, GPID: IPv4
LSP Self-ping Status : Not-Supported
*Primary RouterA-to-RouterB_Pri State: Up
Priorities: 7 0
SmartOptimizeTimer: 180
Flap Count: 5
MBB Count: 0
Received RRO (ProtectionFlag 1=Available 2=InUse 4=B/W 8=Node 10=SoftPreempt 20=Node-ID):
172.16.0.2(Label=xx)
Secondary RouterA-to-RouterB_Lst State: Dn
Priorities: 7 0
SmartOptimizeTimer: 180
Flap Count: 4
MBB Count: 0
34 Jun 28 10:00:00.000 Clear Call
Standby RouterA-to-RouterB_Sec State: Up
Priorities: 7 0
SmartOptimizeTimer: 180
Flap Count: 6
MBB Count: 0
Received RRO (ProtectionFlag 1=Available 2=InUse 4=B/W 8=Node 10=SoftPreempt 20=Node-ID):
172.16.0.9(Label=xx) 172.16.0.6(Label=xx) 172.16.0.14(Label=xx)
show connections brief
CCC and TCC connections [Link Monitoring On]
Legend for status (St): Legend for connection types:
UN -- uninitialized if-sw: interface switching
NP -- not present rmt-if: remote interface switching
WE -- wrong encapsulation lsp-sw: LSP switching
DS -- disabled tx-p2mp-sw: transmit P2MP switching
Dn -- down rx-p2mp-sw: receive P2MP switching
-> -- only outbound conn is up Legend for circuit types:
<- -- only inbound conn is up intf -- interface
Up -- operational oif -- outgoing interface
RmtDn -- remote CCC down tlsp -- transmit LSP
Restart -- restarting rlsp -- receive LSP
Connection/Circuit Type St Time last up # Up trans
To-RouterB_101 rmt-if Up Jun 28 10:30:00 2
To-RouterB_102 rmt-if Up Jun 28 10:30:00 2
To-RouterB_103 rmt-if Up Jun 28 10:30:00 2
誤り・誤記・不備などあればコメント欄へお願いします。
実際に試して動いたものを抜粋して持ってきているので、一部漏れていたらすみませぬ( ๑╹⌓╹ )ノシ
実際に業務ネットワークなどに組み込む場合は十分評価検証してから実装してください。
どうしてもわからない場合はケースをJuniperに投げて公式見解もらってください。
この記事のやつはとりあえず動いたものです。
予期しない出来事が発生しても責任取りません。