もちろん ping コマンドなら CAP_NET_RAW の capability が設定されてるので打てるんですが、そうでないケース、例えば prometheus-smokeping-prober をそのまま使っていたりすると打てません。smokeping に capability が設定されていないのも謎ではありますが…。

なんでそういう動作になるのかというと、22.04 では /usr/lib/sysctl.d/50-default.conf に以下の記述があるのに対し、24.04 にはないからです。

# ping(8) without CAP_NET_ADMIN and CAP_NET_RAW
# The upper limit is set to 2^31-1. Values greater than that get rejected by
# the kernel because of this definition in linux/include/net/ping.h:
#   #define GID_T_MAX (((gid_t)~0U) >> 1)
# That's not so bad because values between 2^31 and 2^32-1 are reserved on
# systemd-based systems anyway: https://systemd.io/UIDS-GIDS#summary
-net.ipv4.ping_group_range = 0 2147483647

なくなった理由は謎ですが、追加すれば以前の動作になります。

# echo '-net.ipv4.ping_group_range = 0 2147483647' > /etc/sysctl.d/99-local.conf
# systemctl restart systemd-sysctl
Trackback

no comment untill now

Add your comment now