Druckversion

Der Kernel - Das Prozessdateisystem

Übersicht Weiter

Beim Prozessdateisystem handelt es sich um ein virtuelles Dateisystem. D.h. es existiert nur während der Laufzeit von Linux, es beansprucht keinen Speicherplatz auf der Festplatte, es liegt im Hauptspeicher und besitzt mit dem Verzeichnis »/proc« einen definierten Eintrittspunkt.

Das Prozessdateisystem ist ein Spiegel des Systems und ordnet die Informationen des Kernels in einer hierarchischen Struktur an. Aus ihm lassen sich etliche Informationen gewinnen und - in gewissen Grenzen - die Arbeit des Kernels modifizieren.

Das Prozessdateisystem wurde speziell für die x86er-Architektur entwickelt und steht deswegen unter Linux-Implementierungen auf anderen Hardwaretypen nicht zur Verfügung.

Informationen über das System Zurück Anfang Weiter

Nicht nur dem Administrator stehen mit dem Prozessdateisystem allerlei Informationen über den Zustand des Systems zur Verfügung:

  • Zu jedem aktiven Prozess des Systems sammelt der Kernel im Prozessdateisystem alle relevanten Informationen, wie Rechendauer, aktueller Zustand, Speicherverbrauch, seine Kommandozeilenoptionen,...
  • Die Einstellungen der Hardware (IO-Basisadressen, Interrupts,...)
  • Die Parameter des Netzwerks (Statistiken)
  • Speicherauslastung, Systemauslastung
  • Geöffnete Dateien, Dateisperren, ...

Etliche Kommandos, die Informationen aus den oben genannten Bereichen darstellen, gewinnen diese aus dem Prozessdateisystem. Andere Kommandos wiederum kommunizieren direkt mit dem Kernel.

Der Inhalt des Prozessdateisystems Zurück Anfang Weiter

Informationen zu einem Prozess

Ein Blick in das Verzeichnis »/proc« bringt eine Reihe von Verzeichnissen, die mit Ziffern benannt sind, zu Tage. Eine Ziffer entspricht dabei genau der Nummer (PID) eines Prozesses. Und jeder aktive Prozess ist durch sein eigenes Verzeichnis vertreten. Jedes der Unterverzeichnisse enthält diegleichen Einträge:

user@sonne> ls -l /proc/1
ls: /proc/1/exe: Keine Berechtigung
ls: /proc/1/root: Keine Berechtigung
ls: /proc/1/cwd: Keine Berechtigung
insgesamt 0
-r--r--r--   1 root     root            0 Jul  5 15:58 cmdline
lrwx------   1 root     root            0 Jul  5 15:58 cwd
-r--------   1 root     root            0 Jul  5 15:58 environ
lrwx------   1 root     root            0 Jul  5 15:58 exe
dr-x------   2 root     root            0 Jul  5 15:58 fd
pr--r--r--   1 root     root            0 Jul  5 15:58 maps
-rw-------   1 root     root            0 Jul  5 15:58 mem
lrwx------   1 root     root            0 Jul  5 15:58 root
-r--r--r--   1 root     root            0 Jul  5 15:58 stat
-r--r--r--   1 root     root            0 Jul  5 15:58 statm
-r--r--r--   1 root     root            0 Jul  5 15:58 status

Auch wenn das Kommando ls jedem Eintrag die Speichergröße »0« bescheinigt, sind die Dateien keineswegs leer:

user@sonne> cat /proc/1/status
Name:   init
State:  S (sleeping)
Pid:    1
PPid:   0
Uid:    0       0       0       0
Gid:    0       0       0       0
Groups:
VmSize:      372 kB
VmLck:         0 kB
VmRSS:       204 kB
VmData:       24 kB
VmStk:         4 kB
VmExe:       332 kB
VmLib:         0 kB
SigPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 7fffffffd7f0d8fc
SigCgt: 00000000280b2603
CapInh: 00000000fffffeff
CapPrm: 00000000ffffffff
CapEff: 00000000fffffeff

Die Einträge enthalten im Einzelnen:

cmdline

Argumente der Kommandozeile

cwd

Link zum Arbeitsverzeichnis des Prozesses

environ

Werte der Umgebungsvariablen

