check_dig が ADDITIONAL SECTION
自宅サーバを運用するなか、 自宅ドメインを外部でも使えるように、 mydns.jp で公開するが、 Dynamic DNS だからこそ、 自宅ドメインのアドレスが引けない時がある。
そこで、icinga を使って、外部で自宅ドメインのアドレスが引けるか 確認をしている。ただ、この中で、
DNS WARNING - 0.017 seconds response time (Server not found in ANSWER SECTION)
のエラーが1日に1回程度不規則に発生する。 DNS の応答時間の問題 かと思っていたが、 エラーが出ている時の方が、応答時間が短い。 Webで、"Server not found in ANSWER SECTION"をググると、check_dig が、 "ANSWER SECTION"の文字列を、大文字小文字区別で比較して、小文字で情報が帰ってくると アドレスが取れないという記事が見つかった。 しかし、ある程度古い記事だし、対応はとられていそう。 しかしめったに発生しない状況の時に、dig 出力が確認できて、 ようやく原因が見えてきた。 check_dig が呼び出している dig の応答が、問題みたい。
$ dig @dns1.ttn.ne.jp tsaitoh.net : ;; ANSWER SECTION: tsaitoh.NET. 278 IN A xxx.xxx.xxx.xxx
と表示されるのが普通だけど、時々、
$ dig @dns1.ttn.ne.jp tsaitoh.net : ;; ADDTIONAL SECTION: tsaitoh.NET. 278 IN A xxx.xxx.xxx.xxx
といったように、ADDITIONAL SECTION でアドレスが帰ってくる。 この現象は、Google DNS (@8.8.8.8) では発生しない。
webrootの変更
自宅サーバのHTMLデータの置き場所は、/var/www を使ってきたけど、 CMSの入れ替えを検討する中で、 最近のシステムの流儀の /var/www/html に変更したいので、ファイルを移動。 設定ファイルや、 様々なプログラムで、/var/www を参照するように なっていたので、チョロチョロと変更する。
Webデータの管理用 script なども、/var/www-support に入れていた けど、これも /var/www/support に移動。 でもプログラムの修正が 面倒なので、シンボリックリンクを貼っておく。
vpnserver問題解決
SoftEtherのVPNサーバをインストールしたけど、 翌日にはうまく動かなくなり、原因を探っていたのだけど、 原因は、ケーブルテレビの光接続のルータだったみたい。 ALG設定で、IPsec,L2TP,PPTPの設定を外したら、動くようになった。
vpnserverの動作確認
vpnserverが動き出したのはいいけど、ちゃんと動いているのか、VPN接続があるのかを 把握したいので、icingaでモニタリングするようにしてみた。
(( check_vpnserver )) #!/bin/bash VPNCMD=/usr/local/vpnserver/vpncmd PORT=127.0.0.1:xxxx # VPNサーバに接続するポートを登録 HUB=VPN NAME=VPN # 0:OK, 1:Warning, 2:Critical, 3:Unknown if [ -x $VPNCMD ]; then # vpncmdで状態を読み込む ANS=`$VPNCMD $PORT /server /hub:$HUB /cmd:StatusGet` if [ "$?" -ne 0 ]; then # VPNサーバが動いていない echo "$NAME Critical - No server" exit 2 else ANS=`echo "$ANS" | /bin/grep "セッション数 (クライアント)" | /usr/bin/cut "-d|" -f 2` if [ -z "$ANS" ]; then # 接続無し echo "$NAME OK - Server waiting connection" exit 0 elif [ "$ANS" -gt 0 ]; then # 接続あり echo "$NAME Warning - $ANS clients" exit 1 fi fi else # vpncmd がインストールされていない echo "$NAME Unknown - No vpncmd" exit 3 fi
SoftEther VPNを導入
iOS10,macOS Sierraを導入すると、PPTP-VPNが使えなくなるようで、 Buffalo のVPN機能が使えなくなる。 ということで、Mac環境に macOS Sierra の導入ができなかった。
そこで、strongswan VPN サーバを導入しようと、色々試していたけど、失敗。 であればということで、SoftEther VPN(オープンソース版)を入れてみた。 色々試行錯誤のなか、ようやく動くようになった。

