HPE Aruba Instant APで使わなくなったAPをリストから消す方法

個人的なメモ

HPE Aruba Instant AP HPE Aruba Networking Access Points | HPE 日本 で使わなくなったAPをリストから消す方法。

user adminでSSHでログインして、

AP XX:XX:XX:XX:XX:XX# configure terminal
AP XX:XX:XX:XX:XX:XX (config) # no allowed-ap YY:YY:YY:YY:YY:YY
AP XX:XX:XX:XX:XX:XX (config) # exit
AP XX:XX:XX:XX:XX*XX# commit apply
committing configuration...
configuration committed.
AP XX:XX:XX:XX:XX*XX#

SFP Wizardを使ってみた

SFP Wizardとは

少し前に一部で話題になった *1 UbiquitiのSFP Wizardを使ってみました。

光ファイバー対応のスイッチには 1G対応のSFP や10G対応の SFP+のポートがあり、 そこにSFP/SFP+のトランシーバーを挿入して使う形になります。 SFP+ のポートは SFP 対応のトランシーバーも使えます。 まだまだ高価ですが、より高速な4G対応のQSFP、40G対応のQSFP+、 100G対応のQSFP28といった規格もあります。

トランシーバーには光ファイバー対応のもの、 RJ45のLANケーブル対応のもの、 銅線ケーブルの両端にトランシーバーがついたDACケーブルなどがあります。

最近かなり省電力化が進んで改善されたとはいえ10GBASE-Tはかなり発熱します。 家庭内を10G化するには光ファイバー化が望ましいと考えて、 某ショップで特売されていたHPE Aruba Instant On *2 のスイッチを購入しました。 でも、HPEのような大手ベンダのスイッチは純正のトランシーバーしか対応しない ベンダーロックがかかっています。 純正以外のトランシーバーを使うと「サポートされていない」と表示されたり、 最悪「壊れたトランシーバー」でエラーになります。

SFP/SFP+/QSFPトランシーバーのプロファイルを書き換えて純正のふりをさせることで この問題を解決してくれるのがSFP Wizardです。

購入まで

SFP WizardはUbiquitiの日本ストアでは販売していないため、 輸入代行業者を使ってUbiquitiのUSストアから購入しました。 1つ$49で予備を含めて2つ購入、米国内の税、送料、日本への送料、 代行業者の手数料を含めて$167.30でした。 3/23に注文し、カリフォルニアにある代行業者に届いたのが3/30、 ヤマト運輸の国際便で4/5に届きました。

store.ui.com

外見

外見はこんな感じです。液晶ディスプレイ、SFP/SFP+とQSFPの2つのポート、 充電用のUSB~Cポート、電源ボタンがあります。

表示画面SFP/SFP+用とQSFP用の2つのポートバッテリ充電用USB-Cコネクタ電源ボタン
外見

Bluetoothに対応していて、スマホアプリでBluetooth経由で SFP Wizardのfirmwareをアップデートすることができます。

使用方法

SFP WizardにSFP+トランシーバーを挿入するとこんな画面になります。

動作画面

DOM infoをタップするとSFP/SFP+トランシーバーの情報を参照することができます。 Copyでトランシーバーのプロファイルを読み込み、 Writeで読み込んだプロファイルをトランシーバーに書き込みます。

つまり、サードパーティー製のトランシーバーを純正と見せかけるには、 純正(ないし純正互換の)のトランシーバーからプロファイルを読み込んでから サードパーティ製のトランシーバーに書き込む必要があります。

HPE Aruba Instant Onの純正DACケーブルから読み込んだプロファイルを書き込んだ 10gtek製DACケーブルをAruba Instant Onのスマホアプリで参照した画面です。 これまで「壊れたトランシーバー」と表示されていたのが 純正DACケーブルとして表示され、 スイッチの転送レートやポート使用率のようなデータも参照できるようになりました。

MAP-E (続)

