既知のアクセスポイントが利用できない場合、Dietpiで条件付きでホットスポットをホストする方法

既知のアクセスポイントが利用できない場合、Dietpiで条件付きでホットスポットをホストする方法

ディットピーと一緒にラズベリーを食べています。

背景: このパイは魔法の鏡として使用され、すぐに友人に贈り物になる予定です。ワイヤレスネットワークのみを使用してください。イメージは既知の wpa_supplicant.conf ファイルとともに提供されるため、最初の日から動作します。ユースケースは、WPAキーを変更したり、別のSSIDを持っている場合は、SSHを介してpiにログインできる必要があることです。

ターゲット 全体的な目標は、利用可能なネットワーク(アクセスポイント(AP)へのネットワーク接続で十分です)を定期的に確認するスクリプトを持つことです。

現在の問題は、ホットスポットをまったく作成できないことです。

(作業中):したがって、接続が提供されると、構成はクライアントとしてdhcpを使用します。

(機能しない):接続が提供されない場合は、APをホストしてサブネットにDHCPサーバーを提供するようにpiの設定を変更する必要があります。 (代替アイデア歓迎)

文書を掘り下げるとDietpidnsmasqisc-dchp-server

journalctl -xe私が使用しているすべてのサービスが始まり、心配するものはありません。

$systemctl list-units --type=serviceよさそうだ

APアクティベーションはdietpi-config無効なサブネットを使用するため、設定した方法とは異なるように見えます。 (1.xxではなく42.xxでなければなりません)

[  OK  ] DietPi-Config | Desired setting in /etc/hostapd/hostapd.conf was already set: wpa_passphrase=SECRET_PHRASE
[  OK  ] DietPi-WiFiDB | mkdir -p /etc/wpa_supplicant
[  OK  ] DietPi-WiFiDB | eval > /var/lib/dietpi/dietpi-wifi.db
[ INFO ] DietPi-WiFiDB | Applied WiFi DB slot 0 with SSID "CLEARNET"
[ INFO ] DietPi-WiFiDB | Applied WiFi DB slot 1 with SSID ""
[ INFO ] DietPi-WiFiDB | Applied WiFi DB slot 2 with SSID ""
[ INFO ] DietPi-WiFiDB | Applied WiFi DB slot 3 with SSID ""
[ INFO ] DietPi-WiFiDB | Applied WiFi DB slot 4 with SSID ""
[  OK  ] DietPi-WiFiDB | chown root:root /var/lib/dietpi/dietpi-wifi.db /etc/wpa_supplicant/wpa_supplicant.conf
[  OK  ] DietPi-WiFiDB | chmod 600 /var/lib/dietpi/dietpi-wifi.db /etc/wpa_supplicant/wpa_supplicant.conf
[  OK  ] DietPi-Config | systemctl stop isc-dhcp-server
[ SUB1 ] DietPi-Set_hardware > wifimodules (enable)
[ INFO ] DietPi-Set_hardware | Please wait, enabling WiFi modules...
[ INFO ] DietPi-Set_hardware | Checking for required APT packages: iw wireless-tools wpasupplicant wireless-regdb
[  OK  ] wifimodules enable | Completed
[ INFO ] DietPi-Config | Dropping network connections, please wait...
[ INFO ] DietPi-Config | Restarting network connections, please wait...
[  OK  ] DietPi-Config | systemctl daemon-reload
Internet Systems Consortium DHCP Client 4.4.1
Copyright 2004-2018 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/eth0/b8:27:eb:23:f0:44
Sending on   LPF/eth0/b8:27:eb:23:f0:44
Sending on   Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 4
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 8
DHCPOFFER of 192.168.1.169 from 192.168.1.1
DHCPREQUEST for 192.168.1.169 on eth0 to 255.255.255.255 port 67
DHCPACK of 192.168.1.169 from 192.168.1.1
bound to 192.168.1.169 -- renewal in 18890 seconds.
[  OK  ] DietPi-Config | systemctl start isc-dhcp-server
[ INFO ] DietPi-Config | Reloading networking data, please wait...
[  OK  ] DietPi-Config | Network restarted
$ cat /etc/network/interfaces
# Location: /etc/network/interfaces
# Please modify network settings via: dietpi-config
# Or create your own drop-ins in: /etc/network/interfaces.d/

# Drop-in configs
source interfaces.d/*

# Ethernet
allow-hotplug eth0
iface eth0 inet dhcp
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
#dns-nameservers 192.168.1.1

# WiFi
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.0.1
netmask 255.255.255.0
#gateway 192.168.0.1
#dns-nameservers 9.9.9.9 149.112.112.112
pre-up iw dev wlan0 set power_save off
post-down iw dev "wlan0 set power_save on

# iptables NAT rules
up iptables-restore < /etc/iptables.ipv4.nat
up ip6tables-restore < /etc/iptables.ipv6.nat
$ cat /etc/network/interfaces.d/wlan0
iface wlan0 inet static
  address 192.168.42.99
  network 192.168.42.0
  netmask 255.255.255.0
  broadcast 192.168.42.255
  wpa-ssid "magic-mirror"
  wpa-psk "SECRET_PHRASE"
  wpa-group TKIP CCMP
  wpa-key-mgmt WPA-PSK
$cat /etc/dhcp/dhcpd.conf
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;

subnet 192.168.42.0 netmask 255.255.255.0 {
        range 192.168.42.10 192.168.42.50;
        option broadcast-address 192.168.42.255;
        option routers 192.168.42.1;
        option domain-name "local";
        option domain-name-servers 9.9.9.9, 149.112.112.112;
}

どんな提案でもよろしくお願いします。

関連情報