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
|
|
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 |
|
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 |
|
??? |
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. |
|
|