スマートフォンはホットスポットにつながったままなのに、上りリンクは何も通さない。Pi は Wi-Fi の関連付けを報告し続け、アクセスポイントは beacon を送り続け、すべての要求がタイムアウトする。一台の無線機が同時に二つの役割を担い、片方がチャネルを必要とすると、どちらかが勝つ。VPN に触る前に、導入済みのドライバとファームウェアがその役割の組み合わせを受け入れるかどうかを確かめる。

症状は無線機を指し、トンネルを指していない

障害を順に追うと、ルーティングの不具合には見えなくなる。クライアントがホットスポットに参加し、アドレスを得て、一、二ページを読み込む。そのあとローミング、鍵の更新、短い信号低下のあとに、ステーション側インターフェースが上流ルーターへ再関連付けする。アクセスポイントは beacon を再開するか、クライアントを経路なしで放置し、VPN のログは原因でなかった再接続の試行で埋まる。

インターフェース名が二つあっても、無線機が二台あるわけではない。wlan0 とアクセスポイント側インターフェースは、同じデバイス、同じチャネル状態機械、同じファームウェアのスケジューラを共有する。カーネルはそのデバイスが対応する役割とチャネルの組み合わせを正確に示すので、両方のインターフェースが上がったから組み合わせが動くはずだと決めつけず、その一覧を読む。

何かを変える前に組み合わせを読む

無線スタックは iw list のインターフェース組み合わせの節で自分の契約を宣言する。番号付きの各組み合わせには、許される役割の数、存在できるインターフェースの数、それらが同時に使えるチャネルの数が並ぶ。同じチャネルでステーションとアクセスポイントを組にする組み合わせが、この構成に必要なものだ。

iw list | sed -n '/valid interface combinations/,/^$/p'

数字を読むのであって、語があるかどうかだけを見ない。ドライバがステーションモードとアクセスポイントモードを別々に対応していても、両方の唯一の正しい組み合わせが単一チャネルしか許さない、インターフェース数が小さい、ホットスポットが満たせない beacon 間隔になる、ということがある。スキャンや鍵の更新の間に役割を一つ落とすファームウェアもあり、それは能力の限界ではなく上りリンクの不安定に見える。どの組み合わせにも両方の役割がなければ、その組み合わせは非対応であり、デスクトップのホットスポットボタンが何を示していても変わらない。

cfg80211 のインターフェース組み合わせの文書 は、フィールドと beacon の制約を説明している。あるアダプターの値は別のアダプターについては何も語らないので、出力は機械と一緒に保管し、一般化しない。

チャネルとアドレスの計画が残りを決める

アクセスポイントは無線機が提供できるチャネルに置かれ、ステーションの上りリンクは上流のアクセスポイントに従う必要がある。この二つの判断が食い違うと、どちらかの役割を再起動しなければならない。単一無線のアダプターではホットスポットがステーションのチャネルを写すことが多く、上流のチャネル変更でホットスポットも一時的に落ちる。

IP 側は無線機と別に設計する。ルーティングするホットスポットは通常 192.168.50.0/24 のようなプライベートサブネットを使い、Pi は 192.168.50.1、そのサブネット内に DHCP プールを置き、Pi がリゾルバの転送役になる。NetworkManager の共有モードはそのサブネットに 転送とアドレス変換 を設定するが、無線の容量を増やすわけでも、トンネルを唯一の出口にするわけでもない。VPN の方針を論じる前に、クライアントがデータリンク層でブリッジされているのか、ネットワーク層でルーティングされているのかを書き留める。

無線機とルーティングを切り分けるテスト順

デバイスから外側へ進み、最初に失敗する手順で止める。これらの読み取りは稼働中のシステムで安全で、設定を何も変えない。クライアントが関連付けられ、上りリンクが調べている状態にあるときに実行する。

iw dev
iw dev wlan0 link
nmcli -t -f DEVICE,STATE,CONNECTION device status
ip -br addr show
sysctl net.ipv4.ip_forward

iw dev wlan0 link に関連付けが表示されなければ、無線機の問題が先で、トンネルは無関係だ。上りリンクが関連付けられていてクライアントにアドレスがなければ、接続と DHCP の権限が誤っている。クライアントにアドレスはあるが到達できないなら、転送、変換、リゾルバの配達のどれかが欠けている。ホットスポットの経路と上りリンクの経路の両方が動いて初めて、失敗するトンネルが次に試す対象になる。

アダプター、ドライバ、ファームウェアを、受け入れた組み合わせとチャネルの規則と一緒に記録する。あとでカーネルやファームウェアを更新すると対応一覧が変わりうる。その記録が謎を既知の制限に変える。

関連記事