みなさん、こんにちは。12/20 担当の廣橋です。
- 2024/12/26: DHCP option 43による接続テストを追記
とうとう..Juniper EXシリーズがMist CloudとProxy経由の接続に対応しました!
Mist Wired Assurance を使いたいけど会社のポリシーでインターネットにはProxy Server経由でないとダメ..そんなお声を聞くこともありました。
Mist Wired Assurance はMist APを収容するTORやLANスイッチとして弊社Juniper EXシリーズをご利用いただくと、デバイスのオンボーディング、大規模な設定、監視とトラブルシューティングなど、スイッチ管理のあらゆる側面を簡素化し、一元的な運用を実現いただけます。
本記事では割愛しますが、興味ある方はぜひ担当営業までお声がけください。
本機能の実現には、 CloudX の開発が背景にあります。これはJuniper EXシリーズのスイッチとMist Cloudを安全に接続するエージェントで、Teremetry情報の取得やNetconfによる設定など様々な役割を担います。重要な点は、 HTTPSによる TCP 443 接続に対応したことで、従来(CloudX未対応)は TCP 2200 を利用します。これによりProxy経由で接続が実現できるようになりました。(参照: Juniper CloudXの概要)

ちなみに接続先情報のリストが追加されていますのでご確認ください。例えば、Global 03のリージョンでは次のようになっています。(参照: ファイアウォール設定用のJuniper MistファイアウォールポートとIPアドレス)
CloudX対応の製品は本記事作成時点では以下の内容となり、段階的に追加されていきます。
CloudXのテスト
概要はそこそこにテスト確認してみます。(参照: Cloudxを使用してプロキシ サーバー経由でスイッチをMist Cloudに接続する)
今回は検証環境の都合もあり、Port 443 で接続できることと、Proxy Server経由で接続できることを確認したいと思います。
まずは以下を試します。
- HTTP 443で接続できること
- Proxy経由で接続できること
1. 初期化したJuniper EXスイッチを用意
下記の方法で初期化を行うことができます。
root@EX4100-F> request system zeroize
Dec 17 07:39:26
warning: System will be rebooted and may not boot without configuration
Erase all data, including configuration and log files?. In case of Dual RE system, both Routing Engines will be zeroized [yes,no] (no) yes
Dec 17 07:39:28
warning: ipsec-key-management subsystem not running - not needed by configuration.
warning: zeroizing fpc0
..
2. Mist Cloudにオンボード
CloudX接続を利用するにはClaim SwitchによるClaim Code(購入時のコード)、もしくはActivation Code(QRコードに記載の英数字)に対応しており、Adopt Switches(CLI流し込み)は非対応です。
そのため、今回はActivation Codeでオンボードします。
Manage ConfigurationをCheckします。Uncheckで実施することもできますが、その場合はCLIでProxyに関する追加設定が必要です。
3. Port 443で接続できることを確認
下記のコマンドを利用すると本体スイッチが接続できているか確認することができます。(refreshオプションを利用すると、指定した時間ごとに実行してくれるので、こういう時に大変便利です!)
しばらく待っているとこのような形でConnectionが成立します。
{master:0}
root> show system connections | grep "8080|443" | refresh 10
---(refreshed at 2024-12-17 07:54:31 UTC)---
..
---(refreshed at 2024-12-17 07:57:31 UTC)---
---(refreshed at 2024-12-17 07:57:41 UTC)---
tcp4 0 0 192.168.20.5.49385 44.214.57.48.443 ESTABLISHED <<<<<<<<
---(refreshed at 2024-12-17 07:57:51 UTC)---
tcp4 0 0 192.168.20.5.56395 44.214.57.48.443 ESTABLISHED <<<<<<<<
4. Proxy設定を追加
次にProxy Serverを利用した接続に切り替えます。構成はこのようなイメージです。
早速Proxyの設定を追加していきましょう、Organization > Site Configuration よりProxyの設定を行います。
作業はこれで完了です。
ここで重要なのが、上記設定を行うとMist CloudはProxyに関するCLI設定を投入します。具体的に投入しようとしているAPIは次で確認できます。
GET /api/v1/sites/{SITE_ID}/devices/{DEVICE_ID}/config_cmd
もしくはChromeの拡張ツールを導入してくださっていたら、下記から簡単に確認することができます。(参照: 🎄 Mist アドベントカレンダー2024🎄 12/15 Mist Extension活用編)
重要なのはこのproxy設定となります。これらの設定をMistがJuniper EXシリーズに追加するには、Config ManagedにCheckが必要ですので注意してください。
そのため、Config ManagedをUncheckする場合は、上記のようにCLI設定の追加作業が必要です。このような形です。
set system proxy server {IP_ADDRESS}
set system proxy port {PORT}
set system proxy username {option: USERNAME}
set system proxy password {option: PASSWORD}
※ スクリーンショットにある"groups top"はgroups機能を利用する場合となり、大変便利ではありますがここでは標準設定を記載しております。
5. Proxy接続されていることを確認
Proxy設定追加後は、Port 443で接続された状態のままですので、アップリンクの切断/接続などで Port 8080での接続を促してあげましょう。
その後、しばらく待っているとProxy Server経由で接続していることが確認できます。
{master:0}
root@EX4100-F> show system connections | grep 8080
tcp4 0 0 192.168.20.5.54193 xxx.xxx.115.250.8080 ESTABLISHED
Proxy Serverでログを確認すると、アクセスがあったことを確認できます。
xxx.xxx.xxx.xxx - test [17/Dec/2024:hh:mm:53 +0000] "CONNECT jma-terminator.ac2.mist.com:443 HTTP/1.1" 200 10926 "-" "Go-http-client/1.1" TCP_TUNNEL:HIER_DIRECT
DHCP option 43による接続テスト 2024/12/26 追記
# 情報マスクのために、実際のログを手作業で修正していますので、不備があった場合はご容赦下さい
本テストではJuniper EXスイッチを収容するL3装置兼、DHCPサーバーとして、Juniper SRXシリーズのSRX320を利用します。Config例は以下の通りで、option 43を16進数で設定します。
- 08
- ZTPのDHCP option43のsub-option 8であることを記載(参照: Zero Touch Provisioning Using DHCP Options)
- 28:
- その後に続く16進数のbyte数、この例では28 byte
- 残り:
- proxyの接続情報を16進数に変換、この例では(http://test:test123@000.000.115.250:8080)
set access address-assignment pool dhcp10 family inet network 192.168.10.0/24
set access address-assignment pool dhcp10 family inet range junosRange low 192.168.10.2
set access address-assignment pool dhcp10 family inet range junosRange high 192.168.10.100
set access address-assignment pool dhcp10 family inet dhcp-attributes name-server 8.8.8.8
set access address-assignment pool dhcp10 family inet dhcp-attributes router 192.168.10.1
set access address-assignment pool dhcp10 family inet dhcp-attributes option 43 hex-string 0828687474703a2f2f746573743a74657374313233403030302e3030302e3131352e3235303a38303830
早速初期化された Juniper EX を接続すると、期待通り動きました。ドキュメントにも記載がありますが、以下の流れのようですね。
- DHCP option 43を受け取ると、"/var/etc/phc_vendor_specific_info.xml"に初回proxy接続を行うための設定内容が書き込まれ接続を施行
- Mist Cloudに接続できるとと、Config managedの影響で、CLIのproxy設定が書き込まれる
- 以降は、Proxy設定をもとに Proxy接続を施行
{master:0}
root@485a0de13280> show log dhcp_logfile | grep "Found sub-option 8|OPTION code 43"
Dec 26 00:15:13.722535 [MSTR][DEBUG][default:default][CLN][INET][irb.0] --[ OPTION code 43, len 41, data 08 28 68 74 74 70 3a 2f 2f 74 65 73 74 3a 74 65 73 74 31 32 33 40 30 30 30 2e 30 30 30 2e 31 31 35 2e 32 35 30 3a 38 30 38 30 ]--
Dec 26 00:15:21.211480 [MSTR][DEBUG][irb.0] jdhcp_vendor_sub_option_https_proxy_info_parse: DHCPv4 Vendor options: Found sub-option 8 proxy-info:http://test:test123@000.000.115.250:8080, optlen= 39
{master:0}
root@485a0de13280> file show /var/etc/phc_vendor_specific_info.xml
<!--
jdhcpd-generated /var/etc/phc_vendor_specific_info.xml
Version: 1
Written: Thu Dec 26 00:18:37 2024
-->
<vendor-specific-information>
<vendor-info>
<interface>irb.0</interface>
<proxy-server>http://test:test123@000.000.115.250:8080</proxy-server>
</vendor-info>
</vendor-specific-information>
{master:0}
root@485a0de13280# run show system connections | grep 8080
tcp4 0 0 192.168.10.3.58295 000.000.115.250.8080 ESTABLISHED
CloudXによる追加機能
実はCloudXに対応したことで、Mist Cloudから遠隔でパケットキャプチャが利用できるようになりました!
本機能はここから利用できます。
Mist APでPacket Captureを利用したことがあるかもしれません。本機能は Switch タブを選択し、 Add Switch を押すと対象のスイッチが選択できるようになります。この時、 CloudX で接続した機種のみ表示されます。
例えば、本環境ではEX2300(CloudX未使用)は表示されていないことがわかります。
スイッチを選択した後は、キャプチャするポートを選択してキャプチャ開始です!
今回はSW2のge-0/0/10に接続したSW1から外部にpingを行いました。
root@SW1> ping 8.8.8.8 source 192.168.20.6
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=115 time=14.171 ms
64 bytes from 8.8.8.8: icmp_seq=1 ttl=115 time=8.085 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=115 time=7.450 ms
..
こちらが結果の画面です、リアルタイムで状況が表示され、取得できていることが確認できます。
GUI上ではこういったテーブルの表示もカスタマイズできます。
また取得結果は、ダウンロードしてローカルで見ることも可能です。
まとめ
いかがでしょうか?
今回は Port 443 でMist Cloudに接続してから Proxy Server 経由の接続に変更しました。
是非、Mist APのPoEスイッチやLANスイッチに Mist Wired Assurance を利用してMistfyをご検討ください。
参考