WiFi中継器の先につながる有線デバイス
WiFiルータの更新で、WEX-733Dを再利用した。
WiFi-router – – – WEX733D=(ether)-REGZA+Raspberry-Pi
当初、中継器WEX 733D の先につながる TV,ラズパイが最初は繋がっていたけど、接続が切れる。確認をしてみると、ルータ配下から中継器の先のデバイスは、どれも中継器のMACアドレスに見える。このため、我が家でのDHCPでMACアドレスに紐づけた固定アドレスを割り振る方式では、中継器でアドレスがすり替えられているために、MACアドレスが DHCP サーバ側で正しく把握できない。このため、正しくIPアドレスが取れない。
しかたがないので、中継器の先の有線デバイスは固定IPアドレスを割り振る。中継器をWiFiアダプターとして使う場合、DHCPで動的アドレスを振ったとしても、IPアドレスは変な状態になるだろうなぁ。固定IPアドレスにしないかぎりは、使い物にならないだろうなぁ。
WEX733DのMACアドレスが変化
メッシュネットワークも一通り設定が終わり、安定して使えるように…と思ったら、1F居間と2FをつなぐWEX733Dから返答がない。(icingaを使って主要なデバイスの生死監視をしている)
確かめてみると、親機に設定した際のMACアドレスと、違ったMACアドレスになっている。このため、こちらが想定しているWEX733DのIPアドレスと異なるため、ping などが取れなかった。
WEX733D-前 60:xx:xx:29:xx:xx WEX733D-後 62:xx:xx:28:xx:xx
この症状は、他の Buffalo のルータでも確認していて、WZR-1166DHP2では、
WZR1166DHP2 B0:xx:xx:xx:xx:xx WZR1166DHP2 B2:xx:xx:xx:xx:xx
のような値が取れていた。今回 WEX733D には、DHCP の fixed-address の設定を使っているため、これを正しく登録しておかないと、IPアドレスが変化してしまう。
今回のMACアドレスを確認すると、第1オクテットのBit1は、グローバルアドレスとローカルアドレスを区別するビットみたい。
そこで、60…と62…では、それぞれ違うIPアドレスを対応づけて、死活管理で以下のように設定した。
確認用の script では、2つの check_ping を || で連結し、本来のIPアドレスで返答がなければ、予備のIPアドレスの返答を確認することとした。
define command{
command_name check_host_alive_multi
command_line /usr/lib/nagios/plugins/check_ping
-H '$HOSTADDRESS$' -w 5000,100% -c 5000,100% -p 1
|| /usr/lib/nagios/plugins/check_ping
-H '$ARG1$' -w 5000,100% -c 5000,100% -p 1
}
define host{
use generic-host
host_name wex733d
alias wex733d
address 192.168.xx.xx
check_command check_host_alive_multi!192.168.xx.yy
}
Windows Terminal preview 版
Microsoft による Windows Terminal が Microsoft Store で公開された。
さっそく立ち上げてみたけど、PowerShell にて端末が起動した。早速 ssh にて Linux に login して emacs を立ち上げてみる。以前のターミナルだと、漢字幅などで表示が崩れたけど、このバージョンはさすがに問題なし….
と思ったけど、M-x のつもりで、ESC→x と入力すると、ESC-M-x と表示される。普通に、alt-x と入力すれば M-x になるんだけど、レガシーなヤツは ESC-x が染みついている。
TH-D74でaprxを動かす
以前、TH-D72 で aprx を動かしてみたけど、APRSとD-STARを兼ねた TH-D74 で運用をためしてみた。
initstring に何を設定すべきか悩んだけど、TH-D74はコマンドモードとKISSモードを切り替えながらという使い方はできない?みたいなので、設定は不要みたい。
# /etc/aprx.conf
mycall JR9PVZ-10
myloc lat 3553.48N lon 13613.33E
<aprsis>
passcode 22202
server rotate.aprs2.net
</aprsis>
<logging>
pidfile /var/run/aprx.pid
rflog /var/log/aprx/aprx-rf.log
aprxlog /var/log/aprx/aprx.log
dprslog /var/log/aprx/dprs.log
</logging>
<interface>
serial-device /dev/ttyACM0 9600 8n1 KISS
# initstring "" THD74は基本KISSモードなので初期化無し
alias RELAY,WIDE,TRACE
callsign $mycall # callsign defaults to $mycall
tx-ok true # transmitter enable defaults to false
telem-to-is false # set to 'false' to disable
</interface>
<beacon>
beaconmode both
cycle-size 60m
beacon symbol "I#" $myloc comment "Tx-iGate + Digipeater"
</beacon>
<digipeater>
transmitter $mycall
<source>
source $mycall
</source>
</digipeater>
TH-D74の設定
| [F]-[LIST],[F]-[LIST] | KISSモード | |
| — | パケットスピード | 9600 bps |
| — | 無線周波数 | 144.640 MHz |
後で、TH-D72 で動作検証するかもしれないので、設定ファイルを2つ別に分けて切り替える設定を追加。
iphoneの検知難しい
大学でアパート住まいの子供が、帰っているのか確認するために、LINE beacon を置いて検知を試したけど、bluetooth を切って既読スルーなヤツなので、ほとんど検知することができない。
そこで、アパートでは無線LANルータを使ってるし Raspberry-Pi で、arpalert を使えば簡単に検知できるだろうと、実験中。でも iPhone はセキュリティ対策なのか、 arp の返答は必要最小限なので同じサブネットとはいえ、そのままでは通信の必要の無い raspberry-pi には、ARP 情報が送られてこない。また ping には返答しないようで、単純に ping で確認も困難。ということで単純な arpalert では検知が難しいなぁ。
定時処理で、”arping -c 1 -I wlan0 IPHONEのIPアドレス” を実行させて、強制的に ARP を送ってもらうか…
cec-clientのデバイス番号とアドレス番号
自宅では、テレビやケーブルテレビチューナーやレコーダを赤外線リモコンで制御できるようにしているが、電源はトグル動作でON→OFFかOFF→ONという制御ができない。そこで、HDMI端子経由のチャンネル制御を行っている。
この際に、デバイス番号とcecのアドレス番号を使うが、デバイス番号が時々変化している。
しかたがないので、cecのscan処理でデバイス番号とアドレス番号の対応情報を保存するようにしてみた。
#!/usr/bin/perl
my $cec = "/usr/bin/cec-client -d 1 -s" ;
open( my $fd , "/bin/echo 'scan' | $cec |" )
|| die( "Can't open $cec\n" ) ;
open( my $ft , "> /home/xxxxxxxx/lib/cec-table.sh" )
|| die( "Can't open cec-table.sh\n" ) ;
my $device = "" ;
my $dev_str = "" ;
my $address = "" ;
my $osd_str = "" ;
print $ft "#!/bin/bash\n" ;
while( my $line = <$fd> ) {
if ( $line =~ /^device\s+#(\d+):\s+(.*?)$/ ) {
$device = $1 ;
$dev_str = $2 ;
} elsif ( $line =~ /^address:\s+(\d+)\.0\.0\.0$/ ) {
$address = $1 ;
} elsif ( $line =~ /^osd\s+string:\s+(.*?)$/ ) {
$osd_str = $1 ;
print $ft "DEV[$address]=$device\n" ;
print $ft "OSD[$address]=\"$osd_str\"\n" ;
}
}
close( $fd ) ;
close( $ft ) ;
stretchで起動しづらい
自宅で色々と動いている Raspberry-Pi 。OS更新はまめにやっているけど、外気温測定に使っているのが Jessie のままだったのに気づく。stretch に上げたけど、どうも起動に失敗する。更新に失敗したかと思ったけど、キーボードをつなぐために USB WiFi を抜いて起動すると、普通に動いている。
今までも、多少 boot が不安定なのはあったけど、stretch になって起動シーケンスが最適化されたのか、WiFi 有効化のタイミングが早まり、ブート時の電力不足が発生していると思われる。
ひとまず、改造面倒だし USB WiFi を抜いて、boot がそれなりに進んでから USB を指して対応。
アマチュア無線: aprx を動かしてみた
知り合いより譲り受けた、TH-D72を活用したいということで、APRS の iGate 局を動かしてみた。
我が家は、ロケーション的に福井市にあるリピータにも、ハンディ機では接続できず、無線機の位置情報などをインターネットに伝えることができる APRS や、インターネットを経由した通話ができる D-STAR などを、あまり活用することが難しい。
aprx を動かす
そこで、TH-D72 を APRS の iGate 局として動かすために、aprx をインストール。
以下のように設定したけど、まずい所がないか要チェックだな。ひとまず、データ流しまくりでaprsインターネット側には、迷惑をかけていないはず。ハンディ機なので、どのあたりまで電波が飛んでいるのか、チェックしてみよう。
$ sudo aptitude install aprx $ sudo vi /etc/aprx.conf $ sudo systemctl enable aprx.service $ sudo systemctl start aprx.service
# /etc/aprx.conf
mycall JR9PVZ-10
myloc lat 3553.48N lon 13613.33E
<aprsis>
passcode 22202
server rotate.aprs2.net
</aprsis>
<logging>
pidfile /var/run/aprx.pid
rflog /var/log/aprx/aprx-rf.log
aprxlog /var/log/aprx/aprx.log
dprslog /var/log/aprx/dprs.log
</logging>
<interface>
serial-device /dev/ttyUSB1 9600 8n1 KISS
initstring "HBAUD 9600\x0dKISS ON\x0dRESTART\x0d"
alias RELAY,WIDE,TRACE
callsign $mycall # callsign defaults to $mycall
tx-ok true # transmitter enable defaults to false
telem-to-is false # set to 'false' to disable
</interface>
<beacon>
beaconmode both
cycle-size 60m
beacon symbol "I#" $myloc comment "Tx-iGate + Digipeater"
</beacon>
<digipeater>
transmitter $mycall
<source>
source $mycall
</source>
</digipeater>
TH-D72の設定
| [TNC]-[TNC] | KISSモード | |
| [メニュー]-310 | データバンド | A-BAND |
| [メニュー]-311 | パケットスピード | 9600 bps |
| — | 無線周波数 | 144.640 MHz |
Postieでimap-ssl接続に失敗
職場のサーバでWordPressを動かす中、簡単な画像付きメールでのポストをするために、plugin の Postie を使っている。
状況確認
当初は、imap-ssl で動かしていたのだが、接続に失敗するようになった。
Postie (v 1.9.32) getemails: There was an error connecting to the server
メールサーバが、自宅メールサーバなので、FireWall 関連の設定のミスが考えられたが、nagios-plugins を入れて実験すると、以下のような結果なので、接続はできている。
$ /usr/lib/nagios/plugins/check_imap -p 993 -H xxxx -S IMAP OK - 0.146 second response time on xxxx port 993 [* OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ AUTH=PLAIN] Dovecot (Debian) ready.] |time=0.145649s;;;0.000000;10.000000
問題点
原因を確認ということで、syslog を確認すると、以下のように SSL のハンドシェークでエラーが出ている。
Mar 24 00:50:39 xxxx dovecot: imap-login: Disconnected (no auth attempts in 0 secs): user=<>, rip=xx.xx.xx.xx, lip=192.168.xx.xx, TLS handshaking: SSL_accept() failed: error:14094418:SSL routines:ssl3_read_bytes:tlsv1 alert unknown ca: SSL alert number 48, session=<xxxxxx>
暫定の解決法
しかたがないので、dovecot の ssl の設定を変更、TLSv1.2 になっていた部分を TLSv1 に修正
(( /etc/dovecot/conf.d/10-ssl.conf )) - ssl_min_protocol = TLSv1.2 + ssl_min_protocol = TLSv1
”TLS 1.0にはBEASTやPOODLEといった脆弱性があり、一定の条件下であれば暗号解読が可能であると言われています。”で、2018年6月30日以降は、TLSv1.0 は通常用途では勧められないとのことなので、多少心配ではあるけど…。
通常使っているメールソフトは、TLSv1.0 を使わないだろうし、実質このPostieだけの利用だろうし。










