ネットワーク設定情報
WiFi インタフェースと Ethernet インタフェースを持つ Ubuntu Server で、WiFi インタフェースをホットスポットとして使用して無線LANルータ化を行う。
また、この時インターネット可能なように Source NAPT を行う。
※ WiFi ホットスポット有効化の際に【netplan】のレンダラーは【NetworkManager】が必須
項目 | WiFi ホットスポット | WiFi クライアント |
物理インタフェース | wlp6s0 | (OS 依存) |
IPv4 Address | 192.168.252.254/24 | DHCPv4 |
Gateway | 上位 NW | DHCPv4 (192.168.252.254) |
DNS | サーバ動作 (192.168.252.254) | DHCPv4 (192.168.252.254) |
DHCP | サーバ動作 (192.168.252.254) | DHCPv4 クライアント |
項目 | 設定値 |
セキュリティ (RSN) | WPA2 |
暗号方式 | AES (CCMP) |
認証方式 | Pre-Shared Key |
WiFi 規制ドメイン | JP |
周波数 | 2.4GHz |
ステルス ESSID | 無効 |
ESSID | hotspot-01 |
BSSID | インタフェースのMACアドレス |
Source NAT は UFW を使用して行う。WiFi ホットスポット用のポリシー情報は以下となる。
※ UFW の NAPT は別記事を参照
Action | Source (Address, Port) | Destination (Address, Port) | Device | Protocol |
Allow IN | 0.0.0.0 port 68 | 255.255.255.255 port 67 | wlp6s0 | UDP |
Allow IN | 192.168.252.0/24 | 192.168.252.0/24 | wlp6s0 | Any |
Route Allow | 192.168.252.0/24 | Any | IN: wlp6s0 OUT: en0 | – |
設定前のハードウェア情報を確認する。
$ sudo lshw -C network -short
H/W path Device Class Description
==========================================================
/0/100/1c.1/0 wlp6s0 network Wireless 7265
/10 enx000000aaaaaa network Ethernet interface
インタフェース設定
Wi-Fi ホットスポット化に必要な Network Manager をインストールする。
$ sudo apt install network-manager
Netplan の config 設定を行う。作成するファイルは適用順番を考慮し、番号を大きくする。
【/etc/netplan/56-network.yaml】
※【renderer】は必ず【NetworkManager】にすること。
※【passthrough】関連の設定が無いとNetworkManager側に設定が反映されない為注意
network:
version: 2
renderer: NetworkManager
ethernets:
enx000000aaaaaa:
match:
macaddress: 00:00:00:aa:aa:aa
set-name: en0
dhcp4: true
dhcp6: false
accept-ra: true
wifis:
wlp6s0:
dhcp4: false
dhcp6: false
addresses:
- 192.168.252.254/24
optional: true
regulatory-domain: "JP"
access-points:
"hotspot-01":
mode: ap
band: 2.4GHz
hidden: false
auth:
key-management: psk
password: "[PRE-SHARED KEY]"
networkmanager:
passthrough:
wifi-security.proto: "rsn"
wifi-security.group: "ccmp"
wifi-security.pairwise: "ccmp"
設定を反映する。問題なければ制限時間以内に【Enter】キーを押す。
$ sudo netplan try
Do you want to keep these settings?
Press ENTER before the timeout to accept the new configuration
Changes will revert in 116 seconds
【Enter】
Configuration accepted.
Wi-Fi 設定 (802-11-wireless 関連)、IP アドレス (ipv4.method が shared になっている事)
$ nmcli connection show netplan-wlp6s0-hotspot-01
connection.id: netplan-wlp6s0-hotspot-01
connection.uuid: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
connection.stable-id: --
connection.type: 802-11-wireless
connection.interface-name: wlp6s0
connection.autoconnect: yes
connection.autoconnect-priority: 0
connection.autoconnect-retries: -1 (default)
connection.multi-connect: 0 (default)
connection.auth-retries: -1
connection.timestamp: 1730014786
connection.permissions: --
connection.zone: --
connection.controller: --
connection.master: --
connection.slave-type: --
connection.port-type: --
connection.autoconnect-slaves: -1 (default)
connection.autoconnect-ports: -1 (default)
connection.secondaries: --
connection.gateway-ping-timeout: 0
connection.metered: unknown
connection.lldp: default
connection.mdns: -1 (default)
connection.llmnr: -1 (default)
connection.dns-over-tls: -1 (default)
connection.mptcp-flags: 0x0 (default)
connection.wait-device-timeout: -1
connection.wait-activation-delay: -1
802-11-wireless.ssid: hotspot-01
802-11-wireless.mode: ap
802-11-wireless.band: bg
802-11-wireless.channel: 0
802-11-wireless.bssid: --
802-11-wireless.mac-address: --
802-11-wireless.cloned-mac-address: --
802-11-wireless.generate-mac-address-mask:--
802-11-wireless.mac-address-blacklist: --
802-11-wireless.mac-address-randomization:default
802-11-wireless.mtu: auto
802-11-wireless.seen-bssids: xx:xx:xx:xx:xx:xx
802-11-wireless.hidden: no
802-11-wireless.powersave: 0 (default)
802-11-wireless.wake-on-wlan: 0x1 (default)
802-11-wireless.ap-isolation: -1 (default)
802-11-wireless-security.key-mgmt: wpa-psk
802-11-wireless-security.wep-tx-keyidx: 0
802-11-wireless-security.auth-alg: --
802-11-wireless-security.proto: rsn
802-11-wireless-security.pairwise: ccmp
802-11-wireless-security.group: ccmp
802-11-wireless-security.pmf: 0 (default)
802-11-wireless-security.leap-username: --
802-11-wireless-security.wep-key0: <hidden>
802-11-wireless-security.wep-key1: <hidden>
802-11-wireless-security.wep-key2: <hidden>
802-11-wireless-security.wep-key3: <hidden>
802-11-wireless-security.wep-key-flags: 0 (none)
802-11-wireless-security.wep-key-type: unknown
802-11-wireless-security.psk: <hidden>
802-11-wireless-security.psk-flags: 0 (none)
802-11-wireless-security.leap-password: <hidden>
802-11-wireless-security.leap-password-flags:0 (none)
802-11-wireless-security.wps-method: 0x0 (default)
802-11-wireless-security.fils: 0 (default)
ipv4.method: shared
ipv4.dns: --
ipv4.dns-search: --
ipv4.dns-options: --
ipv4.dns-priority: 0
ipv4.addresses: 192.168.252.254/24
ipv4.gateway: --
ipv4.routes: --
ipv4.route-metric: -1
ipv4.route-table: 0 (unspec)
ipv4.routing-rules: --
ipv4.replace-local-rule: -1 (default)
ipv4.ignore-auto-routes: no
ipv4.ignore-auto-dns: no
ipv4.dhcp-client-id: --
ipv4.dhcp-iaid: --
ipv4.dhcp-dscp: --
ipv4.dhcp-timeout: 0 (default)
ipv4.dhcp-send-hostname: yes
ipv4.dhcp-hostname: --
ipv4.dhcp-fqdn: --
ipv4.dhcp-hostname-flags: 0x0 (none)
ipv4.never-default: no
ipv4.may-fail: yes
ipv4.required-timeout: -1 (default)
ipv4.dad-timeout: -1 (default)
ipv4.dhcp-vendor-class-identifier: --
ipv4.link-local: 0 (default)
ipv4.dhcp-reject-servers: --
ipv4.auto-route-ext-gw: -1 (default)
DNSサーバ、DHCPサーバが動作していることを確認する。
$ sudo ss -tanpl | grep 53
LISTEN 0 32 192.168.252.254:53 0.0.0.0:* users:(("dnsmasq",pid=32194,fd=7))
$ sudo ss -uanpl | grep 67
UNCONN 0 0 0.0.0.0:67 0.0.0.0:* users:(("dnsmasq",pid=32194,fd=4))
Firewall 設定
UFW の通信許可設定を行う。DHCP、及び内部からのトラフィック許可、およびルーティングの許可を実施。
$ sudo ufw allow in on wlp6s0 from 0.0.0.0 port 68 to 255.255.255.255 port 67 proto udp
$ sudo ufw allow in on wlp6s0 from 192.168.252.0/24 to 192.168.252.0/24
$ sudo ufw route allow in on wlp6s0 out on en0 from 192.168.252.0/24
設定値を確認する。
$ sudo ufw show added
Added user rules (see 'ufw status' for running firewall):
ufw allow in on wlp6s0 from 0.0.0.0 port 68 to 255.255.255.255 port 67 proto udp
ufw allow in on wlp6s0 from 192.168.252.0/24 to 192.168.252.0/24
ufw route allow in on wlp6s0 out on en0 from 192.168.252.0/24
状態確認
WiFi クライアントから接続し、状態を確認する。
QRコードから接続する場合は以下のコマンドにてQRコード画像の表示が可能。
$ nmcli device wifi show
SSID: hotspot-01
Security: WPA
[ここにQRコード画像が表示される]
WiFi クライアント接続後、IPがアサインされている事が分かる。
なんか権限エラーが出ているのは取り敢えず放置・・・(^ν^)
$ journalctl -exb | grep dnsmasq
Oct 27 16:39:46 helix NetworkManager[32011]: <info> [1730014786.2457] dnsmasq-manager: starting dnsmasq...
Oct 27 16:39:46 helix dnsmasq[32194]: started, version 2.90 cachesize 150
Oct 27 16:39:46 helix dnsmasq[32194]: compile time options: IPv6 GNU-getopt DBus no-UBus i18n IDN2 DHCP DHCPv6 no-Lua TFTP conntrack ipset nftset auth cryptohash DNSSEC loop-detect inotify dumpfile
Oct 27 16:39:46 helix dnsmasq[32194]: chown of PID file /run/nm-dnsmasq-wlp6s0.pid failed: Operation not permitted
Oct 27 16:39:46 helix dnsmasq-dhcp[32194]: DHCP, IP range 192.168.252.1 -- 192.168.252.245, lease time 1h
Oct 27 16:39:46 helix dnsmasq[32194]: reading /etc/resolv.conf
Oct 27 16:39:46 helix dnsmasq[32194]: using nameserver 127.0.0.53#53
Oct 27 16:39:46 helix dnsmasq[32194]: cleared cache
Oct 27 16:49:45 helix dnsmasq-dhcp[32194]: DHCPREQUEST(wlp6s0) 192.168.252.176 xx:xx:xx:xx:xx:xx
Oct 27 16:49:45 helix dnsmasq-dhcp[32194]: DHCPACK(wlp6s0) 192.168.252.176 xx:xx:xx:xx:xx:xx
【参考URL】
Netplan documentation
Cannot connect to Raspberry Pi 4 WiFI access point Ubuntu 22.04 server Netplan NetworkManager
WPA3のはなし
Netplan: Access Point setup with WPA2 authentication
Wifi NetworkManager – Variscite Wiki