Re: Limiting?

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Thu, 3 Apr 2008 16:52:01 +0200 (CEST)

Daniel <daniel(at)ipv6-network.de> wrote:
> ich habe hier 2 Probleme. Ich nutze freebsd als router und habe
> mehrer Probleme:
>
> Ich bekomme auf der console folgenden fehler:
>
> limiting closed port RST respons from 278 to 200 packet/second

Standardmäßig schickt FreeBSD nicht mehr als 200 Reset-
Pakete pro Sekunde heraus. Ein Reset-Paket wird dann
geschickt, wenn jemand versucht, eine TCP-Verbindung
zu einem freien Port zu öffnen (d.h. ein Port, auf dem
kein Server-Prozess lauscht).

Wenn Du obige Meldung erhältst, bedeutet dass, dass mehr
als 200 Verbindungsversuche zu unbenutzten Ports auf
Deinem Rechner stattfanden. (Du kannst mit tcpdump(1)
herausfinden, auf welche(r) Portnummer(n) diese Versuche
stattfinden.)

Dafür gibt es drei typische Ursachen:

1. Ein Portscan, d.h. jemand versucht, in kurzer Zeit
viele Verbindungen zu freien Ports auf Deinem Rechner
zu öffnen.

In so einem Fall ist die beste Reaktion, es einfach zu
ignorieren.

2. Falls Du eine dynamische (d.h wechselnde) IP-Adresse
hast, kann es passieren, dass Du nach einer Einwahl eine
Adresse erhältst, die unmittelbar vorher ein anderer
hatte, mit dem intensiv kommuniziert wurde (z.B. P2P).
Im allgemeinen merken es die Kommunikationspartner nicht
sofort, wenn sich die Adresse ändert, d.h. die ganzen
Verbindungsversuche schlagen dann bei Dir auf und können
zu solchen Symptomen führen.

Auch hier die Empfehlung: ignorieren. Falls die Versuche
nicht abebben und Deine Uplink-Bandbreite spürbar beein-
trächtigen, ist es am einfachsten, eine neue Einwahl zu
machen, damit Du eine andere Adresse bekommst.

3. Falls Du einen Service betreibst, der von vielen
Leuten genutzt wird (Webserver o.ä.), und der Server-
Prozess stirbt aus irgendeinem Grund, gehen die Verbin-
dungsversuche ins Leere.

In dem Fall solltest Du den betreffenden Server wieder
start.

> Im netz hat mir Tante google denke ich geholfen und folgendes
> gefunden:

Nicht alles, was man mit Google findet, ist hilfreich.

> ---
> net.inet.icmp.icmplim sysctl limits this, too (and not only ICMP responses).
> And yes, it's default value is 200 :-)
> ---
>
> Kommt es tatsächlich daher?

Ja, der genannte sysctl bestimmt das Limit.

> Ich denke schon weil das würde einiges erklären. Ich weiss
> nur leider nicht wie ich diesen Wert entsprechend ändern
> kann OHNE neu booten zu müssen :-(

Du kannst den sysctl problemlos im laufenden Betrieb
ändern, z.B. mit »sysctl net.inet.icmp.icmplim=100«
auf die Hälfte herabsetzen (als root). Damit die
Änderung auch nach dem nächsten Reboot wirksam ist,
musst Du sie in /etc/sysctl.conf reinschreiben.
Für beides gibt es eine Manpage.

*ABER* ich rate davon ab, den Wert zu verändern.
Ich sehe keinen Grund, warum man vom Default abweichen
sollte, weder nach oben noch nach unten.

> dazu kommt das watchdog dann scheinbar das Interface runterfährt:

Das hat mit dem ICMP-Limit nichts zu tun. Aber es kann
möglicherweise durch die Last ausgelöst werden, die die
(vergeblichen) Verbindungsversuche verursachen.

> bge1: watchdog timeout -- resetting
> bge1: link state changed to DOWN
> vlan667: link state changed to DOWN
> vlan100: link state changed to DOWN
>
> Nach ein paar Minuten kommt das Interface dann wieder hoch:
>
> bge1: link state changed to UP
> vlan667: link state changed to UP
> vlan100: link state changed to UP

Leider hast Du nicht erwähnt, welche FreeBSD-Version Du
hast. Es gab bei diversen NICs -- u.a. auch bge -- eine
Reihe von Patches und Updates. Möglicherweise würde
daher ein Update auf eine aktuellere Version das Problem
bereits beheben. Ich würde 7-stable empfehlen.

Im Gegensatz zu Bernd kann ich eigentlich generell nichts
Schlechtes über bge-Netzwerkkarten sagen. Ich habe davon
diverse im Einsatz und hatte keine Probleme. Allerdings
ist es empfehlenswert, FreeBSD immer auf dem aktuellen
Stand zu halten, insbesondere wenn man aktuelle Hardware
verwendet (leider hast Du nicht erwähnt, welche Netzwerk-
karten Du genau hast; es gibt von bge diverse Varianten.
Siehe die Boot-probe-Meldung aus /var/run/dmesg.boot oder
die Ausgabe von »pciconf -lv«).

Ich muss aber noch hinzufügen, dass ich die bge-Karten
grundsätzlich im Polling-Modus verwende. Vielleicht
solltest Du das auch probieren (sofern noch nicht der
Fall): »options DEVICE_POLLING« in den Kernel tun und
dann mit ifconfig(8) einschalten.

Als letzte Maßnahme, wenn alles andere nicht hilft, kannst
Du mal testweise die Hardware-Offload-Features abschalten
(ifconfig -rxcsum -txcsum -vlan_hwtag).

Gruß
   Olli

-- 
Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M.
Handelsregister: Registergericht Muenchen, HRA 74606,  Geschäftsfuehrung:
secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün-
chen, HRB 125758,  Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart
FreeBSD-Dienstleistungen, -Produkte und mehr:  http://www.secnetix.de/bsd
"UNIX was not designed to stop you from doing stupid things,
because that would also stop you from doing clever things."
        -- Doug Gwyn
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Thu 03 Apr 2008 - 16:52:07 CEST

search this site