diary.sorah.jp

VPN 越しの Cisco WLC で WPA2 の SSID に associate できない時の罠

フレッツ光特有の話だと思うので日本語で書きます。

WLC において WPA2 などをかけた SSID に端末が association できず、WLC の syslog に下記のようなエラーが表示されて困る、という奴:

*Dot1x_NW_MsgTask_1: Jun 15 18:59:55.112: %DOT1X-3-PSK_CONFIG_ERR: 1x_ptsm.c:730 Client 08:de:ad:be:ef:00 may be using an incorrect PSK

tl;dr

これは下記の環境の場合、ESP パケット (IPsec の場合) の IPv6 DSCP 値の関係でフレッツ網に一部の CAPWAP パケットを落とされているのが原因であると見て良い気がします。

  • WLC がトンネルや VPN 越し
  • トンネルの経路にフレッツ IPv6 IPoE NGN が挟まっている

NGN に繋がっているインタフェースから送出される DSCP を全部 0x00 にセットしてしまいましょう。ひかり電話を使っているならもうちょい工夫は必要そう。

状況の詳細

実際の MacBook Pro ←→ Cisco Aironet との 802.1X 通信は下記のスクショの通り。Mac からの返答パケット Key (2 of 4) が届いておらず、Cisco から Key (1 of 4) が再送され続けていることがわかる。

実際の通信

VPN 対向ルータでキャプチャするとこうなる。

VPN対向ルータでのキャプチャ

一部の 802.11 フレームを含む CAPWAP パケットに DSCP 値が設定されていて、箱物ルータだと気を効かせて tunnel outer packet に DSCP 値が伝搬される事により、NGN の仕様に従い NTT 局側で drop されることでこうなっていると見られる。ちなみに何故か iPhone 7s は問題なく assoc ができた。

(手元側での CAPWAP パケットのキャプチャはあるけどもう残ってませんでした)

NGN の仕様

にある通り、

尚、各サービスにおいて許容されたプロトコルと転送優先度の組み合わせ以外のパケットに転送優先度を指定することは許容しません。

なので、DSCP 値をよく考えずに NGN 網に流すと黙って局側で drop される事が多いです。OpenSSH とかでも ssh_config, sshd_config で IPQoS オプションを指定しとかないとハマる、というのがありますね。

Published at