プラグPC」タグアーカイブ

結構うるさいので別室に!?無線ファイルサーバ(samba)の構築

RAID対応ファイルサーバ(NAS-T4)とプラグPC(GuruPlugPlus)を組み合わせて無線ファイルサーバ(samba)を構築してみました。

ファイルサーバが寝室にあると大変なんです!

自室(兼寝室兼書斎兼BB無線ルータ設置室)にファイルサーバを置くことはできますが、常時立ち上げておくと非常にうるさいです。

ですので、プラグPCとファイルサーバを離れたところ(実は玄関にあるデッドスペース)に設置して、無線ファイルサーバにしてみます。

ファイルサーバ・プラグPCの環境

Linuxマシン

  • Linux guru 2.6.33.2-00003-g4b82fc0 #1 PREEMPT Thu Apr 22 03:29:35 PDT 2010 armv5tel GNU/Linux
  • Debian Lenny

WINDOWS

  • XP Home Edition SP3

ネットワーク構成(例)

subnet(192.168.1.0/24)

  • BBルータ(192.168.1.1):インタネットに接続
  • XP(192.168.1.20):sambaでファイルを読み書きさせたいWINDOWSマシン
  • GURU(192.168.1.17):ルータ(GuruPlugPlus)のwlan0側、
  • PLUG(192.168.1.18):sshサーバ(SheevaPlug)、sambaのドメインマスタかつ
  • 本subnetのローカルマスタはPLUG

subnet(192.168.0.0/24)

  • NAS-T4(192.168.0.36):ファイルサーバ(samba)
  • GURU(192.168.0.1):ルータ(GuruPlugPlus)のeth0側。NAS-T4と直接つなぐ場合はクロスケーブルを用いる

※sambaの本subnetのローカルマスタはファイルサーバ(NAS-T4)になります。

サーバ構築の手順

1.GuruPlugPlusを無線LANモードにする(wlan0)

※なにか設定がおかしいかったのか、立ち上げて30分もしないうちにアクセス不能(ファイルサーバのsubnet外部から内部へのpingが通らない)の現象があり困ったが、いじっているうちに消えた

2.GuruPlugPlusを有線LAN(eth0)とNAS-T4を接続する

※ 直接つなぐ場合はクロスケーブルを用いる必要があります

3.wlan0とeth0は別サブネット(subnet)として接続し、かつIPパケットを通したいのでip_forwadをONしておく。

[/etc/sysctl.conf](on GURU)
-----------------------------------------------------------------------
# Uncomment the next line to enable packet forwarding for IPv4
#net.ipv4.ip_forward=1
net.ipv4.ip_forward=1
-----------------------------------------------------------------------

※ ブリッジ接続はちょっとやって諦めました。

4.sambaを設定する。普段あまり使わない設定をする必要がある

ドメインマスター(全体で1ホスト)、ローカルマスター(各subnet毎に1ホスト)、その他ホスト

[/etc/samba/smb.conf](on PLUG) ドメインマスター(全体で1ホスト)
-----------------------------------------------------------------------
[global]

DOS charset = CP932
unix charset = UTF-8
display charset = UTF-8

workgroup = WORKGROUP

server string = %h server

netbios name = GURU
domain master = yes : ドメインマスターになるよの設定
preferred master = yes
local master = yes : ローカルマスターに(も)なるよの設定
wins support = yes
wins proxy = yes
os level = 65
-----------------------------------------------------------------------
[/etc/samba/smb.conf](on NAS-T4) ローカルマスター(各subnet毎に1ホスト)
-----------------------------------------------------------------------
[global]

DOS charset = CP932
unix charset = UTF-8
display charset = UTF-8

workgroup = WORKGROUP

server string = %h server

netbios name = NAS-T4
domain master = No : ドメインマスターになりませんの設定
preferred master = No
local master = Yes : ローカルマスターになるよの設定
wins support = No
wins proxy = No
wins server = 192.168.1.18 : ドメインマスターのIPアドレス
os level = 65
-----------------------------------------------------------------------
[/etc/samba/smb.conf] その他ホスト
-----------------------------------------------------------------------
[global]
DOS charset = CP932
unix charset = UTF-8
display charset = UTF-8

