Mit Unterstützung durch Saxonia Systems    
Druckversion
 
   Anfang
   Inhalt
   Einleitung
   Erste Schritte
   Die Bash
   Das Dateisystem
   Nutzerkommandos
   Installation
   Shells
   Unix-Werkzeuge
   System-Administration
   X Window System
   Der Kernel
     Geschichte
     Architektur
     Module
     Prozessdateisystem
     Konfiguration
     Installation
   Netzwerk Grundlagen
   Netzwerk Clients
   Netzwerk Server
   Netzwerk Sicherheit
   Anhang
   Register

Der Kernel - Das Prozessdateisystem

Übersicht

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

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

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

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
      Wieviele 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