ラズベリーパイ4

自宅サーバの構築




2021年
10月9日
TK80/BSのシンセシステムを復活/拡張したい〜その65から分岐しました。
引っ越しに合わせて、自宅サーバをラズベリーパイ4にする予定です。秋月でラズベリーパイ4(8GB)ヒートシンクを購入しました。手持ちのSDにFreeBSD13を書き込んで持って来ました。


早速、ヒートシンクを組み立てます。サーバ用途なので、ファンレスを選びました。


こちらはアマゾンで購入の1GbpsUSBイーサネット変換アダプタです。


ラズベリーパイ4にアパートで書き込んできたFreeBSD13のSDを入れてブートさせてみましたが、残念ながらブートしませんでした。赤枠のブートローダのバージョンが2020/3/19版で低く、未対応でした。


10月11日
アパート作業です。ラズベリーパイOSを使って、システムごと、ブートローダバージョンアップすると、2021/4/29版になり、FreeBSD13がブートしました。USBイーサアダプタのue0も認識していることを確認しました。gennet0は内蔵イーサです。


10月13日
アパート作業です。ローダ機能によりUSBブートも可能とのことで、普通の8GのUSBメモリにFreeBSD13を入れて確認したところ、問題無くブートしました。一応、ラズベリーパイOSでブート順をUSB優先にしておきました。USB接続のSDDにシステム全体を入れれば、/varなどのテンポラリのパーティションもそのままで問題なさそうです。



11月6日
ガレージにラズベリーパイ4を持ってきました、早速、光回線へ接続して動作を確認します。名前解決、wgetによるファイル取得の動作良好です。


続いて、ipfwによるフィルタ機能を確認します。ラズベリーパイ4からは外部のドルフィンへpingが通りますが、ローカルのPCからはルータのフィルタを介して外部へpingが通りません


pingのICMPを許可するルールにログ出力を追加します。


ipfwのshowコマンドでルールパケット数を表示します。ICMPのパケットは通過しています。


ログを確認すると正しく、LANWANのインターフェース間をパケットが通っていることが確認できます。試しにipfwのタイプをOPENにして確認しても同様にpingは通りませんでした。フィルタ設定の問題ではなさそうです。



11月8日
アパート作業です。ラズベリーパイ4を持って来ました。アパートのadsl回線に接続して確認してみます。pppの設定をadslに変更してipfw動作確認を行います。ブラウザで表示した時の
DNS(53番)の取得でログが取れるように設定します。PCサーバと同じ設定にして比較します。


下はラズベリーパイ4のログです。ログでは正しく通っていますが、ブラウザでページは表示されませんでした。ガレージの時と同様の不具合です。


こちらは既存のPCサーバのログです。ログでは正しく通って、ブラウザでもページが正常に表示されました。



11月9日
アパート作業です。昨日の続きの不具合解析です。PCにWinsharkをインストールしてクライアント側でパケットをキャプチャして違いを比較してみます。初めに既存のPCサーバの時です。コマンドプロンプトからnslookupでドルフィンのアドレスを表示させます。稼働中のPCサーバでは当然ですが、正しくwww.din.or.jpのアドレスが表示されます。s−ns1.din.or.jpはDNSの名前、210.135.90.1はresolve.confに記述されているDNSのアドレスです。


上記のコマンドを実行させた時のWinsharkのキャプチャです。問い合わせと、応答が対になって正常動作しています。


上記のコマンドを実行させた時のipfwログです。問い合わせのパケットがLANインターフェースでPCからドルフィンへ、WANインターフェースPCからドルフィンへ通過しています。応答のパケットがANインターフェースドルフィンからPCへ、LANインターフェースドルフィンからPCへ通過しています。2回目のポート番号異なる番号が使われています。


続いてラズベリーパイ4サーバの時です。タイムアウトしています。


上記のコマンドを実行させた時のinsharkのキャプチャです。問い合わせのみで、応答がありません。


上記のコマンドを実行させた時のipfwログです。問い合わせのパケットがLANインターフェースでPCからドルフィンへ、WANインターフェースPCからドルフィンへ通過しています。応答のパケットがANインターフェースドルフィンからPCへ、LANインターフェースドルフィンからPCへ通過しています。ipfwのログでは正常動作しているように見えます。ただ、PCサーバの時と異なり、2回目も同じポート番号が使われています。不具合の原因は青緑枠のパケットがLAN側のクライアントPCへ到達していないためと思われます。



11月10日
アパート作業です。昨日の続きの不具合解析です。初めに不具合のラズベリーパイ4です。サーバ側でtcpdumpを使ってパケットをキャプチャしてみます。下のコマンドで双方のホストアドレスポート番号53(DNS)の時にキャプチャし、結果をファイルに書き込みます。