前回の記事 ( MAP-Eあれこれ - Motoyuki's blog ) の続き。

MAP-EでのIPv4固定アドレスサービス

MAP-Eは複数ユーザで1つのIPv4アドレスの共有を可能にする仕組みですが、 1ユーザで1~8つの固定IPv4アドレスを提供するプロバイダもあります。 この場合、MAP-Eはポート変換を行わない単なるIPv4 over IPv6トンネルとして機能します。

つまり、IPv4 over IPv6トンネルのユーザ側 MAP CE (Customer Edge) と、 プロバイダ側 MAP BR (Border Relay) の2つのIPv6アドレスがわかれば FreeBSDの gif(1) が使えるはずです。

MAP CEのIPv6アドレスはIPv6 prefixなどから計算されますが、 この部分はRFC 7597の非公開のInternet draftに基づいているため、ネットを検索すると https://ipv4.web.fc2.com/map-e.html のサイトを参照しろという記事を多く見かけるわけですが、

OCN光 IPoE 固定IPv4アドレスサービスの場合

筆者はOCN光 IPoE IP8を契約してルータとしてYAMAHA NVR700-Wを利用していますが、 ルータの show status tunnel コマンドで得られるMAP CEのIPv6アドレスと、 https://ipv4.web.fc2.com/map-e.html のサイトで計算されるアドレスが異なるわけです。

ということで前回の記事 ( MAP-Eあれこれ - Motoyuki's blog ) に戻って Internet draft に基づいて MAP CE のアドレスを計算すると(draftの Example 4そのまま)、

IPv6 prefixが xxxx:xxxx:xxxx:xxxx::/56 IPv4固定アドレスが 192.0.2.1 (0xc0000201) の場合、MAP CEのIPv6アドレスは xxxx:xxxx:xxxx:xxxx:00c0:0002:0100:0000 となります。この値はYAMAHAのルータと同じでした。

OCN光IPoE IP8ではプロバイダ側からの説明にMAP BRアドレスの情報があるので、 これでMAP-EのIPv4 over IPv6トンネルの両端のIPv6アドレスがわかったことになります。

アドレス解決システム

NTTのフレッツ網ではIPv6 prefixは固定ではなく、メンテナンスなどの際に変わることがあります。 IPv6 prefixの変更がすぐにOCN側に通知されないという話で、IPv6 prefixが変わったときに 固定IPv4アドレスがしばらく使えなくなるようです(参考: ONU を交換したら MAP-E の固定 IPv4 が固定されなくなってしまった話 #Network - Qiita )。

この問題のために「アドレス解決システム」が用意されていて、

http(s)://[アドレス解決システムのURL]?hostname=[アドレス解決用ホスト名]

にアクセスすることでOCN側が変更を知ることができるということです。 YAMAHAのルータではLuaスクリプトでこの処理を行うようになっています。

アドレス解決システムのURLやアドレス解決用ホスト名、このURLにアクセスするための Basic認証のユーザ名とパスワードはOCN側からの説明に情報があります。

ひかり電話問題

ひかり電話対応については先人の知恵をお借りすることにします。

フレッツ光 ひかり電話を使いながら、IPoEのIPv6を自前ルータで直収する方法 - notokenの覚書

これで、FreeBSDでMAP-Eルータをつくるための情報が揃った、はずです。

MAP-Eあれこれ

NTTフレッツ網のIPoE接続で使われるMAP-Eトンネルのインターフェース識別子、 小川晃通氏らによる「徹底解説v6プラス」 https://www.jpix.ad.jp/files/v6plus-ebook.pdf では

この節で解説しているインターフェース識別子は、MAP-E の RFC である RFC 7597 に書いてある内容です。 v6 プラスでは、RFC になる前の提案文書である Internet Draft (draft-ietf-softwire-map)に記載されているインターフェース識別子を採用しています。 (中略) v6 プラスが採用している Internet Draft のバージョンは非公開であるため、本書では v6 プラスで利用しているインターフェース識別子の具体的なフォーマットを割愛しています。

とある。非公開なせいか、非公開情報をもとに自動的に計算してくれるサイト https://ipv4.web.fc2.com/map-e.html がよく利用されている。

検索してでてくる「IPv6家庭用ルータガイドライン 第3.0版」 https://www.jaipa.or.jp/guideline/pdf/v6hgw_Guideline_3.0.pdf をみると

国内サービスでは、RFC7597 ではなく draft-ietf-softwire-map-03 が使用されている。

とあるので、使用されているdraftの具体的なバージョンもわかった。

IETF自身がdraft-ietf-softwire-map-03を公開しているし、正式版 RFC7597との差分もわかる。 datatracker.ietf.org

IETF自身がdraftを公開しているのだから、 インターフェース識別子の具体的なフォーマットを解説した「徹底解説v6プラス」の改訂版が欲しいところ。

今日のところはここまで。

FreeBSD: setfibで複数の経路表を使う

FreeBSDではsetfib(1)を使って複数の経路を使い分けることができる。 FIBの仕組みについては下記の記事で許さんが解説されているので参照していただくとして、 FreeBSD 14.2ではまったので記録しておく。

FreeBSDにおけるFIB [Share FreeBSD based information]

インターフェースへの経路

net.add_addr_allfibsのデフォルトは0に変わっているので、/boot/loader.confで

net.fibs="2"
net.add_addr_allfibs="1"

と書かないとFIBが0以外の場合にインターフェースへの経路が自動的に追加されない。

net.add_addr_allfibsを1に設定しても、

% netstat -rn4 -F 1
Routing tables (fib: 1)

Internet:
Destination        Gateway            Flags         Netif Expire
127.0.0.1          link#3             UH              lo0
172.26.xxx.0/24    link#2             U               re1
192.168.xx.0/24    link#1             U               re0

と自分のアドレスへの経路が追加されない。このため、/etc/rc.confで

static_routes="re0 re1"
route_re0="-host 192.168.xx.x -iface lo0 -fib 1"
route_re1="-host 172.26.xxx.xx -iface lo0 -fib 1"

と明示的に設定する必要がある。

% netstat -rn4 -F 1
Routing tables (fib: 1)

Internet:
Destination        Gateway            Flags         Netif Expire
127.0.0.1          link#3             UH              lo0
172.26.xxx.0/24    link#2             U               re1
172.26.xxx.xx      link#3             UHS             lo0
192.168.xx.0/24    link#1             U               re0
192.168.xx.x       link#3             UHS             lo0

default route設定がエラーになる

FIBが0以外の場合のdefault routeは/etc/rc.confで

defaultrouter_fib1="172.26.xxx.1"

とすればいいはずだが、route(8)が Invalid argument のエラーで設定できないことがある。

# route add default 172.26.xxx.1 -fib 1
add net default: gateway 172.26.xxx.1 fib 1: Invalid argument

同様の問題はFreeBSD bugzillaなどでもいくつか報告がある。

私が試した範囲では、 default routeを設定しようとしたインターフェースのstatusがactiveではないときにこの問題が発生した。 適当なswitchなどにつないでactiveにすれば大丈夫らしい。

# route add default 172.26.xxx.1 -fib 1
add net default: gateway 172.26.xxx.1 fib 1

ネットワークに接続しない状態で設定を試していたので、 これに気付くまで無駄な時間をかなり費やしてしまいました...。

FreeBSD: setfibで複数の経路表を使う

FreeBSDではsetfib(1)を使って複数の経路を使い分けることができる。 FIBの仕組みについては下記の記事で許さんが解説されているので参照していただくとして、 FreeBSD 14.2ではまったので記録しておく。

freebsd.seirios.org

インターフェースへの経路

net.add_addr_allfibsのデフォルトは0に変わっているので、/boot/loader.confで

net.fibs="2"
net.add_addr_allfibs="1"

と書かないとFIBが0以外の場合にインターフェースへの経路が自動的に追加されない。

net.add_addr_allfibsを1に設定しても、

% netstat -rn4 -F 1
Routing tables (fib: 1)

Internet:
Destination        Gateway            Flags         Netif Expire
127.0.0.1          link#3             UH              lo0
172.26.xxx.0/24    link#2             U               re1
192.168.xx.0/24    link#1             U               re0

と自分のアドレスへの経路が追加されない。このため、/etc/rc.confで

static_routes="re0 re1"
route_re0="-host 192.168.xx.x -iface lo0 -fib 1"
route_re1="-host 172.26.xxx.xx -iface lo0 -fib 1"

と明示的に設定する必要がある。

% netstat -rn4 -F 1
Routing tables (fib: 1)

Internet:
Destination        Gateway            Flags         Netif Expire
127.0.0.1          link#3             UH              lo0
172.26.xxx.0/24    link#2             U               re1
172.26.xxx.xx      link#3             UHS             lo0
192.168.xx.0/24    link#1             U               re0
192.168.xx.x       link#3             UHS             lo0

default route設定がエラーになる

FIBが0以外の場合のdefault routeは/etc/rc.confで

defaultrouter_fib1="172.26.xxx.1"

とすればいいはずだが、route(8)が Invalid argument のエラーで設定できないことがある。

# route add default 172.26.xxx.1 -fib 1
add net default: gateway 172.26.xxx.1 fib 1: Invalid argument

同様の問題はFreeBSD bugzillaなどでもいくつか報告がある。

私が試した範囲では、 default routeを設定しようとしたインターフェースのstatusがactiveではないときにこの問題が発生した。 適当なswitchなどにつないでactiveにすれば大丈夫らしい。

# route add default 172.26.xxx.1 -fib 1
add net default: gateway 172.26.xxx.1 fib 1

ネットワークに接続しない状態で設定を試していたので、 これに気付くまで無駄な時間をかなり費やしてしまいました...。