hostapd.conf 覚書

``/usr/share/doc/hostapd/examples/hostapd.conf.gz`` に記載されているコメントの日本語訳。

# 定義

- AP(Access Point): 無線/有線 LAN サービスを提供するサーバーマシン。
- STA(Station): AP が提供する LAN サービスを利用するクライアントマシン。

# hostapd 設定ファイル

空行と ``#`` で始まる行は無視されます。

AP ネットデバイス名を指定します。 ``ap`` 接尾辞なしで指定してください。

**注意**
この属性の設定値は ``-i`` コマンドラインパラメータで指定された値によって上書きされる可能性があります。

```bash
# wlan0ap を Host AP ドライバの管理フレームとして使用します。
interface = wlan0
```

atheros および nl80211 ドライバインタフェースの場合、任意の設定パラメータ bridge は、
インターフェイスがブリッジに含まれている場合に、 hostapd へ通知するために使用できます。
このパラメータは Host AP ドライバでは使用されません。
bridge パラメータが設定されていない場合、
ドライバは自動的にブリッジインターフェイスを検出します。
(sysfs が有効になっており ``/sys`` へマウントされていることが前提です)
このパラメータは必須ではありません。

nl80211 の場合、このパラメータは AP インタフェースへ
ブリッジを自動的に登録するよう指示する為に使用されます。
(インターフェイスモードを変更する為に hostapd が起動される前に、
brctl がブリッジの自動登録を拒否することがあります)
ブリッジインターフェイスの作成は必要に応じて実行されます。

```bash
bridge=br0
```

ドライバーインタフェースタイプ

- hostap(既定値)
- wired
- none
- nl80211
- bsd

nl80211 は、すべての Linux mac80211 ドライバで使用されています。
hostapd を如何なる無線/有線ドライバをも制御しない、
独立した RADIUS サーバーとして構築する場合は、 
``driver = none`` を使用してください。

```bash
 driver = hostap
```

ドライバインタフェースパラメータ(主に開発テスト用)

```bash
 driver_params = <パラメータ>
```

hostapd イベントロガー設定

**2 つの出力方法**

- syslog
- stdout(バックグラウンドへ切り替えしない場合のみ使用可能)

**モジュールビットフィールド(ログに記録されるモジュールの ORed ビットフィールド)**

- -1 = 全てのモジュール
- 0(1) = IEEE 802.11
- 1(2) = IEEE 802.1X
- 2(4) = RADIUS
- 3(8) = WPA
- 4(16) =ドライバインタフェース
- 5(32) = IAPP
- 6(64) = MLME

```bash
logger_syslog = -1
logger_stdout = -1
```

**レベル(記録されるイベントの最小値)**

- 0 = 詳細デバッグ
- 1 = デバッグ
- 2 = 情報メッセージ
- 3 = 通知
- 4 = 警告

```bash
logger_syslog_level = 2
logger_stdout_level = 2
```

独立した制御プログラム用のインターフェース。
これが指定されている場合、 hostapd は指定されたパスへディレクトリを作成し、
外部プログラム(CLI/GUI/その他)からのステータス/設定情報の要求を待ち受ける
UNIX ドメインソケットを作成します。
ソケットファイルはインタフェース名に基づいて命名される為、
複数のインターフェースが使用されている場合は
複数の hostapd プロセス/インターフェースを同時に実行できます。

``/var/run/hostapd`` はソケット用の推奨ディレクトリです。
デフォルトでは hostapd_cli は hostapd への接続を試行するときに上記を使用します。

```bash
ctrl_interface = /var/run/hostapd
```

制御インターフェースのアクセス制御は、
グループのメンバーだけにソケットとディレクトリの使用を許可するように設定することができます。
この方法では hostapd を root として実行することが可能であり、
(ネットワーク設定を変更して raw ソケットを開く必要があるため)
GUI/CLI コンポーネントを root 以外のユーザーとして実行することができます。
ただし制御インターフェースはネットワーク設定を変更することが可能である為、
多くの場合、接続は保護される必要があります。
hostapd はデフォルトで gid 0(root) を使用するように設定されています。
root 以外のユーザーが制御インターフェースを使用できるようにしたい場合は、
新しいグループを作成し、パラメータの設定値をそのグループと一致するように変更します。
制御インターフェースへの接続権限を付与したいユーザをこのグループへ登録してください。

この変数はグループ名または GID を指定することができます。

```bash
ctrl_interface_group = wheel
ctrl_interface_group = 0
```

# IEEE 802.11 関連の設定

IEEE 802.11 管理フレームで使用される SSID

```bash
ssid=test
```

SSID を設定するための代替形式

- 二重引用符で囲まれた文字列
- hexdump
- printf エスケープされた文字列

```bash
ssid2="test"
ssid2=74657374
ssid2=P"hello\nthere"
```

UTF-8 SSID: UTF-8 エンコードを使用して SSID を解釈するかどうかを指定します。

```bash
utf8_ssid=1
```

国コード(ISO/IEC 3166-1)規制区域の設定に使用されます。
機器が動作している国を示すために必要に応じて設定します。
これは利用可能なチャンネルと送信出力を制限することができます。

```bash
country_code=US
```

IEEE 802.11d を有効にします。
このパラメータは country_code を通知し、規制限度に基づいて
許可されたチャンネルと送信出力レベルを設定します。
country_code 設定は、 IEEE 802.11d 機能に定められた
国コードを正しく設定する必要があります。(既定値: 0 = 無効)

```bash
ieee80211d=1
```

IEEE 802.11h を有効にします。
これにより、利用可能であれば、レーダー検出と DFS サポートが有効になります。
DFS のサポートは、世界のほとんどの国において 5 GHz 屋外チャネルが必要です。
DFS は ``ieee80211d = 1`` である場合に限り使用することができます。(既定値: 0 = 無効)

```bash
ieee80211h=1
```

ビーコンおよび探査応答フレームに出力制限要素を追加します。
この設定オプションは出力制限属性と国属性を追加します。
送信出力制御には出力制限属性が必要です。
これは ``ieee80211d = 1`` である場合に限り使用することができます。
有効な値は 0..255 です。

```bash
local_pwr_constraint=3
```

機能情報フィールドにスペクトラム管理サブフィールドを設定します。
この設定オプションはスペクトラム管理ビットを強制的に設定します。
このオプションが設定されていない場合スペクトラム管理ビットの値は、
規制当局が DFS または TPC のどちらを要求しているかによって変わります。
これは ``ieee80211d = 1`` が設定されており、
local_pwr_constraint が設定されている場合に限り使用できます。

```bash
spectrum_mgmt_required=1
```

動作モードを指定します。

- a = IEEE 802.11a(5 GHz)
- b = IEEE 802.11b(2.4 GHz)
- g = IEEE 802.11g(2.4 GHz)
- ad = IEEE 802.11ad(60 GHz)

a/g オプションは、 IEEE 802.11n(HT) でも帯域を指定できます。 
IEEE 802.11ac(VHT)の場合、 ``hw_mode = a`` に設定する必要があります。
ACS を使用する場合(チャネルパラメータを参照)、特別な値 ``any`` を使用して、
使用可能な任意のサポート帯域を示すことができます。
この特別なケースは現在のところ、
オフロード ACS が使用されているドライバに限りサポートしています。
既定値: b(IEEE 802.11b)

```bash
hw_mode=g
```

チャンネル番号(IEEE 802.11)を指定します。
既定値: 0(設定されていません)

一部のドライバは hostapd のこの値を使用しないため、
チャネルは iwconfig を使用して個別に設定する必要があります。

CONFIG_ACS ビルドオプションが有効になっている場合は、
``channel = acs_survey`` または ``channel = 0`` を設定することで
実行時にチャンネルを自動的に選択することが可能です。
どちらもアルゴリズムに基づく ACS 調査を有効にします。

```bash
channel=1
```