上側はipfwログです。昨日と同様にドルフィンのDNSとローカルのPC間で相互にパケットが通過しています。下はtcpdumpの結果です。tcpdumpの方はローカルのPCからドルフィンのDNSへの一方通行になっています。問い合わせは送っていますが、応答はありません。これは昨日のPCのWinsharkの結果と一致します。ここで分かったことはipfwログtcpdumpの結果が一致していないことです。ローカルPCが外に出られない原因はサーバからローカルPCへパケットが出ていないためと思われます。


続いて、既存のPCサーバの時です。コマンドはラズベリーパイ4と同じです。ipfwのログではドルフィンのDNSとローカルのPC間で相互にパケットが通過しています。


下はtcpdumpの結果です。ドルフィンのDNSとローカルのPC間で相互にパケットが通過しています。正常動作しているPCサーバなので当然です。


PCサーバとラズベリーパイ4のipfw設定比較してみます。インターフェース名が変更されているだけで、同じ設定です。fxpue0に、vr0genet0に変更されています。新しいipfwのshowコマンドではポートにdst−port表示が無くなっています。


ラズベリーパイ4netstatコマンドを実行してみます。なぜか、LAN側の192.168.0.1175.100.211.163のインターフェースがなぜか、lo0になっています。lo0はループバッグインターフェースなので、内部でループするだけで外部に出ないです。ipfwのログでパケットが通過しているのに、実際のLAN側に出ないのはこのためかもしれません。



続いて、PCサーバnetstatコマンドを実行してみます。LAN側の192.168.0.xxxvr0で正常です。



11月16日
アパートのADSL環境で、ラズベリーパイ2のFreeBSD11.3で同じ設定のルータ機能を確認してみます。動作良好です。


FreeBSD11.3netstatコマンドを実行してみます。FreeBSD13と同様にlo0が複数出てきます。192.168.0.xxxがlo0になっているのが不具合の原因では無いです。


ラズベリーパイ4のイーサインターフェースを入れ替えてみます。オンボードのgenet0をpppのtun0に、LAN側を外付けのue0にした時のppp.logです。接続後、直ぐに切れています。その後、30秒おいて、繰り返しで接続できません


イーサを元に戻します。pppのtun0を外付けue0に、LAN側をオンボードのgenet0してppp.log確認します。接続良好です。


どうも、オンボードのgenet0が悪そうなので、同じバッファローの100Mbps外付けイーサで動作確認します。これは1Gbpsと同じコントローラ系なのでue1として認識されます。このue1をLAN側にして、設定ファイルを修正します。これでLAN側から外に出られるようになり、ルータ機能が良好になりました。全然動かなければ直ぐに分かるのですが、LAN側にpingが通ったり、一見動いているように見えるので、時間がかかりました。とりあえず、不具合の原因が判明して良かったです。もう1つ1GbpsUSBアダプタを買えば、当面は運用できそうです。後はApachewebサーバの設定です。



11月20日
今週末は月曜日を有給にして4連休にしました。アマゾンに発注しておいた、以前に購入した物と同じ、1GbpsUSBイーサネット変換アダプタが届いていました。早速、動作確認を行いました。ipfwによるルータ機能は良好です。


11月21日
サーバ用に用意しておいたに乗せました。WEBサーバの設定はApacheのバージョンが2.2から2.4ヘ上がったり、cgiperlのバージョン変更で設定がけっこう大変でした。アドレスの直打ちでWEBサーバが正しく動作していることを確認しました。


11月23日
イーサなどのインジケータ見にくいので、機器をアクリル板タイラップで固定して立てて使うようにします。


壁に木ネジで固定して壁掛けタイプにしました。ケーブル類は後でまとめておきます。



11月28日
この週末は日曜日のみの作業です。ラズベリーパイ4サーバの電流を計ってみました。平均すると1.2〜1.3A位を表示します。電力は約6.5Wです。


SSDのアクセスインジケータの輝度が高すぎなので、制限抵抗を大きくしました。330オームから2Kオームに変更しました。高輝度LEDに何も考えず、330オームを使うと明すぎです。



12月11日
大きくアマゾンで購入のUSBハブとBLEの実験に使うドングル2種を購入しました。


USBバブを介して、ドングルを挿入した時のメッセージを確認しておきます。双方ともubtドライバが起動していることを確認しました。BCM20702CSR8510です。



12月25日
アパートの旧サーバを停止したので、WiFiルータをアパートから移動しました。これでスマートフォンもWiFi経由で使えます。


新サーバ用のソーラUPSを作製します。ブロック図を作りました。理想ダイオードで電源をORして、ソーラとACアダプタを切り替えます。電源が供給されなくなるの条件は停電でかつバッテリが無くなった時です。サーバからはUSBを介したSPI通信で各電圧電流を測定します。


秋月で購入のソーラUPSの部品が来ました。電流センサ理想ダイオード、パネル表示電圧計、片電源オペアンプです。


12月28日

ソーラUPSの作製を開始します。電流センサ理想ダイオード、以前に購入したあったDC−DC電源を基板に載せて、裏側にGNDと電源を配線し、基本動作を確認しました。電圧の高い方から電源が供給され、シームレスに切り替わることを確認しました。











back


line