さあ、今から macOS Sierraをインストールするぞ。
職場のメインマシンには、ScanSnap のスキャナがあるけど、 macOS Sierraでトラブル報告があるので、 まずは、MacBook Air で試してみよう。
ルータのWeb設定だけハングアップ
自宅サーバの警告でてたけど、 ルータのWeb設定のlogin画面が機能していない。 そのくせ、パケットは流れてる。
ルータ故障の前兆かもしれないので、メモ。
うーむ、Webハングアップが多発するな。
2016-10/02,23:13 2016-10/02,17:31 2016-10/02,06:44
症状の出始めからすると、IPv6パススルーに関係するのかな。 ということで、IPv6パススルーを切ってみる。
systemd.networkの設定
職場から自宅サーバを触っていて、reboot が必要そうなので、 再起動をかけたら、サーバが復帰せずびびった。 Debian が systemd に移行したけど、相変わらず /etc/init.d を使って作業をしていたけど、 ネットワークの設定の方法が変わったのね。 /etc/network/interfaces のファイルだけでメンテナンスしてたけど、 /etc/systemd/network/*.network で設定するのね。
これらの設定を移行してなかったので、ネットワークが設定されず、 DHCPが動かない(自宅内のネットワーク機器全滅)。 同じく Web , mail , ….総崩れ。(x_x;;
systemdのネットワーク設定
(( /etc/systemd/network/eth0.network )) [Match] Name=eth0 [Network] Address=192.168.XX.XX/24 Gateway=192.168.XX.YY
設定の有効化
# systemctl enable systemd-networkd
systemsのresolve設定
systemdの設定ファイルを修正
(( /etc/systemd/resolved.conf )) [Resolve] DNS=192.168.XX.YY Domains=example.jp
設定を有効にする。
# mkdir /run/systemd/resolv # cp /etc/resolv.conf /run/systemd/resolv/resolv.conf # ln -sf /run/systemd/resolv/resolv.conf /etc/resolv.conf # systemctl enable systemd-resolved.service # systemctl restart systemd-resolved.service
PS4の動作状況をicingaで表示
HomeKit互換のhomebridgeを使っていて、PS4 の動作確認で ps4-waker というソフト が便利なことがわかったので、ちょいと別応用。
サーバ監視ソフトの icinga で使えるように、nagios 用の check_ps4 を作ってみた。 "ps4-waker search" の出力の statusLine が 200(起動中)/620(スタンバイ) で動作確認ができるけど、 running-app-name も出力に入れれば、なんのゲームが動いているかも出力できる。
#!/bin/bash PS4WAKER="/usr/local/bin/ps4-waker" if [ -x $PS4WAKER ]; then ans=`$PS4WAKER search -t 50 2>/dev/null \ | /bin/sed -n "s/^ \(statusLine\|'running-app-name'\): '\(.*\)'.*$/\2/p" \ | /usr/bin/paste - -` case "$ans" in 200* ) # Powered ON echo "$ans" exit 0 ;; 620* ) # Standby echo "$ans" exit 0 ;; "" ) # No response echo "0 Powerd off" exit 2 ;; * ) # Another status echo "$ans" exit 2 ;; esac else exit 1 fi
homebridgeで温湿度も取れる
homebridgeが面白い。plugin 揃ってるので、 部屋の温度湿度をとれるようにしてみた。 データは、サーバに接続している温湿度センサーの usbrh 。
usbrh のデータを、プラグイン homebridge-httptemperaturehumidity で 読み取れるようにしてみた。
<?php header( "Content-Type: application/json; charset=utf-8" ) ; $data = shell_exec( "/usr/local/bin/usbrh" ) ; if ( preg_match( "/^([\d\.]+)\s([\d\.]+)$/" , $data , $match ) ) { print "{\n\"temperature\": ".$match[1].",\n\"humidity\": ".$match[2]."\n}\n" ; } ?>
homebridgeで家電制御
iOS 10 で HomeKit のアイコン表示されたし、Siriから家庭内の家電制御ができないかと試してみた。 HomeKit 互換でフリーの実装の homebridge があるみたいなので、 インストールし、設定を行った。
homebridge-cmd を使うと、電源のON/OFFの制御なら、コマンドラインで呼び出せる処理を 起動できる。
{ "bridge": { "name": "perrine", # ホスト名? "username": "CC:22:3D:E3:CE:30", # 特になんでもいい。 "port": 51826, "pin": "031-45-154" }, "description": "HomeControl by Tira-2", "accessories": [ { "accessory": "CMD", "name": "テレビ", "on_cmd": "/usr/bin/sg dialout -c \"/usr/local/bin/Tira-2.py --remote=regza --transmit=power\"", "off_cmd": "/usr/bin/sg dialout -c \"/usr/local/bin/Tira-2.py --remote=regza --transmit=power\"" }, { "accessory": "CMD", "name": "チューナー", "on_cmd": "/usr/bin/sg dialout -c \"/usr/local/bin/Tira-2.py --remote=catvstb --transmit=power\"", "off_cmd": "/usr/bin/sg dialout -c \"/usr/local/bin/Tira-2.py --remote=catvstb --transmit=power\"" } ] }
参考記事だと、制御には insteon+ を使うとの記事が多かったけど、 homebridge を起動して制御させようとするが、機器を認識してくれない。
username とかを色々と試してみたけどダメだったけど、insteon+ を使わずに、 基本の HomeKit アプリを起動したら、あっさり認識。
|
|