Raspberry Pi (Jessie) でのネットワーク設定メモ
RHEL/CentOS 系を使ったことはあったが、Raspberry Pi の標準はdebian系。その違いを含め、最近のsystemd-sysvなどのLinuxの変化もちゃんと把握してなかったこともあって、無駄にハマることが結構あった。。
とりあえず、ここはネットワーク周りの設定関連情報についてメモっとく。
最後にAP用の情報も追記
デバイス名の認識について
eth0やwlan0などのデバイス名の認識はudevのルールに従う。但し、どう認識されているのかが、よくわからんかった。
/lib/udev/rules.d/ 以下に各種ルール用ファイルがあり、ネットワーク系デバイスは 75-persistent-net-generator.rules に記載がある。
この19-21行目が下記。
デバイス名がeth0や、wlan0などの場合は、udev設定が吐き出されないようになっていてブラックボックス状態。
# device name whitelist KERNEL!="ath*|msh*|ra*|sta*|ctc*|lcs*|hsi*", \ GOTO="persistent_net_generator_end"これを
# device name whitelist
KERNEL!="ath*|msh*|ra*|sta*|ctc*|lcs*|hsi*|eth*|wlan*", \
GOTO="persistent_net_generator_end"
としておけば、認識したデバイスについてのルールを、/etc/udev/rules.d/70-persistent-net.rules
に吐き出してくれる。サンプルとしては下記
# This file was automatically generated by the /lib/udev/write_net_rules # program, run by the persistent-net-generator.rules rules file. # # You can modify it, as long as you keep each rule on a single # line, and change only the value of the NAME= key. # Unknown net device (/devices/platform/soc/3f300000.mmc/mmc_host/mmc1/mmc1:0001/mmc1:0001:1/net/wlan0) (brcmfmac_sdio) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="b8:27:eb:0a:21:b3", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan0" # USB device 0x:0x (smsc95xx) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="b8:27:eb:5f:74:e6", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"このファイルを修正することで、wlan0→wlan1にしたり、デバイス名をカスタマイズできるようになる。
ネットワーク設定方式を統一する
過渡期なのかどうかはわからんが、ネットワークという低レイヤな設定についても、複数の設定方法がある。大きく分類すると新式なNetworkManager系設定と旧式なifconfig系設定の2パターン。 これを混在して使うとハマる。。
NetworkManagerで統一する
NetworkManagerは基本的にデスクトップ(或はモバイル的)環境を想定してるのか、プラグの抜き差しや、WiFi環境の変化など、環境が変化するような場合にも柔軟に対応してくれる。旧方式では、ifplugdなどを利用して対応していたが、新式のNetworkManagerを使う場合はそういった追加機能は不要で、全部やってくれるみたい。
NetworkManager利用のための準備
こっちで統一するのであれば、/etc/network/interfaces をこんな感じ↓で空にする。# mv /etc/network/interfaces /etc/network/interfaces.bkup # touch /etc/network/interfaces
通常、こんなの↓が入っているが、iface *** のような行がこのファイルにあると、そのデバイスはNetworkManagerの管理下に入らずに、旧式設定での設定になる。
auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp allow-hotplug wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
NetworkManagerの操作
NetworkManagerの操作をする場合、「プロファイル」に各種設定を結びつけるような方法になる。プロファイル名がeth0など、デバイス名と同名で説明されているケースがあるがちゃんと区別すること。
NetworkManager はGUIで説明されてることが多いが、CLI操作したいときはnmcliを使う。
ここではnmcliに絞った操作方法を記載する。
スクリプト処理とかするときはやっぱりCUIを知っといたほうが良い
管理下のデバイス表示
「管理無し」と表示されるデバイスは NetworkManagerの管理下にはなく、旧式の方法で管理されている。# nmcli dev status デバイス タイプ 状態 接続 wlan0 wifi 接続済み aterm-99999-g eth0 ethernet 切断済み -- lo loopback 管理無し --
WiFiスキャン
周囲のWiFiをリスト表示。# nmcli dev wifi list * SSID モード CHAN レート 信号 バー セキュリティ Buffalo-G-xxxx インフラ 4 54 Mbit/s 79 ▂▄▆_ WPA1 WPA2 rt400m-xxxxxx-1 インフラ 13 54 Mbit/s 40 ▂▄__ WPA1 WPA2 rt400m-xxxxxx-2 インフラ 13 54 Mbit/s 39 ▂▄__ WEP PS3-xxxxxxx インフラ 6 54 Mbit/s 84 ▂▄▆█ WPA1
WiFi設定をする
nmcli dev wifi connect SSID password SSID-KEY ifname wlan0この操作だと、SSIDとして指定した名称が自動的に「プロファイル名」に適用され、設定ファイル /etc/NetworkManager/system-connections/SSID が生成される。
これで次回起動後は自動的に接続可能になる。
なお、この設定ではデフォでDHCP設定となる。
DHCP→固定IPに設定変更
nmcli con mod プロファイル名 ipv4.method manual ipv4.addresses "x.x.x.x/x y.y.y.y" ipv4.dns "z.z.z.z"※ y.y.y.y はGW
※ z.z.z.z はDNS。/etc/resolv.confに反映される
固定IPからDHCPへ変更
nmcli con mod プロファイル名 ipv4.method auto ipv4.addresses "" ipv4.dns ""
プロファイルを削除
nmcli con del プロファイル名
固定IPで新規プロファイル追加
nmcli connection add type ethernet con-name プロファイル名 ifname wlan0 ip4 10.1.1.3/24 gw4 10.1.1.1
DHCPで新規プロファイル追加
nmcli con add type ethernet con-name プロファイル名 ifname wlan0
有効化
nmcli con up ifname eth0
無効化
nmcli dev disconnect eth0
旧式で統一
個人的にはこっちに慣れていて好きなので旧式と呼ぶのは好きじゃないが。。旧式利用のための準備
NetworkManager を無効化
# systemctl stop NetworkManager # systemctl mask NetworkManager
設定ファイル /etc/network/interfaces を準備
eth0が固定IP、wlan0がDHCPの例。auto lo iface lo inet loopback iface eth0 inet static address 192.168.0.10 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.100 allow-hotplug wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
DNSはresolv.confに書く派です。
なお、JESSIEにて固定IPを使うときは/etc/dhcpcd.confに下記のように記載するという情報が多いけど、、
interface eth0 static ip_address=192.168.0.15/24 static routers=192.168.0.1 static domain_name_servers=192.168.0.1これって、networkingスクリプトによって設定したネットワーク設定を、dhcpcdが上書きしてしまうから。
なので、dhcpcd.confに固定IP設定を書くんじゃなくて、dhcpcd.confに
denyinterfaces eth0
を入れて、/etc/network/interfaces にWheezyのときと同様に固定IPを記載するのが、王道のように思える。旧式のネットワーク操作
とりあえずWiFi回りだけ。ifconfig/iproute2 などのコマンド操作や、networkingスクリプトでの処理説明は省略。
WiFiスキャン
iwlist wlan0 scan wlan0 Scan completed : Cell 01 - Address: A4:12:42:xx:xx:xx Channel:1 Frequency:2.412 GHz (Channel 1) Quality=64/70 Signal level=-46 dBm Encryption key:on ESSID:"xxxxxxxxxx" Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s 9 Mb/s; 12 Mb/s; 18 Mb/s Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s Mode:Master Extra:tsf=0000000000000000 Extra: Last beacon: 40ms ago
WiFi設定
wpa_passphrase SSID SSID-KEY | grep -v '#psk' >> /etc/wpa_supplicant/wpa_supplicant.conf
wpa_supplicant.confの例
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="aterm-xxxxx" psk=5cccf4bde3f63f365e766cec0557db3ed10ba948427cee06467b80f8ebc12345 }
hostapd を使って、RasPiをAPにするときのドライバーについてメモ
AP(AccessPoint)として利用できるWiFiドングルは限られてる。入手しやすいものだと、、こうか。
PlanexのGW-USNANO2A | Adafruitで提供されているhostapdのバイナリに置き換えて、rtl871xdrv でいける |
BuffaloのWLI-UC-GNM | hostapd v2.0 以降で、nl80211でいける |
Raspberry Pi3のビルトインBCM43438 | hostapd v2.0 以降で、nl80211でいける |
参考:
第5章 ネットワークの設定 - Debian リファレンス
/etc/network/interfaces changed,weird 2 LAN IPs instead of 1 - Raspberry Pi Forum
ネットワークを設定する(RaspberryPi/ArchLinux)
Is there a way to disable the DHCP client in Raspbian Linux on a Rasperry Pi? - superuser
2.3. NETWORKMANAGER のコマンドラインツール NMCLI の使用 - Red Hat Enterprise Linux 7ネットワークガイド
Raspberry Pi をWi-Fiアクセスポイント&ルーター化する - 猫ぱーんち!
第5章 ネットワークの設定 - Debian リファレンス
/etc/network/interfaces changed,weird 2 LAN IPs instead of 1 - Raspberry Pi Forum
ネットワークを設定する(RaspberryPi/ArchLinux)
Is there a way to disable the DHCP client in Raspbian Linux on a Rasperry Pi? - superuser
2.3. NETWORKMANAGER のコマンドラインツール NMCLI の使用 - Red Hat Enterprise Linux 7ネットワークガイド
Raspberry Pi をWi-Fiアクセスポイント&ルーター化する - 猫ぱーんち!
登録:
コメントの投稿
(
Atom
)
0 件のコメント :
コメントを投稿
ご来訪者様の判別のため、
匿名希望の方もコメントの記入者欄に「名前/URL」 を選択し、
テキトーなペンネームを入れてくださいm(_ _)m
※ URLは不要。書いていただいてもOK。