アクセスポイント設定の留意点
以下のように2つの個々の物理インターフェイスをWiFiクライアント、アクセスポイントとして利用する際のポイント(NetworkManager(nmtui)でクライアント、アクセスポイントを設定)。
dnsmasq のDNSサーバ、DHCPサーバ機能(dnsmasq-base)を使用することにより、アクセスポイントの設定が容易になりますが以下注意が必要です。
上記 dnsmasq リンク先から抜粋
Note that the package “dnsmasq” interferes with Network Manager which can use “dnsmasq-base” to provide DHCP services when sharing an internet connection. Therefore, if you use network manager (fine in simple set-ups only), then install dnsmasq-base, but not dnsmasq. If you have a more complicated set-up, uninstall network manager, use dnsmasq, or similar software (bind9, dhcpd, etc), and configure things by hand.
NetworkManagerが利用するdnsmasqは、 dnsmasq-base(Ubuntuにはデフォルトでインストール) のため、dnsmasq(dnsmasq-baseとは別パッケージ)のインストールは必要ありません。
但し、上記の記事にも掲載しましたが、NetworkManagerでdnsmasqのDNSサーバ機能(プラグイン)を利用するため、以下の設定ファイルで dns=dnsmasq とする必要があります。
/etc/NetworkManager/NetworkManager.conf
[main]
#dns=default
dns=dnsmasq
......
.....
アクセスポイント設定の際にもDHCPサーバの設定にdnsmasq-baseが利用されます。
もし以前にhostapdの設定を有効にした場合には無効にする必要があります。
hostapdはデフォルトでデーモン起動しますが、設定ファイル /etc/default/hostapd 内で以下の箇所をコメントアウトしてNetworkManagerのdnsmasq-baseによるDHCPサーバ機能と干渉しないようにします(デフォルトではコメントアウトした状態)。
#DAEMON_CONF="/etc/hostapd/hostapd.conf"
以上を簡単に纏めると、
NetworkManagerを利用してネットワーク設定を行う場合、dnsmasq(dnsmasq-baseとは別パッケージ)とhostapdは必要ない
となります。
NetworkManager内でのdnsmasqの設定ディレクトリは、以下用途別になっています。
- DNSサーバとしての設定ディレクトリ:
/etc/NetworkManager/dnsmasq-shared.d - DHCPサーバとしての設定ディレクトリ:
/etc/NetworkManager/dnsmasq.d
オプションを追加指定する場合には、上記ディレクトリ内に*.confファイルを作成して下さい。
$ sudo service NetworkManager status
● NetworkManager.service - Network Manager
Loaded: loaded (/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2023-03-09 13:33:44 JST; 1h 12min ago
Docs: man:NetworkManager(8)
Main PID: 642 (NetworkManager)
Tasks: 5 (limit: 2052)
Memory: 10.9M
CPU: 5.678s
CGroup: /system.slice/NetworkManager.service
├─ 642 /usr/sbin/NetworkManager --no-daemon
├─1182 /usr/sbin/dnsmasq --conf-file=/dev/null --no-hosts --keep-in-foreground --bind-interfaces --except-interface=lo --clear-on-reload --strict-order --listen-address=10.42.0.1 --dhcp-range=10.42.0.10,10.42.0.254,60m --dhcp-lease-max=50 --dhcp-leasefile=/var/lib/NetworkManager/dnsmasq-wlan1.leases --pid-file=/run/nm-dnsmasq-wlan1.pid --conf-dir=/etc/NetworkManager/dnsmasq-shared.d
└─1270 /usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces --pid-file=/run/NetworkManager/dnsmasq.pid --listen-address=127.0.0.1 --cache-size=400 --clear-on-reload --conf-file=/dev/null --proxy-dnssec --enable-dbus=org.freedesktop.NetworkManager.dnsmasq --conf-dir=/etc/NetworkManager/dnsmasq.d