exe

Link zum Programm

fd

Verzeichnis, dass die offenen Dateideskriptoren des Prozesses beinhaltet

maps

Speichermapping

mem

Speicherbedarf des Prozesses

root

Link zum Wurzelverzeichnis

stat

Prozessstatus

statm

Informationen zum belegten Speicher

status

Wie »stat«, nur in tabellarischer Form

Die Kerneldaten

Direkt unterhalb von »/proc« finden sich allerlei Dateien, die teilweise identische Namen haben, wie sie bei den einzelnen Prozessen auftauchten. Etwas oberflächlich betrachtet, ist der Kernel ja auch nichts anderes als ein Programm und da er aktiv ist, weiß er allerlei zu berichten:

apm

Die Statistiken des Power Managements

cmdline

Die Kommandozeilenargumente des Kernels

cpuinfo

Informationen zum Herz des Rechners

devices

Dem Kernel bekannte Devices

dma

Benutzte DMA-Kanäle

filesystems

Unterstützte Dateisysteme

interrupts

Belegte Interrupts

ioports

Verwendete IO-Ports

kcore

Zugang zum Arbeitsspeicher

kmsg

Protokolldatei des Kernels (siehe Protokollierung - klogd)

ksyms

Die Symboltabelle des Kernels (Zuordung von Adressen zu Funktionsnamen)

loadavg

Systemlast

locks

Sperren des Kernels

meminfo

Auslastung des Speichers

misc

Statistiken, die anderen Bereichen nicht zuzuordnen sind

modules

Alle geladenen Module

mounts

Gemountete Dateisysteme

partitions

Alle bekannten Partitionen

pci

Aktivierte PCI-Geräte

rtc

Real Time Clock

slabinfo

Slab Pool Informationen

stat

Allgemeine Statistiken

swaps

Swap-Auslastung

uptime

Zeitdauer, die das System aktiv ist u.a.

version

Kernelversion und Übersetzungsdatum

Viele der Informationen stehen auch dem normalen Benutzer zur Verfügung. Als Beispiel lesen wir die Daten zur CPU aus:

user@sonne> cat /proc/cpuinfo
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 5
model           : 8
model name      : AMD-K6(tm) 3D processor
stepping        : 12
cpu MHz         : 451.035904
fdiv_bug        : no
hlt_bug         : no
sep_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr mce cx8 sep mtrr pge mmx 3dnow
bogomips        : 897.84

IDE-Geräte

Die Informationen zu den IDE-Geräten befinden sich im Verzeichnis "/proc/ide". Zunächst enthält die dortige Datei "drivers" die dem Kernel bekannten IDE-Treiber:

user@sonne> cat /proc/ide/drivers
ide-floppy version 0.9
ide-tape version 1.13
ide-cdrom version 4.54
ide-disk version 1.09

Weiterhin existieren Unterverzeichnisse, deren Namensgebungen der Nummerierung der IDE-Geräte im System entsprechen und es existieren Links auf das jeweilige Verzeichnis, deren Namen wie das zugehörige Device lauten. Zum Beispiel ist die erste IDE-Festplatte das erste IDE-Gerät im System und wird durch das Verzeichnis »ide0« repräsentiert. Auf dieses existiert der Link »hda«. Wechseln wir in das Verzeichnis der ersten IDE-Festplatte:

user@sonne> ls /proc/ide/ide0/
channel  config  hda  mate  model

channel ist der verwendete IDE-Kanal (0 oder 1), config enthält bei PCI-Bridges die Konfigurationsdaten, mate beinhaltet Namen verwandter IDE-Geräte und model ist der Typ des Gerätes (z.B. »pci«). Weiterhin existiert ein Unterverzeichnis hda, das die Details zum Gerät kennt:

cache

Cache-Speicher (nur bei Festplatten)

capacity

Speicherkapazität des Gerätes

driver

Treibername und -version

geometry

Plattengeometrie (nur bei Fetsplatten)

identify

Block, anhand dessen das Gerät erkannt wird

media

Mediumtyp (disk, cdrom, ...)

model

Kennung des Gerätes

settings

Einstellungen des Gerätes

smart_thresholds

Schranken des IDE-Disk Managements

smart_values

