PC関連のチラ裏

自分用(素人)

ASUSルータにarpingさせる

家族用ネットワークの中に個人用ネットワークとしてASUSルータRT-AX56Uを(ルータモードで)設置し、二重ルータで利用しているのですが、ラズパイのcactipingを打って死活状態をログ取りたいのに、pingに応答しないデバイスがあります。そういうのには仕方なくarpingでARPを送るんですが、ARPイーサネットフレームなのでルータを越えられません。(Proxy ARPとかあるらしいですが)
これまで個人用ネットワークのラズパイのwifiを家族用ネットワークにも属させてarpingしてましたが、wifiが切れることもあるので、ASUSルータにやらせることにしました。(こちらは有線なので)

ログを取るのにASUSルータにUSBメモリを挿すのですが、メモリの寿命が心配なのとアクセスランプがうざいので、cacti用の毎分の出力はtmpfsに。

ASUSルータの作業内容

USBメモリを挿して	/tmp/mnt/<USB MEMORY>/	がマウントされるのを確認。設定はルータGUIから。
GUIからゲストアクセス無効、asus-scriptディレクトリ作成、ユーザーfoo(pw:bar)を作成。

mkdir /tmp/mnt/<USB MEMORY>/asus-script/
mkdir /tmp/mnt/<USB MEMORY>/asus-script/ram

<USB MEMORY>/asus-script/に
		arping-command.sh
		crontab
		boot.sh
を用意 (UTF-8,LF)

自分用のarping-command.sh (管理しやすいデバイスにはpingで)
	ping10=`ping 192.168.あ.10 -w 1 -W 1 -q | grep '100% packet loss' >/dev/null || echo 10`
	ping14=`arping 192.168.い.14 -w 3 -c 1 | grep 'Received 0 reply' >/dev/null || echo 14`
			# arpをeth0(WAN側)以外から出したい場合は -I br0 などでインターフェース指定する
	echo "ping10:$ping10 ping14:$ping14" > /tmp/mnt/<USB MEMORY>/asus-script/ram/ping-status.txt

crontab
	* * * * * /tmp/mnt/<USB MEMORY>/asus-script/arping-command.sh

boot.sh
	#!/bin/bash
	mount -t tmpfs -o size=1M tmpfs /tmp/mnt/<USB MEMORY>/asus-script/ram
	cp /tmp/mnt/<USB MEMORY>/asus-script/crontab /var/spool/cron/crontabs/<admin username>


nvram set script_usbmount="/tmp/mnt/<USB MEMORY>/asus-script/boot.sh"
	# 1行でコマンドを入れる場合は script_usbmount='`cp /tmp/mnt/<USB MEMORY>/asus-script/crontab /var/spool/cron/crontabs/<admin username>`' のようにする
nvram commit
nvram show > nvram.txt		#確認用

2024/4/4追記:上記のnvram set script_usbmountが動かなくなったような気がする。
仕方ないのでboot.shを手動で実行。どうすれば自動化できるかは後で考える。
ファームウェアバージョン:3.0.0.4.386_51665-g8072e52 (RT-AX56U)

ラズパイの作業内容

crontab -e
	@reboot sleep 20;mount -t cifs -o username=foo,password=bar,vers=2.0 //192.168.あ.1/asus-script /適当なディレクトリ/

cacti上でチェックするping-status.txtを/適当なディレクトリ/ram/ping-status.txtに変更する

参考
http://kinomuku129.blogspot.com/2017/12/rt-ac68uddns.html https://www.securityforrealpeople.com/2015/08/cron-on-asus.html https://armadillo.atmark-techno.com/howto/mounting-tmpfs