見出し画像

TWSNMP FC:Linux環境のpingを改善

浦和レッズ引き分け!PKを得てで勝ったと思って油断した瞬間にPKを与えて同点。油断大敵でした。
今朝は5時半からマニュアル作成しました。ちょっとレポートのページは込み入っているので1つだけ書きました。

その後、前から気になっていたLinux環境のpingの問題を調べました。Docker版もLinux環境で動作するので影響のある問題でした。

のマニュアルで注意点として書いているLinux環境で

$sudo sysctl -w net.ipv4.ping_group_range="0 65535"

のコマンドでLinuxの設定を変える必要があるという問題です。
この設定を忘れると自動発見で何もノードを見つかられずpingのポーリングが何にも反応しないという状態になります。デバッグログにはエラーがでていますが気づきにくい状態になります。
この原因はMac OSとLinuxの場合、pingのためのソケットにudpを使っていることです。Windowはicmpタイプを使っています。参考にしたライブラリがこのようになっていたので同じように作っていました。icmpタイプを使うと管理者権限でプログラムを実行する必要あるようなので、この仕様になっていると思います。
そこで、Linuxの場合もicmpに変えてみると設定を変えなくても動作するようになりました。管理者権限で実行しています。
単にicmpに変えてもよいのですが、もしかすると今と同じ設定で使いたい人もいるかもしれないので、起動パラメータを増やすことにしました。

-ping icmp|udp

指定しない場合、Mac OSの場合はudpでこれまでと同じ動作にします。
WindowsとLinuxはicmpにしました。Linuxはこれまでと変わります。
もし、これまでと同じ動作をしたければ、パラメータで-ping udpを指定してください。
この修正は、

です。

これでLinuxやDocker環境で使う場合のハードルが下がるように思います。

マニュアルを書いている時などの見つけた課題は、かなり解決できたと思います。

画像1

来週でマニュアルを一通り書いたらv1.5.0としてリリースしようと思います。

明日に続く


開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。