Blutschlumpf
Fleet Admiral
- Registriert
- März 2001
- Beiträge
- 20.050
Hallo,
ich versuche gerade die Funktionsweise von 2 Kernel-Parametern zu ergründen.
Bevor da Fragen kommen, System + Kernel sind egal, HZ (hier 250) eigentlich auch, mir gehts ums Prinzip.
net.ipv4.icmp_ratelimit = 250
net.ipv4.icmp_ratemask = 6168
Das sind die default-Werte von nem Debian-Out-of-the-box
Ich teste indem ich mit WinMTR eine IP hinter dem Rechner mit 10pps antrace und gucke wie viel "loss" der Linux-Router hat.
Ich finde da diverse Erkärungen die alle in etwa wie folgt lauten:
http://www.securityfocus.com/infocus/1711
Das würde für mich bedeuten, dass der Kernel mehr Pakete verschickt je höher der Wert ist, sprich bei nem Wert von 1 und 250HZ-Kernel bis zu 250Pakete/sec., beim Default-Wert 250*250= 62500 Pakete
In der Praxis ist es genau andersrun, sprich der scheint durch die Zahl zu teilen.
Schlumpf zu dumm oder Beschreibung falsch/schlecht ?
Kommen wir zum interessanten Teil:
in der icmp.h steht folgendes:
Kann mir das einer erklären was die da berechnen ?
Ich verstehe nicht was die da womit OR-verknüpfen. Wenn ich Werte mit OR verknüpfe kommt da immer 0 oder 1 raus
Dann ist in der Manpage zu icmp ein Parameter "icmp_timeexceed_rate" beschriben, ist das ein Relikt aus alten Zeiten ? Den find ich auf meinen Rechnern (ältester = 2.4.31 Kernel) nirgendwo.
edit:
Ich glaube der 2. Teil hat sich mit der binären Darstellung von 6168 (1100000011000) soeben erklärt.
ich versuche gerade die Funktionsweise von 2 Kernel-Parametern zu ergründen.
Bevor da Fragen kommen, System + Kernel sind egal, HZ (hier 250) eigentlich auch, mir gehts ums Prinzip.
net.ipv4.icmp_ratelimit = 250
net.ipv4.icmp_ratemask = 6168
Das sind die default-Werte von nem Debian-Out-of-the-box
Ich teste indem ich mit WinMTR eine IP hinter dem Rechner mit 10pps antrace und gucke wie viel "loss" der Linux-Router hat.
Ich finde da diverse Erkärungen die alle in etwa wie folgt lauten:
http://www.securityfocus.com/infocus/1711
Together, these two variables allow you to limit how frequently specified ICMP packets are generated. icmp_ratelimit defines how many packets that match the icmp_ratemask per jiffie (a unit of time, a 1/100th of a second on most architectures) are allowed.
Das würde für mich bedeuten, dass der Kernel mehr Pakete verschickt je höher der Wert ist, sprich bei nem Wert von 1 und 250HZ-Kernel bis zu 250Pakete/sec., beim Default-Wert 250*250= 62500 Pakete
In der Praxis ist es genau andersrun, sprich der scheint durch die Zahl zu teilen.
Schlumpf zu dumm oder Beschreibung falsch/schlecht ?
Kommen wir zum interessanten Teil:
The ratemask is a logical OR of all the ICMP codes you wish to rate limit. (See /usr/include/linux/icmp.h for the actual values.) The default mask includes destination unreachable, source quench, time exceeded and parameter problem. If you increase the limit, you can slow down or potentially confuse port scans, but you may inhibit legitimate network error indicators.
in der icmp.h steht folgendes:
#define ICMP_ECHOREPLY 0 /* Echo Reply */
#define ICMP_DEST_UNREACH 3 /* Destination Unreachable */
#define ICMP_SOURCE_QUENCH 4 /* Source Quench */
#define ICMP_REDIRECT 5 /* Redirect (change route) */
#define ICMP_ECHO 8 /* Echo Request */
#define ICMP_TIME_EXCEEDED 11 /* Time Exceeded */
#define ICMP_PARAMETERPROB 12 /* Parameter Problem */
#define ICMP_TIMESTAMP 13 /* Timestamp Request */
#define ICMP_TIMESTAMPREPLY 14 /* Timestamp Reply */
#define ICMP_INFO_REQUEST 15 /* Information Request */
#define ICMP_INFO_REPLY 16 /* Information Reply */
#define ICMP_ADDRESS 17 /* Address Mask Request */
#define ICMP_ADDRESSREPLY 18 /* Address Mask Reply */
#define NR_ICMP_TYPES 18
Kann mir das einer erklären was die da berechnen ?
Ich verstehe nicht was die da womit OR-verknüpfen. Wenn ich Werte mit OR verknüpfe kommt da immer 0 oder 1 raus
Dann ist in der Manpage zu icmp ein Parameter "icmp_timeexceed_rate" beschriben, ist das ein Relikt aus alten Zeiten ? Den find ich auf meinen Rechnern (ältester = 2.4.31 Kernel) nirgendwo.
edit:
Ich glaube der 2. Teil hat sich mit der binären Darstellung von 6168 (1100000011000) soeben erklärt.
Zuletzt bearbeitet: