My Home NW Lab

逸般の誤家庭のネットワーク

Ciscoの無線LAN製品におけるDHCP Option 43のIP Addressの16進数表記への変換 (CyberChefを利用)

Cisco無線LAN製品において無線APをWLCにJoinさせるために、DHCP Option 43を利用して無線APにWLCの情報を伝える方法があります。 そのDHCP Option 43にはWLCのIP Addressを16進数 (Hex)で指定する必要があり、ドット表記の10進数 (Dotted Decimal)からの変換が必要になります。

本記事ではCyberChefを用いて、IP Addressの16進数表記への変換を行います。

gchq.github.io

CyberChefでのデータの扱い

CyberChefは「入力されたデータ」と「Recipe」は外部に送信されないようになっています。 「Recipe」はユーザー自身が定義したロジックに相当し、今回の場合だと16進数への変換処理が該当します。

挙動が気になる方は、Webブラウザの開発者ツールを開いて適当な値を変換し、ネットワーク上にデータが流れていないのを事前に確認しておくのが良いと思います。

もちろんCyberCefのソース コードをダウンロードするための初回接続時には通信が発生するので、初回接続後に何度か変換を試してみてください。

Chromeでは F12 キーを押下して開発者ツールを開きます。

CyberChefのネットワーク通信をChromeの開発者ツールで確認

CyberChefのスタンドアローン版のダウンロード (任意)

スタンドアローン版もあります。ダウンロード時の画面に先ほどのデータの取り扱いの情報も書かれております。

CyberChefのスタンドアローン版のダウンロード (2024年03月時点)

IP Addressの16進数 (Hex)表記への変換方法

16進数への変換処理を行うには「Recipe」を書く必要があります。

CyberChefの名の通り、ユーザー自身が料理人 (Chef)となって目的/用途に応じた調理方法 (Recipe)を定義するイメージです。

IP Addressの16進数 (Hex)表記への変換方法

  1. 検索欄で Change IP format を探してダブル クリックして Recipe の欄に追加します。Drag & Dropでも追加できます。

  2. Recipe の欄に追加した Change IP format の項目を下記のように変更します。

    項目 備考
    Input format Dotted Decimal デフォルト値です。
    Output format Hex
  3. Input の欄に任意のIP Addressを入力すると、Output の欄に16進数表記で出力されます。その値をコピーして適宜利用します。

書式の変換例

変換例をいくつか記載します。

変換例#1 (IP Address: 192.168.0.123)

Input (ドット表記) Output (16進数表記)
192.168.0.123 c0a8007b

下記は変換例の情報を埋め込んだオンライン版 (Live版)への直接リンクです。

変換例#2 (Ciscoドキュメント ベース)

Ciscoのドキュメントで例示されているIP Addressで試すと変換結果の確認に使えます。

www.cisco.com

For example, suppose there are two controllers with management interface IP addresses, 192.168.10.5 and 192.168.10.20. The type is 0xf1. The length is 2 * 4 = 8 = 0x08. The IP addresses translate to c0a80a05 (192.168.10.5) and c0a80a14 (192.168.10.20). When the string is assembled, it yields f108c0a80a05c0a80a14. On the Lucent QIP DHCP server, the hex string that needs to be added to the DHCP scope is:

Input (ドット表記) Output (16進数表記)
192.168.10.5 c0a80a05
192.168.10.20 c0a80a14