現在一部コンテンツが表示出来ていないところがあります

先週より、村役場 の 登録情報の表示について、エラー表示になっているとの報告を受けており、現在(2021年2月15日 22時の時点で)も対策を検討中です。

ヒロさんほかの方々には、エラーとなっている旨の報告をいただき大変ありがとうございました。

現在も原因の調査中で、対策にはまだ時間がかかる見込みですが、復旧もしくは代替のものへの切り替え等、対策が住みましたら改めてお知らせするようにします。

また、表示はされていたがエラー表示も同時に出ていた部分に関しては、対策を行いましたが、まだエラー表示が出ているところがありましたら、お手数ですがその旨お知らせください。

出来る限り早く対策を行うようにしますので、申し訳ありませんがよろしくお願いします。


2021年4月18日追記
 何とかCSむらの登録情報をデータからもとの(表示されていた)登録情報への復元が完了しました。(たぶん大丈夫なはず...)
 あとは、登録情報を表示できるようにすれば...というところですが、90件ほどのデータを半値する作業がこれから待っているのです...出来るだけ速く掲載形式を決めて復活させるようにしますのでもうしばらくお待ちください。(4月中目標。)


 

2021年のOFF会予定(主にぶるうほおる側で決めたもの)

2021年のOFF会の予定を決めてみました、

 2021年10月9日(土)
  ---> 神戸OFF (兵庫県)
    集合場所:神戸海洋博物館駐車場 (https://goo.gl/maps/5pBQyxbNFT13dsKh8
     時間 :13時00分

開催日については、天候等により変更になる可能性が有りますのでご注意ください。 

 

この他でも随時こちらで把握した範囲で追加するようにします。

 

 

1.前置き (細かいことはどうでも良い方はこちらで設定方法に近道できます)
ある日、とある機器を外部からコントロールする目的のシステムの構築依頼が舞い込んできました。

相手からやりたいことをヒアリングしてみると、

 ・既存のネットワークシステムとは切り離したい
 ・(操作側から見た場合に)無線LAN経由で機器を制御したい
 ・出来ればバッテリ駆動(モバイルバッテリなど)で使いたい ※電源環境が不明な場所があるため

のキーワードが含まれています。(そのほかの詳しい部分は秘密)

操作する機器を除いて、市販のもので簡単にそろえるならば、

 ・サーバ(マイコンなど)
 ・無線LAN-AP (市販の無線LANMルータなど)

の機器を間に入れて、操作する機器(クライアント)から無線LAN-AP経由で有線LANでマイコン等で用意したサーバに接続し、サーバから制御対象の機器へ接続(相手側のI/Fにあわせる必要はある)するのが簡単そうです。

電源側に関しては、「出来れば」のキーワードが含まれ、「無理なら考えなくてもかまわない」とのことなので、条件は頭の片隅に置きつつ機器の有無を探ってみることにします。

すると、なんとか必要な機器は入手可能なようです。

無線LAN-APに関しては、ちょっと選択肢は狭かったとはいえ、電源電圧だけで考えればモバイルバッテリでも(たぶん)なんとかなりそうな感じのものも見つかりました。
ただ、総消費電力を計算すると、2A以上の容量の電源が必要なので3A 電源を用意することにして機材を調達します。

すべての構成機器がそろったところで、簡単に駆動テストをやってみると...無事動きましたよ。ただ、確認した範囲では、やはり2Aだと若干不安定だったのでこのまま3A電源で駆動させようということにしました。

何もやることの無い経由(回線変換)機器としてだけのサーバなのでデバッグも簡単。プログラム作成も含めて2日ほどで接続マニュアル等も作成して納品可能な状態です。めでたしめでたし。

この時点で、実際の納品日までは4日ほど時間があります。時間があると変なことを思いつくもので、ほかの業務をこなしている間に、以前、Linuxベースのルータに関係した仕事をやって関係で、(パフォーマンスに関しては不明だが)ラズベリーパイでもルータ化できるだろうことは予想できていたのですが、いまや市販のルータがかなり安価になっていることからあまりメリットが無いので調べるのを放棄していた事を思い出しました。

つまり「ラズベリーパイを無線LANルータ化してついでにサーバプログラムもそこで動かしてしまえば市販ルータは要らないんじゃないかな...」なんて思いついてしまった訳です。

もし可能なら、電源容量も半分以下で済む(=モバイルバッテリで余裕で動かせるようになる。これが一番のメリットか。)はず。
ただ、ルータ化する手順が面倒だったらやりたくないので(怠け者ですね)3時間だけ...と時間を区切って通常業務後に調べてみました。(それ以上時間をかけるほどの重要度が無かったので)すると、結構楽な様ですよ。予想外。
というわけで、30分ほど調べながら設定方法をまとめて、テスト用バラックで動作確認すると簡単に動いてしまいました。調べる時間を入れても1時間ほど。

「な~んだ、最初から機器構成をこっちにしておけばよかったねぇ。」と思いつつ、その日はここまでやったところで帰宅。

次の日に正式に機器その他を再調達する許可をもらって構成変更して再度セットアップしてしまいます。
システムイメージをコピーする時間のほうが長かった....

そんなわけで、最終的に納品時はサーバプログラムを入れ替えての「ラズパイのみ」構成で客先に提供。
バッテリ駆動も出来るということで喜ばれてます。めでたしめでたし。

と、ここで話が終わっては何も残らないので、忘れないように、設定時の手順を以下にを残すことにしましょう。(これからが本題。前おき長っ)

 

2.機器構成

あらたためて構成機器を書き出しますと、

 ・ラズベリーパイ本体(マイコンとして)
 ・USB無線LANアダプタ(これまで使っていたバッファロー製 WLI-UC-GNM2)
 ※あとは、設定時の接続用に有線LAN環境は必要でしょう。

3.設定の方向性

今回の設定の項目を整理すると、
 ・固定IPアドレスの設定(無線LAN側)
 ・DHCPサーバー(isc-dhcp-server)の構築
 ・APデーモン(hostapd)の構築
 ・無線LAN側と有線LAN(例を挙げるとwlan0とeth0)のルーティング設定
   ※当初の目的からは少々外れますがテスト環境を構築する上で都合が良いので設定します。有線LAN側からも無線LAN側からも同時に接続できるので。
ということになります。

これだけの設定できれば立派な「ルータ付の無線LANアクセスポイント」です。
調べた範囲では旧来のハードでも「そこそこ良好な」パフォーマンスらしい。(Pi2ならさらに良い?のかな?)

さて、つぎから実際の設定を行っていきましょう。

 

4.無線LAN側の固定IPアドレス化設定
インタフェース設定を書き換えましょう。

    $ sudo vi /etc/network/interfaces

でファイルを開いて、以下の項目を書き換えます。

(1)DHCPを使わないように設定を書き換える
DHCPを使わない(固定IPアドレス化する)ために、まずはDHCPを使用しないように設定を書き換えます。

iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

    の各記述はコメントアウトしてしまい、DHCPを不使用にします。 

    #iface wlan0 inet manual
    #wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
    #iface default inet dhcp 

   こんな感じです。

(2)インタフェースに固定IPアドレスを設定
固定IPアドレスを割り振るために、以下のような記述を追加します。

    iface wlan0 inet static                    <- インタフェース”wlam0”は固定アドレスに...の意
    address 192.168.x.xxx                  <- 前述インタフェースのアドレスには”192.168.x.xxx”を設定...の意
    netmask xxx.xxx.xxx.xxx             <- ネットマスクは”xxx.xxx.xxx.xxx”を設定...の意。通常は”255.255.255.0”あたりでいいのではないかな。

※ネットマスクの意味は別で調べてね。また、設定するIPアドレスは、有線LAN側と異なるセグメントになるようにするのが良いと思います。(192.168.4.1 とか192.168.8.100とか。
任意ではありますが、有線LAN側とかぶると無線側と有線側でルーティングされたとき面倒なので。

 

5.DHCPサーバー(isc-dhcp-server)の構築
DHCPサーバについてはここでは省略。知らないのなら他で調べてね。(たくさん説明サイトはあるとおもうので)ではDHCPサーバーを構築しましょう。

(1)DHCPサーバのインストール

    $ sudo apt-get install isc-dhcp-server

    の要領でサーバをインストール。 ネットに接続できる環境に問題が無ければすんなりインストールできると思います。
    インストールが出来たら、早速設定ファイルを更新しましょう。

 

(2)サーバ設定ファイルを開く

    $ sudo vi /etc/dhcp/dhcpd.conf

    でファイルを開きます。

 

(3)サーバ設定の書き換え1

    option domain-name "example.org";

     と

    option domain-name-servers ns1.example.org, ns2.example.org; 

   の記述を探してコメントアウトします。

   #option domain-name "example.org";

     と

    #option domain-name-servers ns1.example.org, ns2.example.org;

    のように書き換えればOK。行数では12行目あたりに並んでいるハズです。

 

(4)サーバ設定の書き換え2 

   #authoritative;

    の記述を探して有効化します。

    authoritative; 

   のように書き換えればOK。行数では21行目あたりにあるハズです。


(5)サーバ設定の書き換え3
    以下の記述を追加します。

    ping-check true;
    
    subnet 192.168.x.0 netmask 255.255.255.0 {         #<- サブネットは最後の0以外を運用環境に合わせましょう。通常は、wlan0に割り振ったアドレスの最後の部分を0にするだけで大丈夫なはず。(サブネットの意味は省略。調べてね。)
    option routers 192.168.x.xxx;                       #<- wlan0 に割り振ったアドレス
    option broadcast-address 192.168.x.255;             #<- wlan0 に割り振ったアドレスにあわせて設定。通常は、前出アドレスの最後の部分を255にするだけで大丈夫なはず。これも念のため意味は別でちゃんと調べてね。
    option subnet-mask xxx.xxx.xxx.xxx;               #<- wlan0 に割り振った netmask値と同じでよいかと。やはり念のため意味は別でちゃんと調べてね。
    option domain-name "local";
    option domain-name-servers 8.8.8.8,8.8.4.4;        #<- GoogleのDNSを指定してます。他がよければそちらにあわせて設定しましょう。
    default-lease-time 600;                             #<- 割り当てたアドレスの有効期限(デフォルト値)
    max-lease-time 7200;                              #<- 割り当てたアドレスの有効期限(最大値)
    range 192.168.x.101 192.168.x.254;                #<- 割り当てるアドレスの範囲。(「最小と最大」と思えば良いかと) ただし、固定で割り振ったwlan0のアドレスがこの範囲に入らないように注意!
    }             ↑                ↑
      割り当て最小(開始)IP   最大IP

 

ここまでで、一旦設定ファイルを保存しましょう。


(6)DHCPサーバのデフォルトI/Fの設定
以下の手順でDHCPサーバーのデフォルトインターフェースをwlan0に設定します。

    1)設定ファイルを開く

        $ sudo vi /etc/default/isc-dhcp-server

    2)記述の書き換え

        #INTERFACES="" 

        を 

       INTERFACES="wlan0"

        と変更する。   これでwlan0がデフォルトになります。

 