[ACS tuning - Automatic Channel Selection](http://wireless.kernel.org/en/users/Documentation/acs) を参照してください。

ACS 調査アルゴリズムは、次の変数を使用してカスタマイズできます。

acs_num_scans は 1..100 の間で指定します。
デバイスドライバの調査基礎データの収集を開始するために使用される
スキャンの実行回数を指定します。
スキャンは受動的に実行されます。
指定された hw_mode において使用可能な各チャネルで
通常、 100 ms 前後の時間(ドライバに依存します)がかかります。

この値を大きくすると起動速度が犠牲になりますが、
チャネル干渉に対してより多くのデータが収集されるため、
より良いチャネルを選択するのに役立ちます。
これは、ドライバが保持するスキャン滞留時間が異なる場合に 
ACS スキャン時間を微調整するのにも役立ちます。

acs_chan_bias は、スペースで区切られた ``<channel>:<bias>`` のペアのリストです。 
ACS アルゴリズムによって特定のチャネルが選択される可能性を増減させるために使用できます。
各チャネルの合計干渉係数は、最小値を持つチャネルを見つける前に、
指定されたバイアス値で乗算されます。
つまり 0.0〜1.0 の値を使用すると、指定されたチャンネルが選択される可能性が高くなり、
1.0 より大きい値を使用すると、指定されたチャンネルが選択される可能性が低くなります。

これは例えば一般的に使用される 2.4 GHz 帯域のチャネル 1, 6, 11 を優先するために使用できます。
(acs_chan_bias パラメータが指定されていない場合の 2.4 GHz 帯域での既定の動作です)

```bash
# 既定値
acs_num_scans=5
acs_chan_bias=1:0.8 6:0.8 11:0.8
```

チャンネルリストの制限を指定します。
このオプションにより、チャンネルを自動的に選択する必要がある場合に、
hostapd は chanlist に指定されたチャンネルからいずれか一つを選択します。

チャンネルリストは、ハイフン('-')を使用した範囲指定、
または個々のチャネルの値をスペース(' ')区切って指定します。

既定値: 選択した hw_mode で許可されているすべてのチャネル。

```bash
chanlist=100 104 108 112 116
chanlist=1 6 11-13
```

kus 単位(1.024 ms)のビーコン間隔を指定します。

- 既定値: 100
- 範囲: 15..65535

```bash
beacon_int=100
```

DTIM(delivery traffic information message)期間
DTIM 間のビーコン数(1 = すべてのビーコンに DTIM 要素が含まれます)

- 範囲 1..255
- 既定値: 2

```bash
dtim_period=2
```

ステーションテーブルで許可されているステーション(接続端末)の最大数。
ステーションテーブルがいっぱいになると、新しいステーションは拒否されます。 
IEEE 802.11 のアソシエーション ID の上限は 2007 です。
(既定値: 2007)

```bash
max_num_sta=255
```

RTS/CTS しきい値

- 既定値: -1 = 無効
- 範囲: -1..65535

このフィールドが ``hostapd.conf`` に含まれていない場合、 
hostapd は RTS しきい値を制御しません。
``iwconfig wlan＃rts <val>`` を使用して設定することができます。

```bash
rts_threshold=-1
```

断片化しきい値

- 既定値: -1 = 無効
- 範囲: -1, 256..2346

このフィールドが ``hostapd.conf`` に含まれていない場合、 
hostapd はフラグメンテーションしきい値を制御しません。
``iwconfig wlan＃frag <val>`` を使用して設定することができます。

```bash
fragm_threshold=-1
```

レート設定

既定では、ハードウェアでサポートされているすべてのレートを有効にします。
この設定項目では、リストに列記されているレートだけが残るように
レートリストをフィルタリングできます。
リストが空の場合は、ハードウェアでサポートされているすべてのレートが使用されます。
このリストには、ハードウェアがサポートするレートのリストにないエントリが含まれることがあります(そのようなエントリは無視されます)。
このリストのエントリは 100 kbps 単位です。
(例: 11 Mbps = 110)

この項目を設定する場合、少なくとも1つのレートが
ハードウェアでサポートされているレートと一致している必要があります。

既定値: 選択された hw_mode に対して最も一般的にサポートされているレート設定を使用します(つまり、この行はほとんどの場合設定ファイルから削除できます)

```bash
supported_rates=10 20 55 110 60 90 120 180 240 360 480 540
```

基本レートセット設定

基本レートセットに含まれているレートのリスト(100 kbps 単位)。
この項目が含まれていない場合は、通常合理的なデフォルト設定が使用されます。

```bash
basic_rates=10 20
basic_rates=10 20 55 110
basic_rates=60 120 240
```

Short Preamble

このパラメータを使用すると、ネットワークパフォーマンスを向上させるために、2 Mbps、 5.5 Mbps、および 11 Mbps で送信されるフレームに対して short preamble をオプションで使用できるようになります。
これは、 IEEE 802.11b 互換ネットワークのみに適用され、
ローカルハードウェアが short preamble の使用をサポートしている場合に限り有効になります。
接続している STA のいずれかが short preamble をサポートしていない場合、 
short preamble の使用は動的に無効化されます。
(short preamble をサポートしていない STA が接続解除されるときに有効化されます)

- 0 = short preamble の使用を許可しません(既定値)
- 1 = short preamble の使用を許可します。

```bash
preamble=1
```

ステーションの MAC アドレスに基づく認証

hostapd はこの種のアクセス制御を管理するフレーム処理の為に以下のドライバを必要とします。
``driver = hostap`` または ``driver = nl80211``。 
``driver = atheros`` では使用できません。

- 0 = 拒否リストになければ受け入れる
- 1 = 受け入れリストになければ拒否
- 2 = 外部 RADIUS サーバーを使用(許可/拒否リストが最初に検索されます)

```bash
macaddr_acl=0
```

許可/拒否リスト(1 行に 1 つの MAC アドレスのリスト)はファイルから個別に読み込まれます。
絶対パス名を使用して、ファイルが SIGHUP(設定のリロード)時に確実に読み込まれるようにしてください。

```bash
accept_mac_file=/etc/hostapd.accept
deny_mac_file=/etc/hostapd.deny
```

IEEE 802.11 では、 2 つの認証アルゴリズムが指定されています。 
hostapd は、これらの両方を許可、または 1 つだけを許可するように設定できます。
オープンシステム認証は、 IEEE 802.1X で使用する必要があります。

許可する認証アルゴリズムのビットフィールド

- 0 = オープンシステム認証
- 1 = 共有キー認証(WEP が必要)

```bash
auth_algs=3
```

空の SSID をビーコンで送信し、完全な SSID を指定していない探査要求フレームを無視します。
ステーションは SSID をあらかじめ知っている必要があります。

- 0 = 無効(既定値)
- 1 = ビーコンに空(長さ = 0)の SSID を送信し、
  ブロードキャスト SSID の探査要求を無視する。
- 2 = SSIDを削除(ASCII 0)しますが、元の長さは保持します。
  (空の SSID をサポートしない一部のクライアントではこれが必要となる場合があります)
  ブロードキャスト SSID に対する探査要求を無視します。

```bash
ignore_broadcast_ssid=0
```

追加ステーション用のスペースがない場合(max_num_sta)、
接続されていない STA からのブロードキャスト探査要求フレームに応答しなくなります。
これは、最大接続数制限が原因で接続が拒否される場合に、 
STA が AP へ接続しようとするのを防ぎます。

既定値: 0(無効)

```bash
no_probe_resp_if_max_sta=0
```

ビーコンおよび探査応答フレーム用の追加のベンダー固有要素

このパラメータは、ビーコンフレームと探査応答フレームの最後に
任意のベンダー固有要素を追加します。
要素のフォーマットは、生の情報要素の 16 進ダンプです
(1 つ以上の要素に対する ``id + len + ペイロード``)。

```bash
vendor_elements=dd0411223301
```

(再)接続応答フレームのための追加のベンダー固有要素

このパラメータは、(再)接続応答フレームの最後に
任意のベンダー固有要素を追加します。
要素のフォーマットは、生の情報要素の 16 進ダンプです
(1 つ以上の要素に対する ``id + len + ペイロード``)。

```bash
assocresp_elements=dd0411223301
```

TX queue parameters(EDCF/bursting)

```bash
 tx_queue_<queue name>_<param>
```

**キュー**

- data0
- data1
- data2
- data3
- after_beacon
- beacon

(data0 が最も優先順位の高いキューです)

**パラメーター**

- aifs: AIFS(既定値は 2)
- cwmin: cwMin(1、3、7、15、31、63、127、255、511、1023、2047、4095、8191、16383、32767)
- cwmax: cwMax(cwMin 以上の値、 ``cwMax >= cwMin``)
- burst: バーストの最大長(ミリ秒単位、最大 0.1 ミリ秒の精度)

**既定の WMM パラメータ(IEEE 802.11 ドラフト,11-03-0504-03-000e)**

これらのパラメータは、クライアントにフレームを送信するときに
アクセスポイントによって使用されます。

```bash
# Low priority/AC_BK = background
tx_queue_data3_aifs=7
tx_queue_data3_cwmin=15
tx_queue_data3_cwmax=1023
tx_queue_data3_burst=0
```

**Note**
IEEE 802.11b モード向け: cWmin=31 cWmax=1023 burst=0

```bash
# Normal priority/AC_BE = best effort
tx_queue_data2_aifs=3
tx_queue_data2_cwmin=15
tx_queue_data2_cwmax=63
tx_queue_data2_burst=0
```

**Note**
IEEE 802.11b モード向け: cWmin=31 cWmax=127 burst=0

```bash
# High priority/AC_VI = video
tx_queue_data1_aifs=1
tx_queue_data1_cwmin=7
tx_queue_data1_cwmax=15
tx_queue_data1_burst=3.0
```

**Note**
IEEE 802.11b モード向け: cWmin=15 cWmax=31 burst=6.0

```bash
# Highest priority/AC_VO = voice
tx_queue_data0_aifs=1
tx_queue_data0_cwmin=3
tx_queue_data0_cwmax=7
tx_queue_data0_burst=1.5
```

**Note**
IEEE 802.11b モード向け: cWmin=7 cWmax=15 burst=3.3

802.1D Tag(= UP) to AC mappings

WMM は、異なる AC のデータフレームへ下記のマッピングを指定します。
このマッピングは、 Linux QoS/tc および sch_pktpri.o モジュールを使用して設定できます。

|802.1D Tag|802.1D Designation|Access Category|WMM Designation|
|----------|------------------|---------------|---------------|
| 1        |BK                |AC_BK          |Background     |
| 2        |-                 |AC_BK          |Background     |
| 0        |BE                |AC_BE          |Best Effort    |
| 3        |EE                |AC_BE          |Best Effort    |
| 4        |CL                |AC_VI          |Video          |
| 5        |VI                |AC_VI          |Video          |
| 6        |VO                |AC_VO          |Voice          |
| 7        |NC                |AC_VO          |Voice          |
 
優先度情報がないデータフレーム: AC_BE

- Management frames: AC_VO
- PS-Poll frames: AC_BE

既定の WMM パラメータ(IEEE 802.11 draft; 11-03-0504-03-000e)

802.11a または 802.11g ネットワーク用

これらのパラメータは、接続時に WMM クライアントに送信されます。
パラメータは、アクセスポイントに送信されたフレームに対して 
WMM クライアントによって使用されます。

**Note**
txop_limit は 32 マイクロ秒単位です
acm はアドミッションコントロール必須フラグです。

- 0 = アドミッションコントロールは不要
- 1 =必須

**Note**
ここで指定する cwMin と cmMax は指数形式です。
実際に使用される cw 値は ``(2 ^ n) - 1`` です。
n には以下の値を指定します。
これらの ``wmm_ac_??_{cwmin, cwmax}`` の許容範囲は、 
``cwmax >= cwmin`` で 0..15 です。

```bash
wmm_enabled=1
```

WMM-PS Unscheduled Automatic Power Save Delivery [U-APSD]

U-APSD が hostapd の外部でサポートされている場合はこのフラグを有効にします
(例: ファームウェア/ドライバ)

```bash
uapsd_advertisement_enabled=1
```

```bash
# Low priority/AC_BK = background
wmm_ac_bk_cwmin=4
wmm_ac_bk_cwmax=10
wmm_ac_bk_aifs=7
wmm_ac_bk_txop_limit=0
wmm_ac_bk_acm=0
```

**Note**
IEEE 802.11b モード向け: cWmin=5 cWmax=10

```bash
# Normal priority/AC_BE = best effort
wmm_ac_be_aifs=3
wmm_ac_be_cwmin=4
wmm_ac_be_cwmax=10
wmm_ac_be_txop_limit=0
wmm_ac_be_acm=0
```

**Note**
IEEE 802.11b モード用: cWmin=5 cWmax=7

```bash
# High priority/AC_VI = video
wmm_ac_vi_aifs=2
wmm_ac_vi_cwmin=3
wmm_ac_vi_cwmax=4
wmm_ac_vi_txop_limit=94
wmm_ac_vi_acm=0
```

**Note**
IEEE 802.11b モード向け: cWmin=4 cWmax=5 txop_limit=188

```bash
# Highest priority/AC_VO = voice
wmm_ac_vo_aifs=2
wmm_ac_vo_cwmin=2
wmm_ac_vo_cwmax=3
wmm_ac_vo_txop_limit=47
wmm_ac_vo_acm=0
```

**Note**
IEEE 802.11b モード向け: cWmin=3 cWmax=4 burst=102

静的 WEP キー設定

送信時に使用するキー番号です。
0 から 3 の間で対応するキーを設定する必要があります。

既定値: 未設定

```bash
wep_default_key=0
```

使用する WEP キーを指定します。
キーは、引用符で囲まれた文字列または引用符で囲まれていない 16 進数です。
キーの長さは 5、 13、または 16 文字、または 10、 26、または 32 桁です。
40ビット(64ビット)、104ビット(128ビット)、または 128ビット(152ビット)
WEP が使用されます。
デフォルトキーのみを指定する必要があります。
他はオプションです。

既定値: 未設定

```bash
wep_key0=123456789a
wep_key1="vwxyz"
wep_key2=0102030405060708090a0b0c0d
wep_key3=".2.4.6.8.0.23"
```

ステーション非活性制限

接続端末が ap_max_inactivity に指定された秒数以内に何も送信しない場合、
接続端末がまだ範囲内にあるかどうかを確認するために、空のデータフレームが送信されます。
このフレームが ACK ではない場合、接続端末は接続解除され、認証解除されます。
この機能は、 STA が範囲外に移動したときに、
古いエントリのステーションテーブルを消去するために使用されます。

AP がまだ範囲内にある場合、接続端末は AP と再度接続できます。
この非活性探査は、接続端末の活動状況を検証するためのより良い方法として使用されています。
クライアントは切断された接続を報告しません。接続解除フレームが即時送信されないからです。

既定値: 300(5 分)

```bash
ap_max_inactivity=300
```

待機状態のステーションが AP の範囲内に存在する場合でも、
ステーションの接続解除が実行される可能性を高めることができます。
非アクティブポーリングを無効化し、非アクティブタイムアウトに基づいて
ステーションを切断することができます。
この機能は ``skip_inactivity_poll = 1``に設定することで有効化できます。

既定値: 0

```bash
skip_inactivity_poll=0
```

過度の伝送障害、またはその他の接続喪失の兆候に基づいてステーションの接続を解除します。
これはドライバの機能に依存している為、すべてのドライバで利用できるわけではありません。

```bash
disassoc_low_ack=1
```

待受け最大許容間隔(STA がスリープ状態を維持できるビーコン期間数)

既定値: 65535(フィールドサイズ以外に制限なし)

```bash
max_listen_interval=100
```

ステーションごとの仮想インタフェースを備えた WDS(4 アドレスフレーム)モード

(``driver = nl80211`` でのみサポートされています)
このモードでは、接続端末が 4 アドレスフレームを使用して
レイヤ 2 ブリッジングを使用できます。

```bash
wds_sta=1
```

bridge パラメータが設定されている場合、 
WDS STA インターフェイスはデフォルトで同じブリッジに追加されます。
別のブリッジを使用するには、ブリッジの登録先を 
wds_bridge パラメーターで上書きすることができます。

```bash
wds_bridge=wds-br0
```

デフォルトでビーコンを無効にして AP を起動します。

```bash
start_disabled=0
```

クライアントの隔離を使用して、BSS 内の接続端末間での
低レベルのフレームブリッジを防ぐことができます。
デフォルトでは、このブリッジングは許可されています。

```bash
ap_isolate=1
```

BSS 負荷更新期間(BU単位)

このフィールドは、ビーコンフレームと探査応答フレームへの
BSS 読込要素の追加を有効化します。

```bash
bss_load_update_period=50
```

テストを目的とする固定 BSS 負荷値

このフィールドは、テスト目的でビーコンフレームと探査応答フレームに
固定 BSS 読込要素を追加するように hostapd を設定します。

```bash
# フォーマット: <ステーション数>:<チャネル使用率>:<利用可能な受信容量>
bss_load_test=12:80:20000
```

# IEEE 802.11n 関連の設定

ieee80211n: IEEE 802.11n(HT) が有効かどうかを指定します。

- 0 = 無効(既定値)
- 1 = 有効

**注意**
完全な HT 機能を利用する為に WMM を有効にする必要があります。
帯域の指定には、 ``hw_mode = g``(2.4 GHz) と ``hw_mode = a``(5 GHz) が使用されます。

```bash
ieee80211n=1
```

ht_capab: HT 機能(フラグのリスト)

LDPC コーディング機能: [LDPC] = supported

サポートされているチャネル幅セット:

- [HT40-]: 20 MHz と 40 MHz の両方で、
  セカンダリチャネルはプライマリチャネルの下位にあります。 
- [HT40+]: 20 MHz と 40 MHz の両方で、
  セカンダリチャネルはプライマリチャネルの上位にあります。

(どちらも設定されていない場合のみ20 MHz)

**注意**
HT40- と HT40+ で使用できるチャンネルには制限があります。
利用可能なチャネルを次の表に示します。

HT40- および HT40+ は、 IEEE 802.11n Annex J に従って使用されます。

| freq    | HT40-       | HT40 +                       |
|---------|-------------|------------------------------|
| 2.4 GHz | 5-13        | 1-7(ヨーロッパ/日本では1-9)   |
| 5 GHz   | 40,48,56,64 | 36,44,52,60                  |

(場所によっては、使用できないチャネルがあります)

40 MHz チャネルは、必要に応じてプライマリチャネルとセカンダリチャネルを切り替えたり、
重複する BSS に基づいて 40 MHz チャネルの作成を拒否することがあります。
これらの変更は、 hostapd が 40 MHz チャネルを設定するときに自動的に行われます。

- Spatial Multiplexing(SM) Power Save:
  - SMPS-STATIC
  - SMPS-DYNAMIC
  (どちらも設定されていない場合は SMPS は無効)
- HT-greenfield: GF(設定しない場合は無効)
- 20 MHz 用の Short GI: SHORT-GI-20(設定されていない場合は無効)
- 40 MHz 用の Short GI：SHORT-GI-40(設定されていない場合は無効)
- Tx STBC: TX-STBC(設定しない場合は無効)
- Rx STBC: 
  - RX-STBC1(単一の空間ストリーム)
  - RX-STBC12(1 つまたは 2 つの空間ストリーム)
  - RX-STBC123(1 つ、2 つ、または 3 つの空間ストリーム)。
  これらのいずれも設定されていない場合、 Rx STBC は無効となります。
- HT-delayed Block Ack: DELAYED-BA(設定しない場合は無効)
- A-MSDU の最大長:
  - 7935 オクテットの場合: MAX-AMSDU-7935
  - 設定されていない場合: 3839 オクテット
- 40 MHz の DSSS/CCK モード:
  - DSSS_CCK-40 = 許可(設定されていない場合は許可されません)
  - 40-INTOLERANT = 40 MHz 不耐性(設定しない場合は通知されません)
- L-SIG TXOP 保護サポート: LSIG-TXOP-PROT(設定しない場合は無効)

```bash
ht_capab=[HT40-][SHORT-GI-20][SHORT-GI-40]
```

接続端末へ HT PHY のサポートを要求します(サポートしていない場合は接続を拒否します)

```bash
require_ht=1
```

0 以外に設定されている場合は、 40 MHz トラフィックの影響を受ける接続端末をテストするために、接続端末側で重複チャネルのスキャンを実行する必要があります。
このパラメータは、上記のスキャンの間隔を秒単位で設定します。
これを 0 以外に設定すると、隣接デバイスとの共存の問題が検出されなければ、
2.4 GHz バンド AP を 40 MHz チャネルへ動的に移動できます。

```bash
obss_interval=0
```

# IEEE 802.11ac 関連の設定

ieee80211ac: IEEE 802.11ac(VHT)が有効かどうかを指定します。

- 0 = 無効(既定値)
- 1 = 有効

**注意**
完全な VHT 機能を利用する為に WMM を有効にする必要があります。
``hw_mode = a`` は 5 GHz 帯域が VHT で使用されます。

```bash
ieee80211ac=1
```

**vht_capab: VHT 機能(フラグのリスト)**

**vht_max_mpdu_len:**

- [MAX-MPDU-7991]
- [MAX-MPDU-11454]

最大 MPDU 長を示します

- 0 = 3895オクテット(既定値)
- 1 = 7991オクテット
- 2 = 11454オクテット
- 3 = 予約済み

**supported_chan_width:**

- [VHT160]
- [VHT160-80PLUS80]

サポートされているチャンネル幅を示します。

- 0 = 160 MHz & 80+80 チャネル幅はサポートされていません(既定値)
- 1 = 160 MHz のチャネル幅がサポートされています
- 2 = 160 MHz & 80 + 80 チャンネル幅がサポートされています
- 3 = 予約済み

**Rx LDPC コーディング機能:** 

[RXLDPC]

LDPC 符号化パケットの受信サポートを示します。

- 0 = サポートされていません(既定値)
- 1 = サポートしています

**80 MHz 用の Short GI:** 

[SHORT-GI-80]

VHT および ``CBW = 80 MHz`` に等しい
TXVECTOR params フォーマットで送信された
パケットの受信に対する Short GI サポートを示します。

- 0 = サポートされていません(既定値)
- 1 = サポートしています

**160 MHz 用の Short GI:**

[SHORT-GI-160]

VHT および ``CBW = 160 MHz`` に等しい
TXVECTOR params フォーマットで送信された
パケットの受信に対する Short GI サポート

- 0 = サポートされていません(既定値)
- 1 = サポートしています

**Tx STBC:**

[TX-STBC-2BY1]

少なくとも 2x1 STBC の伝送をサポートします。

- 0 =サポートされていません(既定値)
- 1 =サポートしています

**Rx STBC:**

- [RX-STBC-1]
- [RX-STBC-12]
- [RX-STBC-123]
- [RX-STBC-1234]

STBC を使用した PPDU の受信サポートを示します。

- 0 = サポートされていません(既定値)
- 1 = 1 つの空間ストリームをサポート
- 2 = 1 つ、2 つの空間ストリームのサポート
- 3 = 1 つ、2 つ、3 つの空間ストリームのサポート
- 4 = 1 つ、2 つ、3 つ、4 つの空間ストリームのサポート
- 5,6,7 = 予約済み

**SU ビームフォーマ機能:**

[SU-BEAMFORMER]

シングルユーザービームフォーマとしての運用をサポートします。

- 0 = サポートされていません(既定値)
- 1 = サポートしています

**SU ビームフォーミー機能:**

[SU-BEAMFORMEE]

シングルユーザービームフォーミーの操作をサポートします。

- 0 =サポートされていません(既定値)
- 1 =サポートしています。

**ビームフォーマーアンテナがサポートしているビーム圧縮操作数:**

- [BF-ANTENNA-2]
- [BF-ANTENNA-3]
- [BF-ANTENNA-4]

ビームフォーミーの機能です。
圧縮ビームフォーミングフィードバックを送信するときに
ビームフォーミーがサポートできるビームフォーマアンテナの最大数を示します。
SU ビームフォーマを使用できる場合は、最大値から 1 を引いた値、
それ以外の場合は予約済みの値(既定値)が設定されます。

**サウンディング次元数:**

- [SOUNDING-DIMENSION-2]
- [SOUNDING-DIMENSION-3]
- [SOUNDING-DIMENSION-4]

ビームフォーマの機能です。
VHT NDP の TXVECTOR の NUM_STS パラメータの最大値を示します。
SU ビームフォーマを使用できる場合は最大値から 1 を引いた値、
それ以外の場合は予約済みの値(既定値)が設定されます。

**MU ビームフォーマ機能:**

[MU-BEAMFORMER]

MU ビームフォーマとしての運用をサポートします。

- 0 = サポートされていないか、または AP ではない STA によって送信されます(既定値)
- 1 = サポートしています

**VHT TXOP PS:**

[VHT-TXOP-PS]

AP が VHT TXOP Power Save モードをサポートしているかどうか、
または STA が VHT TXOP Power Save モードになっているかどうかを示します。

- 0 = VHT AP は VHT TXOP PS モードをサポートしません。
  (または) VHT STA が VHT TXOP PS モードではありません。
- 1 = VHT AP は VHT TXOP PS モードをサポートします。
  (または) VHT STA は VHT TXOP Power Save モードになっています。

**+HTC-VHT 機能:**

[HTC-VHT]

STA が VHT バリアント HT 制御フィールドの受信をサポートしているかどうかを示します。

- 0 =サポートされていません(既定値)
- 1 =サポートしています

**最大 A-MPDU 長指数:**

- [MAX-A-MPDU-LEN-EXP0]
- [MAX-A-MPDU-LEN-EXP1]
- [MAX-A-MPDU-LEN-EXP2]
- [MAX-A-MPDU-LEN-EXP3]
- [MAX-A-MPDU-LEN-EXP4]
- [MAX-A-MPDU-LEN-EXP5]
- [MAX-A-MPDU-LEN-EXP6]
- [MAX-A-MPDU-LEN-EXP7]

STA が受信できる A-MPDU pre-EOF パディングの最大長を示します。
このフィールドは、 0 から 7 の範囲の整数です。
このフィールドによって定義された長さは
``2 pow (13 + 最大 A-MPDU 長指数) -1 オクテット`` と等しくなります。

**VHT Link Adaptation 機能:**

- [VHT-LINK-ADAPT2]
- [VHT-LINK-ADAPT3]

STA が VHT 変数を使用したリンクアダプテーションをサポートしているかどうかを示します。

**HT 制御フィールド**

``+HTC-VHTcapable = 1`` の場合

- 0 = (フィードバックなし) STA は VHT MFB を提供しません(既定値)
- 1 = 予約済み
- 2 = (非請求) STA は非請求 VHT MFB のみを提供します
- 3 = (両方) STA は VHT MRQ に応答して VHT MFB と非請求 VHT MFB を提供します

``+HTC-VHTcapable = 0`` の場合

予約済み。

**Rx アンテナパターンの整合性:**

[RX-ANTENNA-PATTERN]

Rx アンテナパターンの変更可否を示します。

- 0 = 接続の存続期間中に Rx アンテナパターンは変更されることがあります。
- 1 = 接続の存続期間中は Rx アンテナパターンは変更されません。

**Tx アンテナパターンの整合性:**

[TX-ANTENNA-PATTERN]

Tx アンテナパターンの変更可否を示します。

- 0 = 接続の存続期間中に Tx アンテナパターンは変更されることがあります。
- 1 = 接続の存続期間中に Tx アンテナパターンは変更されません。

```bash
vht_capab=[SHORT-GI-80][HTC-VHT]
```

接続端末に VHT PHY のサポートを要求します
(サポートしていない場合は接続を拒否します)

```bash
require_vht=1
```

- 0 = 20 または 40 MHz 動作チャネル幅
- 1 = 80 MHz チャネル幅
- 2 = 160 MHz チャネル幅
- 3 = 80+80 MHz チャネル幅

```bash
vht_oper_chwidth=1
```

**中心周波数**

``中心周波数 = 5 GHz + (5 * インデックス)``

```bash
# インデックス 42 は 5G 帯域におけるチャンネル 42 の中心周波数
# 5.210 GHz を指定します。
vht_oper_centr_freq_seg0_idx=42

# インデックス 159 は 5G 帯域におけるチャンネル 159 の中心周波数
# 5.795 GHz を指定します。
vht_oper_centr_freq_seg1_idx=159
```

(再)接続応答フレームにおいて接続端末の nsts 機能を使用するための回避策

AP の機能が接続端末の機能より高性能である場合、展開されたデバイス間で
ビームフォーミングの相互運用の為の回避策が必要となる場合があります。
これはデフォルトで無効になっており、 
``use_sta_nsts = 1`` に設定することで有効化できます。

```bash
use_sta_nsts=0
```

# IEEE 802.1X-2004 関連の設定

IEEE 802.1X 認証を必要とします。

```bash
ieee8021x=1
```

IEEE 802.1X/EAPOL のバージョン

hostapd は、 EAPOL バージョン 2 を定義する
IEEE Std 802.1X-2004 に基づいて実装されています。
ただし、新しいバージョンで正しく動作しないクライアント実装が多数存在します
(それらはフレームを完全に破棄するようです)。
hostapd をこれらのクライアントと相互に運用できるようにするために、
この設定値でバージョン番号を古いバージョン(1)に設定することができます。

```bash
eapol_version=2
```

EAP Request-Identity とともに送信される任意の表示可能メッセージ。
文字列先頭の ``\0`` は ASCII-0(null) に変換されます。
これは、ネットワーク情報を区切るために使用できます
(``属性 = 値`` ペアのカンマ区切りのリスト)。
RFC 4284 を参照してください。

```bash
eap_message=hello
eap_message=hello\0networkid=netw,nasid=foo,portid=0,NAIRealms=example.com
```

WEP キー再生成(キー長が設定されていないか 0 に設定されている場合は無効)

デフォルト/ブロードキャストおよび個別/ユニキャストキーのキー長:

- 5 = 40 ビット WEP(40 シークレットビットの 64 ビット WEP とも呼ばれます)
- 13 = 104 ビット WEP(104 シークレットビットの 128 ビット WEP とも呼ばれます)

```bash
wep_key_len_broadcast=5
wep_key_len_unicast=5
```

鍵の再生成期間を秒単位で指定します。 

0 = 鍵の再生成を実行しません(つまり、キーを 1 回だけ設定します)。

```bash
wep_rekey_period=300
```

WinXP Supplicant の EAPOL-Key インデックス回避策

ビット 7 が設定されていてブロードキャストキーのみが使用されている場合に限り必要です。

```bash
eapol_key_index_workaround=0
```

EAP 再認証期間を秒単位で指定します。

- 既定値: 3600 秒
- 0 = 再認証を無効にします。

```bash
eap_reauth_period=3600
```

``driver = wired`` で EAPOL フレームを送信するときは、
個々のターゲットアドレスではなく 
PAE グループアドレス(01:80:c2:00:00:03)を使用してください。
これは有線認証で使用される最も一般的なメカニズムですが、
ポートが 1 つの接続端末だけに使用されることを必要とします。

```bash
use_pae_group_addr=1
```

EAP 再認証プロトコル(ERP)認証機構(RFC 6696)

EAP-Identity/Request の前に EAP-Initiate/Re-auth-Start で
EAP 認証を開始するかどうかを指定します。

```bash
erp_send_reauth_start=1
```

EAP-Initiate/Re-auth-Start のドメイン名です。
設定されていない(ローカル ER サーバーがない)場合はメッセージから省略されます。 
ERP が有効(``eap_server_erp = 1``)である場合、
これは統合 EAP サーバーにも使用されます。

```bash
erp_domain=example.com
```

# 統合 EAP サーバー

オプションで、 hostapd は、外部の RADIUS サーバーを必要としない、
統合 EAP サーバーを使用して EAP 認証をローカルで処理するように構成できます。
この機能は IEEE 802.1X/EAPOL のローカル認証サーバーとしても、
他のデバイスの RADIUS サーバーとしても使用できます。

外部 RADIUS 認証サーバーの代わりに統合 EAP サーバーを使用します。 
hostapd が RADIUS 認証サーバーとして機能するように設定されている場合にも必要です。

```bash
eap_server=0
```

EAP サーバーユーザーデータベースのパス

SQLite がサポートされている場合に ``sqlite:/path/to/sqlite.db`` を設定すると、
テキストファイルの代わりに SQLite データベースを使用することができます。

```bash
eap_user_file=/etc/hostapd.eap_user
```

EAP-TLS/PEAP/TTLS 用の CA 証明書(PEM または DER ファイル)

```bash
ca_cert=/etc/hostapd.ca.pem
```

EAP-TLS/PEAP/TTLS 用のサーバー証明書(PEM または DER ファイル)

```bash
server_cert=/etc/hostapd.server.pem
```

EAP-TLS/PEAP/TTLS のサーバー証明書と一致する秘密鍵

証明書とキーの両方が単一のファイルに記述されている場合、
private_key の設定値は server_cert と同じファイルを指すことがあります。
PKCS#12(PFX)ファイル(.p12/.pfx)は、 server_cert をコメントアウトして 
PFX ファイルを private_key として指定することもできます。

```bash
private_key=/etc/hostapd.server.prv
```

秘密鍵のパスフレーズ

```bash
private_key_passwd=secret passphrase
```

サーバー ID

認証されたサーバー ID を配信する仕組みを提供する EAP メソッドが
server_id の値を使用します。
設定されていない場合、 ``hostapd`` が既定値として使用されます。

```bash
server_id=server.example.com
```

CRL 検証を有効にします。
 
**注意** 
hostapd は、 CDP に基づく CRL ダウンロードをまだサポートしていません。
したがって、 CA によって署名された有効な CRL を 
ca_cert ファイルに含める必要があります。
上記は CA 証明書と CRL に PEM 形式を使用して
1 つのファイルに連結することによって実行できます。 
CRL が変更される度、新しい CRL を使用するために 
hostapd を再起動する必要があります。

- 0 = CRL を検証しません(既定値)
- 1 = ユーザー証明書の CRL を確認します
- 2 = 証明書パス内のすべての CRL を確認します

```bash
check_crl=1
```

秒単位の TLS セッション有効期間

EAP-TLS/TTLS/PEAP を使用している場合、
これを使用して TLS セッションをキャッシュし、
短縮ハンドシェイクで再開することができます。
(既定値: 0 = セッションのキャッシュと再開を無効にします)

```bash
tls_session_lifetime=3600
```

キャッシュされた OCSP ステープル応答(DER エンコード)

設定されている場合、 EAP ピアが ClientHello メッセージで
証明書ステータスを要求した場合、 EAP サーバによってこのファイルが
証明書ステータス応答として送信されます。
このキャッシュファイルは、例えば、以下のコマンドを定期的に実行して
OCSP レスポンダから更新データを取得することによって最新化することができます。

```bash
 openssl ocsp \
	-no_nonce \
	-CAfile /etc/hostapd.ca.pem \
	-issuer /etc/hostapd.ca.pem \
	-cert /etc/hostapd.server.pem \
	-url http://ocsp.example.com:8888/ \
	-respout /tmp/ocsp-cache.der
```

```bash
ocsp_stapling_response=/tmp/ocsp-cache.der
```

キャッシュされた OCSP ステープル応答リスト(DER エンコード OCSPResponseList)

これは ocsp_stapling_response に似ていますが、
複数の OCSP 応答を提供できるように RFC 6961 で定義されている拡張版です。

```bash
ocsp_stapling_response_multi=/tmp/ocsp-multi-cache.der
```

dh_file: DH/DSA パラメータファイルへのファイルパス(PEM 形式)

これは、一時的な DH キー交換のパラメータを設定するための
オプションの設定ファイルです。
ほとんどの場合、デフォルトの RSA 認証はこの設定を使用しません。
ただし、一時的な DH キー交換を使用するように RSA を設定することは可能です。
さらに、 DSA キーを使用した暗号では、常に一時的な DH キーを使用します。
これは秘匿性の推進を達成するために使用することができます。
ファイルが DSA パラメータ形式の場合は、自動的に DH パラメータに変換されます。
匿名 EAP-FAST が使用されている場合、このパラメータは必須です。 
OpenSSL を使って DH パラメータファイルを生成することができます。

例: ``openssl dhparam -out /etc/hostapd.dh.pem 2048``

```
dh_file=/etc/hostapd.dh.pem
```

OpenSSL 暗号文字列

これは、デフォルト暗号を設定するための OpenSSL 固有の設定オプションです。
設定されていない場合は、 ``DEFAULT:!EXP:!LOW`` が既定値として使用されます。
暗号スイート設定に関する OpenSSL のドキュメントについては、
[ciphers](https://www.openssl.org/docs/apps/ciphers.html) を参照してください。
これは hostapd が OpenSSL を使用するように設定されている場合に限り適用可能です。

```bash
openssl_ciphers=DEFAULT:!EXP:!LOW
```

EAP 方式のフラグメントサイズ

```bash
fragment_size=1400
```

EAP-pwd の有限巡回グループ。
設定した番号は、 IKE 用の IANA リポジトリ(RFC 2409)を使用して
ドメインパラメータのグループにマッピングされます。

```bash
pwd_group=19
```

EAP-SIM データベース/認証ゲートウェイインターフェイスの設定データ。
これは実装固有のフォーマットのテキスト文字列です。 
``eap_sim_db.c`` の実装例では、これを HLR/AuC ゲートウェイの 
UNIX ドメインソケット名として使用しています(例: hlr_auc_gw)。
この場合、パスは ``unix:`` プレフィックスを使用します。 
hostapd が SQLite サポート(``.config`` の ``CONFIG_SQLITE = y``)でビルドされている場合、
データベースファイルはオプションの ``db = <path>`` パラメータで指定できます。

```bash
eap_sim_db=unix:/tmp/hlr_auc_gw.sock
eap_sim_db=unix:/tmp/hlr_auc_gw.sock db=/tmp/hostapd.db
```

EAP-SIM DB 要求タイムアウト

このパラメータは、データベース要求の応答を待つ最大時間を設定します。
パラメータ値は秒単位です。

```bash
eap_sim_db_timeout=1
```

EAP-FAST PAC-Opaque 値の暗号化キー。
このキーは秘匿された乱数値でなければなりません。 
16 進数の 16 オクテット値として設定されています。
以下のコマンドで生成することができます。

```bash
od -tx1 -v -N16 /dev/random | colrm 1 8 | tr -d ' '
```

```bash
pac_opaque_encr_key=000102030405060708090a0b0c0d0e0f
```

EAP-FAST 認証機構(A-ID)

A-ID は、 PAC を発行する機関の ID を示します。 
A-ID はすべての発行元サーバーにわたって一意である必要があります。
理論的には、これは可変長フィールドですが、 
A-ID の長さが 16 オクテットであることを要求する既存の実装のため、
展開されたピア実装との相互運用性を保つために
フィールドに 16 オクテットの長さを使用することを強くお勧めします。
このフィールドは 16 進形式で設定されています。

```bash
eap_fast_a_id=101112131415161718191a1b1c1d1e1f
```

EAP-FAST 機関識別子情報(A-ID-Info)

これは A-ID のわかりやすい名前です。
たとえば、人間が読める形式の企業名とサーバー名を指定します。
このフィールドは UTF-8 としてエンコードされています。

```bash
eap_fast_a_id_info=test server
```

さまざまな EAP-FAST プロビジョニングモードを有効または無効にします。
 
- 0 = プロビジョニングは無効
- 1 = 匿名プロビジョニングのみ許可
- 2 = 認証されたプロビジョニングのみ許可
- 3 = 両方のプロビジョニングモードが許可されます(既定値)

```bash
eap_fast_prov=3
```

秒単位の EAP-FAST PAC キーの有効期間(厳しい制限)

```bash
pac_key_lifetime=604800
```

秒単位の EAP-FAST PAC キーのリフレッシュ時間(厳しい制限の残り時間に対する緩やかな制限)。
この秒数(またはそれ以下)の有効期間が残っていると、サーバは新しい PAC キーを生成します。

```bash
pac_key_refresh_time=86400
```

EAP-SIM および EAP-AKA は、 AT_RESULT_IND を使用して成功/失敗の表示を保護します(既定値: 0 = 無効)。

```bash
eap_sim_aka_result_ind=1
```

Trusted Network Connect(TNC)

有効にした場合、ピアが接続を許可される前に TNC 検証が必要になります。

**注意**
これは EAP-TTLS および EAP-FAST でのみ使用されます。
他の EAP 方式が有効になっている場合、ピアは TNC なしで接続を許可されます。

```bash
tnc=1
```

EAP Re-authentication Protocol(ERP) - RFC 6696

EAP サーバーで ERP を有効にするかどうかを指定します。

```bash
eap_server_erp=1
```

# IEEE 802.11f - Inter-Access Point Protocol(IAPP)

IAPP ブロードキャストパケットに使用されるインターフェイスを指定します。

```bash
iapp_interface=eth0
```

# RADIUS クライアントの設定

外部認証サーバを使用する IEEE 802.1X、 
MAC アドレス用の外部 ACL を使用する IEEE 802.11 認証、
およびアカウンティング

アクセスポイント自身の IP アドレス(NAS-IP-Address として使用される)を指定します。

```bash
own_ip_addr=127.0.0.1
```

RADIUS メッセージ向け NAS 識別文字列。
本設定値は RADIUS サーバの範囲内で NAS 毎に一意であるべきです。 
hostapd は BSS ごとに別々の RADIUS クライアントを使用するため、
一意の nas_identifier 値を BSS ごとに別々に設定する必要があります。
これは、 RADIUS アカウンティングが使用されている場合に特に重要です
(Accounting-On/Off メッセージは、進行中のすべてのセッションを消去するものと解釈され、
同じ NAS-Identifier 値が使用されるとすべての BSS に適用すると解釈される場合があります)
ここでは、 BSS の一意の識別子(例: BSSID)を接頭辞として付けた完全修飾ドメイン名を使用できます。

IEEE 802.11r を使用するときは、 nas_identifier を設定し、1〜48オクテットの長さにする必要があります。

RADIUS プロトコルに準拠するように own_ip_addr または nas_identifier を設定することは必須です。
RADIUS アカウンティングを使用するときは、 nas_identifier を各 BSS に固有の値に設定することを強くお勧めします。

```bash
nas_identifier=ap.example.com
```

RADIUS クライアントへアクセスポイントのローカル IP アドレスを強制します。
通常、ローカル IP アドレスは設定された IP アドレスに基づいて自動的に決定されます。
このフィールドは、たとえばデバイスに複数の IP アドレスがある場合など、
特定のアドレスを強制的に使用するために使用できます。

```bash
radius_client_addr=127.0.0.1
```

RADIUS 認証サーバ

```bash
auth_server_addr=127.0.0.1
auth_server_port=1812
auth_server_shared_secret=secret
```

RADIUS アカウンティングサーバー

```bash
acct_server_addr=127.0.0.1
acct_server_port=1813
acct_server_shared_secret=secret
```

セカンダリ RADIUS サーバー;
プライマリパケットが RADIUS パケットに応答しない場合に使用されます。
これらはオプションであり、複数のセカンダリサーバが列記されることがあります。

```bash
auth_server_addr=127.0.0.2
auth_server_port=1812
auth_server_shared_secret=secret2

acct_server_addr=127.0.0.2
acct_server_port=1813
acct_server_shared_secret=secret2
```

プライマリ RADIUS サーバに戻るまでの再試行間隔(秒単位)。
現在のサーバーが要求に応答していない場合、 
RADIUS クライアントコードは自動的に次のサーバーを使用しようとします。
この間隔が設定されている場合、現在使用されているセカンダリサーバがまだ機能していても、
設定された時間の経過後にプライマリサーバへの要求を再試行します。

```bash
radius_retry_primary_interval=600
```

暫定アカウンティングの更新間隔

これが設定され(0より大きい)、 acct_server が設定されている場合、 
hostapd は N 秒ごとに暫定アカウンティングの更新を送信します。

**注意** 
設定されている場合、これは Access-Accept メッセージ内の
有効な Acct-Interim-Interval 属性を上書きします。
したがって、 RADIUS サーバーを使用して暫定的な間隔を制御する場合は、
この値を hostapd.conf で設定しないでください。

この値は 600(10 分)を下回ってはならず、
かつ 60(1 分)以上でなければなりません。

```bash
radius_acct_interim_interval=600
```

Chargeable-User-Identity (RFC 4372) 要求

このパラメータは、 Chargeable-User-Identity 属性を 
Access-Request パケットに含めることによって、 
RADIUS サーバーから CUI を要求するように hostapd を設定するために使用できます。

```bash
radius_request_cui=1
```

動的 VLAN モード;

RADIUS 認証サーバがどの VLAN をステーションに使用するかを決定できるようにします。
この情報は、 RFC 3580 および RFC 2868 に基づいて、次の RADIUS 属性から解析されます: 

- Tunnel-Type (value 13 = VLAN)
- Tunnel-Medium-Type (value 6 = IEEE 802)
- Tunnel-Private-Group-ID (文字列としての VLANID 値)

オプションで、ローカル MAC ACL リスト(accept_mac_file)を使用して、
静的クライアントの MAC アドレスを VLAN ID マッピングに設定できます。

- 0 = 無効（デフォルト）
- 1 = オプション。 RADIUS サーバに VLAN ID が含まれていない場合は既定のインターフェイスを使用する。
- 2 = 必須。 RADIUS サーバに VLAN ID が含まれていない場合、認証を拒否する。

```bash
dynamic_vlan=0
```

ステーションごとの AP_VLAN インターフェイスモード

有効にした場合、各ステーションには独自の AP_VLAN インターフェイスが割り当てられます。
これは、ステーションごとのグループ鍵交換を意味し、 
STA 間(AP を通過するとき)のトラフィックフィルタリングを可能にします。
STA がどの VLAN にも割り当てられていない場合は、
その AP_VLAN インターフェイスが ``bridge`` 設定オプションで指定されたブリッジに追加されます(bridge を参照)。
それ以外の場合は、 VLAN ごとのブリッジに追加されます。

- 0 = 無効(既定値)
- 1 = 有効

```bash
per_sta_vif=0
```

動的 VLAN モードの VLAN インターフェイスリストは、
別のテキストファイルから読み込まれます。
このリストは、 VLAN ID を RADIUS サーバから
ネットワークインターフェイスにマッピングするために使用されます。
各ステーションは、複数の BSSID または SSID と同じ方法で
1 つのインターフェースにバインドされています。
このテキストファイルの各行は新しいインターフェイスを定義しており、
その行には空白(スペースまたはタブ)で区切られた VLAN ID と
インターフェイス名を含める必要があります。
このファイルでエントリが提供されていない場合、
ステーションは ``<bss-iface>.<vlan-id>`` インタフェースに
静的にマッピングされます。

```bash
vlan_file=/etc/hostapd.vlan
```

ステーションがどの VLAN に属しているかを 
RADIUS サーバが判断するときに使用する 
802.1q タグ付きパケットが表示されるインターフェイスです。 
hostapd は各 VLAN 用のブリッジを作成します。
次に hostapd は、(vlan_tagged_interface で示されるインタフェースに関連付けられた)
VLAN インタフェースと適切な無線インタフェースをブリッジに追加します。

```bash
vlan_tagged_interface=eth0
```

無線 LAN とタグ付きインターフェースを追加するブリッジ(接頭辞)。
これにより、 VLAN ID が追加されます。
タグ付きインタフェースが指定されていない場合は既定値の ``brvlan％d`` 、
タグ付きインタフェースが指定されている場合は ``br%s.%d`` になります。

- %s = タグ付きインタフェース
- %d = VLAN ID

```bash
vlan_bridge=brvlan
```

hostapd が vlan_tagged_interfaces 上に VLAN インタフェースを作成するとき、
それに名前を付ける方法を知る必要があります。

- 0 = ``vlan <XXX>`` 、例: ``vlan1``
- 1 = ``<vlan_tagged_interface>.<XXX>`` 、例: ``eth0.1``

```bash
vlan_naming=0
```

以下の設定パラメータで属性の内容を指定することによって、
任意の RADIUS 属性を Access-Request および 
Accounting-Request パケットに追加できます。
複数の属性を追加するために、これらを複数指定することができます。
これらのパラメータは、 hostapd によって自動的に追加された一部の属性を
上書きする用途にも使用できます。

フォーマット: ``<attr_id> [:<syntax:value>]``

- attr_id: RADIUS 属性の種類(26 = Vendor-Specific など)
- syntax: 
  - s = 文字列(UTF-8)
  - d = 整数
  - x = オクテット文字列
- value:syntax で示される形式の属性値。
  syntax と value の部分が省略されている場合、
  null値(単一の 0x00 オクテット)が使用されます。

追加の Access-Request 属性

```bash
radius_auth_req_attr=<attr_id>[:<syntax:value>]
```

例:

```bash
# Operator-Name = "Operator"
radius_auth_req_attr=126:s:Operator

# Service-Type = Framed(2)
radius_auth_req_attr=6:d:2

# Connect-Info = "testing"(これは自動的に生成された値を上書きします)
radius_auth_req_attr=77:s:testing

# 16 進ダンプとして設定された同一の Connect-Info 値
radius_auth_req_attr=77:x:74657374696e67
```

追加の Accounting-Request 属性

```bash
radius_acct_req_attr=<attr_id>[:<syntax:value>]
```

例:

```bash
# Operator-Name = "Operator"
radius_acct_req_attr=126:s:Operator
```

動的認証拡張（RFC 5176）

この仕組みは、 RADIUS サーバー(または必要なセッション情報を持つ他の接続解除されたクライアント)からのコマンドに基づいて
ユーザーセッションを動的に変更できるようにするために使用できます。
例えば、接続解除メッセージを使用して接続している端末に接続解除を要求することができます。

これは既定で無効になっています。
有効にするには、 radius_das_port をゼロ以外の UDP ポート番号に設定します。

```bash
radius_das_port=3799
```

DAS クライアント(接続解除/CoA 要求を送信できるホスト)および共有される秘密情報

```bash
radius_das_client=192.168.1.123 shared secret here
```

秒単位の DAS Event-Timestamp タイムウィンドウ

```bash
radius_das_time_window=300
```

DAS は Event-Timestamp を要求します。

```bash
radius_das_require_event_timestamp=1
```

DAS は Message-Authenticator を要求します。

```bash
radius_das_require_message_authenticator=1
```

# RADIUS 認証サーバーの設定

hostapd は他のホストの RADIUS 認証サーバーとして使用できます。
統合 EAP サーバーも有効になっている必要があります。
認証サービスは同じ設定を共有しています。

RADIUS サーバー用の RADIUS クライアントの設定ファイル名。
これがコメントアウトされている場合、 RADIUS サーバーは無効になっています。

```bash
radius_server_clients=/etc/hostapd.radius_clients
```

RADIUS 認証サーバーの UDP ポート番号

```bash
radius_server_auth_port=1812
```

RADIUS アカウンティングサーバーの UDP ポート番号

これをコメントアウトするか 0 に設定すると、 
RADIUS 認証を有効にしながら 
RADIUS アカウンティングを無効にすることができます。

```bash
radius_server_acct_port=1813
```

RADIUS サーバーで IPv6 を使用します(IPv4 も IPv6 API を使用してサポートされます)

```bash
radius_server_ipv6=1
```

# WPA/IEEE 802.11i の設定

WPA を有効にします。
この変数を設定すると、 WPA(他の設定に基づいて WPA-PSK または WPA-RADIUS/EAP のいずれか)を要求するように AP が設定されます。
WPA-PSK の場合は、 wpa_psk または wpa_passphrase のいずれかを設定し、 wpa_key_mgmt に WPA-PSK を含める必要があります。
wpa_psk/wpa_passphrase の代わりに、 wpa_psk_radius で充分な場合があります。
WPA-RADIUS/EAP の場合、ieee8021x を設定する必要があります
(ただし、動的 WEPキーは使用しません)。
RADIUS 認証サーバーを構成し、 WPA-EAP を wpa_key_mgmt に含める必要があります。
このフィールドは、 WPA(IEEE 802.11i/D3.0)と
WPA2(完全な IEEE 802.11i/RSN)を有効にするために使用できるビットフィールドです。

- bit 0 = WPA
- bit 1 = IEEE 802.11i/RSN(WPA2)(dot11RSNAEnabled)

```bash
wpa=1
```

WPA-PSK 用の WPA 事前共有キー。
これは、 16 進数形式(64 16 進数)の 256 ビットシークレット、 
wpa_psk 、または ASCII パスフレーズ(8..63文字)として入力でき、 
PSK に変換されます。
この変換は SSID を使用します。
そのため、 ASCII パスフレーズが使用され SSID が変更されると PSK が変わります。

- wpa_psk(dot11RSNAConfigPSKValue)
- wpa_passphrase(dot11RSNAConfigPSKPassPhrase)

```bash
wpa_psk=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
wpa_passphrase=secret passphrase
```

オプションで、 WPA PSK を別のテキストファイル(PSK 、 MAC アドレスのペアのリストを含む)から読み取ることができ、これにより複数の PSK を構成できます。
絶対パス名を使用して、ファイルが SIGHUP 設定のリロード時に確実に読み取れるようにしてください。

```bash
wpa_psk_file=/etc/hostapd.wpa_psk
```

オプションで、 WPA パスフレーズを RADIUS 認証サーバーから受信できます。

これは macaddr_acl が 2(RADIUS)に設定する必要があります。

- 0 = 無効(既定値)
- 1 = オプション。 RADIUS サーバに Tunnel-Password が含まれていない場合は、
  デフォルトのパスフレーズ/psk を使用します。
* 2 = 必須です。 RADIUS サーバに Tunnel-Password が含まれていない場合、認証を拒否します。

```bash
wpa_psk_radius=0
```

受け入れる鍵の管理アルゴリズム(WPA-PSK 、 WPA-EAP 、またはその両方)の組合せ。
エントリはスペースで区切ります。 
WPA-PSK-SHA256 および WPA-EAP-SHA256 を追加して、 
SHA256 ベースのより強力なアルゴリズムを有効にすることができます。
(dot11RSNAConfigAuthenticationSuitesTable)

```bash
wpa_key_mgmt=WPA-PSK WPA-EAP
```

ペアワイズ鍵に使用できる暗号スイート(暗号化アルゴリズム)の組合せ(ユニキャストパケット)。
これはスペース区切りのアルゴリズムのリストです。

- CCMP = CBC-MAC とのカウンターモードの AES [RFC 3610、IEEE 802.11i/D7.0]
- TKIP = Temporal Key Integrity Protocol [IEEE 802.11i/D7.0]

この設定に基づいて、グループ暗号スイート(ブロードキャストおよびマルチキャストフレームの暗号化アルゴリズム)が自動的に選択されます。
CCMP のみがペアワイズ暗号として許可されている場合、グループ暗号も CCMP になります。
それ以外の場合は、 TKIP がグループ暗号として使用されます。
(dot11RSNAConfigPairwiseCiphersTable)

WPA(v1)用ペアワイズ暗号(既定値: TKIP)

```bash
wpa_pairwise=TKIP CCMP
```

RSN/WPA2 のペアワイズ暗号(既定値: wpa_pairwise 値を使用)

```bash
rsn_pairwise=CCMP
```

GTK(ブロードキャスト/マルチキャスト暗号化キー)のキー再生成の間隔(秒単位)(dot11RSNAConfigGroupRekeyTime)

```bash
wpa_group_rekey=600
```

現在の GTK を所有している STA が BSS を離れるときに GTK を再入力します。
(dot11RSNAConfigGroupRekeyStrict)

```bash
wpa_strict_rekey=1
```

GMK(GTK の生成に内部的に使用されるマスターキー)のキー再生成の時間間隔(秒単位)

```bash
wpa_gmk_rekey=86400
```

PTK の最大存続期間(秒単位)。
これは、 TKIP の欠陥を対象とするいくつかの攻撃を軽減するために 
PTK のキーの再生成を強制するために使用できます。

```bash
wpa_ptk_rekey=600
```

キー再インストール攻撃に対する回避策

このパラメータは、鍵をインストールするために使用される EAPOL-Key フレーム
(EAPOL-Key メッセージ 3/4 およびグループメッセージ 1/2)
の再送信を無効にするために使用できます。 
これは ``wpa_group_update_count=1`` と 
``wpa_pairwise_update_count=1`` の設定に似ていますが、
メッセージ 1/4 には影響がなく、 EOPOL-Key メッセージへの応答において、
長時間に渡って積極的な省電力を使用する接続端末の
問題発生を避けるための応答における拡張されたタイムアウトです。

このオプションを使用すると、何らかの理由でステーションデバイスを更新できない場合に、ステーション(サプリカント)側での再インストール攻撃を回避できます。
再送信を削除することで、攻撃者は遅延フレーム送信でキーを再インストールすることはできません。
これはステーション側の脆弱性 CVE-2017-13077、CVE-2017-13078、CVE-2017-13079、CVE-2017-13080、および CVE-2017-13081 に関連しています。

この回避策により、相互運用性の問題が発生し、特に鍵交換を実行する試行回数が大幅に減少するため、トラフィック負荷が高い環境では鍵交換の堅牢性が低下する可能性があります。
そのため、この回避策は(ビルド設定で上書きされない限り)デフォルトで無効になっています。
これを有効にするには、パラメータを 1 に設定します。

```bash
wpa_disable_eapol_key_retries=1
```

IEEE 802.11i/RSN/WPA2 事前認証を有効にします。
これは、実際に新しい AP に接続する前に、
完全な RSN 認証およびキーハンドシェイクの一部である 
IEEE 802.1X/EAP の事前認証によるローミングを高速化するために使用されます。
(dot11RSNAPreauthenticationEnabled)

```bash
rsn_preauth=1
```

事前認証フレームが受け入れるインターフェイスのスペース区切りのリスト
(例:  ``eth0`` または ``eth0 wlan0wds0``)
このリストには、他の AP への接続に使用されるすべてのインターフェイスが含まれます。
事前認証は現在接続されている AP 以外の AP でのみ使用されるため、
接続されているステーション(たとえば、 wlan0)に対する
通常の無線データインターフェイスは追加しないでください。

```bash
rsn_preauth_interfaces=eth0
```

peerkey: 直接リンクのための PeerKey 交換(IEEE 802.11e)を許可するかどうかを指定します。
これは RSN/WPA2 でのみ使用されます。

- 0 = 無効(既定値)
- 1 = 有効

```bash
peerkey=1
```

ieee80211w: 管理フレーム保護(MFP)が有効かどうかを指定します。

- 0 = 無効(既定値)
- 1 = オプション
- 2 = 必須

```bash
ieee80211w=0
```

グループ管理暗号スイート

- 既定値: AES-128-CMAC(BIP)
- 他のオプション(ドライバのサポートに依存します):
  - BIP-GMAC-128
  - BIP-GMAC-256
  - BIP-CMAC-256
  
**注意** 
BSS に接続しているすべてのステーションにおいて、
選択した暗号をサポートする必要があります。
デフォルトの AES-128-CMAC が、
展開されたデバイスで一般的に利用可能な唯一のオプションです。

```bash
group_mgmt_cipher=AES-128-CMAC
```

Association SA Query のタイムアウト最大時間(TU = 1.024ミリ秒; MFP の場合)
(SA Query 応答を待つ最大時間)
dot11AssociationSAQueryMaximumTimeout, 1...4294967295

```bash
assoc_sa_query_max_timeout=1000
```

Association SA Query の再試行タイムアウト(TU = 1.024 ms; MFP の場合)
(後続の 2 つの SA Query 要求間の時間)
dot11AssociationSAQueryRetryTimeout, 1...4294967295

```bash
assoc_sa_query_retry_timeout=201
```

disable_pmksa_caching: PMKSA キャッシュを無効にする。
 
このパラメータは、 EAP 認証を通じて作成された 
PMKSA のキャッシュを無効にするために使用できます。 
RSN 事前認証は、 PMKSA キャッシングが有効になっている場合(``rsn_preauth = 1``)、
まだ使用されている可能性があります。

- 0 = PMKSAキャッシングを有効にする(既定値)
- 1 = PMKSAキャッシングは無効

```bash
disable_pmksa_caching=0
```

okc: Opportunistic Key Caching(aka Proactive Key Caching) 

PMK キャッシュが構成されたインターフェースと BSS との間で
日和見的に共有されることを可能にします
(例: 単一の hostapd プロセス内のすべての構成)。

- 0 =無効(既定値)
- 1 =有効

```bash
okc=1
```

目詰まり防止機構用の SAE 閾値(dot11RSNASAEAntiCloggingThreshold)

このパラメーターは、目詰まり防止機構が使用されるまでに開くことができる、
同時進行中の SAE インスタンスの数を定義します。

```bash
sae_anti_clogging_threshold=5
```

有効な SAE 有限巡回グループ

SAE の実装は、グループ 19(256 ビットのプライムオーダーフィールドで定義された ECC グループ)をサポートするために必要です。
実装でサポートされているすべてのグループはデフォルトで有効になっています。
この構成パラメータを使用して、許可されているグループの制限されたセットを指定できます。
グループ値は [IANA レジストリ](http://www.iana.org/assignments/ipsec-registry/ipsec-registry.xml#ipsec-registry-9) に記載されています。

```bash
sae_groups=19 20 21 25 26
```

# IEEE 802.11r 設定

モビリティドメイン識別子(dot11FTMobilityDomainID, MDID)

MDID は、高速 BSS 遷移を使用できる STA 間で(ESS 内、すなわち同じ SSID を共有する) 
AP のグループを示す為に使用されます。16 進数文字列の 2 オクテットの識別子です。

```bash
mobility_domain=a1b2
```

PMK-R0 キーホルダー ID(dot11FTR0KeyHolderID)

1〜48 オクテットの識別子。
これは nas_identifier で設定されています
(上記の RADIUS クライアントのセクションを参照)。

PMK-RO のデフォルトの有効期間(分単位); 範囲1..65535
(dot11FTR0KeyLifetime)

```bash
r0_key_lifetime=10000
```

PMK-R1 キーホルダー識別子(dot11FTR1KeyHolderID)

16進数文字列の 6 オクテットの ID。
既定値は BSSID です。

```bash
r1_key_holder=000102030405
```

時間単位での再接続の期限(TU/1.024 ミリ秒; 範囲: 1000..65535)
(dot11FTReassociationDeadline)

```bash
reassociation_deadline=1000
```

同じモビリティドメイン内の R0KH のリスト
 
フォーマット: ``<MAC address> <NAS Identifier> <128-bit key as hex string>``
 
このリストは、STA が初回のモビリティドメイン接続中に使用した R0KH から
PMK-R1 鍵を要求する時に、宛先 MAC アドレスへ 
R0KH-ID(NAS 識別子)を紐づける為に使用されます。

```bash
r0kh=02:01:02:03:04:05 r0kh-1.example.com 000102030405060708090a0b0c0d0e0f
r0kh=02:01:02:03:04:06 r0kh-2.example.com 00112233445566778899aabbccddeeff
```

R0KH 毎に一行ずつ記述してください。

同じモビリティドメイン内の R1KH のリスト

フォーマット: ``<MAC address> <R1KH-ID> <128-bit key as hex string>``

このリストは、 R0KH から PMK-R1 キーを送信するときに、
R1KH-ID を宛先 MAC アドレスにマッピングするために使用されます。
これは PMK-R1 キーを要求できる MD の許可された R1KH のリストでもあります。

```bash
r1kh=02:01:02:03:04:05 02:11:22:33:44:55 000102030405060708090a0b0c0d0e0f
r1kh=02:01:02:03:04:06 02:11:22:33:44:66 00112233445566778899aabbccddeeff
```

R1KH 毎に一行ずつ記述してください。

R0KH において PMK-R1 プッシュが有効かどうかを指定します。
 
- 0 = PMK-R1 をすべての設定済み R1KH にプッシュしません(既定値)
- 1 = 新しい PMK-R0 が生成されるたびに、すべての設定済み R1KH に PMK-R1 をプッシュします。

```bash
pmk_r1_push=1
```

FT-over-DS を有効にするかどうかを指定します。
 
- 0 = FT-over-DS は無効です
- 1 = FT-over-DS は有効です(既定値)

```bash
ft_over_ds=1
```

# 近隣テーブル

AP テーブルに保持されるエントリの最大数
(近隣テーブル用、または重複する古い BSS 状態の検出用)。
リストがこの制限を超えて大きくなるような新しいエントリを追加すると、
最も古いエントリが削除されます。

**注意**  
IEEE 802.11g の WFA 認証では OLBC が有効になっている必要があります。
IEEE 802.11g を使用するときはこのフィールドを 0 に設定しないでください。

既定値: 255

```bash
ap_table_max_size=255
```

AP テーブルからエントリを削除するまでに受信したフレームがない状態の秒数。
パッシブスキャンは通常頻繁には実行されないため、これを非常に小さい値に設定しないでください。
すべてのスキャンサイクルが隣接 AP からビーコンフレームを受信するという保証はありません。

既定値: 60

```bash
ap_table_expiration_time=3600
```

運用チャネル上で追跡するステーション数の最大値

これは、例えば、どの共存 BSS を使用すべきかについてのガイダンスを提供するために、
デュアルバンド対応ステーションが接続される前にそれらを検出するために使用されます。

既定値: 0(無効)

```bash
track_sta_max_num=100
```

ステーション追跡エントリの最大経過時間(秒単位)

既定値: 180

```bash
track_sta_max_age=180
```

他の無線で検出されたステーションからのグループ宛ての探査要求には返信しないでください。
既定値: 無効

これは、同じ hostapd プロセスによって制御されている別のインターフェース上の enabled track_sta_max_num 設定と一緒に使用して、
探査要求フレーム処理が、別の帯域で動作可能であることが検出されたステーションからの
グループアドレス指定探査要求フレームへの応答を制限します。

例えば、 AP が 2.4 GHz と 5 GHz の両方の BSS を同時に動作させるときに、 
2.4 GHz の BSS を選択する可能性を減らすことを試みます。

**注意** 
これを有効にすると接続の問題が発生し、 
AP を検出するための待機時間が増加する可能性があります。

```bash
no_probe_resp_if_seen_on=wlan1
```

別の無線で検出されたステーションからの認証を拒否します。

既定値: 無効

これは、同じ hostapd プロセスによって制御されている
別のインターフェース上の enabled track_sta_max_num 設定とともに使用して、
別の帯域で動作可能であると検出されたステーションからの認証試行を拒否することができます。
例えば、 AP が 2.4 GHz と 5 GHz の両方の BSS を同時に動作させるときに、 
2.4 GHz の BSS を選択する可能性を減らすことを試みます。

**注意** 
これを有効にすると接続上の問題を引き起こし、 
AP と接続するための待ち時間を増加させる可能性があります。

```bash
no_auth_if_seen_on=wlan1
```

# Wi-Fi Protected Setup(WPS)

WPS の状態
 
- 0 = WPS は無効(既定値)
- 1 = WPS は有効。未設定
- 2 = WPS は有効。設定済み

```bash
wps_state=2
```

このインターフェースを他の WPS インターフェースから独立して管理するかどうかを指定します。
 
デフォルトでは、単一の hostapd プロセスが WPS 操作をすべての設定済みインターフェースに適用します。
このパラメータは、インタフェースのサブセットに対してその動作を無効にするために使用できます。
インターフェイスに対してこれが 0 以外に設定されている場合、
そのインターフェイスで発行された WPS コマンドは他のインターフェイスには適用されず、
他のインターフェイスで実行された WPS 操作はこのインターフェイスに影響しません。

```bash
wps_independent=0
```

AP は、新しい WPS レジストラーが受け入れられないロック状態に設定できますが、
以前に承認されたレジストラー(内部のものも含む)は引き続き新しい登録者を追加できます。

```bash
ap_setup_locked=1
```

Universally Unique IDentifier (UUID; see RFC 4122) of the device
 
この値は、内部 WPS レジストラーの UUID として使用されます。 
AP が UPnP も使用している場合は、この値をデバイスの UPnP UUID に設定する必要があります。
設定されていない場合、 UUID はローカル MAC アドレスに基づいて生成されます。

```bash
uuid=12345678-9abc-def0-1234-56789abcdef0
```

**注意** 
wpa_psk_file が設定されている場合、 WPS は wpa_psk_file に追加されるデバイスごとのランダム PSK を生成するために使用されます。 
wpa_psk_file が設定されていない場合は、
デフォルトの PSK(wpa_psk/wpa_passphrase)が登録者に配信されます。
より安全なオプションとして、デバイスごとの PSK を使用することをお勧めします
(つまり、 WPS を WPA-PSK と共に使用する場合は必ず wpa_psk_file を設定してください)。

登録者が PIN 方式でネットワークへのアクセスを要求した場合は、
登録者用に登録者 PIN を入力する必要があります。 
PIN 要求通知は hostapd ctrl_iface モニターに送信されます。
登録者 PIN は、例えば保留中の PIN 要求で AP 管理 UI を埋めるために使用するテキストファイルに書き込むことができます。
次の変数が設定されていると、 PIN 要求は設定されたファイルに書き込まれます。

```bash
wps_pin_requests=/var/run/hostapd_wps_pin_requests
```

デバイス名

デバイスのユーザーフレンドリーな説明。 
UTF-8 エンコード。最大 32 オクテット。

```bash
device_name=Wireless AP
```

メーカー

デバイスの製造元(最大 64 文字の ASCII 文字)

```bash
manufacturer=Company
```

モデル名

デバイスのモデル(最大 32 文字の ASCII 文字)

```bash
model_name=WAP
```

モデル番号

追加の装置記述(最大 32 文字の ASCII 文字)

```bash
model_number=123
```

シリアルナンバー

デバイスのシリアル番号(最大 32 文字)

```bash
serial_number=12345
```

Primary Device Type

フォーマット: ``<categ>-<OUI>-<subcateg>``

- categ = 整数値としてのカテゴリ
- OUI = OUI で、 4 オクテットの 16 進エンコード値としてのオクテットタイプ。デフォルト WPS OUI の場合は ``0050F204``
- subcateg = 整数値としての OUI 固有のサブカテゴリ

例:

- 1-0050F204-1(Computer/PC)
- 1-0050F204-2(Computer/Server)
- 5-0050F204-1(Storage/NAS)
- 6-0050F204-1(Network Infrastructure/AP)

```bash
device_type=6-0050F204-1
```

OS Version

4 オクテットのオペレーティングシステムのバージョン番号(16 進文字列)

```bash
os_version=01020300
```

設定メソッド
 
サポートされている設定メソッドの一覧

有効なメソッド:

- usba
- ethernet
- label
- display
- ext_nfc_token
- int_nfc_token
- nfc_interface
- push_button
- keypad
- virtual_display
- physical_display
- virtual_push_button
- physical_push_button

```bash
config_methods=label virtual_display virtual_push_button keypad
```

Windows 7 における PBC のための WPS 機能探索回避策
 
Windows 7 は、レジストラーとして機能し、 AP からの M1 を使用することによって、 
AP の WPS 機能を判断する誤った方法を使用します。
そのメッセージの config methods 属性は、 Enrollee ロールの AP でサポートされている設定方法、つまり外部 Registrar を追加することだけを示すものです。
その場合、 PBC は使用されず、 PushButton の config メソッドはデフォルトで M1 から削除されます。
``pbc_in_m1 = 1`` が設定ファイルに含まれている場合、 
Windows 7 が PIN の代わりに PBC を使用できるように(たとえば、 AP のラベルから)、 
PushButton config メソッドが M1(config_methods パラメータに含まれている場合)に残されます。

```bash
pbc_in_m1=1
```

初期設定およびレジストラ追加用の静的アクセスポイント PIN
 
設定されていない場合、 hostapd は外部 WPS レジストラーによるアクセスポイントの制御を許可しません。 
AP PIN は、 hostapd_cli wps_ap_pin コマンドを使用して実行時に設定することもできます。
ここで静的 AP PIN を設定するよりも、一時的(ユーザーの操作で有効にする)で、
ランダム AP PIN を使用する方がはるかに安全です。
そのため、 AP デバイスにランダム PIN を表示する手段がある場合は、 
ap_pin パラメータを使用することはお勧めできません。

```bash
ap_pin=12345670
```

自動 WPS 認証情報の作成をスキップします。

これを使用して、自動的に生成された資格属性を事前設定された資格に置き換えることができます。

```bash
skip_cred_build=1
```

追加の資格属性
 
このオプションは、レジストラとして機能するときに事前設定された資格属性を M8 メッセージに追加するために使用できます。 
``skip_cred_build = 1`` の場合、このデータは、それ以外の場合にネットワーク構成に基づいて自動的に生成されたはずの資格属性も上書きすることができます。
この設定オプションは、 WPS 認証情報属性をバイナリデータとして多く含む外部ファイルを指定します。

```bash
extra_cred=hostapd.cred
```

資格処理
 
- 0 = 内部で受け取った認証情報を処理します(既定値)
- 1 = 受信した資格情報を処理しません。 ctrl_iface を介して外部プログラムに渡してください。
- 2 = 内部で受け取った認証情報を処理し、それらを ctrl_iface を介して外部プログラムに渡します。

**注意** 
``wps_cred_processing = 1`` では、 skip_cred_build を 1 に設定し、 
extra_cred を使用して登録者に資格情報データを提供する必要があります。

``wps_cred_processing = 1`` は、資格情報の処理と AP PIN の検証の失敗に基づいて 
AP セットアップをロック済みとマークするための hostapd.conf ファイルの自動更新を無効にします。
この場合、外部プログラムが設定を適切に更新する責任があります。

```bash
wps_cred_processing=0
```

M7 の AP 設定属性
 
デフォルトでは、 hostapd は現在の設定に基づいて M7 の AP 設定属性を生成します。
事前設定された属性をファイルに提供することでこれを上書きすることが可能です。
これは extra_cred ファイル形式に似ていますが、 AP 設定属性は資格属性にカプセル化されていません。

```bash
ap_settings=hostapd.ap_settings
```

WPS UPnP インターフェース

設定すると、外部レジストラのサポートが有効になります。

```bash
upnp_iface=br0
```

わかりやすい名前(UPnP に必要)

最終的に使用される簡単な説明。 64 文字未満にする必要があります。

```bash
friendly_name=WPS Access Point
```

製造元 URL(UPnP ではオプション)

```bash
manufacturer_url=http://www.example.com/
```

モデルの説明(UPnP に推奨)
 
エンドユーザー向けの長い説明。 128 文字未満にする必要があります。

```bash
model_description=Wireless Access Point
```

モデル URL(UPnP ではオプション)

```bash
model_url=http://www.example.com/model/
```

ユニバーサル製品コード(UPnP ではオプション)

消費者パッケージを識別する 12 桁のすべて数字のコード。

```bash
upc=123456789012
```

WPS RF Bands (a = 5G, b = 2.4G, g = 2.4G, ag = dual band, ad = 60 GHz)

hw_mode が設定されていない場合、この値は AP でサポートされている RF 帯域に従って設定する必要があります。
デュアルバンドデュアルコンカレントデバイスの場合は、両方の RF バンドを通知できるように ag に設定する必要があります。

```bash
wps_rf_bands=ag
```

WPS 用の NFC パスワードトークン
 
これらのパラメータは AP のための固定 NFC パスワードトークンを設定するのに使用することができます。
これは、例えば、 wpa_supplicant からの nfc_pw_token を用いて生成することができます。
これらのパラメータが使用されるとき、 AP は、一致する NFC パスワードトークンを含む
(例えば、 nfc_pw_token からの NDEF レコードに基づいて書き込まれた)
NFC タグと共に展開されると想定します。

- wps_nfc_dev_pw_id: デバイスパスワード ID(16..65535)
- wps_nfc_dh_pubkey: DH 公開鍵の 16 進ダンプ
- wps_nfc_dh_privkey: DH 秘密鍵の 16 進ダンプ
- wps_nfc_dev_pw: デバイスパスワードの 16 進ダンプ

# Wi-Fi Direct(P2P)

P2P デバイス管理を有効にします。

```bash
manage_p2p=1
```

相互接続を許可します。

```bash
allow_cross_connection=1
```

# TDLS(IEEE 802.11z-2010)

この BSS において TDLS の使用を禁止します。

```bash
tdls_prohibit=1
```

この BSS において TDLS チャネル切り替えの使用を禁止します。

```bash
tdls_prohibit_chan_switch=1
```

# IEEE 802.11v-2011

時間通知

- 0 = 無効(既定値)
- 2 = TSF タイマーが 0 になる UTC 時間

```bash
time_advertisement=2
```

IEEE Std 1003.1-2004 の 8.3 で指定されているローカルタイムゾーン: ``stdoffset[dst[offset][,start[/time],end[/time]]]``

```bash
time_zone=EST5
```

WNM-Sleep Mode(ステーション用の拡張スリープモード)

- 0 = 無効(既定値)
- 1 = 有効(ステーションに WNM スリープモードの使用を許可)

```bash
wnm_sleep_mode=1
```

BSS 移行管理
 
- 0 = 無効(既定値)
- 1 = 有効

```bash
bss_transition=1
```

Proxy ARP
 
- 0 = 無効(既定値)
- 1 = 有効

```bash
proxy_arp=1
```

IPv6 近隣通知のマルチキャストからユニキャストへの変換
 
これをプロキシ ARP とともに使用して、
接続された STA へリンク層ユニキャスト配信を使用して
マルチキャスト NA を転送することができます。

- 0 = 無効(既定値)
- 1 = 有効

```bash
na_mcast_to_ucast=0
```

# IEEE 802.11u-2011

インターワーキングサービスを有効にします。

```bash
interworking=1
```

アクセスネットワークの種類
 
- 0 = プライベートネットワーク
- 1 = ゲストアクセスがあるプライベートネットワーク
- 2 = 有料の公開ネットワーク
- 3 = 無料の公開ネットワーク
- 4 = パーソナルデバイスネットワーク
- 5 = 緊急サービス専用ネットワーク
- 14 = テストまたは実験用
- 15 = ワイルドカード

```bash
access_network_type=0
```

ネットワークがインターネットへの接続を提供するかどうかを指定します。
 
- 0 = 指定なし
- 1 = ネットワークはインターネットへの接続を提供します

```bash
internet=1
```

アクセスに必要な追加の手順
 
**注意** 
これはオープンネットワークでのみ使用されます。
すなわち、 RSN が使用される場合、 ASRA は 0 に設定されます。

```bash
asra=0
```

緊急サービスへ公開します。

```bash
esr=0
```

認証されていない緊急サービスにアクセス可能

```bash
uesa=0
```

会場情報(オプション)
 
利用可能な値は IEEE Std 802.11u-2011, 7.3.1.34 で定義されています。
 
値の例(グループ,タイプ):

- 0,0 = 指定なし
- 1,7 = コンベンションセンター
- 1,13 = コーヒーショップ
- 2,0 = 不特定事業
- 7,1 = 私的住居

```bash
venue_group=7
venue_type=1
```

同種 ESS 識別子(オプション; dot11HESSID)
 
設定されている場合、これは同種 ESS 内の BSSID の 1 つを識別するものとし、
同種 ESS 内のすべての BSS で同じ値に設定するものとします。

```bash
hessid=02:03:04:05:06:07
```

Roaming Consortium List
 
各行が新しい OI をリストに追加することで、任意の数のローミングコンソーシアム OI を設定できます。
最初の 3 つのエントリは、ビーコンフレームと探査応答フレームを介して利用できます。
追加のエントリーは、 ANQP 照会を介してのみ使用可能になります。
各 OI は 3〜15 オクテットで、 16 進文字列として構成されています。

```bash
roaming_consortium=021122
roaming_consortium=2233445566
```

会場名情報
 
このパラメータを使用して、会場名 ANQP 情報用に 1 つ以上の会場名を設定できます。
各エントリには、会場の名前の文字列からコロンで区切られた 2 文字または 3 文字の言語コード(ISO-639)があります。
venue_group と venue_type は、会場名情報を完全にするために設定する必要があります。

```bash
venue_name=eng:Example venue
venue_name=fin:Esimerkkipaikka
```

代替フォーマット: ``言語:値文字列``

(二重引用符で括った文字列, printf エスケープ文字列)

```bash
venue_name=P"eng:Example\nvenue"
```

ネットワーク認証の種類
 
このパラメータは、ネットワークで使用されているネットワーク認証の種類を示します。

フォーマット: ``<network auth type indicator (1-octet hex str) > [redirect URL]``

ネットワーク認証の種類を示す値:

- 00 = 利用規約への同意
- 01 = オンライン登録がサポートされています
- 02 = http/https リダイレクト
- 03 = DNS リダイレクト

```bash
network_auth_type=00
network_auth_type=02http://www.example.com/redirect/me/here/
```

使用可能な IP アドレスの種類
 
フォーマット: ``<1-octet encoded value as hex str>``

```bash
(ipv4_type & 0x3f) << 2 | (ipv6_type & 0x3)
```

ipv4_type:

- 0 = アドレスタイプは利用できません
- 1 = パブリック IPv4 アドレスが利用可能
- 2 = ポート制限付き IPv4 アドレスが利用可能
- 3 = 単一の NAT されたプライベート IPv4 アドレスが利用可能
- 4 = 二重 NAT されたプライベート IPv4 アドレスが利用可能
- 5 = ポート制限付き IPv4 アドレスおよび単一 NAT 済み IPv4 アドレスが利用可能
- 6 = ポート制限付き IPv4 アドレスおよび二重 NAT を使用した IPv4 アドレスが利用可能
- 7 = アドレスタイプの利用可否は不明です

ipv6_type:

- 0 = アドレスタイプは利用できません
- 1 = アドレスタイプが利用可能
- 2 = アドレスタイプの可用可否は不明です。

```bash
ipaddr_type_availability=14
```

ドメイン名

フォーマット: ``<variable-octet str>[,<variable-octet str>]``

```bash
domain_name=example.com,another.example.com,yet-another.example.com
```

3GPP 携帯電話ネットワーク情報
 
フォーマット: ``<MCC1,MNC1>[;<MCC2,MNC2>][;...]``

```bash
anqp_3gpp_cell_net=244,91;310,026;234,56
```

NAI レルム情報
 
1 つ以上のレルムを通知できます。
各 nai_realm 行は、セットに新しいレルムを追加します。
これらのパラメータは、インターワーキングネットワーク選択を使用して
資格情報に基づいてネットワークへの自動接続を可能にするステーションに情報を提供します。

フォーマット: ``<encoding>,<NAI Realm(s)>[,<EAP Method 1>][,<EAP Method 2>][,...]``

encoding:

- 0 = IETF RFC 4282 に従ってフォーマットされたレルム
- 1 = IETF RFC 4282 に従ってフォーマットされていない UTF-8 フォーマットの文字列

NAI Realm：セミコロン区切りの NAI Realm

EAP Method: ``<EAP Method>[:<[AuthParam1:Val1]>][<[AuthParam2:Val2]>][...]``

EAP メソッドの種類については [eap-numbers](http://www.iana.org/assignments/eap-numbers/eap-numbers.xhtml#eap-numbers-4) を参照。

AuthParam(IEEE Std 802.11-2012 の 表 8-188):

- ID 2 = 非 EAP 内部認証タイプ
  - 1 = PAP
  - 2 = CHAP
  - 3 = MSCHAP
  - 4 = MSCHAPV2
- ID 3 = 内部認証 EAP メソッドタイプ
- ID 5 = クレデンシャルタイプ
  - 1 = SIM
  - 2 = USIM
  - 3 = NFC Secure Element
  - 4 = Hardware Token
  - 5 = Softoken
  - 6 = Certificate
  - 7 = username/password
  - 9 = Anonymous
  - 10 = Vendor Specific

```bash
nai_realm=0,example.com;example.net

# EAP 方式 EAP-TLS 証明書と EAP-TTLS/MSCHAPv2 のユーザー名/パスワード
nai_realm=0,example.org,13[5:6],21[2:4][5:7]
```

任意の ANQP 要素構成
 
任意の値を持つ追加の ANQP 要素は、ペイロードの 16 進ダンプとして
生の形式でそれらの内容を指定することによって定義できます。
これらの値は、上記の上位層構成パラメータで指定されている可能性がある 
ANQP 要素の内容を上書きすることに注意してください。

フォーマット: ``anqp_elem=<InfoID>:<hexdump of payload>``

```bash
# 例: 不明なロケーションを持つ AP 地理空間ロケーション ANQP 要素
anqp_elem=265:0000

# 例: 不明な場所を持つ AP Civic Location ANQP 要素
anqp_elem=266:000000
```

GAS Address3 behavior
 
- 0 = GAS が要求する Address3 に基づいて
  デフォルトで有効になっている P2P 指定(Address3 = AP BSSID)
- 1 = GAS が要求する Address3 にかかわらず IEEE 802.11 規格に準拠する
- 2 = 非準拠の動作を強制する（すべての場合において Address3 = AP BSSID）

```bash
gas_address3=0
```

QoS マップセット設定

カンマ区切りの QoS マップセット(10進数)
(IEEE Std 802.11-2012, 8.4.2.97 を参照)

フォーマット: ``[<DSCP Exceptions[DSCP,UP]>,]<UP 0 range[low,high]>,...<UP 7 range[low,high]>``

DSCP 値(0..63 または 255)とユーザー優先順位(0..7)の対である
最大 21 個のオプションの DSCP 例外があります。
その後に、 0 から始まる各 UP について、 
DSCP Low Value と DSCP High Value のペア(0..63 または 255)を含む 
8 つの DSCP 範囲の説明が続きます。

既定値: 設定なし

```bash
qos_map_set=53,2,22,6,8,15,0,7,255,255,16,31,32,39,255,255,40,47,255,255
```

# Hotspot 2.0

Hotspot 2.0 サポートを有効にします。

```bash
hs20=1
```

ダウンストリームグループアドレス転送(DGAF)を無効にします。

これは、グループ宛てのフレームが許可されていないネットワークを構成するために使用できます。 
AP はグループアドレスフレームをステーションに転送せず、
接続されたステーションがそのようなフレームを BSS 内の
他のステーションに偽造するのを防ぐために、
各ステーションに対してランダム GTK が発行されます。

```bash
disable_dgaf=1
```

OSU サーバーのみの認証済み L2 暗号化ネットワーク

```bash
osen=1
```

ANQP Domain ID(0..65535)
 
ESS 内の同じ共通 ANQP 情報を共有する一連の AP の識別子。 

- 0 = ANQP 情報の中には、この AP に固有のものがあります(既定値)。

```bash
anqp_domain_id=1234
```

認証解除要求のタイムアウト
 
RADIUS サーバが、ステーションへ BSS/ESS への接続を許可しないことを示している場合、 
AP はステーションに通知ページ(メッセージに含まれる URL)のダウンロードを
しばらく許可することができます。
このパラメータは、タイムアウトを秒単位で設定します。

```bash
hs20_deauth_req_timeout=60
```

オペレーターフレンドリー名
 
このパラメータを使用して、 1 つ以上のオペレーターフレンドリーな名前を設定できます。
各エントリには、オペレーターフレンドリー名の文字列からコロンで区切られた 
2 文字または 3 文字の言語コード(ISO-639)があります。

```bash
hs20_oper_friendly_name=eng:Example operator
hs20_oper_friendly_name=fin:Esimerkkioperaattori
```

接続機能
 
これは、(例えば、ファイアウォールがプロトコル/ポートを許可またはブロックするために)
どのタイプの IP トラフィックをホットスポットを通して送信できるかを通知するために使用します。

フォーマット: ``<IP Protocol>:<Port Number>:<Status>``

IP Protocol:

- 1 = ICMP
- 6 = TCP
- 17 = UDP

Port Number: 0..65535

Status:

- 0 = Closed
- 1 = Open
- 2 = Unknown

各 hs20_conn_capab 行は、通知されたタプルのリストに追加されます。

```bash
hs20_conn_capab=1:0:2
hs20_conn_capab=6:22:1
hs20_conn_capab=17:5060:0
```

WAN Metrics
 
フォーマット: ``<WAN Info>:<DL Speed>:<UL Speed>:<DL Load>:<UL Load>:<LMD>``

WAN Info:

- B0-B1: Link Status
- B2: Symmetric Link
- B3: At Capabity(2 桁の 16 進数としてエンコード)

Link Status:

- 1 = Link up
- 2 = Link down
- 3 = Link in test state

Downlink Speed:

WAN バックホールリンクの現在のダウンリンク速度(kbps)の概算;

- 1..4294967295
- 0 = unknown

Uplink Speed:

WAN バックホールリンクの現在のアップリンク速度(kbps)の概算;

- 1..4294967295
- 0 = unknown

Downlink Load: ダウンリンク WAN 接続の現在の負荷(255 = 100% にスケーリング)

Uplink Load: アップリンク WAN 接続の現在の負荷(255 = 100% にスケーリング)

負荷測定期間: 1/10 秒単位でダウンリンク/アップリンク負荷を測定するための期間(1..65535)。
負荷を特定できない場合は 0。

```bash
hs20_wan_metrics=01:8000:1000:80:240:3000
```

動作クラス表示

この ESS の BSS が使用する動作クラスのリスト。 
IEEE Std 802.11-2012 Annex E の表 E-4 のグローバル動作クラスは、
これに使用できる値を定義します。

フォーマット: 動作クラスオクテットの 16 進ダンプ

```bash
# 例: 動作クラス 81(2.4 GHz チャネル 1〜13)および 115(5 GHz チャネル 36〜48)
hs20_operating_class=5173
```

OSU icons

フォーマット: ``<Icon Width>:<Icon Height>:<Language code>:<Icon Type>:<Name>:<file path>``

```bash
hs20_icon=32:32:eng:image/png:icon32:/tmp/icon32.png
hs20_icon=64:64:eng:image/png:icon64:/tmp/icon64.png
```

OSU SSID(フォーマットの説明については ssid2 を参照)

これは、列記されているすべての OSU プロバイダーへの
すべての OSU 接続に使用される SSID です。

```bash
osu_ssid="example"
```

OSU Providers
 
以下のパラメーターの 1 つ以上のセット。
各 OSU プロバイダーは、必須の osu_server_uri 項目によって開始されます。
他のパラメーターは、最後に追加された OSU プロバイダーに関する情報を追加します。

```bash
osu_server_uri=https://example.com/osu/
osu_friendly_name=eng:Example operator
osu_friendly_name=fin:Esimerkkipalveluntarjoaja
osu_nai=anonymous@example.com
osu_method_list=1 0
osu_icon=icon32
osu_icon=icon64
osu_service_desc=eng:Example services
osu_service_desc=fin:Esimerkkipalveluja

osu_server_uri=...
```

# Fast Session Transfer(FST) support

このセクションのオプションは、 hostapd のコンパイル中に
ビルド設定オプション CONFIG_FST が設定されている場合にのみ使用可能です。
それらはこのインターフェイスが FST セットアップの一部であることを可能にします。

FST は同じまたは異なる周波数帯での、
あるチャネルから別のチャネルへのセッションの転送です。

詳細は、 IEEE Std 802.11ad-2012 を参照してください。

インターフェイスが属する FST グループの ID

```bash
fst_group_id=bond0
```

FST グループ内のインターフェイス優先順位
 
インターフェイスの優先順位を高くすることは、 FST スイッチに優先させることを意味します。
fst_priority は 1..255 の範囲内で、 1 が最低の優先順位です。

```bash
fst_priority=100
```

このインターフェイスのデフォルトの LLT 値(ミリ秒単位)。
セッションのセットアップ中に値が提供されなかった場合に使用される値。
既定値は 50 ミリ秒です。
fst_llt の範囲は 1..4294967 です(仕様上の制限により、 10.32.2.2 状態間の遷移を参照)。

```bash
fst_llt=100
```

# 電波測定/場所

LCI 測定サブエレメントの内容

```bash
lci=<Hexdump of binary data of the LCI report>
```

都市部における測定のサブエレメントの内容

```bash
civic = <都市部レポートのバイナリデータの16進ダンプ>
```

無線測定による近隣レポートを有効化します。

```bash
rrm_neighbor_report=1
```

Fine Timing Measurement(FTM) 応答機能の公開

このパラメータは、拡張機能要素による公開のみを制御します。
実際の機能は hostapd の外部で管理されています。

```bash
ftm_responder=0
```

Fine Timing Measurement(FTM) 初期化機能

このパラメータは、拡張機能要素による公開のみを制御します。
実際の機能は hostapd の外部で管理されています。

```bash
ftm_initiator=0
```

# テストオプション

このセクションのオプションは、 hostapd のコンパイル中に
ビルド設定オプション CONFIG_TESTING_OPTIONS が設定されている場合にのみ使用可能です。
再現が難しいいくつかのシナリオをテストすることができます。

与えられた確率で hostapd に送信された探査要求を無視します。
0～1 の範囲の浮動小数点数でなければなりません。

```bash
ignore_probe_probability=0.0
```

与えられた確率で認証フレームを無視します。

```bash
ignore_auth_probability=0.0
```

与えられた確率で接続要求を無視します。

```bash
ignore_assoc_probability=0.0
```

与えられた確率で再接続要求を無視します。

```bash
ignore_reassoc_probability=0.0
```

GTK の破損したキー MIC は EAPOL キーフレームを与えられた確率で再生成します。

```bash
corrupt_gtk_rekey_mic_probability=0.0
```

可能な場合は CSA IE なしで ECSA IE のみを含めます
(チャンネル切替運用クラスが必要です)

```bash
ecsa_ie_only=0
```

# 複数の BSSID サポート

上記の設定は、デフォルトのインターフェイス
(wlan#、またはマルチ SSID VLAN インターフェイス)を使用しています。
他の BSSID は、新しい BSS のデータパケットに割り当てられる
デフォルトのインターフェイス名を持つセパレータ ``bss`` を使用して追加できます。

hostapd は、設定されている BSSID に基づいて BSSID マスクを生成します。 
hostapd は ``dev_addr & MASK == dev_addr`` であることを確認します。
そうでない場合は、 hostapd を起動する前に無線の MAC アドレスを変更する必要があります
(``ifconfig wlan0 hw ether <MAC addr>``)。
BSSID がすべてのセカンダリ BSS に設定されている場合、
この制限は hostapd には適用されず、
ドライバがサポートしていれば他のマスクを使用することができます
(たとえば、ローカルで管理されるビットを交換する)。

明示的な BSSID が ``bssid`` パラメーターを使用して指定されていない限り、 
BSSID は各 BSS に順番に割り当てられます。

明示的な BSSID が指定されている場合は、次のように選択する必要があります:

- 有効な MASK と dev_addr を網羅する有効な MASK の結果
- 無線の MAC アドレスと同じではありません
- 他の明示的に指定された BSSID と同じではありません

代替として use_driver_iface_addr パラメータを使用して 
hostapd にドライバの自動生成インタフェースアドレスを使用するように要求できます
(たとえば、デバイスに割り当てられた正確な MAC アドレスを使用するために)。

すべてのドライバが複数の BSS をサポートしているわけではありません。
ドライバーの能力を判断するための正確な仕組みは、ドライバーによって異なります。 
nl80211 を使用している現在の(最近のカーネル)ドライバでは、
この情報は ``iw list`` で確認することができます。
("有効なインターフェースの組み合わせ" を検索してください)。

hostapd は、最初の BSS に設定されている値のいくつかを、
以降の BSS の既定値として使用します。
すべての BSS に、関連するすべての設定項目の明示的な設定を含めることをお勧めします。

```bash
bss=wlan0_0
ssid=test2
```

上記の項目のほとんどはここで使用できます
(チャンネルのような無線インターフェース固有の項目は別として)

```bash
bss=wlan0_1
bssid=00:13:10:95:fe:0b
...
```