NetBSD Advent Calendar 2022 6日目の記事です。 今日はNetBSDで無線LANのアクセスポイントを構築する手順を紹介しようと思います。
じつは今回の記事は、他の記事で紹介しているNPF(NetBSD Packet Filter)の話とも関連しています。
使用する無線LANデバイス
私の環境では、TL-WN725Nという無線LANデバイスを使用しています。このデバイスは、NetBSDにおいては urtwn0
として認識されます。
[ 3.062574] urtwn0 at uhub1 port 2
[ 3.062574] urtwn0: Realtek (0x0bda) 802.11n NIC (0x8179), rev 2.00/0.00, addr 4
[ 3.202878] urtwn0: MAC/BB RTL8188EU, RF 6052 1T1R, address 54:af:97:68:aa:8b
[ 3.202878] urtwn0: 1 rx pipe, 2 tx pipes
/etc/ifconfig.urtwn0の設定
デバイスが urtwn0
として見えているため、 /etc/ifconfig.urtwn0
に以下を記述します。この例では、無線LANのネットワークを 172.16.151.0/24
としています。
172.16.151.1 netmask 255.255.255.0 up
DHCPサーバの設定
無線LANに接続したPCにIPアドレスを自動割り当てできるよう、DHCPサーバの設定を行います。設定は /etc/dhcpd.conf
に以下のよう内容を記述します。
default-lease-time 7200;
max-lease-time 14400;
ddns-update-style none;
group {
subnet 172.16.151.0 netmask 255.255.255.0 {
option routers <上位のルータのIPアドレス>;
option domain-name-servers 172.16.151.1; # ここではルータにDNSキャッシュサーバの役割も持たせています。
option domain-name "furandon.net";
range dynamic-bootp 172.16.151.240 172.16.151.250;
}
}
アクセスポイントの設定
NetBSDをアクセスポイントとして動作させる場合は、hostapdを使用します。設定は /etc/hostapd.conf
に記述します。
ポイントは channel=0
の指定で、これにより無線LANのチャンネルが自動的に選択されます。
interface=urtwn0 # 無線LANのデバイスを指定します。
logger_syslog=0
logger_syslog_level=0
logger_stdout=1
logger_stdout_level=1
debug=2
ctrl_interface=/var/run/hostapd
ctrl_interface_group=wheel
# SSID設定。
ssid=「ここでSSIDを設定」 # SSIDを指定します。
country_code=JP
hw_mode=b # hw_modeの値は、ifconfigの出力から確認する。
channel=0 # channelに0を設定するとチャンネルが自動的に選択される。
wpa=1
wpa_key_mgmt=WPA-PSK
wpa_passphrase=「ここでパスワードを設定」 # WPAのパスワード設定。
auth_algs=1
wpa_pairwise=CCMP
rsn_pairwise=CCMP
wpa_group_rekey=600
wpa_strict_rekey=1
wpa_ptk_rekey=600
eapol_key_index_workaround=7
eap_reauth_period=0
hostapdを起動する
あらかじめDHCPサーバを起動しておき( /etc/rc.conf
に dhcpd=YES
を追記しておくとよいでしょう)、以下の手順を実行します。
hostapdの起動後、他のPCから指定したSSIDとパスワードでIPアドレスが取得できることを確認します。
(ここまでで無線LANに接続することはできますが、まだインターネットには接続できません(理由は後述します)。)
$ sudo ifconfig urtwn0 ssid <SSID>
$ /usr/sbin/hostapd -td /etc/hostapd.conf
まとめ
NetBSDを無線LANのアクセスポイントとして利用するための設定手順を紹介しました。
ただし、上流のネットワーク(インターネットなど)に接続する場合は、アクセスポイントにルータの機能も持たせておく必要があります。これは、別の記事で紹介しているNPF(NetBSD Packet Filter)を利用してルータとして動作するような設定手順を別途紹介する予定です。