6.APデーモン(hostapd)の構築
(1)hostapdインストール
以下の要領でhostapd(無線LANアクセスポイント機能を持つソフトウェア)をインストール。 

   $ sudo apt-get install hostapd

(2)AP設定の変更

    $ sudo vi /etc/hostapd/hostapd.conf 

   で設定ファイルを開き、以下の記述を追加する。

    interface=wlan0
    ssid=home0001                         <- 実際には運用時のSSIDを設定しましょう。
    hw_mode=g
    channel=3
    wpa=2
    wpa_passphrase=xxxxxxxxx        <- 暗号化キー(パスワード)を設定
    rsn_pairwise=CCMP                    <- 暗号化方式をCCMP(規格:WPA2)に。(WEPは危ないので...)
    wpa_key_mgmt=WPA-PSK          <- 認証方式を設定。(WEPは危ないので...)    追記したら保存。    ※http://www.infraexpert.com/study/wireless13.html この辺を参考に。


(3)設定ファイルのありかの設定(ややこしい...)
hostapdに、どこに設定ファイルがあるかを設定する。(設定ファイルのありかを明示的に記述する)

    設定ファイルを次の要領で開き、

        $ sudo vi /etc/default/hostapd

    この中の、

        #DAEMON_CONF=""

    の記述を探して

        DAEMON_CONF="/etc/hostapd/hostapd.conf"        #<- 前手順で更新したAP設定ファイルを指定する

    と書き換える。(10行目あたりかと)

 

