La bonne nouvelle, c'est que tu viens de finir le test de ton script.
Moi qui trouvais à la lecture de ton script que ton seuil d'alerte à TH=50 était élevé (j'avais tort).
La mauvaise nouvelle, c'est l'impact sur les performances pour un certain nombre de clients, dont toi.
Le TH à 50 paquets par secondes, aucun problème quand on sait que le spam est de plus de 3 000 paquets par seconde…
Mon alerte IFTTT a aussi bien fonctionné, reçu une notification dès que le spam a commencé…
Pour moi personnellement, l'impact est quasi invisible. Sans monitoring, je ne le remarquerais même pas…
Mon routeur encaisse bien surtout avec les règles qu'il faut :
On voit bien le softirq augmenter la charge cpu de quelques unités, mais ça reste peu significatif pour les performances de mon routeur.
Celui qui en prend le plus dans la poire (sans en affecter son bon fonctionnement), c'est l'ONT :
Maintenant, c'est un réel problème pour de très nombreux clients, car les K-Box (qui ont souvent déjà des problèmes de syncro) se voient saturées… Celles qui fuient laissent passer ce spam dans le LAN… Et les routeurs perso peu puissants ou mal configurés peuvent aussi souffrir dans leur performances…
J'imagine aussi que des ONT fatigués ou en surchauffe peuvent perdre des paquets sous la charge continue.
J'en ai profité pour améliorer mon script en
daemon, qui mesure en continu (sauf le spam DHCPv6) et qui est maintenant en deux parties, et le résultat est impec (la première version n'était pas propre lors d'un spam DHCPv6 avec des pertes sur les autres mesures) :
#!/bin/sh
RS=60
NM='knet-covage-mon'
PID=/var/run/$NM.pid
PP=/opt/bolemo/scripts/$NM-pp.sh
PCAP=/tmp/$NM%H%M%S.pcap
start() {
if [ -e $PID ] && kill -0 "$(cat $PID)" 2>/dev/null; then
echo 'Already started';
exit
else echo 'Starting'
fi
}
stop() {
if [ -e $PID ] && kill -0 "$(cat $PID)" 2>/dev/null; then
kill -15 "$(cat $PID)"
rm /tmp/$NM*.pcap
rm $PID
echo 'Stopped'
else echo 'Already stopped'
fi
}
case "$1" in
start) start;;
stop) stop; exit;;
restart) stop; start;;
*) echo 'Use start|stop|restart'; exit;;
esac
exec >/dev/null 2>&1
/usr/sbin/tcpdump -i ethwan -Q in -s 46 -K -G $RS -w $PCAP -z $PP 'not (ether src MAC DE LA PASSERELLE COVAGE) and (ether dst 01:00:5e:00:00:fb or net 169.254.0.0/16)' &
echo $! >$PID
Et partie 2 (appelée par tcpdump à la rotation du cap) :
#!/bin/sh
TMP=/tmp/knet-covage-mon.tmp
LBL='knetmon'
DATE="$(/bin/date +%s)"
{
/usr/sbin/tcpdump -r $1 -s 46 -qKNtnne | \
/usr/bin/awk '$3=="01:00:5e:00:00:fb,"{ a["mac="$1" pb=3i"]++; next } index($0," 169.254."){ a["mac="$1" pb=1i"]++ } END { for (i in a) print "'$LBL',"i",ct="a[i]"i '$DATE'" }'
} >$TMP
# spam DHCPv6
TO=1
TH=50
{
/opt/bin/timeout --foreground $TO /usr/sbin/tcpdump -i ethwan -Q in -s 62 -qKNtnne 'udp port 547 and multicast' | \
/usr/bin/awk "\$1{a[\$1]++} END { for (i in a) { if (a[i]<$TH) continue; print \"$LBL,mac=\"i\" pb=2i $DATE\" } }"
} >> $TMP
echo "$LBL,mac=Moniteur pb=0i $DATE" >>$TMP
cat $TMP | /usr/bin/curl -i -XPOST 'http://MON INFLUXDB/write?db=MA BDD&precision=s' --data-binary @-
rm $TMP
rm $1
Dommage que mon outil soit pas consulté…
Aujourd'hui, une seule visite, d'un robot Amazon en plus : "GET /robots.txt HTTP/1.1" depuis 184.72.115.35
On verra à quelle vitesse cela sera résolu.