workgroup = WORKGROUP

server string = %h server

netbios name = OTHERHOSTS
domain master = no : ドメインマスターになりませんの設定
preferred master = no
local master = no : ローカルマスターになりませんの設定
wins support = no
wins proxy = no
wins server = 192.168.1.18
os level = 0
-----------------------------------------------------------------------

※Windowsマシンではなにも設定する必要はありません(XPで確認)

5.sambaでファイルを読み書きさせたいWINDOWSマシンのデフォルトゲートウエイを変更するか、routeコマンドでsubnet(192.168.0.0/24)へのゲートウエイを追加する。これをやらないとファイルサーバが見えない

「ネットワーク接続」-「ローカルエリア接続」-「プロパティ」(全般)
-「インタネットプロトクロ(TCP/IP)」を選択して「プロバティ」(全般)
-「デフォルトゲートウエイ」を変更する

※ DHCP設定している場合は、routeコマンドで(デフォルトでない)ゲートウエイを追加する。

route -p add 192.168.0.0 MASK 255.255.255.0 192.168.1.17 IF 0x1

※ sambaの設定によっては、WINDOWS上のマイネットワークから辿っても出てこない場合がある。エクスプローラで直接指定すればよい。上記の場合だと
\\192.168.0.36
になる

お世話になったリンク

route – ルーティングテーブルの表示/設定を行う
[Chapter 5] ブラウジングと高度な共有の設定
サブネットをまたいで Samba ファイル-プリントサーバーを共有 パート2 – japan.internet.com
Setting GuruPlug to be a stable WiFi Client – PlugWiki
お試しネットワーク環境を作る – いますぐ実践! Linuxシステム管理 – Vol.065
Linuxでワイヤレス・アクセスポイントを構築する

以上です。

GuruPlugPlusのwlan0モード設定をifupdownに集約してみた

プラグPCのひとつ、GuruPlugPlusのwlan0モード設定元の設定は、rc.localから/root/init_setup.shを呼んで一旦apモードにして、同じくrc.localの次の行に/root/wlan.shを呼んでwlanモードにするようになっている。
設定がいろいろなところに飛んでいるのは分かりにくいと感じたので、今回、/etc/network/interfacesに集中させてみました。

(環境、ネットワーク構成)

カーネルの版数等は

  • Linux guru 2.6.33.2-00003-g4b82fc0 #1 PREEMPT Thu Apr 22 03:29:35 PDT 2010 armv5tel GNU/Linux
  • Debian Lenny

GuruPlugPlus周りのネットワーク構成は、

  • BBルータのIPアドレス:192.168.1.1
  • GuruPlugPlusのeth0経由でつながるsubnet:192.168.0.0/24
  • GuruPlugPlusのeth1経由につながるsubnet:192.168.10.0/24
  • GuruPlugPlusのwlan経由につながるsubnet:192.168.1.0/24。BBルータを介してWANへ

のようになっています

(手順等)

[/etc/network/interfaces]

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
pre-up /usr/sbin/ethtool -s eth0 autoneg on speed 1000 duplex full
# pre-up /usr/sbin/ethtool -s eth0 autoneg on speed 100 duplex full
address 192.168.0.1
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
dns-nameservers 192.168.1.1
auto eth1
iface eth1 inet static
# pre-up /usr/sbin/ethtool -s eth0 autoneg on speed 1000 duplex full
pre-up /usr/sbin/ethtool -s eth0 autoneg on speed 100 duplex full
address 192.168.10.1
network 192.168.10.0
netmask 255.255.255.0
broadcast 192.168.10.255
dns-nameservers 192.168.1.1
auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
pre-up /root/wlan.sh
pre-up /sbin/iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
address 192.168.1.17
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
wpa-driver wext
wpa-ssid your_ssid
wpa-psk xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
dns-nameservers 192.168.1.1

[注意] MASQUERADE設定は不要かも知れない(BBルータの方でやっているから?)
と思っていろいろやってみました。これがないとインタネットにpingが通らなくなります
[注意] wpaに関する設定はこれだけ。wpa_supplicantも陽には起動していないようです。
ifupdownが「wpa」のキーワードを認識してwpa_supplicantを適当な引数で
起動してくれるようですね

