アクセスポイント設定の留意点
以下のように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