Der Kernel - Das Prozessdateisystem
|
|
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.
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.
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
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
???
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.