Werte des IDE-Disk Managements

Netzwerk

Im Unterverzeichnis »/proc/net« finden Sie die Statistiken und Informationen zum Netzwerk:

user@sonne> ls /proc/net/
arp        igmp         ip_masquerade  rarp   rt_acct   tcp
dev        ip_fwchains  netlink        raw    rt_cache  tr_rif
dev_mcast  ip_fwnames   netstat        route  snmp      udp
dev_stat   ip_masq      psched         rpc    sockstat  unix

arp

ARP-Tabelle des Kernels (Zuordnung von IP-Adressen zur Hardwareadresse)

dev

Statistiken der Netzwerk-Devices

dev_mcast

Multicast-Gruppen, die an einem Device »lauschen«

dev_stat

Status der Netzwerk-Devices

igmp

Tabelle des Internet Group Management Protocol (für Routing)

ip_fwchains

Firewall IP-Forwarding Regeln

ip_fwnames

Namen der Firewall-Listen

ip_masq

Unterverzeichnis mit Tabellen für das Masquerading (Maskieren einer privaten IP-Adresse durch eine öffentliche), aktive »Maskierungen«

ip_masquerade

Zuordnungstabelle für das Masquerading

netlink

Liste der Netlink Sockets

netstat

Netzwerk Statistiken

psched

Parameter des Paket Schedulers, der die Pakete filtert, um eine dedizierte Auswertung des Datenaufkommens vornehmen zu können

rarp

Kerneltabelle des Reverse ARP (nur für plattenlose Rechner relevant, die ihre IP-Adresse von einem Server anhand ihrer Hardwareadresse anfordern)

raw

Statistiken des raw-Devices

route

Routing Tabelle des Kernels

rpc

Verzeichnis mit Informationen aktiver RPC-Dienste

rt_cache

Cache mit Routing-Informationen

snmp

Daten (Managements Information Bases) des Simple Network Management Protocols

sockstat

Statistiken aller Sockets

tcp

Tabelle der TCP Sockets

tr_rif

Token Ring Routing Tabelle

udp

Tabelle der UDP Sockets

unix

Tabelle der geöffneten Unix Domain Sockets mit Refernzzähler, Protokoll, Flags, Typ, Status, Inodenummer und Pfad

Parallele Schnittstellen

Informationen zu den parallelen Schnittstellen des System werden im Verzeichnis »/proc/parports« gehalten. Zu jeder existierenden Schnittstelle existiert ein Unterverzeichnis (Benennung »0«, »1«,...),

autoprobe

Informationen, die automatisch erworben wurden

devices

Liste der Devices, die den Port verwenden

hardware

IO-Port-Adresse, (default) Interruptnummer, DMA-Kanal und Modus

irq

Interruptnummer (überschreibt die Nummer in "hardware")

SCSI-Geräte

Alle im System aktiven SCSI-Adapter erhalten ein eigenes Unterverzeichnis mit allen angeschlossenen Geräten. Diese Dateien liefern Informationen (Parameter) und Statistiken zum jeweiligen SCSI-Gerät.

Die Datei »/proc/scsi/scsi« beinhaltet eine Liste aller erkannten SCSI-Geräte des Systems.

System

Im Unterverzeichnis «/proc/sys» befinden sich verschiedene Kernelinformationen. Die Einordnung dieser in einen eigenen Verzeichnisbaum könnte durch die Möglichkeit motiviert worden sein, durch manuelle Änderung dieser Parameter Einfluss auf den aktiven Kernel nehmen zu können.

Dieser »heiklen« Methode der Konfiguration werden wir uns im nächsten Abschnitt annehmen. Hier soll nur eine knappe Beschreibung der enthaltenen Dateien und Verzeichnisse erfolgen (diese können sich von Kernelversion zu Kernelversion teils stark unterscheiden).

dev

Die Parameter des CDROM-Treibers stehen hier (andere Treiber sollen in späteren Kernelversionen Unterstützung erfahren)

fs

Informationen zu einigen unterstützten Dateisystemen findet man hier

kernel

Hier kann direkt am Kernel geschraubt werden, so lassen sich Rechnername, NIS-Domainname, die Menge der Debugausgaben u.v.m. manipulieren

net