7.無線LAN側と有線LANのルーティング設定
(1)IPフォワーディングの有効化1
以下の要領で設定ファイルを開き、

    $ sudo vi /etc/sysctl.conf 

   このように書き換えて有効化します。(28行目あたり記述のコメントアウトをはずす&1設定を確認)

    # Uncomment the next line to enable packet forwarding for IPv4
    net.ipv4.ip_forward=1                        # <- この行です

 

(2)IPフォワーディングの有効化2
以下のコマンドで有効化する。

    $ sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

 

(3)IPフォワーディングの有効化3
以下の要領で、iptables(ファイアウォール)の設定を更新する。

    $ sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    $ sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
    $ sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT

 

(4)ルーティングテーブルの保存(退避)
ルーティングテーブルを/etc/iptables.ipv4.natに保存(退避)する。

    $ sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"

 

(5)起動時のルーティングテーブル復元に関する設定の追加
インタフェース設定に以下の要領で記述を追加。

    $ sudo vi /etc/network/interfaces
    pre-up iptables-restore < /etc/iptables.ipv4.nat    # <- この行を追加する

追加するのは、”インタフェースに固定IPアドレスを設定”の項で追加したIPアドレス記述の直後当たりが良いでしょう。


これで、先ほどの記述で退避させたルーティングテーブルがブート時に復元されつようになります。


(6)再起動
再起動します。

    $ sudo reboot

 

(7)アクセスポイント化
無事に再起動したら、APとしての動作を確認します。起動後に次のコマンドを投入!

    $ sudo ifconfig wlan0 192.168.xxx.xxx netmask 255.255.255.0 up
                               ↑
                           wlan0のIPアドレス

    $ sudo /etc/init.d/isc-dhcp-server start

起動できることを確認しましょう。(無線LANでSSIDが確認できて、接続までできればOKです)

 


(8)起動時に自動でAP化するために...
    DHCPサーバが起動時に自動で起動するようにサービス設定するか、起動時に上のコマンドを実行するようにしておきましょう。(やり方はここでは省略)

 

以上です。