[/root/wlan.sh]

#!/bin/sh
# The firmware files are -> sd8688.bin & sd8688_helper.bin
# The firmware files need to be present in /lib/firmware/
rmmod libertas_sdio libertas
cp /root/firmware/sd8688* /lib/firmware/
#/etc/init.d/udhcpd stop
#/etc/init.d/dnsmasq stop
echo 2 > /proc/uap/uap0/hwstatus
ifconfig uap0 down
rmmod uap8xxx
modprobe libertas_sdio
# This will be deleted on bootup.
# Bootup by-default is always AP mode.
touch /etc/wlanclient.mode
# Delete the firmware immediately so that next bootup is in AP mode.
rm -f /lib/firmware/sd8688*
# The newly created interface will be wlan(n)
# The following command lists all the available wireless networks
# iwlist scanning
# To connect to a particular SSID
# iwconfig
#Set leds for client mode
echo 0 > `eval ls /sys/class/leds/guruplug\:green\:wmode/brightness`
echo 1 > `eval ls /sys/class/leds/guruplug\:red\:wmode/brightness`

なんか不要な設定がいっぱいありそう。

[/etc/sysctl.conf]

# Uncomment the next line to enable packet forwarding for IPv4
#net.ipv4.ip_forward=1
net.ipv4.ip_forward=1

init_setup.shはLEDの設定だけになっています。

これで普通(WPA2で暗号化して)に無線LANモードが動くようになりました。

関連記事

GuruPlugPlusのwlan0モード設定をifupdownに集約してみた
SheevaPlug, GuruPlugPlusの電源回路を取り寄せてみた
GuruPlugの熱暴走対策と無線アクセスポイントの暗号化

お世話になったリンク

WPAで無線LAN on Debian sid-unstable – Let’s start something new!
お試しネットワーク環境を作る – いますぐ実践! Linuxシステム管理 – Vol.065
HP2133日記 wpa_supplicantの設定
iptables tutorial 1.2.2 – ステート機構

以上です

SheevaPlug, GuruPlugPlusの電源回路を取り寄せてみた

電解コンデンサの液漏れでSheevaPlugの電源が壊れてそのままにしていたのが、最近の情報では電源が単体で売られているらしい、ということが分かり、SheevaPlug用電源回路とGuruPlug+用電源回路を購入してみました。

SheevaPlug用電源回路は半田付けもなにも必要なく手でセットできます。

GuruPlug用電源回路は半田付けの必要がありました。コイルが若干大きくなっているように感じましたし、部品のレイアウトも結構異なっているようで、ショートを防ぐためのプラスチック製?のカバーを(そのままでは入らなかったので)少しだけ切って、なんとか押し込めました。あれを何も調整しなくても普通に入るんでしょうかね。

というわけで、SheevaPlugが無事復活して、sshサーバとして動いています。

GuruPlug+はwlanとeth0(1GBps)を同時に動かすと(熱暴走のためか)際限なくリセットしてしまう現象がありましたが、強化された電源回路でそのあたりどうなるか、実験してみました。

1: wlan0 + eth0(1G) : OK
2: wlan0 + eth0(1G) + eth1(1G) : NG
3: wlan0 + eth0(0.1G) + eth1(0.1G) : OK
4: wlan0 + eth0(1G) + eth1(0.1G) : OK

という結果。2のときは、eth1にイーサケーブルを入れた瞬間に落ちました。

[追記:20130702]

サーバとして無人(自宅にひとが居ない)の間も稼動させているのですが、電源周りが壊れてしまうと、最悪の場合火災になる可能性がありますので、海外品を使う場合には特に注意が必要ですね。これが国内メーカならリコールになっているのかも知れませんね。ずいぶん古い話をしていて申し訳ありませんが。。。

関連記事

GuruPlugPlusのwlan0モード設定をifupdownに集約してみた
SheevaPlug, GuruPlugPlusの電源回路を取り寄せてみた
GuruPlugの熱暴走対策と無線アクセスポイントの暗号化

以上