Hierunter finden sich Dateien, über die sich einige Netzwerkparameter abstimmen lassen

sunrpc

Das Debuggen einer RPC-Dientse kann an- bzw. abgestellt werden

vm

Die hier enthaltenen Dateien steuern das Verhalten der virtuellen Speicherverwaltung

Terminals

Die aktiven und verfügbaren Terminals (tty's) sind im Verzeichnis »/proc/tty« enthalten.

driver

Verzeichnis, das die Datei »serial« enthält, in der wiederum die Zugriffsstatistiken stehen

drivers

Liste der Terminal-Treiber

ldiscs

???

Manuelle Eingriffe Zurück Anfang

Stellen Sie sich vor, Sie müssten ein Linux-System auf einen Webserver aufspielen. Die Forderung seitens Ihres Chefs lautet, dass gleichzeitig 1000 Zugriffe bedient werden müssen. Ihre Anwort gipfelt in einer Aufzählung der erforderlichen Hardware: SMP-System mit Gigahertz-Prozessoren, ultra flinke SCSI-Platten, maximaler Hauptspeicheraufbau... Und dennoch werden Sie nach verrichteter Arbeit bald bemerken, dass die Zugriffszahlen allmählich schwinden. Ihre Nachforschungen werden ergeben, dass die schlechten Antwortzeiten Ihres Systems die Benutzer vergraulten. Und dabei werkelten die Prozessoren doch niemals am Limit?

Der Grund identifiziert sich bald in Form einiger Schranken, die Linux sich selbst auferlegt, weil diese Schranken dem »Normalfall« allemal genügen und das gesamte System so schneller läuft.

Aber Ihr Fall ist kein Normalfall. Und so sollten Sie ein wenig an den Schrauben der Begrenzung drehen...

Vorsicht: Ein unüberlegter Eingriff kann Ihr System abstürzen lassen!

Schranken in »/proc/sys/fs/«

user@sonne> ls /proc/sys/fs
dentry-state  dquot-nr  file-nr    inode-nr     super-max
dquot-max     file-max  inode-max  inode-state  super-nr

dentry-state

Statusinformation zum Verzeichniscache, wobei der zweite Eintrag die Anzahl freier Cachezeilen angibt und der dritte die Verweildauer, bis ein Eintrag, auf den nicht mehr zugegriffen wurde automatisch gelöscht wird

dquot-max

Maximale Anzahl von Quota-Einträgen im Cache (mit Quotas kann der Verbrauch an Festplattenspeicher für einzelne Benutzer begrenzt werden), für Systeme auf denen sehr viele Benutzer zur selben Zeit angemeldet sind, kann eine Erhöhung des Wertes notwendig werden:

root@sonne> cat /proc/sys/fs/dquot-max
1024
root@sonne> echo "2048" > /proc/sys/fs/dquot-max
root@sonne> cat /proc/sys/fs/dquot-max
2048

dquot-nr

Anzahl belegter und freier Einträge im Quota-Cache

file-max

Maximale Anzahl gleichzeitig geöffneter Dateien, der übliche Wert wird für einige Serveranwendungen nicht ausreichen und sollte erhöht werden (spätestens wenn Fehlermeldungen erscheinen, dass keine neuen Dateien mehr geöffnet werden können:

root@sonne> echo "8192" > /proc/sys/fs/file-max

Ein einzelner Prozess darf allerdings nur eine beschränkte Anzahl Dateien öffnen (meist 1024), um diesen Wert zu erhöhen, muss ein neuer Kernel mit vorherigem Eingriff in den Datei limits.h und fs.h generiert werden.

file-nr

Die drei Werte bezeichnen von links nach rechts die Anzahl insgesamt reservierter Dateihandle, die Anzahl (davon) belegter Dateihandle sowie maximal verfügbare Anzahl Dateihandles.

inode-max

Die Inodes geöffnter Dateien werden zum schnelleren Zugriff in einer Kernelstruktur gehalten. Wieviele Einträge so zwischengespeichert werden, kann durch den Wert "inode-max" beeinflusst werden. Er sollte "(3-4)*file-max" betragen.

inode-nr

Zwei statistische Werte: Zum einen die Anzahl tatsächlich allokierter Einträge für Inodes (er kann etwas größer sein als »inode-max«, da die Anforderung neuen Speichers seitenweise erfolgt und die gesamte Seite für neue Inodes zur Verfügung steht), zum zweiten die Anzahl freier Einträge

inode-state

Von den sieben Werten werden die letzten derzeit nicht verwendet, die beiden ersten decken sich mit den Informationen aus »inode-nr«, der dritte Wert ist verschieden von Null, um anzuzeigen, dass für neue Inodes kein weitere Speicher angefordert werden kann, sondern andere (ältere) Inode-Einträge überschrieben werden müssen

super-max

Auch die Superblöcke der gemounteten Dateisysteme werden in einer Kernelstruktur gehalten, werden sehr viele Mounts notwendig, kann die Erhöhung des Wertes angemessen sein

super-nr

Anzahl derzeit verwendeter Superblock-Einträge

Schranken in »/proc/sys/kernel/«

user@sonne> ls /proc/sys/kernel
acct           hostname        panic         rtsig-nr
cap-bound      modprobe       printk         shmall
ctrl-alt-del   osrelease      real-root-dev  shmmax
domainname     ostype         rtsig-max       version

acct

Betrifft die Kontrolle der Prozesserzeugung nach BSD, wo diese von der Belegung des Dateisystems (dasjenige, wo die Prozessdaten abgelegt werden) abhägig gemacht wird. Die drei Werte bestimmen die Grenze an freiem Speicherplatz (1.Wert in Prozent), ab der die Erzeugung neuer Prozesse verhindert wird, die Schranke (in Prozent), ab welcher die Erzeugung wieder zugelassen wird und das Zeitintervall in Sekunden, nachdem die Speicherbelegung neu bewertet wird.

ctrl-alt-del

Der Wert sollte immer »0« sein, da diese Tastenkombination den Prozess init zu einem Reboot überredet. Wird hier ein von »0« verschiedener Wert eingegeben, so bootet init ohne das Sichern von irgendwelchen Puffern!

domainname

Der NIS-Domainname des Rechners

hostname

Der Rechnername

modprobe

Zugriffspfad zum Programm, das die Module nachlädt (normal »/sbin/modprobe«)

osrelease

Version des Kernels

ostype

Name des Betriebssystems, sollte immer "Linux" sein

panic

panic ist eine Meldung höchster Priorität und deutet einen schwerwiegenden Fehler im System an (siehe auch Syslog-Dämon), der normalerweise einen Neustart erfordert. Steht in dieser Datei »0«, so hält der Kernel das System an (so dass die letzten Konsolenausgaben nicht sichtbar sind). Bei einem Server, der ohne Aufsicht läuft ist solch ein Verhalten allerdings nicht erwünscht. Ein solcher sollte selbsttätig booten. Indem in "panic" ein Wert >0 eingetragen wird, rebootet der Kernel das System nach Ablauf der durch Wert angegebenen Sekunden.

printk

Die Datei beeinflusst die Arbeit der Kernelfunktion »printk()«, die die Kernelmeldungen ausgibt. Der erste Wert ist das Level, ab welcher Priorität Kernelmeldungen auf der Konsole ausgegeben werden (siehe klogd). Der zweite Wert ist das Prioritätslevel, mit dem Meldungen, die keine Prioritätsangabe enthalten, versehen werden. Wert Nr. 3 ist das Minimum, worauf der erste Eintrag gesetzt werden darf und der vierte Eintrag ist das voreingestellte Level, ab dem Meldungen auf der Konsole landen.

real-root-dev

Enthält die Devicenummer, wo sich das Root-Dateisystems befindet., für NFS steht hier die Pseudonummer 255

rtsig-max

Anzahl Signale, die gleichzeitig verwaltet werden können (bis zur Behandlung eines Signals wird dieses in einer Kernlstruktur zwischengespeichert)

rtsig-nr

Anzahl aktueller Signale

shmall

Maximale Anzahl Shared Memory Segmente

shmmax

Maximale Größe eines Shared Memory Segments in Bytes

version

Übersetzungsdatum des Kernel

Schranken in »/proc/sys/net/«

user@sonne> ls /proc/sys/net
802  core  ethernet  ipv4  token-ring  unix

802

In diesem Unterverzeichnis befinden sich die Daten zum E802-Protokoll (AX.25), allerdings macht Linux selten hiervon Gebrauch

core

Einige generelle Einstellungen zum Netzwerk lassen sich hier vornehmen. Interessant ist message_burst, das die Zeitspanne in zehntel Sekunden enthält, innerhalb derer maximal eine Warnung von Netzwerktreibern protokolliert wird. Damit wird sicher gestellt, dass durch Fehlermeldungen (die durchaus »von außen« mutwillig provoziert werden könnten) binnen kurzer Zeit die Protokolldateien anschwellen. Mit message_cost kann durch einen hohen Wert die im Netzwerk generierte Anzahl der Meldungen verringert werden.
Empfangene Nachrichten werden zwischen gespeichert und sobald als möglich an den Kernel weitergereicht. Wieviele Pakete maximal gespeichert werden könen, steht in netdev_max_backlog. optmem_max beschränkt die Puffer (Platz zur Aufnahme der Köpfe ohne Daten der Pakete), die für Sockets zur Verfügung stehen. Wieviel Speicher einem Socket bei dessen Erzeugung für zu empfangende Daten insgesamt zur Verfügung steht, sagt rmem_default. Der Socket selbst kann weiteren Speicher anfordern, insgesamt jedoch nicht mehr als rmem_max besagt. Die zu sendenden Datenpuffer werden durch wmem_default bzw. wmem_max beschränkt.

ethernet

Das Unterverzeichnis kann Daten zum Ethernet Protokoll enthalten

ipv4

Unter diesem Verzeichnis verbirgt sich der komplexeste Teil des Netzwerks.

conf

In diesem Unterverzeichnis finden Sie weitere Verzeichnisse zu jedem im System konfigurierten Netzwerkdevice. Zusätzlich steht noch ein Verzeichnis all zur Verfügung, um Konfigurationen vorzunehmen, die alle Devices betreffen. Jedes Unterverzeichnis beinhaltet die gleichen Dateien:

accept_redirects enthält »1« oder »0«, je nachdem, ob der Kernel ICMP-Pakete annehmen soll oder nicht. Fungiert der Rechner als Router, sollte »0« eingetragen werden.
accept_source_route legt fest, ob »Source routing« Pakete vermittelt oder verworfen werden. Beim »Source Routing« wird der Weg eines Paketes nicht dynamisch ermittelt, sondern durch den Absender vorgegeben. Der Wert sollte im Falle von Routern auf »1« stehen und»0« sonst.
bootp_relay wird von aktuellen Kerneln nicht unterstützt
forwarding erlaubt oder verhindert das Weiterleiten von Paketen zu einer IP-Adresse über dieses Device.
log_martians Pakete, deren Route nicht ermittelt werden kann, können protokolliert werden.
mc_forwarding erlaubt oder unterbindet Multicast-Routing, mit dem ein Paket gleichzeitig an mehrere Empfänger geleitet werden kann
proxy_arp unterstützt bzw. unterbindet Proxy ARP (der lokale Rechner liefert stellvertretend für andere Rechner deren Hardwareadresse, falls eine ARP-Anfrage gestellt wird)
rp_filter schaltet die Überprüfung der Sender-IP an bzw. ab
secure_redirects akzeptiert ICMP-Pakete nur von bekannten Gateway-Rechnern
send_redirects stellt ein, ob ICMP-Pakete vermittelt werden
shared_media erlaubt den direkten Datenaustausch zwischen verschiedenen Netzwerken (»1«), oder untersagt diesen »0«.

icmp_echo_ignore_all und icmp_echo_ignore_broadcasts

Die Werte sollten immer auf »0« stehen, um Anforderungen eines ICMP ECHO's zu bearbeiten, die zweite Datei betrifft nur Multicast- und Broadcastadressen (indem der Wert von icmp_echo_ignore_all auf »1« gesetzt wird, kann der Rechner vor einer »ping«-Anfrage verborgen werden)

icmp_destunreach_rate, icmp_echoreply_rate, icmp_paramprob_rate und icmp_timeexeed_rate

Hier wird angegeben, in welchem Zeitintervall maximal ein ICMP-Paket gesendet werden darf (Angabe in 1/100 Sekunden), »0« hebt die Beschränkung auf. Die einzelnen Dateien stehen für den Grund, warum ein Paket verworfen und eine ICMP-Nachricht erzeugt wurde.

ip_autoconfig

Enthält eine »1«, falls der Rechner seine IP-Adresse über ARP, BOOTP oder DHCP erhält, sonst »0«

ip_default_ttl

Maximale Anzahl Stationen, die ein Paket durchläuft, bevor es als unzustellbar gilt

ip_dynaddr

Die dynamische Vergabe von IP-Adressen kann an- bzw. abgeschaltet werden. Rechner mit Modem erhalten die IP für dieses Device meist vom Provider zugewiesen.

ip_forward

Erlaubt oder untersagt das Routen von Paketen zwischen verschiedenen Netzwerkinterfacen.

ip_local_port_range

Bereich der Portnummern, die von TCP oder UDP als lokale Ports verwendet werden können. Die Angabe erfolgt als Bereich <von_Portnummer>-<bis_Portnummer>.

ip_masq_debug

Schaltet die Debugmeldungen über das Masquerading ein und aus.

ip_no_pmtu_disc

Schaltet die MTU (maximal transfer unit), die Beschränkung der Paketlängen ein oder aus.

ipfrag_high_trash, ipfrag_low_trash

Puffergröße zum Zusammenfügen fragmentierter IP-Pakete. Wenn der Puffer die Größe »ipfrag_high_trash«, erreicht, werden alle Pakete verworfen, bis er den Wert »ipfrag_low_trash« unterschreitet.

ipfrag_time

Zeit in Sekunden, nach der ein ungenutztes Fragment eines IP-Paketes verworfen wird (falls nicht alle Fragmente ihr Ziel erreichen, wird sichergestellt, dass unvollständige Pakete nicht ewig im Speicher verharren)

neigh

Eigenschaften der Verbindung zu Rechnern im selben Netzwerksegment werden in diesem Unterverzeichnis vereinbart. Es existiert ein »default«- sowie zu jedem Netzwerkdevice ein eigenes Verzeichnis. Was in »default« steht, gilt allgemein:

anycast_delay wird von Linux nicht verwendet
app_solicit beinhaltet wie oft der ARP-Dämon befragt werden soll (bevor eine IP-Adresse als nicht vermittelbar eingestuft wird)
base_reachable_time Wert, der verwendet wird um eine »zufällige« Zeitspanne zu warten, bevor auf einem Netzwerkdevice gesendet wird
delay_first_probe_time Verzögerungszeit, bis ein benachbarter Rechner auf seine Erreichbarkeit hin überprüft wird
gc_stale_time Alle wieviel Sekunden soll der ARP-Cache nach veralteten Einträgen überprüft werden? Bei einem verfallenen Eintrag wird versucht, erneut die Hardwareadresse zu einer IP zu ermitteln.
locktime Minimale Zeit, die ein Eintrag in der ARP-Tabelle seine Gültigkeit behält.
mcast_solicit Maximale Anzahl Wiederholungen von Multicast-Anforderungen
proxy_delay Solange wartet ein Proxy-ARP, bis er auf eine Anfrage antwortet
proxy_qlen Maximale Anzahl Timer für eine verzögerte Antwort eines Proxy-ARP's.
retrans_time Zeit in 1/100 Sekunden zwischen dem erneuten Senden eines Paketes, zu dem die Anwort noch aussteht
ucast_solicit Maximale Anzahl Wiederholungen von Unicast-Anforderungen
unres_qlen Anzahl Einträge in der Warteschlange für ausstehende ARP-Anfragen

route

Das Verzeichnis enthält eine Reihe von Dateien mit Routing-Informationen:

error_burst Faktor, der die Anzahl von Fehlermeldungen vom Routingsystem limitiert
error_cost Bestimmt, alle wieviel Sekunden (Angabe 1/100 Sekunden) maximal eine Meldung protokolliert werden darf
flush Beim Leeren des Routing-Caches wird der Inhalt in diese Datei geschrieben
gc_elasticity, gc_interval, gc_min_interval, gc_thresh, gc_timeout Steuerung der Zeitspannen und Art, wie der Routing-Cache aufgeräumt wird
max_delay, min_delay Minimale und maximale Zeit zwischen dem Leeren des Caches (damit alte Routen nicht ewig ihre Gültigkeit behalten)
max_size Maximale Anzahl Einträge im Routing Cache, ist er voll, überschreibt ein neue Route den ältesten nicht verwendeten Eintrag
mtu_expires Maximale Zeit, die eine unbenutzte Route im Cache verweilen kann
redirect_load Dies ist ein Faktor der bestimmt, ab welcher Belastung des Netzwerksystems ICMP-Nachrichten nicht gesendet werden.
redirect_number Anzahl Versuche, eine ICMP-Nachricht zuzustellen
redirect_silence Zeitspanne zwischen zwei Versuchen, eine ICMP-Nachricht zuzustellen

tcp_fin_timeout

Wenn bei einer TCP-Verbindung die Gegenseite dem Wunsch zum Abbau der Verbindung nicht nachkommt, wird diese nach Ablauf dieser Zeitspanne (Sekunden) gekappt.

tcp_keepalive_probes

Anzahl Testpakete, die ausgesendet werden, um festzustellen, ob der Partner aktiv ist. Danach gilt die Verbindung als unterbrochen.

tcp_keepalive_time

Zeit des regelmäßigen Aussendens von Testpaketen, um eine Verbindung offen zu halten. Die Uhr startet neu, sobald ein »reguläres« Paket über die Verbindung geht.

tcp_max_ka_probes

Wie viele Pakete zum Überprüfen sollen gesendet werden, während ein Timer die Zeitspanne bis zum Beenden der Verbindung stoppt?

tcp_max_syn_backlog

Länge der Warteschlange für eingehende TCP-Verbindungsanforderungen für einen Socket. Treffen weitere Verbindungswünsche ein, werden die Pakete einfach verworfen, außer »syncookies« ist eingeschaltet. In letzterem Fall wird die Länge der Warteschlange ignoriert.

tcp_retrans_collapse

Es soll Netzwerkdrucker mit einem fehlerhaften TCP-Stack geben. Durch eine »1« wird versucht, ein vom Drucker abgelehntes Paket diesem doch noch unterzuschieben, indem die Größe des Pakets erhöht wird und somit der Stack-Fehler (hoffentlich) nicht mehr Tragen kommt.

tcp_retries1, tcp_retries2

Der erste Wert bestimmt, wie oft eine Antwort auf ein TCP-Paket gesendet wird (jedes Paket muss vom Partner quittiert werden), bevor aufgegeben wird. Der zweite Wert bestimmt die maximale Anzahl von Versuchen, ein TCP-Paket zu senden

tcp_stdurg

Einschalten der Funktionalität des Urgent Pointers (Vorrangdaten) nach den RFC793-Vorgaben, Voreinstellung ist die Interpretation nach BSD. Solche Datenpakete werden beim Empfänger sofort zur betreffenden Anwendung durchgestellt und nicht erst durch den Empfangspuffer geschleust.

tcp_syn_retries

Anzahl Versuche eines Verbindungsaufbaus (ausgehende Verbindungen)

tcp_timestamps

Die Verwendung von Zeitstempeln wird an- oder abgeschaltet

tcp_window_scaling

Das dynamische Anpassen des Übertragunsgfensters wird aktiviert. Hierdurch kann allmählich versucht werden, die Übertragung zu beschleunigen. Treten dabei Paketverluste auf (z.B. weil der Empfänger die Pakete nicht schnell genug verarbeitet), wird das Fenster dynamisch verkleinert.

token-ring

Daten zum Token Ring von IBM

unix

Im Unterverzeichnis existieren drei Dateien. delete_delay gibt die Zeit in Sekunden an, nachdem ein geschlossener Socket aus der Tabelle entfernt wird. Sein reservierter Speicher wird nach der in destroy_delay festgelegten Spanne frei gegeben. max_dgram_qlen gibt die Länge der Warteschlange an, die eintreffende Daten am Socket zwischenspeichern kann.
 Korrekturen, Hinweise?
Startseite Nächste Seite Nächstes Kapitel Vorherige Seite Kapitelanfang