<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://www.xinux.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=192.168.244.1</id>
	<title>Xinux Wiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://www.xinux.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=192.168.244.1"/>
	<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php/Spezial:Beitr%C3%A4ge/192.168.244.1"/>
	<updated>2026-06-11T09:17:34Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://www.xinux.net/index.php?title=Icinga&amp;diff=4674</id>
		<title>Icinga</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Icinga&amp;diff=4674"/>
		<updated>2014-07-31T13:03:06Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: /* clientside */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Icinca Classic=&lt;br /&gt;
=Postgres Anbindung=&lt;br /&gt;
==PPAPPA==&lt;br /&gt;
 add-apt-repository ppa:formorer/icinga&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install icinga icinga-doc icinga-idoutils postgresql libdbd-pgsql postgresql-client&lt;br /&gt;
&lt;br /&gt;
==Enable ido2db Daemon==&lt;br /&gt;
 vim /etc/default/icinga&lt;br /&gt;
 IDO2DB=yes&lt;br /&gt;
 &lt;br /&gt;
 service ido2db start&lt;br /&gt;
==Nagios Plugins==&lt;br /&gt;
 apt-get install nagios-plugins&lt;br /&gt;
==Enable idomod module==&lt;br /&gt;
 Check whether this has already been done in /etc/icinga/modules/idoutils.cfg. &lt;br /&gt;
 If not, copy the sample config over and restart Icinga to load the module. (Tip - if icinga.cfg does not contain&lt;br /&gt;
 cfg_dir=/etc/icinga/modules the config won't be included!).&lt;br /&gt;
&lt;br /&gt;
 cp /usr/share/doc/icinga-idoutils/examples/idoutils.cfg-sample /etc/icinga/modules/idoutils.cfg&lt;br /&gt;
&lt;br /&gt;
=Icinca Web=&lt;br /&gt;
==Additional Packages==&lt;br /&gt;
 sudo apt-get install php5 php5-cli php-pear php5-xmlrpc php5-xsl php5-gd php5-ldap php5-pgsql&lt;br /&gt;
&lt;br /&gt;
==Install==&lt;br /&gt;
 apt-get install icinga-web&lt;br /&gt;
&lt;br /&gt;
=clientside=&lt;br /&gt;
&lt;br /&gt;
es müssen folgende änderungen vorgenommen werden:&lt;br /&gt;
&lt;br /&gt;
 apt-get install nagios-nrpe-server&lt;br /&gt;
&lt;br /&gt;
link setzen damit nagios das plugin findet (ansonsten gibts ein &amp;quot;Unable to red Output&amp;quot;-Error&lt;br /&gt;
 ln -s /usr/local/sbin/check_openswan_tunnel /usr/lib/nagios/plugins/check_openswan_tunnel&lt;br /&gt;
dies nagios server dürfen zugreifen &lt;br /&gt;
 allowed_hosts=192.168.202.31,10.20.30.40,10.9.8.7&lt;br /&gt;
parameter erlauben &lt;br /&gt;
 dont_blame_nrpe=1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
diese Zeilen anhängen /etc/nagios/nrpe.cfg&lt;br /&gt;
 command[check_all_disks]=/usr/lib/nagios/plugins/check_disk -w 15% -c 8% -e&lt;br /&gt;
 command[check_disk]=/usr/lib/nagios/plugins/check_disk -w 15% -c 8% -p $ARG1$&lt;br /&gt;
 command[check_tunnel]=sudo /usr/lib/nagios/plugins/check_openswan_tunnel -c  $ARG1$&lt;br /&gt;
&lt;br /&gt;
an /etc/sudoers anhängen:&lt;br /&gt;
 echo &amp;quot;nagios ALL=(ALL) NOPASSWD:/usr/lib/nagios/plugins/check_openswan_tunnel&amp;quot; &amp;gt;&amp;gt; /etc/sudoers&lt;br /&gt;
&lt;br /&gt;
=Mobile=&lt;br /&gt;
https://wiki.icinga.org/display/howtos/Setting+up+Icinga+Mobile&lt;br /&gt;
&lt;br /&gt;
==ubuntu==&lt;br /&gt;
*http://www.patrick-gotthard.de/icinga-mit-neuem-webinterface-unter-ubuntu-installieren&lt;br /&gt;
*http://askubuntu.com/questions/169033/how-to-install-icinga-on-ubuntu-12-04-monitor-remote-host&lt;br /&gt;
&lt;br /&gt;
=Workaround &amp;quot;SOCKET TIMEOUT&amp;quot;=&lt;br /&gt;
&lt;br /&gt;
“CRITICAL – Socket timeout after 10 seconds” error kann man leicht fixen, indem man die Checkfrequenz erhöht.&lt;br /&gt;
&lt;br /&gt;
Dies geschieht in der commands.cfg (liegt unter '''/etc/ininga/objects''') [Diese kann auch unter /usr/local/nagios/etc/objects/ oder /etc/nagios/ liegen] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dieses Case muss geändert werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define command {&lt;br /&gt;
 command_name    check_nrpe&lt;br /&gt;
 command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In diese Zeile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define command {&lt;br /&gt;
 command_name    check_nrpe&lt;br /&gt;
 command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -t 20&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man muss lediglich den Parameter &amp;quot;-t *sekundenanzahl*&amp;quot; anhängen&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Icinga&amp;diff=4673</id>
		<title>Icinga</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Icinga&amp;diff=4673"/>
		<updated>2014-07-31T12:56:20Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: /* clientside */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Icinca Classic=&lt;br /&gt;
=Postgres Anbindung=&lt;br /&gt;
==PPAPPA==&lt;br /&gt;
 add-apt-repository ppa:formorer/icinga&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install icinga icinga-doc icinga-idoutils postgresql libdbd-pgsql postgresql-client&lt;br /&gt;
&lt;br /&gt;
==Enable ido2db Daemon==&lt;br /&gt;
 vim /etc/default/icinga&lt;br /&gt;
 IDO2DB=yes&lt;br /&gt;
 &lt;br /&gt;
 service ido2db start&lt;br /&gt;
==Nagios Plugins==&lt;br /&gt;
 apt-get install nagios-plugins&lt;br /&gt;
==Enable idomod module==&lt;br /&gt;
 Check whether this has already been done in /etc/icinga/modules/idoutils.cfg. &lt;br /&gt;
 If not, copy the sample config over and restart Icinga to load the module. (Tip - if icinga.cfg does not contain&lt;br /&gt;
 cfg_dir=/etc/icinga/modules the config won't be included!).&lt;br /&gt;
&lt;br /&gt;
 cp /usr/share/doc/icinga-idoutils/examples/idoutils.cfg-sample /etc/icinga/modules/idoutils.cfg&lt;br /&gt;
&lt;br /&gt;
=Icinca Web=&lt;br /&gt;
==Additional Packages==&lt;br /&gt;
 sudo apt-get install php5 php5-cli php-pear php5-xmlrpc php5-xsl php5-gd php5-ldap php5-pgsql&lt;br /&gt;
&lt;br /&gt;
==Install==&lt;br /&gt;
 apt-get install icinga-web&lt;br /&gt;
&lt;br /&gt;
=clientside=&lt;br /&gt;
&lt;br /&gt;
es müssen folgende änderungen vorgenommen werden:&lt;br /&gt;
&lt;br /&gt;
 apt-get install nagios-nrpe-server&lt;br /&gt;
&lt;br /&gt;
link setzen damit nagios das plugin findet (ansonsten gibts ein &amp;quot;Unable to red Output&amp;quot;-Error&lt;br /&gt;
 ln -s /usr/local/sbin/check_openswan_tunnel /usr/lib/nagios/plugins/check_openswan_tunnel&lt;br /&gt;
erlaubte hosts &lt;br /&gt;
 allowed_hosts=192.168.202.31,10.20.30.40,10.9.8.7&lt;br /&gt;
parameter erlauben &lt;br /&gt;
 dont_blame_nrpe=1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
diese Zeilen anhängen /etc/nagios/nrpe.cfg&lt;br /&gt;
 command[check_all_disks]=/usr/lib/nagios/plugins/check_disk -w 15% -c 8% -e&lt;br /&gt;
 command[check_disk]=/usr/lib/nagios/plugins/check_disk -w 15% -c 8% -p $ARG1$&lt;br /&gt;
 command[check_tunnel]=sudo /usr/lib/nagios/plugins/check_openswan_tunnel -c  $ARG1$&lt;br /&gt;
&lt;br /&gt;
an /etc/sudoers anhängen:&lt;br /&gt;
 echo &amp;quot;nagios ALL=(ALL) NOPASSWD:/usr/lib/nagios/plugins/check_openswan_tunnel&amp;quot; &amp;gt;&amp;gt; /etc/sudoers&lt;br /&gt;
&lt;br /&gt;
=Mobile=&lt;br /&gt;
https://wiki.icinga.org/display/howtos/Setting+up+Icinga+Mobile&lt;br /&gt;
&lt;br /&gt;
==ubuntu==&lt;br /&gt;
*http://www.patrick-gotthard.de/icinga-mit-neuem-webinterface-unter-ubuntu-installieren&lt;br /&gt;
*http://askubuntu.com/questions/169033/how-to-install-icinga-on-ubuntu-12-04-monitor-remote-host&lt;br /&gt;
&lt;br /&gt;
=Workaround &amp;quot;SOCKET TIMEOUT&amp;quot;=&lt;br /&gt;
&lt;br /&gt;
“CRITICAL – Socket timeout after 10 seconds” error kann man leicht fixen, indem man die Checkfrequenz erhöht.&lt;br /&gt;
&lt;br /&gt;
Dies geschieht in der commands.cfg (liegt unter '''/etc/ininga/objects''') [Diese kann auch unter /usr/local/nagios/etc/objects/ oder /etc/nagios/ liegen] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dieses Case muss geändert werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define command {&lt;br /&gt;
 command_name    check_nrpe&lt;br /&gt;
 command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In diese Zeile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define command {&lt;br /&gt;
 command_name    check_nrpe&lt;br /&gt;
 command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -t 20&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man muss lediglich den Parameter &amp;quot;-t *sekundenanzahl*&amp;quot; anhängen&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Samba4&amp;diff=4672</id>
		<title>Samba4</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Samba4&amp;diff=4672"/>
		<updated>2014-07-31T10:38:37Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Installation=&lt;br /&gt;
*[[Sources]]&lt;br /&gt;
*[[Ubuntu-samba4]]&lt;br /&gt;
*[[Ubuntu-ads-member]]&lt;br /&gt;
*[[Ubuntu-ads-client]]&lt;br /&gt;
*[[Sernet]]&lt;br /&gt;
*[[Windows-8.1-samba4|Windows-8.1]]&lt;br /&gt;
*[[Usermanagment]]&lt;br /&gt;
*[[DNS]]&lt;br /&gt;
*[[Kerberos]]&lt;br /&gt;
*[[Roaming Profiles]]&lt;br /&gt;
*[[Gruppenrichtlinien]]&lt;br /&gt;
*[[Debugging]]&lt;br /&gt;
*[[Upgrading von 3 nach 4]]&lt;br /&gt;
*[[Backup]]&lt;br /&gt;
*[[ldb-tools]]&lt;br /&gt;
*[[RSAT]]&lt;br /&gt;
*[[Registry]]&lt;br /&gt;
*[[automatic shares]]&lt;br /&gt;
*[[change dns backend]]&lt;br /&gt;
*[[squid-kerberos]]&lt;br /&gt;
*[[ACL - Kurzreferenz]]&lt;br /&gt;
&lt;br /&gt;
=pam ldap=&lt;br /&gt;
*http://zachbethel.com/2013/04/10/linux-ldap-authentication-with-samba4/&lt;br /&gt;
=ldapbackend=&lt;br /&gt;
*http://www.foteviken.de/?p=1925&lt;br /&gt;
=samba-and-active-directory=&lt;br /&gt;
*http://www.held-im-ruhestand.de/software/samba-and-active-directory&lt;br /&gt;
=domain member=&lt;br /&gt;
*https://wiki.samba.org/index.php/Samba4/Domain_Member&lt;br /&gt;
=group policiy=&lt;br /&gt;
*http://www.alexwyn.com/computer-tips/folder-redirection-samba4-active-directory-domain-controller&lt;br /&gt;
=movies=&lt;br /&gt;
*http://www.samba.org/tridge/Samba4Demo/&lt;br /&gt;
&lt;br /&gt;
=Kennwortrichtlinie deaktivieren=&lt;br /&gt;
 Du gehst in die Gruppenrichtlinienverwaltung.&lt;br /&gt;
 Dann gehst du in das Verzecihnis deiner gewünschten Domäne.&lt;br /&gt;
 Jetzt solltest du einen eintrag sehen, der sich &amp;quot;Default Domain Controllers Policy&amp;quot; nennt.&lt;br /&gt;
 Mit rechter Maustaste draufklicken und bearbeiten. Dann öffnet sich der Gruppenrichtlinienverwaltungs-Editor&lt;br /&gt;
 (Achtung! Auf den ersten Blick sehr leicht mit der Gruppenrichtlinienverwaltung zu verwechseln).&lt;br /&gt;
 Jetzt schaust du unter &amp;quot;Computerconfiguration&amp;gt; Richtlinien&amp;gt; Windows-Einstellungen&amp;gt; Sicherheitseinstellungen&amp;gt; Kontorichtlinien&amp;gt; Kennwortrichtlinien.&lt;br /&gt;
 &lt;br /&gt;
 Dort darf man dann endlich die Kennwortrichtlinie deaktivieren.&lt;br /&gt;
&lt;br /&gt;
=debian=&lt;br /&gt;
*http://chris-blog.net/2014/01/freigaben-auf-einem-samba-4-server-einrichten/&lt;br /&gt;
=ubuntu=&lt;br /&gt;
http://xiep.de/allgemein/ubuntu-server-12-04-mit-samba-4-und-active-directory-pdc/&lt;br /&gt;
=dns=&lt;br /&gt;
https://wiki.archlinux.org/index.php/Samba_4_Active_Directory_Domain_Controller&lt;br /&gt;
=kennwortrichtlinien=&lt;br /&gt;
http://chris-blog.net/2014/01/kennwortrichtlinie-in-samba-4-domain-deaktivieren/&lt;br /&gt;
=Debugging / Probleme mit Kennwortrichtlinien=&lt;br /&gt;
&lt;br /&gt;
Rechte sysvol kontrollieren&lt;br /&gt;
 samba-tool ntacl sysvolcheck&lt;br /&gt;
&lt;br /&gt;
Rechte auf sysvol zuruecksetzen&lt;br /&gt;
 samba-tool ntacl sysvolreset&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Bash&amp;diff=4670</id>
		<title>Bash</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Bash&amp;diff=4670"/>
		<updated>2014-07-29T08:23:46Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: /* Der Befehl trap */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Prinzip==&lt;br /&gt;
Auf der Konsole werden die Befehle aneinander gereiht, indem zwischen den Befehlen ein ; eingefügt wird. &lt;br /&gt;
 thomas@dozent:~$ date ; hostname ; pwd&lt;br /&gt;
 Mon Dec 15 08:59:13 CET 2003&lt;br /&gt;
 dozent&lt;br /&gt;
 /home/thomas&lt;br /&gt;
Neben dieser interaktiven Eingabe gibt es auch die Möglichkeit, dass die Shell die Kommandos aus einer &lt;br /&gt;
Datei lesen kann.&lt;br /&gt;
&lt;br /&gt;
Der Inhalt eines (z.B. mit dem vi erstellten) Shellskriptes:&lt;br /&gt;
 thomas@dozent:~/bin$ cat skript&lt;br /&gt;
 date&lt;br /&gt;
 hostname&lt;br /&gt;
 pwd&lt;br /&gt;
&lt;br /&gt;
===Die Ausgabe des Shellskriptes===&lt;br /&gt;
 thomas@dozent:~/bin$ ./skript&lt;br /&gt;
 Mon Dec 15 09:07:22 CET 2003&lt;br /&gt;
 dozent&lt;br /&gt;
 /home/thomas/bin&lt;br /&gt;
&lt;br /&gt;
===Struktogramm nach Nassi-Shneiderman===&lt;br /&gt;
&lt;br /&gt;
{| border=1 cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Ausgabe Datum&lt;br /&gt;
|-&lt;br /&gt;
| Ausgabe Rechnername&lt;br /&gt;
|-&lt;br /&gt;
| Ausgabe Arbeitszverzeichnis&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Der Interpretor in der Windowswelt===&lt;br /&gt;
&lt;br /&gt;
{| border=1 cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Endung&lt;br /&gt;
! Interpretor&lt;br /&gt;
|-&lt;br /&gt;
| .pl&lt;br /&gt;
| Perl&lt;br /&gt;
|-&lt;br /&gt;
| .py&lt;br /&gt;
| Python&lt;br /&gt;
|-&lt;br /&gt;
| .bat&lt;br /&gt;
| command.com&lt;br /&gt;
|-&lt;br /&gt;
| .cmd&lt;br /&gt;
| cmd.exe&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Der Interpretor in der Linuxwelt===&lt;br /&gt;
Unter  Unix/Linux entscheidet nicht die Suffix welchem Interpretor ein Skript übergeben wird, da ja in &lt;br /&gt;
der Regel keine Suffix vorhanden ist. Die Art wird durch die Datei bestimmt, und zwar durch die ersten &lt;br /&gt;
Bytes einer Datei. Wenn wir unser Skript mit &lt;br /&gt;
 thomas@dozent:~file skript&lt;br /&gt;
 skript: ASCII text&lt;br /&gt;
untersuchen sehen wir, dass es als normaler ASCII Text interpretiert wird. Bei einem Programmaufruf wird &lt;br /&gt;
es einfach der aktuellen Shell übergeben (es gibt ausser der bash noch andere Shells z.B. bourne-shell &lt;br /&gt;
(bsh), korn-shell (ksh), ash). Um sicherzugehen, dass es der richtigen Shell übergeben wird, fuegt man &lt;br /&gt;
an den Skriptanfang einfach ein #! an, in unserem Fall ein #!/bin/bash für die Bourne-Again Shell.&lt;br /&gt;
Das bedeutet ,dass das Programm welches hinter dem #! (Gobang Operator) steht der Interpretor ist, &lt;br /&gt;
dem das Skript übergeben wird.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 date&lt;br /&gt;
 hostname&lt;br /&gt;
 pwd&lt;br /&gt;
Selbst in der C shell ist somit sichergestellt ,dass das Skript der Bash übergeben wird&lt;br /&gt;
 thomas@dozent:~file skript&lt;br /&gt;
 skript: Bourne-Again shell script text executable&lt;br /&gt;
&lt;br /&gt;
==Ablauf eines Shell-Skriptes==&lt;br /&gt;
&lt;br /&gt;
*Starten einer Subshell&lt;br /&gt;
*Lesen der Skriptdatei von der Subshell (zeilenweise)&lt;br /&gt;
*Kommandos werden nacheinander abgearbeitet &lt;br /&gt;
*Beenden der Subshell und Rückkehr zur aufrufenden Shell&lt;br /&gt;
&lt;br /&gt;
==Möglichkeiten ein Shellskript aufzurufen==&lt;br /&gt;
===bash skript (r)===&lt;br /&gt;
* Starten einer Subshell&lt;br /&gt;
* Lesen der Skriptdatei von der Subshell&lt;br /&gt;
* Kommandos werden nacheinander abgearbeitet &lt;br /&gt;
* Beenden der Subshell und Rückkehr zur aufrufenden Shell&lt;br /&gt;
''(Die Shell, die das Skript abarbeitet, kennt den Namen des Shellskriptes)''&lt;br /&gt;
 &lt;br /&gt;
===bash &amp;lt; skript (r)===&lt;br /&gt;
* Starten einer Subshell&lt;br /&gt;
* Lesen der Skriptdatei von der Subshell&lt;br /&gt;
* Kommandos werden nacheinander abgearbeitet &lt;br /&gt;
* Beenden der Subshell und Rückkehr zur aufrufenden Shell&lt;br /&gt;
''(Die Shell, die das Skript abarbeitet, kennt den Namen des Shellskriptes nicht)''&lt;br /&gt;
&lt;br /&gt;
===./skript (rx)===&lt;br /&gt;
* Starten einer Subshell&lt;br /&gt;
* Lesen der Skriptdatei von der Subshell&lt;br /&gt;
* Kommandos werden nacheinander abgearbeitet &lt;br /&gt;
* Beenden der Subshell und Rückkehr zur aufrufenden Shell&lt;br /&gt;
''(Die Shell, die das Skript abarbeitet, kennt den Namen des Shellskriptes, es muss zusätzlich das Ausführungsrecht gesetzt sein.)''&lt;br /&gt;
&lt;br /&gt;
===exec ./skript (rx)===&lt;br /&gt;
* Die Subshell ersetzt die aktuelle Shell (überlädt die aktuelle Shell)&lt;br /&gt;
* Lesen der Skriptdatei von der Subshell&lt;br /&gt;
* Kommandos werden nacheinander abgearbeitet &lt;br /&gt;
* Beenden der Subshell; danach ist der Prozess der aufrufenden Shell beendet.&lt;br /&gt;
&lt;br /&gt;
===source skript  oder . skript (r)===&lt;br /&gt;
* Lesen der Skriptdatei von der aktuellen Shell &lt;br /&gt;
* Der interaktive Modus der aktuellen Shell wird „unterbrochen“&lt;br /&gt;
* Kommandos werden nacheinander abgearbeitet &lt;br /&gt;
''(Es wird kein neuer Prozess gestartet; Variablen haben in dieser Shell Gültigkeit)''&lt;br /&gt;
	&lt;br /&gt;
==Variablen==&lt;br /&gt;
===Skalare Variablen===&lt;br /&gt;
Eine Variable stellt einen Platzhalter dar. Man spricht von Variablensubstitution, wenn anstatt der &lt;br /&gt;
Variablen deren Wert bzw. Inhalt ausgegeben wird.Eine Variable muss im Gegensatz zu Programmiersprachen, &lt;br /&gt;
die kompiliert werden, nicht deklariert werden, da der Interpretor zu Laufzeit den Speicherplatz allokiert &lt;br /&gt;
(Belegung des Speicherplatzes zur Laufzeit).&lt;br /&gt;
&lt;br /&gt;
Die Definition einer Variablen erfolgt durch die Nennung, gefolgt von einem = Zeichen, gefolgt von dem &lt;br /&gt;
Inhalt, der zugewiesen wird. Wichtig : zwischen der Variablen, dem = und dem Wert darf kein Leerzeichen &lt;br /&gt;
stehen. Man benutzt häufig Grossbuchtstaben, es sollten keine – benutzt  werden.  &lt;br /&gt;
&lt;br /&gt;
Definition der Variable&lt;br /&gt;
 thomas@dozent:~$ GLAS=bier&lt;br /&gt;
Ausgabe des Variableninhalts&lt;br /&gt;
 thomas@dozent:~$ echo $GLAS&lt;br /&gt;
 bier&lt;br /&gt;
Definition der Variable:  	 &lt;br /&gt;
:thomas@dozent:~$ UNIXSYSTEM=/usr&lt;br /&gt;
:Variablensubstititution:		&lt;br /&gt;
 thomas@dozent:~$ ls -ld  $UNIXSYSTEM&lt;br /&gt;
 drwxr-xr-x 11 root root 4096 2008-10-29 23:58 /usr&lt;br /&gt;
&lt;br /&gt;
===Feld Variablen===&lt;br /&gt;
Definition der Feld Variablen&lt;br /&gt;
 thomas@dozent:~/bin$ farbe=(blau gelb gruen rot)&lt;br /&gt;
Ausgabe des Inhalts der Feld Variablen&lt;br /&gt;
 thomas@dozent:~/bin$ echo ${farbe[0]}&lt;br /&gt;
 blau&lt;br /&gt;
 thomas@dozent:~/bin$ echo ${farbe[1]}&lt;br /&gt;
 gelb&lt;br /&gt;
 thomas@dozent:~/bin$ echo ${farbe[2]}&lt;br /&gt;
 gruen&lt;br /&gt;
 thomas@dozent:~/bin$ echo ${farbe[3]}&lt;br /&gt;
 rot&lt;br /&gt;
&lt;br /&gt;
===Der Exportbefehl===&lt;br /&gt;
Die Variable wird nicht automatisch an Kindprozess weitergegeben. Mit export wird eine Variable markiert, &lt;br /&gt;
sodass sie in die Prozessumgebung übernommen wird um beim Forken auch dem Kindprozess zur Verfügung zu stehen.&lt;br /&gt;
Alle exportierten Variablen können mit dem Befehl ''printenv'' oder ''env'' angezeigt werden. Wirklich alle &lt;br /&gt;
Shellvariablen werden mit set angezeigt.&lt;br /&gt;
&lt;br /&gt;
===Kommandosubstitution===&lt;br /&gt;
Bei der Kommandosubstitution wird ein Kommando mit seinem Rückgabewert ersetzt.&lt;br /&gt;
Es existieren zwei Varianten &lt;br /&gt;
&lt;br /&gt;
 $(date) &lt;br /&gt;
&lt;br /&gt;
 `date`&lt;br /&gt;
&lt;br /&gt;
Bei der ersten Variante besteht die Möglichkeit zu schachteln:&lt;br /&gt;
&lt;br /&gt;
 thomas@dozent:~$ cd $(echo /home/$(whoami))&lt;br /&gt;
 thomas@dozent:~$ cd `echo /home/`whoami``&lt;br /&gt;
&lt;br /&gt;
 thomas@dozent:~$ date -u &amp;quot;+%X&amp;quot;&lt;br /&gt;
 09:29:41&lt;br /&gt;
 thomas@dozent:~$ MOMENT=$(date -u &amp;quot;+%X&amp;quot;)&lt;br /&gt;
 thomas@dozent:~$ echo $MOMENT&lt;br /&gt;
 09:29:58&lt;br /&gt;
 thomas@dozent:~$ echo $MOMENT&lt;br /&gt;
 09:29:58&lt;br /&gt;
&lt;br /&gt;
===Abgrenzen von Variablen===&lt;br /&gt;
Folgt einem Dollarzeichen $ ein Variablenname oder eine öffnende geschweifte Klammer ${...}, so spricht man &lt;br /&gt;
von einer Variablen- bzw. Parameterexpansion. Die geschweiften  Klammern dienen zur Gruppierung und sind bei&lt;br /&gt;
skalaren Variablen, die nicht per Parameterexpansion behandelt werden sollen, nicht notwendig. &lt;br /&gt;
&lt;br /&gt;
 thomas@dozent:~$ SUX=eins&lt;br /&gt;
 thomas@dozent:~$ TUX=zwei&lt;br /&gt;
 thomas@dozent:~$ SUXTUX=drei&lt;br /&gt;
 &lt;br /&gt;
 thomas@dozent:~$ echo $SUX&lt;br /&gt;
 eins&lt;br /&gt;
 thomas@dozent:~$ echo ${SUX}&lt;br /&gt;
 eins&lt;br /&gt;
 thomas@dozent:~$ echo $SUXTUX&lt;br /&gt;
 drei&lt;br /&gt;
 thomas@dozent:~$ echo ${SUX}TUX&lt;br /&gt;
 einsTUX&lt;br /&gt;
 thomas@dozent:~$ echo ${SUX}${TUX}&lt;br /&gt;
 einszwei&lt;br /&gt;
&lt;br /&gt;
===Weitere Mechanismen zur Parameterexpansion===&lt;br /&gt;
Die weiteren Mechanismen zur Parameterexpansion manipulieren den Inhalt von Variablen.   &amp;quot;FARBE&amp;quot; bezeichnet &lt;br /&gt;
nachfolgend den Variablennamen und &amp;quot;rot&amp;quot; steht entweder für eine Zeichenkette oder für eine Variable, die &lt;br /&gt;
selbst wieder eine Parameter-, Kommando, Tildeexpansion oder eine arithmetische Berechnung beinhalten kann. &lt;br /&gt;
* ${FARBE:-rot}&lt;br /&gt;
Wenn die Variable $FARBE definiert ist, wird der Inhalt zurückgeliefert; wenn sie nicht definiert ist, wird &lt;br /&gt;
rot zurückgeliefert &lt;br /&gt;
 thomas@dozent:~$ unset FARBE&lt;br /&gt;
 thomas@dozent:~$ echo ${FARBE:-rot}&lt;br /&gt;
 rot&lt;br /&gt;
 thomas@dozent:~$ FARBE=gruen&lt;br /&gt;
 thomas@dozent:~$ echo ${FARBE:-rot}&lt;br /&gt;
 gruen&lt;br /&gt;
 thomas@dozent:~$ echo $FARBE&lt;br /&gt;
 gruen&lt;br /&gt;
&lt;br /&gt;
* ${FARBE:=rot}&lt;br /&gt;
&lt;br /&gt;
Wenn die Variable $FARBE definiert ist, wird der Inhalt zurückgeliefert, wenn sie nicht definiert ist, wird &lt;br /&gt;
rot  zurückgeliefert und die Variable $FARBE wird mit dem Wert rot belegt (somit ist sie definiert). &lt;br /&gt;
&lt;br /&gt;
 thomas@dozent:~$ unset FARBE&lt;br /&gt;
 thomas@dozent:~$ echo ${FARBE:=rot}&lt;br /&gt;
 rot&lt;br /&gt;
 thomas@dozent:~$ echo $FARBE&lt;br /&gt;
 rot&lt;br /&gt;
&lt;br /&gt;
* ${FARBE:?keine farbe gesetzt}&lt;br /&gt;
&lt;br /&gt;
Wenn die Variable $FARBE definiert ist, wird der Inhalt zurückgeliefert, wenn sie nicht definiert ist, wird &lt;br /&gt;
'keine farbe' als Fehlermitteilung ausgegeben. Der Rückgabewert ist dann auch ungleich 0.&lt;br /&gt;
 thomas@dozent:~$ unset FARBE&lt;br /&gt;
 thomas@dozent:~$ echo ${FARBE:?keine farbe}&lt;br /&gt;
 bash: FARBE: keine farbe&lt;br /&gt;
 thomas@dozent:~$ echo $?&lt;br /&gt;
 1&lt;br /&gt;
 thomas@dozent:~$ FARBE=silber&lt;br /&gt;
 thomas@dozent:~$ echo ${FARBE:?keine farbe}&lt;br /&gt;
 silber&lt;br /&gt;
 &lt;br /&gt;
* ${FARBE:+rot}&lt;br /&gt;
&lt;br /&gt;
Wenn die Variable $FARBE definiert ist, wird rot  zurückgeliefert, ansonsten nichts.  &lt;br /&gt;
 thomas@dozent:~$ unset FARBE&lt;br /&gt;
 thomas@dozent:~$ echo ${FARBE:+rot} &lt;br /&gt;
 &lt;br /&gt;
 thomas@dozent:~$ FARBE=gelb&lt;br /&gt;
 thomas@dozent:~$ echo ${FARBE:+rot}&lt;br /&gt;
 rot&lt;br /&gt;
 thomas@dozent:~$ echo $FARBE&lt;br /&gt;
 gelb&lt;br /&gt;
 &lt;br /&gt;
* ${FARBE:4}&lt;br /&gt;
&lt;br /&gt;
Der Inhalt der Variable wird ab der 4 Position bis zum Ende ausgegeben. &lt;br /&gt;
Es wird ab 0 gezählt.&lt;br /&gt;
&lt;br /&gt;
 thomas@dozent:~$ FARBE=rotweis&lt;br /&gt;
 thomas@dozent:~$ echo ${FARBE:3}&lt;br /&gt;
 weis&lt;br /&gt;
 &lt;br /&gt;
* ${FARBE:5:3}&lt;br /&gt;
&lt;br /&gt;
Ab der 5 Position werden 3 Zeichen ausgegeben. Es wird ab 0 gezählt.&lt;br /&gt;
&lt;br /&gt;
 thomas@dozent:~$ FARBE=schwarzbraun&lt;br /&gt;
 thomas@dozent:~$ echo ${FARBE:5:3}&lt;br /&gt;
 rzb&lt;br /&gt;
&lt;br /&gt;
* ${#FARBE}&lt;br /&gt;
Die Anzahl Zeichen der Variable wird ausgegeben &lt;br /&gt;
&lt;br /&gt;
 thomas@dozent:~$ FARBE=schwarzbraun&lt;br /&gt;
 thomas@dozent:~$ echo ${#FARBE}&lt;br /&gt;
 12&lt;br /&gt;
&lt;br /&gt;
* ${FARBE#rot}&lt;br /&gt;
&lt;br /&gt;
Wenn das Wort rot am Anfang der Variable steht wird der Rest der Variable&lt;br /&gt;
ausgegeben . Wenn dies nicht so ist wird die Variable ausgegeben.  &lt;br /&gt;
 thomas@dozent:~/bin$ FARBE=rotweis&lt;br /&gt;
 thomas@dozent:~/bin$ echo ${FARBE#rot}&lt;br /&gt;
 weis&lt;br /&gt;
&lt;br /&gt;
* ${PROGRAM##*/}&lt;br /&gt;
&lt;br /&gt;
Werden ## Kreuze angeben so wird die längstmögliche Ersetzung vorgenommen und der Rest wird ausgeben.&lt;br /&gt;
 thomas@dozent:~/bin$ PROGRAM=/usr/bin/passwd&lt;br /&gt;
 thomas@dozent:~/bin$ echo ${PROGRAM#*/}&lt;br /&gt;
 usr/bin/passwd&lt;br /&gt;
 thomas@dozent:~/bin$ echo ${PROGRAM##*/}&lt;br /&gt;
 passwd&lt;br /&gt;
&lt;br /&gt;
* ${FARBE%weis}&lt;br /&gt;
&lt;br /&gt;
Wenn das Wort rot am Ende der Variable steht wird der restliche Anfang  der Variable ausgegeben. Wenn dies nicht so ist wird die Variable ausgegeben.  &lt;br /&gt;
&lt;br /&gt;
 thomas@dozent:~/bin$ FARBE=rotweis&lt;br /&gt;
 thomas@dozent:~/bin$ echo ${FARBE%weis}&lt;br /&gt;
 rot&lt;br /&gt;
&lt;br /&gt;
* ${PROGRAM%%*/}&lt;br /&gt;
&lt;br /&gt;
Werden %% (2 Prozentzeichen) angeben, so wird die längstmögliche Ersetzung vorgenommen und der Anfang  wird ausgeben.&lt;br /&gt;
 thomas@dozent:~/bin$ FARBE=rotweisrot&lt;br /&gt;
 thomas@dozent:~/bin$ echo ${FARBE%o*}&lt;br /&gt;
 rotweisr&lt;br /&gt;
 thomas@dozent:~/bin$ echo ${FARBE%%o*}&lt;br /&gt;
 r&lt;br /&gt;
&lt;br /&gt;
* ${FARBE/rot/blau} &lt;br /&gt;
&lt;br /&gt;
Ersetzen eines Musters. Kommt in der Variable FARBE ein rot vor, wird dies durch blau ersetzt.  &lt;br /&gt;
&lt;br /&gt;
* ${FARBE//rot/blau} &lt;br /&gt;
&lt;br /&gt;
Ersetzen eines Musters.  Kommen in der Variable FARBE mehrere  rot vor, werden sie durch blau ersetzt.&lt;br /&gt;
&lt;br /&gt;
 thomas@dozent:~/bin$ FARBE=rotweisrot&lt;br /&gt;
 thomas@dozent:~/bin$ echo ${FARBE/rot/blau}&lt;br /&gt;
 blauweisrot&lt;br /&gt;
 thomas@dozent:~/bin$ echo ${FARBE//rot/blau}&lt;br /&gt;
 blauweisblau&lt;br /&gt;
&lt;br /&gt;
==Besondere Dateien==&lt;br /&gt;
* /etc/profile&lt;br /&gt;
Wird beim Anmelden automatisch ausgeführt. Sie gilt für alle.&lt;br /&gt;
* ~/.bash_profile&lt;br /&gt;
Wenn diese Datei existiert, wird sie beim Anmelden automatisch ausgeführt; sonst springe zu ~/.bash_login&lt;br /&gt;
&lt;br /&gt;
* ~/.bash_login	&lt;br /&gt;
Wenn diese Datei existiert wird sie beim Anmelden automatisch ausgeführt ;sonst springe zu ~/.profile&lt;br /&gt;
&lt;br /&gt;
* ~/.profile	&lt;br /&gt;
Wird beim Anmelden automatisch ausgeführt wenn 	die beiden obigen nicht existieren.&lt;br /&gt;
&lt;br /&gt;
* ~/.bashrc&lt;br /&gt;
Wird beim starten jeder Bash automatisch ausgeführt. &lt;br /&gt;
&lt;br /&gt;
* ~/.bash_history	&lt;br /&gt;
Enthält die während der letzten Sitzung eingegebenen Befehle &lt;br /&gt;
&lt;br /&gt;
* ~/.bash_logout	&lt;br /&gt;
Wird beim Abmelden ausgeführt&lt;br /&gt;
&lt;br /&gt;
==Wichtige Systemvariablen (Auswahl)==&lt;br /&gt;
* PATH&lt;br /&gt;
Pfad, in dem nach ausführbaren Programmen gesucht wird&lt;br /&gt;
* HOME&lt;br /&gt;
Heimatverzeichnis&lt;br /&gt;
* BASH	&lt;br /&gt;
Pfadname der aktuellen Shell&lt;br /&gt;
* PWD	&lt;br /&gt;
Aktuelles Verzeichnis &lt;br /&gt;
* OLDPWD	&lt;br /&gt;
Letztes aktuelles Verzeichnis vor cd &lt;br /&gt;
* PS1 ,PS2 , PS3	&lt;br /&gt;
Eingabeprompt 1 2 und 3&lt;br /&gt;
* UID	&lt;br /&gt;
Benutzerkennung&lt;br /&gt;
* EDITOR	&lt;br /&gt;
Standardeditor (wenn nicht belegt, dann vi)&lt;br /&gt;
* MAIL	&lt;br /&gt;
Dort werden die Mails gespeichert&lt;br /&gt;
* HOSTNAME	&lt;br /&gt;
Name des Rechners&lt;br /&gt;
&lt;br /&gt;
==Stellungsparameter (Spezielle Variablen)==&lt;br /&gt;
Den Stellungsparametern $1, $2, ..., $9 werden bei ihrer Definition nach ihrer Reihenfolge Werte zugewiesen. &lt;br /&gt;
Die Definition erfolgt mit dem Kommando ''set',  einem Skript - oder Prozeduraufruf . &lt;br /&gt;
&lt;br /&gt;
Ihr Geltungsbereich ist lokal, d.h. sie gelten nur in der aktuellen bash und können nicht exportiert werden.&lt;br /&gt;
&lt;br /&gt;
===Belegen der Variablen mittels set===&lt;br /&gt;
 thomas@dozent:~/bin$ set der fck ist eine klasse Mannschaft&lt;br /&gt;
 thomas@dozent:~/bin$ echo $1 $2 $3&lt;br /&gt;
 der fck ist&lt;br /&gt;
 thomas@dozent:~/bin$ echo $5 $6 $7&lt;br /&gt;
 eine klasse Mannschaft&lt;br /&gt;
 thomas@dozent:~/bin$ set unser fcs ist aber auch ok&lt;br /&gt;
 thomas@dozent:~/bin$ echo $1 $2 $3&lt;br /&gt;
 unser fcs ist&lt;br /&gt;
&lt;br /&gt;
===Belegen der Variablen durch einen Skriptaufruf===&lt;br /&gt;
Die Variablen werden automatisch beim Skriptaufruf belegt, indem sie als Argumente dem Skript übergeben werden.&lt;br /&gt;
 thomas@dozent:~/bin$ cat skript1&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 echo &amp;quot;1         parameter $1&amp;quot;&lt;br /&gt;
 echo &amp;quot;2         parameter $2&amp;quot;&lt;br /&gt;
 echo &amp;quot;3         parameter $3&amp;quot;&lt;br /&gt;
 echo &amp;quot;4         parameter $4&amp;quot;&lt;br /&gt;
 echo &amp;quot;alle     parameter $*&amp;quot;&lt;br /&gt;
 echo &amp;quot;alle     parameter $@&amp;quot;&lt;br /&gt;
 echo &amp;quot;anzahl    parameter $#&amp;quot;&lt;br /&gt;
 echo &amp;quot;skriptname      $0&amp;quot;&lt;br /&gt;
 echo &amp;quot;PID des skriptes      $$&amp;quot;&lt;br /&gt;
 echo &amp;quot;Rückgabewert letztes Kommando     $?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 thomas@dozent:~/bin$ ./skript1 blau gruen gelb rot&lt;br /&gt;
 1            parameter blau&lt;br /&gt;
 2            parameter gruen&lt;br /&gt;
 3            parameter gelb&lt;br /&gt;
 4            parameter rot&lt;br /&gt;
 alle         parameter blau gruen gelb rot&lt;br /&gt;
 alle         parameter blau gruen gelb rot&lt;br /&gt;
 anzahl       parameter 4&lt;br /&gt;
 skriptname             ./skript1&lt;br /&gt;
 PID des skriptes       1019&lt;br /&gt;
 Rückgabewert letztes Kommando    0&lt;br /&gt;
&lt;br /&gt;
==Systemparameter==&lt;br /&gt;
Der Begriff Systemparameter bezeichnet eine Variable, die von der bash automatisch mit Werten versorgt wird. Die aktuellen &lt;br /&gt;
Werte können vom Benutzer abgefragt werden.&lt;br /&gt;
&lt;br /&gt;
Einige wichtige Systemparameter:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=1 cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
| $$&lt;br /&gt;
| PID des laufenden Prozesses&lt;br /&gt;
|-&lt;br /&gt;
| $!&lt;br /&gt;
| PID des letzten Hintergrundprozesses&lt;br /&gt;
|-&lt;br /&gt;
| $-&lt;br /&gt;
| Liste der für die bash gesetzten Schalter&lt;br /&gt;
|-&lt;br /&gt;
| $?&lt;br /&gt;
| Exitstatus des letzten Kommandos&lt;br /&gt;
|-&lt;br /&gt;
| $#&lt;br /&gt;
| Anzahl der Stellungsparameter&lt;br /&gt;
|- &lt;br /&gt;
| $*&lt;br /&gt;
| Liste der Stellungsparameter&lt;br /&gt;
|-&lt;br /&gt;
| $0&lt;br /&gt;
| Aktueller Prozessname&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==shift-Kommando==&lt;br /&gt;
Das Kommando bewirkt die Verschiebung aller Stellungsoperanden um eine Stelle nach links. Auf diese Weise ist &lt;br /&gt;
nach der Anwendung des shift-Kommandos der Wert des 10ten Parameters in $9, der ursprüngliche Wert von $1 ist &lt;br /&gt;
verloren. Die Stellenanzahl, um die verschoben wird, kann angegeben werden, z. B. bewirkt der Befehl ''shift 4''&lt;br /&gt;
das Verschieben um 4 Stellen nach links.&lt;br /&gt;
&lt;br /&gt;
 thomas@dozent:~$ set hallo ihr guten admins von der schule hier&lt;br /&gt;
 thomas@dozent:~$ echo $1 $2 $3 $4&lt;br /&gt;
 hallo ihr guten admins&lt;br /&gt;
 thomas@dozent:~$ shift&lt;br /&gt;
 thomas@dozent:~$ echo $1 $2 $3 $4&lt;br /&gt;
 ihr guten admins von&lt;br /&gt;
 thomas@dozent:~$ shift 3&lt;br /&gt;
 thomas@dozent:~$ echo $1 $2 $3 $4&lt;br /&gt;
 von der schule hier&lt;br /&gt;
&lt;br /&gt;
==read-Kommando==&lt;br /&gt;
Mit read wird eine Eingabezeile eingelesen und deren Inhalt Variablen zugewiesen. Die Eingabe wird anhand der &lt;br /&gt;
Trennzeichen in einzelne Token zerlegt und der Reihe nach den Variablen zugewiesen. Stehen mehr Token zur &lt;br /&gt;
Verfügung als Variablen, so wird die letzte Variable mit allen noch nicht zugewiesenen  Token belegt; stehen weniger&lt;br /&gt;
Token bereit, bleibt der Inhalt der überschüssigen Variablen leer:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 echo &amp;quot;wie heißen sie?&amp;quot;&lt;br /&gt;
 read NAME VORNAME&lt;br /&gt;
 echo &amp;quot;Sie heißen $VORNAME $NAME&amp;quot;&lt;br /&gt;
&lt;br /&gt;
read wird in dieser Form sehr selten benutzt da der automatische Charakter von shell Skripten dadurch verloren geht.&lt;br /&gt;
&lt;br /&gt;
==Einfache Verzweigungen==&lt;br /&gt;
In Abhängigkeit vom Returncode eines Befehls oder einer Pipe kann mit den Sonderzeichen ''&amp;amp;&amp;amp;'' und ''||''  eine &lt;br /&gt;
Verzweigung durchgeführt werden.&lt;br /&gt;
 echo ''das ist sux1.'' &amp;gt; sux1&lt;br /&gt;
 rm sux1 &amp;amp;&amp;amp; echo ''sux1 ist geloescht!''&lt;br /&gt;
 rm sux1 || echo ''sux1 konnte nicht geloescht werden.''&lt;br /&gt;
Der Befehl nach ''&amp;amp;&amp;amp;'' wird dabei nur ausgeführt, wenn der Returncode des vorherigen Befehls oder der vorherigen &lt;br /&gt;
Pipe 0 war, also der Befehl vor der Pipe fehlerfrei ausgeführt wurde. Ist ein Befehl vor einer Pipe nicht erfolgreich &lt;br /&gt;
(Returncode != 0), wird der Befehl nach ''||'' ausgeführt.&lt;br /&gt;
&lt;br /&gt;
==Endestatus==&lt;br /&gt;
Nach der Ausführung eines  Befehls wird ein Returncode (Endestatus) zurückgeliefert. Mit Hilfe des Returncodes lässt &lt;br /&gt;
sich feststellen, ob der letzte Befehl fehlerfrei ausgeführt wurde.&lt;br /&gt;
 Returncode = 0 Letzter Befehl wurde fehlerfrei ausgeführt.&lt;br /&gt;
 Returncode ≠ 0 Letzter Befehl wurde nicht fehlerfrei ausgeführt.&lt;br /&gt;
Das Kommando ''true'' liefert den Returncode 0, ''false'' liefert den Returncode ≠ 0 .&lt;br /&gt;
Bei einigen Befehlen wird die zurückgelieferte Fehlermeldung (Returncode ≠ 0) noch weiter differenziert (siehe man &lt;br /&gt;
fsck). In der Systemvariablen $? ist der aktuelle Returncode abgelegt und kann vom Benutzer abgefragt werden.&lt;br /&gt;
Bsp.:&lt;br /&gt;
 thomas@dozent:~fsck asasas&lt;br /&gt;
 thomas@dozent:~echo $?&lt;br /&gt;
 16&lt;br /&gt;
oder &lt;br /&gt;
 thomas@dozent:~/bin$ ping www.xinux.de -w 1 -c 1 &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 thomas@dozent:~/bin$ ping 172.20.103.2  -w 1 -c 1 &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 thomas@dozent:~/bin$ echo $?&lt;br /&gt;
 0&lt;br /&gt;
Erkenntnis: Rechner ist erreichbar&lt;br /&gt;
&lt;br /&gt;
 thomas@dozent:~/bin$ ping 172.20.103.99  -w 1 -c 1 &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 thomas@dozent:~/bin$ echo $?&lt;br /&gt;
 1&lt;br /&gt;
Erkenntnis: Rechner ist nicht erreichbar&lt;br /&gt;
&lt;br /&gt;
 thomas@dozent:~/bin$ touch bohnen&lt;br /&gt;
 thomas@dozent:~/bin$ rm bohnen 2&amp;gt; /dev/null&lt;br /&gt;
 thomas@dozent:~/bin$ echo $?&lt;br /&gt;
 0&lt;br /&gt;
Erkenntnis: Löschen war erfolgreich &lt;br /&gt;
&lt;br /&gt;
 thomas@dozent:~/bin$ rm bohnen 2&amp;gt; /dev/null&lt;br /&gt;
 thomas@dozent:~/bin$ echo $?&lt;br /&gt;
 1&lt;br /&gt;
Erkenntnis: Löschen war nicht erfolgreich&lt;br /&gt;
&lt;br /&gt;
==test-Kommando==&lt;br /&gt;
Der eingebaute Befehl ''test'' gibt sein Ergebnis als Returncode zurück. Dieser Befehl wird daher oft in &lt;br /&gt;
Kontrollstrukturen der bash zur Verzweigung verwendet.&lt;br /&gt;
&lt;br /&gt;
Es existieren 2 Schreibweisen:	&lt;br /&gt;
&lt;br /&gt;
 '''test''' bedingung&lt;br /&gt;
 '''[''' bedingung ''']'''&lt;br /&gt;
&lt;br /&gt;
Ist das von ''bedingung'' zurückgelieferte Ergebnis wahr, wird der Returncode 0 übergeben, sonst ungleich 0.&lt;br /&gt;
''bedingung'' kann ein numerischer Vergleich, ein Stringvergleich, eine Prüfung von Objekteigenschaften oder &lt;br /&gt;
eine beliebige Kombination der vorhergehenden sein.&lt;br /&gt;
&lt;br /&gt;
===Numerischer Vergleich===&lt;br /&gt;
 '''test''' zahl1 '''-op''' zahl2			(op: eq, ne, lt, gt, ge, le)&lt;br /&gt;
 thomas@dozent:~/bin$ ZAHL=4&lt;br /&gt;
 thomas@dozent:~/bin$ test $ZAHL -eq &amp;quot;4&amp;quot; &amp;amp;&amp;amp; echo stimmt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=1 cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
| -eq&lt;br /&gt;
| gleich&lt;br /&gt;
|- &lt;br /&gt;
| -ne&lt;br /&gt;
| ungleich&lt;br /&gt;
|-&lt;br /&gt;
| -lt &lt;br /&gt;
| kleiner&lt;br /&gt;
|-&lt;br /&gt;
| -gt&lt;br /&gt;
| größer&lt;br /&gt;
|-&lt;br /&gt;
| -ge&lt;br /&gt;
| größer oder gleich&lt;br /&gt;
|- &lt;br /&gt;
| -le&lt;br /&gt;
| kleiner oder gleich&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Stringvergleich===&lt;br /&gt;
 '''test''' string1 '''=''' string2&lt;br /&gt;
 '''test''' string1 '''!=''' string2&lt;br /&gt;
 '''test''' –n string   oder  test string		(Länge von string größer null)&lt;br /&gt;
 '''test''' –z string	 				(Länge von string gleich null)&lt;br /&gt;
&lt;br /&gt;
 thomas@dozent:~/bin$ HOBBIT=frodo&lt;br /&gt;
 thomas@dozent:~/bin$ '''test''' $HOBBIT '''=''' &amp;quot;bilbo&amp;quot; &amp;amp;&amp;amp; echo frodo&lt;br /&gt;
 thomas@dozent:~/bin$ '''test''' $HOBBIT '''=''' &amp;quot;bilbo&amp;quot; &amp;amp;&amp;amp; echo bilbo&lt;br /&gt;
 thomas@dozent:~/bin$ HOBBIT=bilbo&lt;br /&gt;
 thomas@dozent:~/bin$ '''test''' $HOBBIT '''=''' &amp;quot;bilbo&amp;quot; &amp;amp;&amp;amp; echo bilbo&lt;br /&gt;
 bilbo&lt;br /&gt;
&lt;br /&gt;
===Objekteigenschaften===&lt;br /&gt;
 '''test -op''' objekt 	    	&lt;br /&gt;
{| border=1 cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
| d ||	Directory &lt;br /&gt;
|-&lt;br /&gt;
| f ||	Datei&lt;br /&gt;
|-&lt;br /&gt;
| s ||	nicht leere Datei								&lt;br /&gt;
|-&lt;br /&gt;
| r ||	leserecht auf das Objekt&lt;br /&gt;
|-&lt;br /&gt;
| w || schreibrecht auf das Objekt&lt;br /&gt;
|-&lt;br /&gt;
| x ||	ausführungsrecht auf das Objekt&lt;br /&gt;
|}&lt;br /&gt;
	&lt;br /&gt;
 thomas@dozent:~/bin$ test -f /etc/shadow &amp;amp;&amp;amp; echo sicheres system&lt;br /&gt;
 sicheres system&lt;br /&gt;
 thomas@dozent:~/bin$ test -r /etc/shadow || echo so ist es richtig&lt;br /&gt;
 so ist es richtig&lt;br /&gt;
&lt;br /&gt;
===Prioritäten bei logischen Verknüpfungen===&lt;br /&gt;
{| border=1&lt;br /&gt;
| runde Klammer	||	Negation ||	AND ||		OR&lt;br /&gt;
|-&lt;br /&gt;
|	'''()'''	||	'''!'''	 ||    	'''-a'''  ||		'''-o'''		&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 	test \'''(''' -r dat '''-o''' -w dat \''')'''&lt;br /&gt;
 	test '''!''' \'''(''' -r dat '''-o''' -w dat \''')'''&lt;br /&gt;
 	test ''$name'';echo $?&lt;br /&gt;
&lt;br /&gt;
 thomas@dozent:~/bin$ ! test -r /etc/shadow &amp;amp;&amp;amp;  echo so ist es richtig&lt;br /&gt;
 so ist es richtig&lt;br /&gt;
&lt;br /&gt;
==Der if-Block==&lt;br /&gt;
 '''if''' programm&lt;br /&gt;
 '''then''' &lt;br /&gt;
   anweisung1&lt;br /&gt;
 '''else'''&lt;br /&gt;
   anweisung2&lt;br /&gt;
 '''fi'''&lt;br /&gt;
&lt;br /&gt;
Der if-Block verzweigt in Abhängigkeit des Returncodes des Programmes das ausgeführt wird.  Ist der &lt;br /&gt;
Returncode gleich null, wird Anweisung1 ausgeführt; ist der Returncode ungleich null, wird Anweisung2&lt;br /&gt;
ausgeführt.&lt;br /&gt;
&lt;br /&gt;
[[Image:if.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der else-Zweig kann ausgelassen oder durch einen elif-Zweig ersetzt werden. Der elif-Zweig ist eine&lt;br /&gt;
Besonderheit bei Verschachtelungen.&lt;br /&gt;
&lt;br /&gt;
 thomas@dozent:~/bin$ cat rechnertest&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 if ping -c 1 -w 1 $1 &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 then&lt;br /&gt;
 echo &amp;quot;rechner lebt&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
 echo &amp;quot;rechner ist tot&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 thomas@dozent:~/bin$ ./rechnertest 172.20.103.1&lt;br /&gt;
 rechner lebt&lt;br /&gt;
 thomas@dozent:~/bin$ ./rechnertest 172.20.103.99&lt;br /&gt;
 rechner ist tot&lt;br /&gt;
&lt;br /&gt;
===Variante ohne else===&lt;br /&gt;
 homas@dozent:~/bin$ cat rechnertest.spar&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 if ping -c 1 -w 1 $1 &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 then&lt;br /&gt;
 echo &amp;quot;rechner lebt&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 thomas@dozent:~/bin$ ./rechnertest.spar 172.20.103.1&lt;br /&gt;
 rechner lebt&lt;br /&gt;
 thomas@dozent:~/bin$ ./rechnertest.spar 172.20.103.99&lt;br /&gt;
&lt;br /&gt;
===Sonderform  mit elif===&lt;br /&gt;
 thomas@dozent:~/bin$ cat el&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 echo -n &amp;quot;wie heissen Sie :&amp;quot;&lt;br /&gt;
 read NAME&lt;br /&gt;
 if test $NAME = &amp;quot;thomas&amp;quot;&lt;br /&gt;
 then&lt;br /&gt;
        echo &amp;quot;hallo meister&amp;quot;&lt;br /&gt;
 elif test $NAME = &amp;quot;martin&amp;quot;&lt;br /&gt;
        then&lt;br /&gt;
        echo &amp;quot;hallo vizemeister&amp;quot;&lt;br /&gt;
        else&lt;br /&gt;
        echo &amp;quot;hallo wurm&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 thomas@dozent:~/bin$ ./el&lt;br /&gt;
 wie heissen Sie :thomas&lt;br /&gt;
 hallo meister&lt;br /&gt;
 thomas@dozent:~/bin$ ./el&lt;br /&gt;
 wie heissen Sie :martin&lt;br /&gt;
 hallo vizemeister&lt;br /&gt;
 thomas@dozent:~/bin$ ./el&lt;br /&gt;
 wie heissen Sie :suxer&lt;br /&gt;
 hallo wurm&lt;br /&gt;
&lt;br /&gt;
==Der case-Block==&lt;br /&gt;
Der case-Block dient der Durchführung eines Stringvergleiches. Er wird sequentiell von oben nach unten abgearbeitet. Bei &lt;br /&gt;
Übereinstimmungen mit einem definierten Muster wird der darauf folgende Befehl ausgeführt (bzw. die darauf folgende &lt;br /&gt;
Befehlsliste). Bei der ersten gefundenen Übereinstimmung terminiert der case-Block. &lt;br /&gt;
&lt;br /&gt;
Bei der Definition des Musters können die Sonderzeichen der bash zur Dateinamengenerierung verwendet werden. Zusätzlich &lt;br /&gt;
kann ''|'' für eine logische OR-Verknüpfung benutzt werden.&lt;br /&gt;
&lt;br /&gt;
 thomas@dozent:~/bin$ cat case1&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 case $1 in&lt;br /&gt;
        rock|rocknroll)&lt;br /&gt;
                echo &amp;quot;stones sind gut&amp;quot;&lt;br /&gt;
        ;;&lt;br /&gt;
        schlager)&lt;br /&gt;
                echo &amp;quot;guildo ist ein gott&amp;quot;&lt;br /&gt;
        ;;&lt;br /&gt;
        volks)&lt;br /&gt;
                echo &amp;quot;was an der waffel?&amp;quot;&lt;br /&gt;
        ;;&lt;br /&gt;
        *)&lt;br /&gt;
                echo &amp;quot;kein bock auf musik&amp;quot;&lt;br /&gt;
        ;;&lt;br /&gt;
 esac&lt;br /&gt;
&lt;br /&gt;
 thomas@dozent:~/bin$ ./case1 rock&lt;br /&gt;
 stones sind gut&lt;br /&gt;
 thomas@dozent:~/bin$ ./case1 rocknroll&lt;br /&gt;
 stones sind gut&lt;br /&gt;
 thomas@dozent:~/bin$ ./case1 schlager&lt;br /&gt;
 guildo ist der meister &lt;br /&gt;
 thomas@dozent:~/bin$ ./case1 volks&lt;br /&gt;
 was an der waffel?&lt;br /&gt;
 thomas@dozent:~/bin$ ./case1 kllkjl&lt;br /&gt;
 kein bock auf musik&lt;br /&gt;
&lt;br /&gt;
==Rechnen mit der Bash==&lt;br /&gt;
* '''$(())'''&lt;br /&gt;
* '''expr'''&lt;br /&gt;
* '''bc'''&lt;br /&gt;
&lt;br /&gt;
===Arithmetische Substitution===&lt;br /&gt;
Die $(()) oder $[ ] ist die arithmetische Erweiterungsmethode  der Bash.&lt;br /&gt;
&lt;br /&gt;
 thomas@dozent:~/bin$ echo $((7+5))&lt;br /&gt;
 12&lt;br /&gt;
 thomas@dozent:~/bin$ echo $((7*5))&lt;br /&gt;
 35&lt;br /&gt;
 thomas@dozent:~/bin$ echo $((7/5))&lt;br /&gt;
 1&lt;br /&gt;
 thomas@dozent:~/bin$ echo $((7-5))&lt;br /&gt;
 2&lt;br /&gt;
 thomas@dozent:~/bin$ echo $((7%5))&lt;br /&gt;
 2&lt;br /&gt;
 thomas@dozent:~/bin$ ZAHL=5 ; ZAHL=$(($ZAHL + 1)) ; echo $ZAHL&lt;br /&gt;
 6&lt;br /&gt;
&lt;br /&gt;
===Der expr-Befehl===&lt;br /&gt;
Erlaubt die Durchführung komplexer Stringoperationen und Ganzzahlarithme­tik.&lt;br /&gt;
 thomas@dozent:~/bin$ expr 7 + 5&lt;br /&gt;
 12&lt;br /&gt;
 thomas@dozent:~/bin$ expr 7 \* 5&lt;br /&gt;
 35&lt;br /&gt;
 thomas@dozent:~/bin$ expr 7 / 5&lt;br /&gt;
 1&lt;br /&gt;
 thomas@dozent:~/bin$ expr 7 – 5&lt;br /&gt;
 2&lt;br /&gt;
 thomas@dozent:~/bin$ expr 7 % 5&lt;br /&gt;
 2&lt;br /&gt;
 thomas@dozent:~/bin$ ZAHL=5 ; ZAHL=$(expr $ZAHL + 1) ; echo $ZAHL&lt;br /&gt;
 6&lt;br /&gt;
&lt;br /&gt;
===bc - interaktiver Taschenrechner===&lt;br /&gt;
 thomas@dozent:~/bin$ bc&lt;br /&gt;
 bc 1.06&lt;br /&gt;
 Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.&lt;br /&gt;
 This is free software with ABSOLUTELY NO WARRANTY.&lt;br /&gt;
 For details type `warranty'.&lt;br /&gt;
 12 * 3&lt;br /&gt;
 36&lt;br /&gt;
 quit&lt;br /&gt;
&lt;br /&gt;
Mit der Option -l wird die mathematische Bibliothek eingeschaltet&lt;br /&gt;
&lt;br /&gt;
 thomas@dozent:~/bin$ bc -l&lt;br /&gt;
 bc 1.06&lt;br /&gt;
 Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.&lt;br /&gt;
 This is free software with ABSOLUTELY NO WARRANTY.&lt;br /&gt;
 For details type `warranty'.&lt;br /&gt;
 7 / 5&lt;br /&gt;
 1.40000000000000000000&lt;br /&gt;
 quit&lt;br /&gt;
&lt;br /&gt;
Da bc auch von STDIN lesen kann, kann man es auch in Shellskripten benutzen.&lt;br /&gt;
&lt;br /&gt;
 thomas@dozent:~/bin$ echo 7/5 | bc -l&lt;br /&gt;
 1.40000000000000000000&lt;br /&gt;
&lt;br /&gt;
 thomas@dozent:~/bin$ ZAHL=5 ; ZAHL=$(echo $ZAHL+1 | bc -l) ; echo $ZAHL&lt;br /&gt;
 6&lt;br /&gt;
&lt;br /&gt;
== Die while-Schleife ==&lt;br /&gt;
Die while-Schleife wird so lange durchlaufen, bis der Returncode ungleich null ist.&lt;br /&gt;
 thomas@dozent:~/bin$ cat proggi&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 '''while''' [ $# -ge 1 ]&lt;br /&gt;
 '''do'''&lt;br /&gt;
  echo $1&lt;br /&gt;
  echo $#&lt;br /&gt;
  shift&lt;br /&gt;
 '''done'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 thomas@dozent:~/bin$ ./proggi blau gelb gruen&lt;br /&gt;
 blau&lt;br /&gt;
 3&lt;br /&gt;
 gelb&lt;br /&gt;
 2&lt;br /&gt;
 gruen&lt;br /&gt;
 1&lt;br /&gt;
&lt;br /&gt;
Darstellung als Struktogramm nach Nassi / Shneiderman:&lt;br /&gt;
&lt;br /&gt;
[[Image:while.jpg]]&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 COUNTER=$1&lt;br /&gt;
 while [ $COUNTER -ge 1 ]&lt;br /&gt;
  do&lt;br /&gt;
    echo $COUNTER&lt;br /&gt;
    COUNTER=$(($COUNTER-1))&lt;br /&gt;
 done&lt;br /&gt;
 echo &amp;quot;BUMM BUMM&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 thomas@dozent:~/bin$ ./countdown 5&lt;br /&gt;
 5&lt;br /&gt;
 4&lt;br /&gt;
 3&lt;br /&gt;
 2&lt;br /&gt;
 1&lt;br /&gt;
 BUMM BUMM&lt;br /&gt;
&lt;br /&gt;
===Sonderform von while===&lt;br /&gt;
Die Variable SUX wird nacheinander mit jeder Zeile der Datei &lt;br /&gt;
/etc/passwd belegt, bis die letzte Zeile der Datei /etc/passwd erreicht ist.&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 while read SUX&lt;br /&gt;
 do&lt;br /&gt;
 echo $SUX&lt;br /&gt;
 done  &amp;lt;  /etc/passwd&lt;br /&gt;
&lt;br /&gt;
Selbstgebautes cat &lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 while read ZEILE&lt;br /&gt;
 do&lt;br /&gt;
 echo $ZEILE&lt;br /&gt;
 done &amp;lt; $1&lt;br /&gt;
&lt;br /&gt;
Selbstgebautes tac&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 COUNT=0&lt;br /&gt;
 while read ZEILE&lt;br /&gt;
 do&lt;br /&gt;
 FELD[$COUNT]=$ZEILE&lt;br /&gt;
 COUNT=$(($COUNT+1))&lt;br /&gt;
 done &amp;lt; $1&lt;br /&gt;
 &lt;br /&gt;
 while [ $COUNT -ge 0 ]&lt;br /&gt;
 do&lt;br /&gt;
 echo ${FELD[$COUNT]}&lt;br /&gt;
 COUNT=$(($COUNT-1))&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
==Die until-Schleife==&lt;br /&gt;
&lt;br /&gt;
Die until-Schleife wird so lange durchlaufen, bis der Returncode der Abbruchbedingung gleich null ist.&lt;br /&gt;
&lt;br /&gt;
 	'''until''' test ''$# -eq 0“&lt;br /&gt;
 	'''do'''&lt;br /&gt;
 	     echo $1&lt;br /&gt;
 	     shift&lt;br /&gt;
 	'''done'''&lt;br /&gt;
&lt;br /&gt;
Darstellung als Struktogramm nach Nassi / Shneiderman:&lt;br /&gt;
&lt;br /&gt;
[[Image:until.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Die for-Schleife ==&lt;br /&gt;
Bei der for-Schleife wird bei jedem Durchlauf der Schleifenvariablen ein Wert aus einer angegebenen Liste &lt;br /&gt;
zugewiesen; die Liste wird dabei von links nach rechts durchlaufen. Nach der letzten Wertzuweisung terminiert die &lt;br /&gt;
for-Schleife.&lt;br /&gt;
&lt;br /&gt;
 thomas@dozent:~/bin$ cat fussball&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 '''for''' CLUB '''in''' fck bvb fcs&lt;br /&gt;
 '''do'''&lt;br /&gt;
 echo $CLUB&lt;br /&gt;
 '''done'''&lt;br /&gt;
 thomas@dozent:~/bin$ ./fussball&lt;br /&gt;
 fck&lt;br /&gt;
 bvb&lt;br /&gt;
 fcs&lt;br /&gt;
&lt;br /&gt;
Darstellung als Struktogramm nach Nassi / Shneiderman:&lt;br /&gt;
&lt;br /&gt;
[[Image:for.jpg]]&lt;br /&gt;
&lt;br /&gt;
Wird keine Liste angegeben, wird standardmäßig die Liste der Stellungsoperanden benutzt. Folgende Anweisungen sind äquivalent &lt;br /&gt;
&lt;br /&gt;
 !#/bin/bash&lt;br /&gt;
 for LAUF in $*&lt;br /&gt;
 do&lt;br /&gt;
 echo $LAUF&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
Kurzform :&lt;br /&gt;
 for LAUF &lt;br /&gt;
 do&lt;br /&gt;
 echo $LAUF&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
===Besonderheiten der for – Schleife===&lt;br /&gt;
Der Stern würde durch alle Dateien des aktuellen Verzeichnisses ersetzt werden.&lt;br /&gt;
Daraus folgt, dass der Name jeder Datei nacheinander in die Variable LAUF geschreiben wird. Die Anzahl der Schleifenläufe &lt;br /&gt;
ist identisch mit der Anzahl von Dateien. &lt;br /&gt;
 &lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 for LAUF in *&lt;br /&gt;
 do&lt;br /&gt;
 echo $LAUF&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
Hier die Variante mit einem grossen K&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 for LAUF in K*&lt;br /&gt;
 do&lt;br /&gt;
 echo $LAUF&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
Mit Bash-Version 2.0.4 wurde die for-Schleife um eine an die Programmier-sprache C angelehnte Syntaxvariante erweitert: &lt;br /&gt;
&lt;br /&gt;
 for ((Initialisierung der Laufvaribale; Abbruchbedingung; Veränderung der Laufvariable))&lt;br /&gt;
 do &lt;br /&gt;
 Kommando&lt;br /&gt;
 done &lt;br /&gt;
&lt;br /&gt;
 thomas@dozent:~/bin$ cat foor&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 for ((I=1;I&amp;lt;5;I++))&lt;br /&gt;
 do&lt;br /&gt;
 echo $I&lt;br /&gt;
 done&lt;br /&gt;
 thomas@dozent:~/bin$ ./foor&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 3&lt;br /&gt;
 4&lt;br /&gt;
&lt;br /&gt;
==Steuerung der Ablaufanweisungen==&lt;br /&gt;
===exit n===&lt;br /&gt;
Der aktuelle Prozess und damit auch die bash werden abgebrochen. Für n kann eine Zahl zwischen 0 und 255 angegeben werden; &lt;br /&gt;
damit kann der Returncode des Prozesses festgelegt werden, der an den aufrufenden Prozess übergeben wird.&lt;br /&gt;
&lt;br /&gt;
Zur Schleifensteuerung können die Befehle ''continue'' und ''break'' verwendet werden. Sie dürfen nur zwischen den &lt;br /&gt;
Schlüsselwörtern ''do'' und ''done'' stehen.&lt;br /&gt;
&lt;br /&gt;
===continue n===&lt;br /&gt;
Der aktuelle Schleifendurchlauf wird abgebrochen, um mit dem nächsten Durchlauf zu beginnen. Bei Verschachtelungen kann &lt;br /&gt;
durch Angabe einer Ganzzahl in der n-ten Schleifenebene angesetzt werden.&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 for CLUB in fck bvb bayern fcs&lt;br /&gt;
  do&lt;br /&gt;
    if [ $CLUB = &amp;quot;bayern&amp;quot; ]&lt;br /&gt;
      then&lt;br /&gt;
        echo &amp;quot;zeig ich nicht an&amp;quot;&lt;br /&gt;
        continue&lt;br /&gt;
      exit&lt;br /&gt;
    fi&lt;br /&gt;
 echo $CLUB&lt;br /&gt;
 done&lt;br /&gt;
 thomas@dozent:~/bin$ ./fussball&lt;br /&gt;
 fck&lt;br /&gt;
 bvb&lt;br /&gt;
 zeig ich nicht an&lt;br /&gt;
 fcs&lt;br /&gt;
&lt;br /&gt;
===break n===&lt;br /&gt;
Die aktuelle Schleife wird abgebrochen, danach wird mit der ersten Anweisung nach der Schleife weitergemacht. Bei &lt;br /&gt;
Verschachtelungen wird auf der n-ten Schleifenebene aufgesetzt.&lt;br /&gt;
&lt;br /&gt;
Anmerkung:&lt;br /&gt;
Ein sinnvoller Einsatz dieser Konstrukte liegt in der Behandlung von Ausnahmen (Fehler). Intensiver Einsatz macht die &lt;br /&gt;
Programme unleserlich und schwer kontrollierbar. Daher ist eine sparsame Verwendung empfehlenswert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash &lt;br /&gt;
 while true&lt;br /&gt;
 do&lt;br /&gt;
     test -f /tmp/sux &amp;amp;&amp;amp; break  &lt;br /&gt;
     echo &amp;quot;unn weiter&amp;quot;&lt;br /&gt;
     sleep 3&lt;br /&gt;
 done&lt;br /&gt;
 echo  &amp;quot;und tschuess&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Funktionen==&lt;br /&gt;
Eine Funktion ist ein Name für ein Kommando oder für eine Gruppe von Kommandos. Funktionen werden vorrangig in Shellskripten &lt;br /&gt;
verwendet, um wiederkehrende Kommandosequenzen nicht ständig neu schreiben zu müssen. Ein großer Vorteil von Funktionen ist, &lt;br /&gt;
dass sie sich in einer Datei speichern lassen und diese Datei von anderen Skripten geladen werden kann (sourcen).&lt;br /&gt;
&lt;br /&gt;
Eine Funktion wird wie folgt definiert: &lt;br /&gt;
Format: [function] Funktionsname() { Kommando; [Kommando;] } &lt;br /&gt;
&lt;br /&gt;
Bei der Verwendung von Funktionen sind einige Regeln zu befolgen: &lt;br /&gt;
&lt;br /&gt;
1.	Deckt sich der Name der Funktion mit einem builtin-Kommando,&lt;br /&gt;
	wird immer die Funktion ausgeführt und niemals das Kommando.&lt;br /&gt;
	Ebenso verdeckt ein Funktionsname ein gleichnamiges&lt;br /&gt;
	Kommando. (ausser man benutzt das Kommando builtin)&lt;br /&gt;
&lt;br /&gt;
2.	Die Funktion muss vor ihrer Verwendung definiert sein.&lt;br /&gt;
&lt;br /&gt;
3.	Eine Funktion läuft in der aktuellen Umgebung, d.h. alle&lt;br /&gt;
	Variablen der Umgebung sind sichtbar und alle Variablen, die in&lt;br /&gt;
	der Funktion definiert wurden, sind auch außerhalb sichtbar:&lt;br /&gt;
&lt;br /&gt;
4.	Wird eine Funktion mittels &amp;quot;exit&amp;quot; verlassen, wird auch der rufende&lt;br /&gt;
	Prozess beendet:&lt;br /&gt;
&lt;br /&gt;
5.	Der Rückgabewert einer Funktion ist der Rückgabewert des&lt;br /&gt;
	letzten in ihr gestarteten Kommandos&lt;br /&gt;
&lt;br /&gt;
6.	Funktionen sind nur in der Shell ihrer Definition bekannt&lt;br /&gt;
&lt;br /&gt;
7.	return bewirkt das Verlassen der Funktion, auch mit return kann ein 			&lt;br /&gt;
Rückgabewert mitgegeben werden&lt;br /&gt;
&lt;br /&gt;
Beispiel&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 function sux () &lt;br /&gt;
 { &lt;br /&gt;
 echo &amp;quot;ich bin eine suxer funktion&amp;quot;&lt;br /&gt;
 } &lt;br /&gt;
 sux&lt;br /&gt;
&lt;br /&gt;
==Signalbehandlung==&lt;br /&gt;
===Signale bei der Programmierung der bash===&lt;br /&gt;
Es existieren verschiedene Möglichkeiten, auf welchem Wege Signale gesendet werden können:&lt;br /&gt;
&lt;br /&gt;
# von aussen:&lt;br /&gt;
## Benutzer (&amp;lt; DEL &amp;gt;, &amp;lt; CTRL &amp;gt;|, etc.)&lt;br /&gt;
## Prozesse (kill, alarm)&lt;br /&gt;
# von innen:&lt;br /&gt;
## Programmfehler (Adressfehler, ungültiger Befehl, Division durch 0, etc.)&lt;br /&gt;
&lt;br /&gt;
Signale dienen der Interprozesskommunikation. Diese Nachrichten beschränken sich allerdings auf die Übertragung eines einzigen Wertes.&lt;br /&gt;
 &lt;br /&gt;
Von den Befehlen ''trap'' und ''kill'' werden folgende Signale verwendet:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! Signalnummer&lt;br /&gt;
! Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
| 0 &lt;br /&gt;
| Beenden von bash &lt;br /&gt;
|-&lt;br /&gt;
| SIGHUP 1&lt;br /&gt;
| Logoff von einer Datensichtstation&lt;br /&gt;
|-&lt;br /&gt;
| SIGINT 2&lt;br /&gt;
| Drücken der Taste &amp;lt; DEL &amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| SIGQUIT 3&lt;br /&gt;
| Drücken der Taste &amp;lt; CTRL &amp;gt; + c&lt;br /&gt;
|-&lt;br /&gt;
| SIGKILL 9&lt;br /&gt;
| kill: unbedingter Prozessabbruch&lt;br /&gt;
|-&lt;br /&gt;
| SIGTERM 15&lt;br /&gt;
| Programmbeendigung&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Reaktion eines Prozesses auf den Empfang eines Signals===&lt;br /&gt;
* Der Prozess beendet sich (meist Standardeinstellung).&lt;br /&gt;
* Der Prozess ignoriert das Signal. (Ausnahme: SIGKILL)&lt;br /&gt;
* Der Prozess fängt das Signal ab, d.h. er leitet eine selbst definierte Reaktion ein.&lt;br /&gt;
&lt;br /&gt;
==Der Befehl trap ==&lt;br /&gt;
'''Funktionen:'''&lt;br /&gt;
&lt;br /&gt;
# Signalbehandlung setzen&lt;br /&gt;
 trap 'rm *.tmp' 0 	(Nach Beendigung der bash werden die betreffenden temporären Dateien gelöscht)&lt;br /&gt;
 trap 'who; exit 1' 2 3&lt;br /&gt;
	&lt;br /&gt;
# Liefern von Informationen über gesetzte Signalbehandlung&lt;br /&gt;
 trap&lt;br /&gt;
&lt;br /&gt;
# Zurücksetzen der Signalbehandlung&lt;br /&gt;
 trap 2 3&lt;br /&gt;
&lt;br /&gt;
# Import von Signalen&lt;br /&gt;
 trap : 2 3&lt;br /&gt;
 trap '' 2 3&lt;br /&gt;
&lt;br /&gt;
# Demonstriert die Funktion trap zum Abfangen von Signalen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
trap 'echo trap ausgelöst' 2&lt;br /&gt;
i=0&lt;br /&gt;
while [ $i -lt 5 ]&lt;br /&gt;
do&lt;br /&gt;
   echo &amp;quot;Bitte nicht stören!&amp;quot;&lt;br /&gt;
   sleep 2&lt;br /&gt;
   i=`expr $i + 1`&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bemerkung: Die Signalbehandlung selbst wird nicht an Kindprozesse weitervererbt. Das Ignorieren von Signalen hingegen wird weitervererbt.&lt;br /&gt;
&lt;br /&gt;
== Weitere Möglichkeiten der Bash-Shell ==&lt;br /&gt;
===Alias-Namen===&lt;br /&gt;
Mit dem Befehl ''alias'' bzw. ''unalias'' können zusätzliche Namen für Befehle Befehle vergeben bzw. entfernt werden. Dazu wird ein Name und eine zugehörige Zeichenkette vergeben.&lt;br /&gt;
&lt;br /&gt;
Beides wird in einer Liste abgelegt; bei der Interpretation einer Zeile wird der Aliasname durch die Zeichenkette ersetzt.&lt;br /&gt;
&lt;br /&gt;
Beispiele:&lt;br /&gt;
 alias			Die bereits definierten Aliasnamen werden aufgelistet.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;alias ll='ls -l''&amp;lt;/nowiki&amp;gt;	Definition eines neuen Aliasnamens.&lt;br /&gt;
 alias -x w='who' 	Definieren und Exportieren eines Alias.&lt;br /&gt;
 unalias ll		Entfernen eines Alias aus der Liste.&lt;br /&gt;
&lt;br /&gt;
Bemerkungen:&lt;br /&gt;
Am Anfang eines Aliasnamens sind keine Metazeichen erlaubt.&lt;br /&gt;
Kommt derselbe Name innerhalb der zugewiesenen Zeichenkette noch &lt;br /&gt;
einmal vor, so wird er nicht ersetzt.&lt;br /&gt;
&lt;br /&gt;
=Bearbeiten von Farben=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Farben in der Shell zu ändern, müssen wir bestimmte Zeichenfolgen senden. Die Zeichenkette \033\13301;31m würde z.B. alles Weitere in Rot ausgeben.&lt;br /&gt;
&lt;br /&gt;
Format: \033\133;m&lt;br /&gt;
&lt;br /&gt;
Diese Methode kann allerdings beim Setzen der Variable $PS1, die den Prompt kontrolliert, dazu führen, dass der Zeilenumbruch falsch berechnet wird. Deshalb ist in diesem Fall der Einschluss in \[ \] erforderlich.&lt;br /&gt;
&lt;br /&gt;
Format: \[\033\133;m\]&lt;br /&gt;
&lt;br /&gt;
Um mit dem Farbigen aufzuhören und wieder normal zu schreiben sendet man einfach folgende Zeichenfolge:&lt;br /&gt;
&lt;br /&gt;
 \033\1330m&lt;br /&gt;
&lt;br /&gt;
Textdekorationen:&lt;br /&gt;
 00 - Schmaldruck&lt;br /&gt;
 01 - Keine&lt;br /&gt;
 02 - dunkle Version der Farbe&lt;br /&gt;
 04 - Unterstreichen&lt;br /&gt;
 05 - Invertieren&lt;br /&gt;
&lt;br /&gt;
Farben:&lt;br /&gt;
 30 - Schwarz&lt;br /&gt;
 31 - Rot&lt;br /&gt;
 32 - Grün&lt;br /&gt;
 33 - Gelb&lt;br /&gt;
 34 - Blau&lt;br /&gt;
 35 - Lila&lt;br /&gt;
 36 - Cyan&lt;br /&gt;
 37 - Grau&lt;br /&gt;
&lt;br /&gt;
Hintergründe färben:&lt;br /&gt;
 40 - Schwarz&lt;br /&gt;
 41 - Rot&lt;br /&gt;
 42 - Grün&lt;br /&gt;
 43 - Gelb&lt;br /&gt;
 44 - Blau&lt;br /&gt;
 45 - Lila&lt;br /&gt;
 46 - Cyan&lt;br /&gt;
 47 - Grau&lt;br /&gt;
&lt;br /&gt;
Austesten wie es dann genau aussieht kann man das mit den folgenden Befehlen:&lt;br /&gt;
&lt;br /&gt;
 for i in `seq 40 47`;do echo -e &amp;quot;Farbnummer:\033\13301;&amp;quot;$i&amp;quot;m $i \033\01330m&amp;quot;;done&lt;br /&gt;
 for i in `seq 30 37`;do echo -e &amp;quot;Farbnummer:\033\13301;&amp;quot;$i&amp;quot;m $i \033\01330m&amp;quot;;done&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Tcp/ip&amp;diff=4665</id>
		<title>Tcp/ip</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Tcp/ip&amp;diff=4665"/>
		<updated>2014-07-21T14:10:12Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: /* Fragment Offset */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Grundlagen=&lt;br /&gt;
==Was ist ein Rechnernetz?==&lt;br /&gt;
Diese Frage habe ich mir auch längere Zeit gestellt. Die Literatur äußert&lt;br /&gt;
sich hierzu leider auch nicht so ganz klar. Tanenbaum &amp;quot;definiert&amp;quot; ein&lt;br /&gt;
Rechnernetz in [Ta96] wie folgt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'' &amp;quot;Das ganze Buch hindurch wird der Begriff '''Rechnernetze''' für mehrere&lt;br /&gt;
'''miteinander verbundene autonome''' Computer verwendet. Zwei&lt;br /&gt;
Computer gelten als miteinander verbunden, wenn sie Informationen&lt;br /&gt;
austauschen können. Die Verbindung muß nicht aus einem Kupferkabel&lt;br /&gt;
bestehen - es können auch Lichtwellenleiter, Mikrowellen oder&lt;br /&gt;
Kommunikationssatelliten benutzt werden. Die Vorgabe, daß die Computer&lt;br /&gt;
autonom sein müssen schließt Systeme, bei denen ein eindeutiges&lt;br /&gt;
Master/Slave-Verhältnis herrscht, von vornherein aus unserer Definition&lt;br /&gt;
aus. Kann ein Computer einen anderen beliebig ein- oder ausschalten oder&lt;br /&gt;
steuern, besteht keine Unabhängigkeit. Ein System mit einer Steuereinheit&lt;br /&gt;
als Master und vielen Slaves ist kein Netz, ebensowenig wie ein&lt;br /&gt;
Großrechner mit entfernten Druckern und Terminals.&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nach dieser Definition ist ein Netz, das aus einer Anzahl von Java-Rechnern&lt;br /&gt;
(oder sind es doch nur Terminals) besteht kein Rechnernetz. Die Java-&lt;br /&gt;
Rechner müssen ihr System erst aus dem Netz laden, bevor mit ihnen&lt;br /&gt;
&amp;quot;autonom&amp;quot; gearbeitet werden kann. Die Frage ist hier zusätzlich: arbeiten&lt;br /&gt;
Java-Rechner wirklich autonom?&lt;br /&gt;
Deshalb möchte ich noch eine allgemeinere &amp;quot;Definition&amp;quot; eines&lt;br /&gt;
Rechnernetzes aus [Co98] geben:&lt;br /&gt;
&lt;br /&gt;
'' &amp;quot;Das alte Modell, bei dem ein Großrechner den gesamten Rechenaufwand&lt;br /&gt;
eines Unternehmens bewältigte, wurde durch eines ersetzt, bei dem eine&lt;br /&gt;
große Anzahl einzelner miteinander verbundener Rechner die Arbeit&lt;br /&gt;
übernimmt. Ein solches System nennt man Rechnernetz.&amp;quot;&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
==Protokolle, Protokollhierarchien==&lt;br /&gt;
&lt;br /&gt;
Protokolle sind Regeln, die den Nachrichtenaustausch - oder allgemeiner&lt;br /&gt;
das Verhalten - zwischen (Kommunikations)Partnern regeln (&amp;quot;Protocols are&lt;br /&gt;
formal rules of behaviour&amp;quot;). Die Verletzung eines vereinbarten Protokolls&lt;br /&gt;
erschwert die Kommunikation oder macht sie sogar gänzlich unmöglich.&lt;br /&gt;
Ein Beispiel für ein Protokoll &amp;quot;aus dem täglichen Leben&amp;quot; ist z.B. der&lt;br /&gt;
Funkverkehr: Die Kommunikationspartner bestätigen den Empfang einer&lt;br /&gt;
Nachricht mit ''Roger'' und leiten einen Wechsel der Sprechrichtung mit ''Over''&lt;br /&gt;
ein. Beendet wird die Verbindung schließlich mit ''Over and out''.&lt;br /&gt;
Ähnliche Protokolle werden auch beim Datenaustausch zwischen &lt;br /&gt;
verschiedenen Computern benötigt - auch wenn hier die Komplexität der&lt;br /&gt;
Anforderungen etwas höher ist. Aufgrund dieser höheren Komplexität&lt;br /&gt;
werden viele Aufgabe nicht von einem einzigen Protokoll abgewickelt. In&lt;br /&gt;
der Regel kommen eine ganze Reihe von Protokollen, mit verschiedenen&lt;br /&gt;
Teilaufgaben, zum Einsatz. Diese Protokolle sind dann in Form von&lt;br /&gt;
''Protokollschichten'' mit jeweils unterschiedlichen Funktionen angeordnet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Bild:Protokolle.jpg]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;Anordnung von Protokollen zu einem Protokollstapel.&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Eine kurze Geschichte des Internet==&lt;br /&gt;
From small things, big things sometimes come&lt;br /&gt;
(Tittel E., Robbins M.)&lt;br /&gt;
Gegen Ende der sechziger Jahre, als der &amp;quot;kalte Krieg&amp;quot; seinen Höhepunkt&lt;br /&gt;
erlangte, wurde vom US-Verteidigungsministerium (Department of Defence&lt;br /&gt;
- DoD) eine Netzwerktechnologie gefordert, die in einem hohen Maß&lt;br /&gt;
gegenüber Ausfällen sicher ist. Das Netz sollte dazu in der Lage sein, auch&lt;br /&gt;
im Falle eines Atomkrieges weiter zu operieren. Eine Datenübermittlung&lt;br /&gt;
über Telefonleitungen war zu diesem Zweck nicht geeignet, da diese&lt;br /&gt;
gegenüber Ausfällen zu verletzlich waren (sind). Aus diesem Grund&lt;br /&gt;
beauftragte das US-Verteidigungsministerium die ''Advanced Research&lt;br /&gt;
Projects Agency (ARPA)'' mit der Entwicklung einer zuverlässigen&lt;br /&gt;
Netztechnologie. Die ARPA wurde 1957 als Reaktion auf den Start des&lt;br /&gt;
Sputniks durch die UdSSR gegründet. Die ARPA hatte die Aufgabe&lt;br /&gt;
Technologien zu entwickeln, die für das Militär von Nutzen sind.&lt;br /&gt;
Zwischenzeitlich wurde die ARPA in ''Defense Advanced Research Projects&lt;br /&gt;
Agency (DARPA)'' umbenannt, da ihre Interessen primär militärischen&lt;br /&gt;
Zwecken dienten. Die ARPA war keine Organisation, die Wissenschaftler&lt;br /&gt;
und Forscher beschäftigte, sondern verteilte Aufträge an Universitäten und&lt;br /&gt;
Forschungsinstitute.&lt;br /&gt;
&lt;br /&gt;
Um die geforderte Zuverlässigkeit des Netzes zu erreichen, fiel die Wahl&lt;br /&gt;
darauf, das Netz als ein ''paketvermitteltes Netz'' ''(packet-switched network)''&lt;br /&gt;
zu gestalten. Bei der Paketvermittlung werden zwei Partner während der&lt;br /&gt;
Kommunikation nur virtuell miteinander verbunden. Die zu übertragenden&lt;br /&gt;
Daten werden vom Absender in Stücke variabler oder fester Länge zerlegt&lt;br /&gt;
und über die virtuelle Verbindung übertragen; vom Empfänger werden&lt;br /&gt;
diese Stücke nach dem Eintreffen wieder zusammengesetzt. Im Gegensatz&lt;br /&gt;
dazu werden bei der ''Leitungsvermittlung'' ''(circuit switching)'' für die Dauer&lt;br /&gt;
der Datenübertragung die Kommunikationspartner fest miteinander&lt;br /&gt;
verbunden.&lt;br /&gt;
Ende 1969 wurde von der ''University of California Los Angeles (UCLA)'', der&lt;br /&gt;
''University of California Santa Barbara (UCSB)'', dem ''Stanford Research&lt;br /&gt;
Institute (SRI)'' und der ''University of Utah'' ein experimentelles Netz, das&lt;br /&gt;
''ARPANET'', mit vier Knoten in Betrieb genommen. Diese vier Universitäten&lt;br /&gt;
wurden von der (D)ARPA gewählt, da sie bereits eine große Anzahl von&lt;br /&gt;
ARPA-Verträgen hatten. Das ARPA-Netz wuchs rasant (siehe Abbildung) und&lt;br /&gt;
überspannte bald ein großes Gebiet der Vereinigten Staaten&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Bild:Diagramm.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wachstum des ARPANET a)Dezember 1969 b)July 1970 c)März 1971 d)April&lt;br /&gt;
1971 e)September 1972.(Quelle: [http://www.rvs.uni-bielefeld.de/~heiko/tcpip/referenzen.html#tanenbaum A.S. Tanenbaum: Computernetworks ])&lt;br /&gt;
Mit der Zeit und dem Wachstum des ARPANET wurde klar, daß die bis&lt;br /&gt;
dahin gewählten Protokolle nicht mehr für den Betrieb eines größeren&lt;br /&gt;
Netzes, das auch mehrere (Teil)Netze miteinander verband, geeignet war.&lt;br /&gt;
Aus diesem Grund wurden schließlich weitere Forschungsarbeiten initiiert,&lt;br /&gt;
die 1974 zur Entwicklung der ''TCP/IP-Protokolle'' bzw. des ''TCP/IP-Modells''&lt;br /&gt;
führten. TCP/IP wurde mit mit der Zielsetzung entwickelt, mehrere&lt;br /&gt;
verschiedenartige Netze zur Datenübertragung miteinander zu verbinden.&lt;br /&gt;
Um die Einbindung der TCP/IP-Protokolle in das ARPANET zu forcieren&lt;br /&gt;
beauftragte die (D)ARPA die Firma ''Bolt, Beranek &amp;amp; Newman (BBN)'' und die&lt;br /&gt;
''University of California at Berkeley'' zur Integration von TCP/IP in Berkeley&lt;br /&gt;
UNIX. Dies bildete auch den Grundstein des Erfolges von TCP/IP in der&lt;br /&gt;
UNIX-Welt.&lt;br /&gt;
Im Jahr 1983 wurde das ARPANET schließlich von der ''Defence&lt;br /&gt;
Communications Agency (DCA)'', welche die Verwaltung des ARPANET von&lt;br /&gt;
der (D)ARPA übernahm, aufgeteilt. Der militärische Teil des ARPANET,&lt;br /&gt;
wurde in ein separates Teilnetz, das ''MILNET'', abgetrennt, das durch streng&lt;br /&gt;
kontrollierte Gateways vom Rest des ARPANET - dem Forschungsteil -&lt;br /&gt;
separiert wurde.&lt;br /&gt;
Nachdem TCP/IP das einzige offizielle Protokoll des ARPANET wurde, nahm&lt;br /&gt;
die Zahl der angeschlossenen Netze und Hosts rapide zu. Das ARPANET&lt;br /&gt;
wurde von Entwicklungen, die es selber hervorgebracht hatte, überrannt.&lt;br /&gt;
Das ARPANET in seiner ursprünglichen Form existiert heute nicht mehr,&lt;br /&gt;
das MILNET ist aber noch in Betrieb. (Zum Wachstum des Internet in&lt;br /&gt;
Deutschland siehe: http://www.nic.de/Netcount/netStatHosts.html)&lt;br /&gt;
Die Sammlung von Netzen, die das ARPANET darstellte, wurde zunehmend&lt;br /&gt;
als Netzverbund betrachtet. Dieser Netzverbund wird heute allgemein als&lt;br /&gt;
das'' Internet'' bezeichnet. Der Leim, der das Internet zusammenhält, sind&lt;br /&gt;
die TCP/IP-Protokolle.&lt;br /&gt;
&lt;br /&gt;
==RFCs==&lt;br /&gt;
Eine wichtige Rolle bei der Entstehung und Entwicklung des Internet&lt;br /&gt;
spielen die sogenannten RFCs - Request for Comments.&lt;br /&gt;
RFCs sind Dokumente, in denen die Standards für TCP/IP bzw. das Internet&lt;br /&gt;
veröffentlicht werden. Einige RFCs beschreiben Dienste und Protokolle&lt;br /&gt;
sowie deren Implementierung, andere fassen Regeln und Grundsätze&lt;br /&gt;
(policies) zusammen. Standards für TCP/IP werden immer als RFCs&lt;br /&gt;
veröffentlicht, aber nicht alle RFCs beschreiben Standards (siehe z.B.&lt;br /&gt;
RFC1180 - A TCP/IP Tutorial, RFC527 - ARPAWOCKY, RFC968 - 'Twas the&lt;br /&gt;
Night Before Start-up etc.)&lt;br /&gt;
Die Standards für TCP/IP werden im wesentlichen nicht durch ein Komitee&lt;br /&gt;
entwickelt, sondern durch Diskussion und Konsens beschlossen. Jeder hat&lt;br /&gt;
die Möglichkeit ein Dokument als RFC zu veröffentlichen und so zur&lt;br /&gt;
Diskussion zu stellen. Ist ein Dokument veröffentlicht, wird ihm eine RFC-&lt;br /&gt;
Nummer zugewiesen.&lt;br /&gt;
Die Dokumente werden von einer Arbeitsgruppe und/oder dem RFC-Editor&lt;br /&gt;
geprüft. Dabei durchläuft das Dokument verschiedene Stufen, die Stufen&lt;br /&gt;
der Entwicklung, Testung und Akzeptanz. Die Stufen bilden den&lt;br /&gt;
sogenannten ''Standards Process.'' Die Stufen werden formal als m''aturity&lt;br /&gt;
levels (Reifestufen)'' bezeichnet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Maturity Level&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
| Proposed Standard (PS)&lt;br /&gt;
| Diese Stufe dauert mindestens 6 Monate und&lt;br /&gt;
erfordert zwei unabhängige Implementierungen.&lt;br /&gt;
|-&lt;br /&gt;
| Draft Standard (DS)&lt;br /&gt;
| Diese Stufe dauert mindestens 4 Monate mit&lt;br /&gt;
Demonstrationen und einem Erfahrungsbericht&lt;br /&gt;
mit midestens zwei unabhängigen&lt;br /&gt;
Implementierungen.&lt;br /&gt;
|-&lt;br /&gt;
|Standard (S oder STD) &lt;br /&gt;
|Das RFC ist zum offiziellen Standard erhoben.&lt;br /&gt;
Internet-Standards erhalten neben der RFC-&lt;br /&gt;
Nummer eine sogenannte STD-Nummer (z.B.&lt;br /&gt;
Internet Protocol, RFC791, STD-5).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu seiner Stufe bekommt ein RFC einen Status&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Status'''&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
| Required&lt;br /&gt;
| Muß bei allen TCP/IP-basierten Hosts und Gateways&lt;br /&gt;
implementiert werden.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Recommended&lt;br /&gt;
| Es wird empfohlen, daß alle TCP/IP-basierten Hosts&lt;br /&gt;
und Gateways die Spezifikationen des RFCs&lt;br /&gt;
implementieren. Diese RFCs werden üblicherweise&lt;br /&gt;
auch immer implementiert.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Elective &lt;br /&gt;
|Die Implementierung ist optional. Der Anwendung&lt;br /&gt;
wurde zugestimmt, ist aber nicht erforderlich.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Limited Use&lt;br /&gt;
|Nicht für die generelle Nutzung gedacht.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Not recommended&lt;br /&gt;
|Nicht zur Implementierung empfohlen.&lt;br /&gt;
|}&lt;br /&gt;
Ein RFC, das einmal veröffentlicht ist,wird nie verändert oder aktualisiert.&lt;br /&gt;
Es kann nur durch ein neues RFC ersetzt werden. Bei einer Ersetzung wird&lt;br /&gt;
das alte RFC mit der Bezeichnung &amp;quot;Obsoleted by RFC xxx&amp;quot; gekennzeichnet,&lt;br /&gt;
das neue RFC beinhaltet einen Hinweis &amp;quot;Obsolets RFC xxx&amp;quot; auf das alte&lt;br /&gt;
RFC. Korrekturen an einem RFC werden durch &amp;quot;Updates RFC xxx&amp;quot; und&lt;br /&gt;
&amp;quot;Updated by RFC xxx&amp;quot; gekennzeichnet. Einige RFCs beschreiben&lt;br /&gt;
Protokolle, die durch bessere ersetzt wurden, diese RFCs werden durch die&lt;br /&gt;
Bezeichnung &amp;quot;historic&amp;quot; gekennzeichnet. Ein entsprechender Standard&lt;br /&gt;
erhält den Status &amp;quot;not recommended&amp;quot;. RFCs, die sich in einer&lt;br /&gt;
experimentellen Phase der Entwicklung befinden werden mit der&lt;br /&gt;
Bezeichnung ''&amp;quot;experimental&amp;quot;'' versehen. Protokolle, die von anderen&lt;br /&gt;
Organisationen oder von Firmen entwickelt wurden und von Interesse für&lt;br /&gt;
das Internet sind werden zum Teil auch in RFCs veröffentlicht mit den&lt;br /&gt;
Bezeichnungen ''&amp;quot;informational&amp;quot;'' oder &amp;quot;best current practice&amp;quot;.&lt;br /&gt;
Das 'System' der RFCs leistet einen wesentlichen Beitrag zum Erfolg von&lt;br /&gt;
TCP/IP und dem Internet. In der Referenzliste findet sich eine [http://www.rvs.uni-bielefeld.de/~heiko/tcpip/referenzen.html#RFC Angaben zu Quellen], bei denen die RFCs bezogen werden können.&lt;br /&gt;
Anm.: Wer weitere Quellen zur Geschichte des Internet sucht, wird hier&lt;br /&gt;
fündig:&lt;br /&gt;
&lt;br /&gt;
[http://www.isoc.org/internet/history/ Internet Society - ISOC: History of the Internet]&lt;br /&gt;
&lt;br /&gt;
[http://www.psychologie.uni-bonn.de/sozial/staff/musch/history.htm Musch J.: Die Geschichte des Netzes: ein historischer Abriß]&lt;br /&gt;
&lt;br /&gt;
[http://www.columbia.edu/~rh120/ch106.x07 Hauben M.: Behind the Net: The Untold History of the ARPANET and Computer Science ]&lt;br /&gt;
&lt;br /&gt;
[http://www.columbia.edu/~rh120/ch106.x08 Hauben R.: The Birth and Development of the ARPANET]&lt;br /&gt;
&lt;br /&gt;
[http://www.w3history.org/ w3history: Die Geschichte des World Wide Web]&lt;br /&gt;
&lt;br /&gt;
==Logische Struktur von Netzen==&lt;br /&gt;
&lt;br /&gt;
In diesem Abschnitt wird ganz knapp die logische Struktur von Netzen behandelt, also die Art und Weise, wie die einzelnen Stationen miteinander verbunden werden. Bei der Verkabelung von LANs muß man aber zwischen logischer Stuktur und Verkabelungsstruktur unterscheiden, z. B. kann ein Netz mit logischer Busstruktur bei der Verkabelung mit 'Twisted Pair'-Kabeln wie ein Sternnetz aussehen.&lt;br /&gt;
&lt;br /&gt;
===Sternstruktur===&lt;br /&gt;
Alle Teilnehmer werden an einen zentralen Knoten angeschlossen (früher z. B. häufig Anschluß von Sichtgeräten an einen Zentralrechner). Eine direkte Kommunikation der Teilnehmer untereinander ist nicht möglich, jegliche Kommunikation läuft über den zentralen Knoten (Punkt-zu-Punkt-Verbindung, Leitungsvermittlung). Die Steuerung der Kommunikation vom Knoten aus ist sehr einfach: Polling (regelmäßige Abfrage aller Stationen) oder Steuerung über Interrupt. Bei Ausfall der Zentrale sind sämtliche Kommunikationswege unterbrochen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:stern-tcp.png]]&lt;br /&gt;
&lt;br /&gt;
===Ringstruktur===&lt;br /&gt;
Es gibt keine Zentrale, alle Stationen sind gleichberechtigt. Jeder Teilnehmer verfügt über einen eigenen Netzanschluß (Knoten) und ist über diesen mit seinem linken und rechten Partner verbunden. Die Übertragung der Info erfolgt in einer Richtung von Knoten zu Knoten. Bei Ausfall eines Knotens sind sämtliche Kommunikationswege unterbrochen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ring-tcp.png]]&lt;br /&gt;
&lt;br /&gt;
===Busstruktur===&lt;br /&gt;
Es gibt keine Zentrale und keine Knoten. Die Verbindung aller Teilnehmer erfolgt über einen gemeinsamen Übertragungsweg. Zu einem Zeitpunkt kann immer nur eine Nachricht über den Bus transportiert werden. Bei Ausfall einer Station bleibt die Kommunikation der anderen Stationen erhalten. Bei den Bussystemen kann man noch unterscheiden in Basisband-Bussysteme und Breitband-Bussysteme. Bei Basisband-Bussystemen werden die elektrischen Pegel direkt übertragen; bei den für uns interessanten digitalen Informationen also 0- und 1-Pegel. Bei Breitband-Bussystemen werden über das Kabel mehrere unabhängige Kanäle geleitet (modulierte Übertragung). Busnetze müssen auf beiden Seiten mit der Leitungsimpedanz abgeschlossen werden, damit keine Echos auftreten, die zu Empfangsfehlern führen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:bus-tcp.png]]&lt;br /&gt;
&lt;br /&gt;
===vermaschte Struktur===&lt;br /&gt;
Jeder Teilnehmer ist mit mehreren anderen verbunden. Es gibt keine Zentrale und es existieren mehrere, unabhängige Übertragungswege zwischen zwei Stationen. Manchmal gibt es keine direkte Verbindung zwischen zwei Stationen. Dann führt der Weg über eine oder mehrere andere Stationen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:mash-tcp.png]]&lt;br /&gt;
&lt;br /&gt;
Je nach Bedarf können die o. g. Topologien auch miteinander kombiniert werden, z. B. Bus mit angeschlossenen Sternen oder Bus mit angeschlossenen Bussen, was zu einer Baumstruktur führt. Insbesondere bei Weitverkehrsnetzen (WAN) treten vermaschte Strukturen auf. Teilweise ergeben sich dabei redundante Leitungswege, die auch bei Unterbrechung eines Wegs den Datentransport sicherstellen.&lt;br /&gt;
&lt;br /&gt;
==Referenzmodelle==&lt;br /&gt;
&lt;br /&gt;
===Das OSI-Referenzmodell===&lt;br /&gt;
&lt;br /&gt;
Das ''Open Systems Interconnection (OSI)''-Referenzmodell ist ein Modell,&lt;br /&gt;
daß auf einem Vorschlag der International Standards Organisation ''(ISO)''&lt;br /&gt;
basiert. Der Aufbau des OSI-Modells ist in der folgenden Abbildung&lt;br /&gt;
dargestellt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Bild:Referenzmodell.jpg]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Bild:Referenzmodell2.jpg]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;big&amp;gt;OSI-Referenzmodell&amp;lt;/big&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Modell dient derzeit allgemein als Rahmen zur Beschreibung von&lt;br /&gt;
Protokollcharakteristika und -funktionen [http://www.rvs.uni-bielefeld.de/~heiko/tcpip/referenzen.html#tanenbaum (Ta96)]. Das OSI-Modell (die&lt;br /&gt;
offizielle Bezeichnung lautet ''ISO-OSI-Referenzmodell'') besteht aus&lt;br /&gt;
sieben Schichten. Die Schichtung beruht auf dem Prinzip, daß eine&lt;br /&gt;
Schicht der jeweils über ihr angeordneten Schicht bestimmte&lt;br /&gt;
Dienstleistungen anbietet. Das OSI-Modell ist keine Netzarchitektur, da&lt;br /&gt;
die Protokolle und Dienste der einzelnen Schichten vom Modell nicht&lt;br /&gt;
definiert werden. Das Modell beschreibt lediglich, welche Aufgaben die&lt;br /&gt;
Schichten erledigen sollen. Die folgenden Prinzipien haben zur&lt;br /&gt;
Siebenschichtigkeit des OSI-Modells geführt [http://www.rvs.uni-bielefeld.de/~heiko/tcpip/referenzen.html#tanenbaum (Ta96)]:&lt;br /&gt;
Eine neue Schicht sollte dort entstehen, wo ein neuer Abstraktionsgrad&lt;br /&gt;
benötigt wird.&lt;br /&gt;
Jede Schicht sollte eine genau definiert Funktion erfüllen.&lt;br /&gt;
Bei der Funktionswahl sollte die Definition international genormter&lt;br /&gt;
Protokolle berücksichtigt werden.&lt;br /&gt;
Die Grenzen zwischen den einzelnen Schichten sollten so gewählt&lt;br /&gt;
werden, daß der Informationsfluß über die Schnittstellen möglichst&lt;br /&gt;
gering ist.&lt;br /&gt;
Die Anzahl der Schichten sollte so groß sein, daß keine Notwendigkeit&lt;br /&gt;
besteht, verschiedene Funktionen auf eine Schicht zu packen, aber so&lt;br /&gt;
klein, daß die gesamte Architektur nicht unhandlich wird.&lt;br /&gt;
&lt;br /&gt;
==='''Aufgaben der Schichten OSI'''===&lt;br /&gt;
Den Schichten im OSI-Modell sind die folgenden Aufgaben&lt;br /&gt;
zugeordnet:&lt;br /&gt;
&lt;br /&gt;
===='''Anwendungsschicht''' (application layer)====&lt;br /&gt;
&lt;br /&gt;
Die Anwendungsschicht enthält eine große Zahl häufig benötigter&lt;br /&gt;
Protokolle, die einzelne Programme zur Erbringung ihrer Dienste&lt;br /&gt;
definiert haben. Auf der Anwendungsschicht finden sich z.B. die&lt;br /&gt;
Protokolle für die Dienste ftp, telnet, mail etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''Darstellungsschicht (presentation layer)'''====&lt;br /&gt;
&lt;br /&gt;
Die Darstellungsschicht regelt die Darstellung der Übertragungsdaten&lt;br /&gt;
in einer von der darüber liegenden Ebene unabhängigen Form.&lt;br /&gt;
Computersysteme verwenden z.B. oft verschiedene Codierungen für&lt;br /&gt;
Zeichenketten (z.B. ASCII, Unicode), Zahlen usw. Damit diese Daten&lt;br /&gt;
zwischen den Systemen ausgetauscht werden können, kodiert die&lt;br /&gt;
Darstellungsschicht die Daten auf eine standardisierte und&lt;br /&gt;
vereinbarte Weise.&lt;br /&gt;
&lt;br /&gt;
===='''Sitzungsschicht (session layer)'''====&lt;br /&gt;
&lt;br /&gt;
Die Sitzungsschicht (oft auch Verbindungsschicht oder&lt;br /&gt;
Kommunikationssteuerschicht genannt) ermöglicht den&lt;br /&gt;
Verbindungsauf- und abbau. Von der Sitzungsschicht wird der&lt;br /&gt;
Austausch von Nachrichten auf der Transportverbindung geregelt.&lt;br /&gt;
Sitzungen können z.B. ermöglichen, ob der Transfer gleichzeitig in&lt;br /&gt;
zwei oder nur eine Richtung erfolgen kann. Kann der Transfer jeweils&lt;br /&gt;
in nur eine Richtung stattfinden, regelt die Sitzungsschicht, welcher&lt;br /&gt;
der Kommunikationspartner jeweils an die Reihe kommt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''Transportschicht (transport layer)'''====&lt;br /&gt;
&lt;br /&gt;
Die Transportschicht übernimmt den Transport von Nachrichten&lt;br /&gt;
zwischen den Kommunikationspartnern. Die Transportschicht hat die&lt;br /&gt;
grundlegende Aufgaben, den Datenfluß zu steuern und die&lt;br /&gt;
Unverfälschtheit der Daten sicherzustellen. Beispiele für&lt;br /&gt;
Transportprotokolle sind TCP und UDP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''Netzwerkschicht (network layer)'''====&lt;br /&gt;
&lt;br /&gt;
Die Netzwerkschicht (Vermittlungsschicht) hat die Hauptaufgabe eine&lt;br /&gt;
Verbindung zwischen Knoten im Netzwerk herzustellen. Die&lt;br /&gt;
Netzwerkschicht soll dabei die übergeordneten Schichten von den&lt;br /&gt;
Details der Datenübertragung über das Netzwerk befreien. Eine der&lt;br /&gt;
wichtigsten Aufgaben der Netzwerkschicht ist z.B. die Auswahl von&lt;br /&gt;
Paketrouten bzw. das Routing vom Absender zum Empfänger. Das&lt;br /&gt;
Internet Protokoll (IP) ist in der Netzwerkschicht einzuordnen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''Sicherungsschicht (data link layer)'''====&lt;br /&gt;
&lt;br /&gt;
Die Aufgabe der Sicherungsschicht (Verbindungsschicht) ist die&lt;br /&gt;
gesicherte Übertragung von Daten. Vom Sender werden hierzu die&lt;br /&gt;
Daten in Rahmen (frames) aufgeteilt und sequentiell an den&lt;br /&gt;
Empfänger gesendet. Vom Empfänger werden die empfangenen&lt;br /&gt;
Daten durch Bestätigungsrahmen quittiert. Protokollbeispiele für die&lt;br /&gt;
Sicherungsschicht sind HDLC (high-level data link control), SLIP (serial&lt;br /&gt;
line IP) und PPP (point-to-point Protokoll).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===='''Bitübertragungsschicht (physical layer)'''====&lt;br /&gt;
&lt;br /&gt;
Die Bitübertragungsschicht regelt die Übertragung von Bits über das&lt;br /&gt;
Übertragungsmedium. Dies betrifft die Übertragungsgeschwindigkeit,&lt;br /&gt;
die Bit-Codierung, den Anschluß (wieviele Pins hat der Netzanschluß?)&lt;br /&gt;
etc. Die Festlegungen auf der Bitübertragungsschicht betreffen im&lt;br /&gt;
wesentlichen die Eigenschaften des Übertragungsmedium.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Das TCP/IP-Referenzmodell===&lt;br /&gt;
Im vorhergehenden Abschnitt wurde das OSI-Referenzmodell vorgestellt. In&lt;br /&gt;
diesem Abschnitt soll nun das Referenzmodell für die TCP/IP-Architektur&lt;br /&gt;
vorgestellt werden. Das TCP/IP-Referenzmodell - benannt nach den beiden&lt;br /&gt;
primären Protokollen TCP und IP der Netzarchitektur beruht auf den&lt;br /&gt;
Vorschlägen, die bei der Fortentwicklung des ARPANETs gemacht wurden.&lt;br /&gt;
Das TCP/IP-Modell ist zeitlich vor dem OSI-Referenzmodell entstanden,&lt;br /&gt;
deshalb sind auch die Erfahrungen des TCP/IP-Modells mit in die OSI-&lt;br /&gt;
Standardisierung eingeflossen. Das TCP/IP-Referenzmodell besteht im&lt;br /&gt;
Gegensatz zum OSI-Modell aus nur vier Schichten: Application Layer,&lt;br /&gt;
Transport Layer, Internet Layer, Network Layer. Als Ziele der Architektur&lt;br /&gt;
wurden bei der Entwicklung definiert:&lt;br /&gt;
&lt;br /&gt;
*Unabhängigkeit von der verwendeten Netzwerk-Technologie&lt;br /&gt;
&lt;br /&gt;
*Unabhängigkeit von der Architektur der Hostrechner&lt;br /&gt;
&lt;br /&gt;
*Universelle Verbindungsmöglichkeiten im gesamten Netzwerk&lt;br /&gt;
&lt;br /&gt;
*Ende-zu-Ende-Quittungen&lt;br /&gt;
&lt;br /&gt;
*Standardisierte Anwendungsprotokolle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Bild:tcp-ip.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Vergleich des OSI-Referenzmodells mit dem TCP/IP-&lt;br /&gt;
'''Referenzmodell'''''&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aufgaben der Schichten TCP/IP===&lt;br /&gt;
&lt;br /&gt;
====Applikationsschicht (application layer)====&lt;br /&gt;
&lt;br /&gt;
Die Applikationsschicht (auch Verarbeitungsschicht genannt) umfaßt&lt;br /&gt;
alle höherschichtigen Protokolle des TCP/IP-Modells. Zu den ersten&lt;br /&gt;
Protokollen der Verarbeitungsschicht zählen TELNET (für virtuelle&lt;br /&gt;
Terminals), FTP (Dateitransfer) und SMTP (zur Übertragung von E-&lt;br /&gt;
Mail). Im Laufe der Zeit kamen zu den etablierten Protokollen viele&lt;br /&gt;
weitere Protokolle wie z.B. DNS (Domain Name Service) und HTTP&lt;br /&gt;
(Hypertext Transfer Protocol) hinzu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Transportschicht (transport layer)====&lt;br /&gt;
&lt;br /&gt;
Wie im OSI-Modell ermöglicht die Transportschicht die Kommunikation&lt;br /&gt;
zwischen den Quell- und Zielhosts. Im TCP/IP-Referenzmodell wurden&lt;br /&gt;
auf dieser Schicht zwei Ende-zu-Ende-Protokolle definiert: das&lt;br /&gt;
Transmission Control Protocol (TCP) und das User Datagram Protocol&lt;br /&gt;
(UDP). TCP ist ein zuverlässiges verbindungsorientiertes Protokoll,&lt;br /&gt;
durch das ein Bytestrom fehlerfrei einen anderen Rechner im Internet&lt;br /&gt;
übermittelt werden kann. UDP ist ein unzuverlässiges&lt;br /&gt;
verbindungsloses Protokoll, das vorwiegend für Abfragen und&lt;br /&gt;
Anwendungen in Client/Server-Umgebungen verwendet wird, in denen&lt;br /&gt;
es in erster Linie nicht um eine sehr genaue, sondern schnelle&lt;br /&gt;
Datenübermittlung geht (z.B. Übertragung von Sprache und&lt;br /&gt;
Bildsignalen).&lt;br /&gt;
&lt;br /&gt;
====Internetschicht (internet layer)====&lt;br /&gt;
&lt;br /&gt;
Die Internetschicht im TCP/IP-Modell definiert nur ein Protokoll namens&lt;br /&gt;
IP (Internet Protocol), das alle am Netzwerk beteiligten Rechner&lt;br /&gt;
verstehen können. Die Internetschicht hat die Aufgabe IP-Pakete&lt;br /&gt;
richtig zuzustellen. Dabei spielt das Routing der Pakete eine wichtige&lt;br /&gt;
Rolle. Das Internet Control Message Protocol (ICMP) ist fester&lt;br /&gt;
Bestandteil jeder IP-Implementierung und dient zur Übertragung von&lt;br /&gt;
Diagnose- und Fehlerinformationen für das Internet Protocol.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Netzwerkschicht (network layer)====&lt;br /&gt;
&lt;br /&gt;
Unterhalb der Internetschicht befindet sich im TCP/IP-Modell eine&lt;br /&gt;
große Definitionslücke. Das Referenzmodell sagt auf dieser Ebene&lt;br /&gt;
nicht viel darüber aus, was hier passieren soll. Festgelegt ist lediglich,&lt;br /&gt;
daß zur Übermittlung von IP-Paketen ein Host über ein bestimmtes&lt;br /&gt;
Protokoll an ein Netz angeschlossen werden muß. Dieses Protokoll ist&lt;br /&gt;
im TCP/IP-Modell nicht weiter definiert und weicht von Netz zu Netz&lt;br /&gt;
und Host zu Host ab. Das TCP/IP-Modell macht an dieser Stelle&lt;br /&gt;
vielmehr Gebrauch von bereits vorhandenen Protokollen, wie z.B.&lt;br /&gt;
Ethernet (IEEE 802.3), Serial Line IP (SLIP), etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Die TCP/IP-Protokoll-Architektur===&lt;br /&gt;
&lt;br /&gt;
[[Bild:Tcpipprotokoll.jpg]]&lt;br /&gt;
&lt;br /&gt;
Die TCP/IP-Architektur wird, wie im Abschnitt Referenzmodelle - Das TCP/IP-&lt;br /&gt;
Referenzmodell gesagt, im allgemeinen als vierschichtiges Modell&lt;br /&gt;
beschrieben. Oft wird das TCP/IP-Referenzmodell auch als fünfschichtiges&lt;br /&gt;
Modell dargestellt. Andrew S. Tanenbaum bezeichnet das fünfschichtige&lt;br /&gt;
Modell als hybrides Referenzmodell. Er schreibt dazu:&lt;br /&gt;
''&amp;quot;(...) Viertens unterscheidet das TCP/IP-Modell nicht zwischen den&lt;br /&gt;
Bitübertragungs- und Sicherungsschichten (erwähnt sie nicht einmal).&lt;br /&gt;
Diese Schichten sind völlig unterschiedlich. Die Bitübertragungsschicht hat&lt;br /&gt;
mit den Übertragungsmerkmalen von Kupferdarht, Glasfaser und&lt;br /&gt;
drahtlosen Kommunikationsmedien zu tun. Die Sicherungsschicht ist&lt;br /&gt;
darauf beschränkt, den Anfang und das Ende von Rahmen abzugrenzen&lt;br /&gt;
und sie mit der gewünschten Zuverlässigkeit von einem Ende zum&lt;br /&gt;
anderen zu befördern. Ein korrektes Modell sollte beides als separate&lt;br /&gt;
Schichten beinhalten. Das TCP/IP-Modell tut das nicht.&amp;quot;&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''OSI-Referenzmodell TCP/IP-Referenzmodell  Hybrides Referenzmodell'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:HybridesReferenzmodell.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Einkapselung===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Schichtung beruht auf dem Prinzip, daß eine Schicht die angebotenen&lt;br /&gt;
Dienste der darunter liegenden Schicht in Anspruch nehmen kann. Dabei&lt;br /&gt;
braucht die Schicht, die die Dienstleistung in Anspruch nimmt keinerlei&lt;br /&gt;
Kenntnisse darüber haben, wie die geforderten Dienste erbracht werden.&lt;br /&gt;
Auf diese Art und Weise wird eine Aufgabenteilung der Schichten erreicht .&lt;br /&gt;
Daten, die von einem Applikationsprogramm über ein Netzwerk versendet&lt;br /&gt;
werden, durchlaufen den TCP/IP-Protokollstapel von der Applikationsschicht&lt;br /&gt;
zur Netzwerkschicht. Von jeder Schicht werden dabei Kontrollinformationen&lt;br /&gt;
in Form eines Protokollkopfes angefügt. Diese Kontrollinformationen dienen&lt;br /&gt;
der korrekten Zustellung der Daten. Das Zufügen von&lt;br /&gt;
Kontrollinformationen wird als Einkapselung (encapsulation) bezeichnet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Einkapselung.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Innerhalb der Schichten des TCP/IP-Modells werden Daten mit verschiedenen&lt;br /&gt;
Termini benannt, da jede Schicht auch ihre eigenen Datenstrukturen hat.&lt;br /&gt;
Applikationen, die das Transmission Control Protocol benutzen, bezeichnen&lt;br /&gt;
Daten als ''Strom (stream)''; Applikationen, die das User Datagram Protocol&lt;br /&gt;
verwenden, bezeichnen Daten als ''Nachricht (message)''. Auf der Transportebene&lt;br /&gt;
bezeichnen die Protokolle TCP und UDP ihre Daten als ''Segment (segment)'' bzw.&lt;br /&gt;
''Paket (packet)''. Auf der Internet Schicht werden Daten allgemein als&lt;br /&gt;
''Datengramm (datagram)'' benannt. Oft werden die Daten hier aber auch als&lt;br /&gt;
Paket bezeichnet. Auf der Netzwerkebene bezeichnen die meisten Netzwerke&lt;br /&gt;
ihre Daten als Pakete oder ''Rahmen (frames)''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Einkapselung2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
='''Netzwerkschicht'''=&lt;br /&gt;
&lt;br /&gt;
Die Netzwerkschicht ist die unterste Schicht des TCP/IP-Modells. Protokolle,&lt;br /&gt;
die auf dieser Schicht angesiedelt sind, legen fest, wie ein Host an ein&lt;br /&gt;
bestimmtes Netzwerk angeschlossen wird und wie IP-Pakete über dieses&lt;br /&gt;
Netzwerk übertragen werden.&lt;br /&gt;
Im Gegensatz zu den Protokollen der höheren Schichten des TCP/IP-&lt;br /&gt;
Modells, müssen die Protokolle der Netzwerkschicht sich auf die Details&lt;br /&gt;
des verwendeten Netzwerks - wie z.B. Paketgrößen,&lt;br /&gt;
Netzwerkadressierung, Anschlußcharakteristiken etc. - beziehen. Die&lt;br /&gt;
Netzwerkschicht des TCP/IP-Modells umfaßt also die Aufgaben der&lt;br /&gt;
Bitübertragungsschicht, Sicherungsschicht und Vermittlungsschicht im OSI-&lt;br /&gt;
Modell.&lt;br /&gt;
Die Protokolle der Netzwerkschicht sind allerdings nicht im TCP/IP-Modell&lt;br /&gt;
definiert. Wie schon gesagt, legt das Modell lediglich fest, daß zur&lt;br /&gt;
Übermittlung von IP-Paketen ein Host über ein bestimmtes Protokoll an ein&lt;br /&gt;
Netzwerk angeschlossen werden muß. Die Protokolle sind im Modell nicht&lt;br /&gt;
weiter definiert. Es werden hier vielmehr bestehende Standards verwendet&lt;br /&gt;
und in das Modell aufgenommen. Insbesondere bedeutet dies auch, daß&lt;br /&gt;
mit neuer Hardware-Technologie auch neue Protokolle auf der&lt;br /&gt;
Netzwerkschicht entwickelt werden müssen, so daß TCP/IP-Netzwerke&lt;br /&gt;
diese Hardware verwenden können. Dies ist jedoch kein Nachteil, sondern&lt;br /&gt;
eher ein Vorteil. Durch die weitgehende Unabhängigkeit vom&lt;br /&gt;
Übertragungsmedium können neue Netzwerktechnologien schnell in das&lt;br /&gt;
TCP/IP-Modell aufgenommen werden. Als Beispiel soll hier Ethernet dienen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ethernet==&lt;br /&gt;
&lt;br /&gt;
1. Ethernet ist nicht von Novell sondern von Xerox in die Welt gesetzt&lt;br /&gt;
worden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Es sind da 4 Arten Ethernetframes.&lt;br /&gt;
&lt;br /&gt;
CSMA/CD ist der gemeinsame Nenner.&lt;br /&gt;
Es gibt 4 verschiedene Frametypen, welche von den Herstellern&lt;br /&gt;
verschieden genannt werden. Verschieden, nicht unterschiedlich!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''IEEE'''&lt;br /&gt;
!'''Novel'''&lt;br /&gt;
!'''Cisco'''&lt;br /&gt;
|-&lt;br /&gt;
| 802.3&lt;br /&gt;
| 802.2&lt;br /&gt;
| LLC&lt;br /&gt;
|-&lt;br /&gt;
| V II&lt;br /&gt;
| EthernetII&lt;br /&gt;
| ARPA&lt;br /&gt;
|-&lt;br /&gt;
| 802.3 SNAP&lt;br /&gt;
| SNAP&lt;br /&gt;
| SNAP&lt;br /&gt;
|-&lt;br /&gt;
| 802.3 Raw&lt;br /&gt;
| 802.3&lt;br /&gt;
| Novell&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===CSMA/CD Carrier Sense Multiple Access/Collision Detect===&lt;br /&gt;
&lt;br /&gt;
Alle Stationen können gleichberechtigt auf das übertragungsmedium&lt;br /&gt;
zugreifen.(Multiple Access) Bevor eine Station sendet, lauscht sie an&lt;br /&gt;
der Leitung, um zu überprüfen, ob nicht schon eine andere Station&lt;br /&gt;
sendet (Carrier Sense). Ist die Leitung frei wird gesendet. Jedoch erst&lt;br /&gt;
nach 9,6 μs (Inter Frame Grab). Auch während des Sendens wird&lt;br /&gt;
mitgehört (Listen While Talking). Da die Signale sich nicht unendlich&lt;br /&gt;
schnell ausbreiten, kann es vorkommen, daß eine zweite Station trotz&lt;br /&gt;
Carrier Sense anfängt zu senden. Beide Signale werden sich treffen.&lt;br /&gt;
Der Signalpegel wird zwichen dem doppelten Wert und Null&lt;br /&gt;
Schwanken. Diesen Kollisionspegel erkennen die sendenden Stationen&lt;br /&gt;
(Collision Detect) und schicken ein JAM-Signal auf die Leitung. Das&lt;br /&gt;
JAM-Signal besteht aus einer 32 Bit langen Folge von 1 und 0. Nach&lt;br /&gt;
dem JAM-Singal warten die sendewilligen Stationen eine (von&lt;br /&gt;
Algorithmen) bestimmte Zeit und beginnen erneut mit Carrier Sense.&lt;br /&gt;
Die Wahrscheinlichkeit von Kollisionen steigt mit der Anzahl der&lt;br /&gt;
Stationen und der Leitungslänge.&lt;br /&gt;
&lt;br /&gt;
===Ethernet II===&lt;br /&gt;
&lt;br /&gt;
[[Bild:Ethernet.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die klassische Framestruktur ist Ethernet II. Merkmal von Ethernet II&lt;br /&gt;
ist das zwei Bytes große Typfeld. Es unterscheidet die verschiedenen&lt;br /&gt;
Schicht 3 Protokolle. Andere Ethernet Typen haben an dieser Stelle&lt;br /&gt;
eine Längeninformation. Wenn der Wert der beiden Bytes nach der&lt;br /&gt;
Source-Adresse größer als die max. möglichen 1518 Bytes ist, muß es&lt;br /&gt;
sich um Ethernet 2 handeln. Die Präambel dient zur Synchronisation&lt;br /&gt;
der Empfänger. Sie besteht aus einer Schwingung von 6,4 μs Länge&lt;br /&gt;
(Folge von 1010... 8 Bytes). Das Frame muß mindestens 64 Byte groß&lt;br /&gt;
sein, um die minimale Slot-Time zur Erkennung einer Kollision zu&lt;br /&gt;
erreichen. Anderfalls werden Bits ergänzt&lt;br /&gt;
&lt;br /&gt;
===Ethernet 802.3 raw===&lt;br /&gt;
&lt;br /&gt;
[[Bild:Ethernetraw.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Novells 802.3 raw Novell eigener eigener Rahmentyp für IPX. Er&lt;br /&gt;
enthält keine Protokollkennung. Er soll und kann deshalb allein IPX&lt;br /&gt;
transportieren. Der einzige Möglichkeit einen 802.3 raw Rahmen zu&lt;br /&gt;
erkennen besteht darin, daß nach der Rahmenlänge zwei Bytes&lt;br /&gt;
folgen, die nur aus Einsen bestehen (0xFFFF). Der Send Frame&lt;br /&gt;
Delimiter (SFD) hat im letzten Bit eine 1, die Marke des Ramenbegins.&lt;br /&gt;
&lt;br /&gt;
===IEEE 802.3===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:IEEE.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
IEEE 802.3 Frames haben statt des Typenfeldes ein 2 Byte langes&lt;br /&gt;
Längenfeld. eingefügt. Es gibt die Anzahl der Bytes im Datenfeld&lt;br /&gt;
einschließlich 802.2 LLC-Header an. Statt Typfeld mit der Protokoll-ID&lt;br /&gt;
ist der Destination Service Access Point (DSAP) und der Source&lt;br /&gt;
Service Access Point (SSAP) vorhanden. Das Control Field enthält den&lt;br /&gt;
Typ des LLC-Frames.&lt;br /&gt;
&lt;br /&gt;
===IEEE 802.3 SNAP===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:IEEE2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein Unterschied der IEEE 802.3 Definition gegenüber Ethernet II ist die&lt;br /&gt;
Halbierung des Typ-Codes auf ein Byte, es können höchstens 256&lt;br /&gt;
Protokolle unterschieden werden. Ein SNAP Feld wird eingebaut. Das&lt;br /&gt;
SNAP Feld ist 5 Byte groß, die ersten 3 Bytes enthalten den&lt;br /&gt;
Organizationally Unique Identifier des Herstellers, die 2 weitern das&lt;br /&gt;
Protocol Type Field, die Protokollnummer (IP=0x800). Ein Frame mit&lt;br /&gt;
802.2 SNAP Header hat als DSAP und SSAP immer 0xAA, im Control&lt;br /&gt;
Field immer 0x03.&lt;br /&gt;
&lt;br /&gt;
=Internet-Schicht=&lt;br /&gt;
&lt;br /&gt;
[[Bild:Internetschicht.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Internet ist eine Sammlung von Teilnetzen, die miteinander verbunden&lt;br /&gt;
sind. Es gibt keine echte Struktur des Netzes, sondern mehrere größere&lt;br /&gt;
Backbones, die quasi das Rückgrat (wie der Name Backbone ja schon sagt)&lt;br /&gt;
des Internet bilden. Die Backbones werden aus Leitungen mit sehr hoher&lt;br /&gt;
Bandbreite und schnellen Routern gebildet. An die Backbones sind&lt;br /&gt;
wiederum größere regionale Netze angeschlossen, die LANs von&lt;br /&gt;
Universitäten, Behörden, Unternehmen und Service-Providern verbinden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Internet Protokoll==&lt;br /&gt;
&lt;br /&gt;
Das Internet Protokoll (Internet Protocol - IP) ist der Leim, der dies alles&lt;br /&gt;
zusammenhält. IP stellt die Basisdienste für die Übermittlung von Daten in&lt;br /&gt;
TCP/IP-Netzen bereit und ist im RFC 791 spezifiziert. Hauptaufgaben des&lt;br /&gt;
Internet Protokolls sind die Adressierung von Hosts und das Fragmentieren&lt;br /&gt;
von Paketen. Diese Pakete werden von IP nach bestem Bemühen (&amp;quot;best&lt;br /&gt;
effort&amp;quot;) von der Quelle zum Ziel befördert, unabhängig davon, ob sich die&lt;br /&gt;
Hosts im gleichen Netz befinden oder andere Netze dazwischen liegen.&lt;br /&gt;
Garantiert ist die Zustellung allerdings nicht. Das Internet Protokoll enthält&lt;br /&gt;
keine Funktionen für die Ende-zu-Ende-Sicherung oder für die&lt;br /&gt;
Flußkontrolle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Die Funktionen von IP umfassen:===&lt;br /&gt;
&lt;br /&gt;
Die Definition von Datengrammen zur Übermittlung von Daten im&lt;br /&gt;
Internet bilden.&lt;br /&gt;
Definition des Adressierungsschemas.&lt;br /&gt;
Übermittlung der Daten von der Transportebene zur Netzwerkschicht.&lt;br /&gt;
Routing von Datengrammen durch das Netz.&lt;br /&gt;
Fragmentierung und Zusammensetzen von Datengrammen.&lt;br /&gt;
IP ist ein verbindungsloses Protokoll, d.h. zur Datenübertragung wird&lt;br /&gt;
keine Ende-zu-Ende-Verbindung der Kommunikationspartner etabliert.&lt;br /&gt;
Ferner ist IP ein unzuverlässiges Protokoll, da es über keine&lt;br /&gt;
Mechanismen zur Fehlererkennung und -behebung verfügt.&lt;br /&gt;
Unzuverlässig bedeutet aber keinesfalls, daß man sich auf das IP&lt;br /&gt;
Protokoll nicht verlassen kann. Unzuverlässig bedeutet in diesem&lt;br /&gt;
Zusammenhang lediglich, daß IP die Zustellung der Daten nicht&lt;br /&gt;
garantieren kann. Sind die Daten aber beim Zielhost angelangt, sind&lt;br /&gt;
diese Daten auch korrekt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===IP-Datengramm===&lt;br /&gt;
&lt;br /&gt;
Die TCP/IP-Protokolle wurden entwickelt, um Daten über ein&lt;br /&gt;
paketvermittelndes Netz (wie dem ARPANET) zu übertragen. Ein Paket&lt;br /&gt;
ist ein Datenblock zusammen mit den Informationen, die notwendig&lt;br /&gt;
sind, um sie dem Empfänger zuzustellen (ein Paket ist also nichts&lt;br /&gt;
anderes als ein Paket im herkömmliche Sinn bei der Post - das Paket&lt;br /&gt;
enthält die Daten, auf dem Paket ist die Adresse des Empfängers&lt;br /&gt;
notiert). Das Datengramm (datagram) ist das Paketformat, das vom&lt;br /&gt;
Internet Protokoll definiert ist. Ein IP-Datengramm besteht aus einem&lt;br /&gt;
Header und den zu übertragenden Daten. Der Header hat einen festen&lt;br /&gt;
20 Byte großen Teil, gefolgt von einem optionalen Teil variabler Länge.&lt;br /&gt;
Der Header umfaßt alle Informationen, die notwendig sind, um das&lt;br /&gt;
Datengramm dem Empfänger zuzustellen. Ein Datengramm kann&lt;br /&gt;
theoretisch maximal 64 KByte groß sein, in der Praxis liegt die Größe&lt;br /&gt;
ungefähr bei 1500 Byte (das hängt mit der maximalen Rahmengröße&lt;br /&gt;
des Ethernet-Protokolls zusammen).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Der IP-Header===&lt;br /&gt;
&lt;br /&gt;
[[Bild:IpHeader.png|right]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Make&amp;quot;&amp;gt;&lt;br /&gt;
IP______________________________________________________________.&lt;br /&gt;
|version|  ihl  |      tos      |            totlen             |&lt;br /&gt;
|___4___|___5___|____0x00=0_____|___________0x0028=40___________|&lt;br /&gt;
|              id               |r|D|M|       offsetfrag        |&lt;br /&gt;
|__________0x0C7D=3197__________|0|0|0|________0x0000=0_________|&lt;br /&gt;
|      ttl      |   protocol    |           checksum            |&lt;br /&gt;
|____0x00=0_____|____0x06=6_____|____________0x489C_____________|&lt;br /&gt;
|                            source                             |&lt;br /&gt;
|_________________________192.168.242.1_________________________|&lt;br /&gt;
|                          destination                          |&lt;br /&gt;
|________________________192.168.242.100________________________|&lt;br /&gt;
TCP_____________________________________________________________.&lt;br /&gt;
|          source port          |       destination port        |&lt;br /&gt;
|__________0x04D2=1234__________|___________0x0016=22___________|&lt;br /&gt;
|                            seqnum                             |&lt;br /&gt;
|_____________________0x6BD4594F=1809078607_____________________|&lt;br /&gt;
|                            acknum                             |&lt;br /&gt;
|_________________________0x00000000=0__________________________|&lt;br /&gt;
| doff  |r|r|r|r|C|E|U|A|P|R|S|F|            window             |&lt;br /&gt;
|___5___|0|0|0|0|0|0|0|0|0|0|0|0|___________0x0000=0____________|&lt;br /&gt;
|           checksum            |            urgptr             |&lt;br /&gt;
|_________0x8021=32801__________|___________0x0000=0____________|&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Felder des in der Abbildung dargestellten Protokollkopfes haben die&lt;br /&gt;
folgende Bedeutung:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Version====&lt;br /&gt;
&lt;br /&gt;
Das Versions-Feld enthält die Versionsnummer des IP-Protokolls. Durch&lt;br /&gt;
die Einbindung der Versionsnummer besteht die Möglichkeit über eine&lt;br /&gt;
längere Zeit mit verschiedenen Versionen des IP Protokolls zu&lt;br /&gt;
arbeiten. Einige Hosts können mit der alten und andere mit der neuen&lt;br /&gt;
Version arbeiten. Die derzeitige Versionsnummer ist 4, aber die&lt;br /&gt;
Version 6 des IP Protokolls befindet sich bereits in der Erprobung&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Length====&lt;br /&gt;
&lt;br /&gt;
Das Feld Length (Internet Header Length - IHL) enthält die Länge des&lt;br /&gt;
Protokollkopfs, da diese nicht konstant ist. Die Länge wird in 32-Bit-&lt;br /&gt;
Worten angegeben. Der kleinste zulässige Wert ist 5 - das entspricht&lt;br /&gt;
also 20 Byte; in diesem Fall sind im Header keine Optionen gesetzt.&lt;br /&gt;
Die Länge des Headers kann sich durch Anfügen von Optionen aber&lt;br /&gt;
bis auf 60 Byte erhöhen (der Maximalwert für das 4-Bit-Feld ist 15).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Type of Service====&lt;br /&gt;
&lt;br /&gt;
Über das Feld Type of Service kann IP angewiesen werden&lt;br /&gt;
Nachrichten nach bestimmten Kriterien zu behandeln. Als Dienste&lt;br /&gt;
sind hier verschiedene Kombinationen aus Zuverlässigkeit und&lt;br /&gt;
Geschwindigkeit möglich. In der Praxis wird dieses Feld aber ignoriert,&lt;br /&gt;
hat also den Wert 0. Das Feld selbst hat den folgenden Aufbau:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Service.png]]&lt;br /&gt;
&lt;br /&gt;
=====Precedence=====&lt;br /&gt;
&lt;br /&gt;
(Bits 0-2) gibt die Priorität von 0 (normal) bis 7 (Steuerungspaket) an.&lt;br /&gt;
Die drei Flags (D,T,R) ermöglichen es dem Host anzugeben, worauf er&lt;br /&gt;
bei der Datenübertragung am meisten Wert legt: Verzögerung (Delay&lt;br /&gt;
- D), Durchsatz (Throughput - T), Zuverlässigkeit (Reliability - R). Die&lt;br /&gt;
beiden anderen Bit-Felder sind reserviert.&lt;br /&gt;
&lt;br /&gt;
====Total Length====&lt;br /&gt;
&lt;br /&gt;
Enthält die gesamte Paketlänge, d.h. Header und Daten. Da es sich&lt;br /&gt;
hierbei um ein 16-Bit-Feld handelt ist die Maximallänge eines&lt;br /&gt;
Datengramms auf 65.535 Byte begrenzt. In der Spezifikation von IP&lt;br /&gt;
(RFC 791) ist festgelegt, daß jeder Host in der Lage sein muß, Pakete&lt;br /&gt;
bis zu einer Länge von 576 Bytes zu verarbeiten. In der Regel können&lt;br /&gt;
von den Host aber Pakete größerer Länge verarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Identification====&lt;br /&gt;
&lt;br /&gt;
Über das Identifikationsfeld kann der Zielhost feststellen, zu welchem&lt;br /&gt;
Datengramm ein neu angekommenes Fragment gehört. Alle&lt;br /&gt;
Fragmente eines Datengramms enthalten die gleiche&lt;br /&gt;
Identifikationsnummer, die vom Absender vergeben wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Flags====&lt;br /&gt;
&lt;br /&gt;
Das Flags-Feld ist drei Bit lang. Die Flags bestehen aus zwei Bits&lt;br /&gt;
namens DF - Don't Fragment und MF - More Fragments. Das erste Bit&lt;br /&gt;
des Flags-Feldes ist ungenutzt bzw. reserviert. Die beiden Bits DF und&lt;br /&gt;
MF steuern die Behandlung eines Pakets im Falle einer&lt;br /&gt;
Fragmentierung. Mit dem DF-Bit wird signalisiert, daß das&lt;br /&gt;
Datengramm nicht fragmentiert werden darf. Auch dann nicht, wenn&lt;br /&gt;
das Paket dann evtl. nicht mehr weiter transportiert werden kann und&lt;br /&gt;
verworfen werden muß. Alle Hosts müssen, wie schon gesagt&lt;br /&gt;
Fragemente bzw. Datengramme mit einer Größe von 576 Bytes oder&lt;br /&gt;
weniger verarbeiten können. Mit dem MF-Bit wird angezeigt, ob einem&lt;br /&gt;
IP-Paket weitere Teilpakete nachfolgen. Diese Bit ist bei allen&lt;br /&gt;
Fragmenten außer dem letzten gesetzt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Fragment Offset====&lt;br /&gt;
&lt;br /&gt;
Der Fragmentabstand bezeichnet, an welcher Stelle relativ zum&lt;br /&gt;
Beginn des gesamten Datengramms ein Fragment gehört. Mit Hilfe&lt;br /&gt;
dieser Angabe kann der Zielhost das Originalpaket wieder aus den&lt;br /&gt;
Fragmenten zusammensetzen. Da dieses Feld nur 13 Bit groß ist,&lt;br /&gt;
können maximal 8192 Fragmente pro Datengramm erstellt werden.&lt;br /&gt;
Alle Fragmente, außer dem letzten, müssen ein Vielfaches von 8 Byte&lt;br /&gt;
sein. Dies ist die elementare Fragmenteinheit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:fragment.gif]]&lt;br /&gt;
&lt;br /&gt;
====Time to Live====&lt;br /&gt;
&lt;br /&gt;
Das Feld Time to Live ist ein Zähler, mit dem die Lebensdauer von IP-&lt;br /&gt;
Paketen begrenzt wird. Im RFC 791 ist für dieses Feld als Einheit&lt;br /&gt;
Sekunden spezifiziert. Zulässig ist eine maximale Lebensdauer von&lt;br /&gt;
255 Sekunden (8 Bit). Der Zähler muß von jedem Netzknoten, der&lt;br /&gt;
durchlaufen wird um mindestens 1 verringert werden. Bei einer&lt;br /&gt;
längeren Zwischenspeicherung in einem Router muß der Inhalt sogar&lt;br /&gt;
mehrmals verringert werden. Enthält das Feld den Wert 0, muß das&lt;br /&gt;
Paket verworfen werden: damit wird verhindert, daß ein Paket endlos&lt;br /&gt;
in einem Netz umherwandert. Der Absender wird in einem solchen Fall&lt;br /&gt;
durch eine Warnmeldung in Form einer ICMP-Nachricht (siehe weiter&lt;br /&gt;
unten) informiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Protocol====&lt;br /&gt;
&lt;br /&gt;
Enthält die Nummer des Transportprotokolls, an das das Paket&lt;br /&gt;
weitergeleitet werden muß. Die Numerierung von Protokollen ist im&lt;br /&gt;
gesamten Internet einheitlich.. Bei UNIX-Systemen sind die&lt;br /&gt;
Protokollnummern in der Datei /etc/protocols abgelegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Header Checksum====&lt;br /&gt;
&lt;br /&gt;
Dieses Feld enthält die Prüfsumme der Felder im IP-Header. Die&lt;br /&gt;
Nutzdaten des IP-Datengramms werden aus Effiziengründen nicht mit&lt;br /&gt;
geprüft. Diese Prüfung findet beim Empfänger innerhalb des&lt;br /&gt;
Transportprotokolls statt. Die Prüfsumme muß von jedem Netzknoten,&lt;br /&gt;
der durchlaufen wird, neu berechnet werden, da der IP-Header durch&lt;br /&gt;
das Feld Time-to-Live sich bei jeder Teilstrecke verändert. Aus diesem&lt;br /&gt;
Grund ist auch eine sehr effiziente Bildung der Prüfsumme wichtig. Als&lt;br /&gt;
Prüfsumme wird das 1er-Komplement der Summe aller 16-Bit-&lt;br /&gt;
Halbwörter der zu überprüfenden Daten verwendet. Zum Zweck&lt;br /&gt;
dieses Algorithmus wird angenommen, daß die Prüfsumme zu Beginn&lt;br /&gt;
der Berechnung Null ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Source Address, Destination Address====&lt;br /&gt;
&lt;br /&gt;
In diese Felder werden die 32-Bit langen Internet-Adressen zur&lt;br /&gt;
eingetragen. Die Internet-Adressen werden im nächsten Abschnitt&lt;br /&gt;
näher betrachtet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Options und Padding====&lt;br /&gt;
&lt;br /&gt;
Das Feld Options wurde im Protokollkopf aufgenommen, um die&lt;br /&gt;
Möglichkeit zu bieten das IP-Protokoll um weitere Informationen zu&lt;br /&gt;
ergänzen, die im ursprünglichen Design nicht berücksichtigt wurden.&lt;br /&gt;
Das Optionsfeld hat eine variable Länge. Jede Option beginnt mit&lt;br /&gt;
einem Code von einem Byte, über den die Option identifiziert wird.&lt;br /&gt;
Manchen Optionen folgt ein weiteres Optionsfeld von 1 Byte und dann&lt;br /&gt;
ein oder mehrere Datenbytes für die Option. Das Feld Options wird&lt;br /&gt;
über das Padding auf ein Vielfaches von 4 Byte aufgefüllt. Derzeit sind&lt;br /&gt;
die folgenden Optionen bekannt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====End of Options List====&lt;br /&gt;
&lt;br /&gt;
Kennzeichnet das Ende der Optionsliste.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====No Option====&lt;br /&gt;
&lt;br /&gt;
Kann zum Auffüllen von Bits zwischen Optionen verwendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Security====&lt;br /&gt;
&lt;br /&gt;
Bezeichnet, wie geheim ein Datengramm ist. In der Praxis wird diese&lt;br /&gt;
Option jedoch fast immer ignoriert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Loose Source-Routing, Strict Source-Routing====&lt;br /&gt;
&lt;br /&gt;
Diese Option enthält eine Liste von Internet-Adressen, die das&lt;br /&gt;
Datagramm durchlaufen soll. Auf diese Weise kann dem Datenpaket&lt;br /&gt;
vorgeschrieben werden eine bestimmte Route durch das Internet zu&lt;br /&gt;
nehmen. Beim Source-Routing wird zwischen Strict Source and Record&lt;br /&gt;
Route und Loose Source and Record Route unterschieden. Im ersten&lt;br /&gt;
Fall wird verlangt, daß das Paket diese Route genau einhalten muß.&lt;br /&gt;
Desweiteren wird die genommene Route aufgezeichnet. Die zweite&lt;br /&gt;
Variante schreibt vor, daß die angegebenen Router nicht umgangen&lt;br /&gt;
werden dürfen. Auf dem Weg können aber auch andere Router&lt;br /&gt;
besucht werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Record Route====&lt;br /&gt;
&lt;br /&gt;
Die Knoten, die dieses Datengramm durchläuft, werden angewiesen&lt;br /&gt;
ihre IP-Adresse an das Optionsfeld anzuhängen. Damit läßt sich&lt;br /&gt;
ermitteln, welche Route ein Datengramm genommen hat. Wie&lt;br /&gt;
anfangs schon gesagt, ist die Größe für das Optionsfeld auf 40 Byte&lt;br /&gt;
beschränkt. Deshalb kommt es heute auch oftmals zu Problemen mit&lt;br /&gt;
dieser Option, da weit mehr Router durchlaufen werden, als dies zu&lt;br /&gt;
Beginn des ARPANET der Fall war.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Time Stamp====&lt;br /&gt;
&lt;br /&gt;
Diese Option ist mit der Option Record Route vergleichbar. Zusätzlich&lt;br /&gt;
zur IP-Adresse wird bei dieser Option die Uhrzeit des Durchlaufs durch&lt;br /&gt;
den Knoten vermerkt.&lt;br /&gt;
&lt;br /&gt;
==Adressierung auf der Internet-Schicht==&lt;br /&gt;
Zur Adressierung eines Kommunikationspartners in Form eines&lt;br /&gt;
Applikationsprogramms müssen beim Durchlaufen der vier TCP/IP-&lt;br /&gt;
Schichten auch vier verschiedene Adressen angegeben werden.&lt;br /&gt;
# Eine Netzwerkadresse (z.B. eine Ethernet-Adresse)&lt;br /&gt;
# Eine Internet-Adresse&lt;br /&gt;
# Eine Transportprotokoll-Adresse&lt;br /&gt;
# Eine Portnummer&lt;br /&gt;
Zwei dieser Adressen finden sich als Felder im IP-Header: die Internet-&lt;br /&gt;
Adresse und die Transportprotokoll-Adresse.&lt;br /&gt;
Protokollnummern&lt;br /&gt;
IP verwendet Protokollnummern, um empfangene Daten an das richtige&lt;br /&gt;
Transportprotokoll weiterzuleiten. Die Protokollnummer ist ein einzelnes&lt;br /&gt;
Byte im IP-Header. Die Protokollnummern sind im gesamten Internet&lt;br /&gt;
einheitlich. Bisher wurden die Protokollnummern im RFC 1700 definiert.&lt;br /&gt;
Diese Aufgabe ist nun von der Internet Assigned Numbers Authority (IANA)&lt;br /&gt;
[http://www.iana.org] übernommen worden.&lt;br /&gt;
Auf UNIX-Systemen sind die Protokollnummern in der Datei&lt;br /&gt;
/etc/protocols abgelegt. Diese Datei ist eine einfache Tabelle, die einen&lt;br /&gt;
Protokollnamen und die damit verbundene Protokollnummer enthält.&lt;br /&gt;
Nachfolgend ist der Inhalt der Datei /etc/protocols einer aktuellen&lt;br /&gt;
LINUX-Maschine abgebildet:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:protocols.png]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:123.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Empfängt IP ein Datengramm, in dessen Header als Protokollnummer 6&lt;br /&gt;
eingetragen ist, so werden diese Daten an das Transmission Control&lt;br /&gt;
Protocol weitergeleitet; ist die Nummer 17, werden die Daten an das User&lt;br /&gt;
Datagram Protocol weitergeleitet etc.&lt;br /&gt;
&lt;br /&gt;
==IP-Adressen==&lt;br /&gt;
&lt;br /&gt;
Jeder Host und Router im Internet hat eine 32-Bit lange IP-Adresse. Eine IP-&lt;br /&gt;
Adresse ist eindeutig: kein Knoten im Internet hat die gleiche IP-Adresse&lt;br /&gt;
wie ein anderer. Maschinen, die an mehrere Netze angeschlossen sind,&lt;br /&gt;
haben in jedem Netz eine eigene IP-Adresse. Die Netzwerkadressen&lt;br /&gt;
wurden bisher vom Network Information Center (NIC)&lt;br /&gt;
[http://www.internic.net] vergeben, um Adresskonflikte zu vermeiden. Seit&lt;br /&gt;
einiger Zeit hat diese Aufgabe die Internet Assigned Numbers Authority&lt;br /&gt;
(IANA) [http://www.iana.org] bzw. ihre Vertreter in den verschiedenen&lt;br /&gt;
Gebieten - Asia Pacific Network Information Center (APNIC), American&lt;br /&gt;
Registry for Internet Numbers (ARIN), Réseaux IP Européens (RIPE) -&lt;br /&gt;
übernommen. Die Adressen werden nicht einzeln zugeordnet, sondern&lt;br /&gt;
&lt;br /&gt;
[[Bild:ipadressen.png]]&lt;br /&gt;
&lt;br /&gt;
nach Netzklassen vergeben. Beantragt man IP-Adressen für ein Netz, so&lt;br /&gt;
erhält man nicht für jeden Rechner eine Adresse zugeteilt, sondern einen&lt;br /&gt;
Bereich von Adressen, der selbst zu verwalten ist.&lt;br /&gt;
&lt;br /&gt;
IP-Adreßformate.&lt;br /&gt;
Wie die obere Abbildung zeigt, sind IP-Adressen in verschiedene Klassen,&lt;br /&gt;
mit unterschiedlich langer Netzwerk- und Hostadresse, eingeteilt. Die&lt;br /&gt;
Netzwerkadresse definiert das Netzwerk, in dem sich ein Host befindet:&lt;br /&gt;
alle Hosts eines Netzes haben die gleiche Netzwerkadresse. Die&lt;br /&gt;
Hostadresse identifiziert einen bestimmten Rechner innerhalb eines&lt;br /&gt;
Netzes. Ist ein Host an mehrere Netze angeschlossen, so hat er für jedes&lt;br /&gt;
Netz eine eigene IP-Adresse.&lt;br /&gt;
&amp;quot;Eine IP-Adresse identifiziert keinen bestimmten Computer [Host], sondern&lt;br /&gt;
eine Verbindung zwischen einem Computer [Host] und einem Netz. Einem&lt;br /&gt;
Computer [Host] mit mehreren Netzanschlüssen (z.B. ein Router) muß für&lt;br /&gt;
jeden Anschluß eine IP-Adresse zugewiesen werden.&amp;quot; ([Co98])&lt;br /&gt;
IP-Adressen sind 32-Bit große Zahlen, die normalerweise nicht als&lt;br /&gt;
Binärzahl, sondern in gepunkteten Dezimalzahlen geschrieben werden. In&lt;br /&gt;
diesem Format wird die 32-Bit große Zahl in 4 Byte getrennt, die mit&lt;br /&gt;
Punkten voneinander getrennt sind. Die Adresse&lt;br /&gt;
01111111111111111111111111111111 wird so z.B. als 127.255.255.255&lt;br /&gt;
geschrieben. Die niedrigste IP-Adresse ist 0.0.0.0., die höchste&lt;br /&gt;
255.255.255.255.&lt;br /&gt;
Wie zuvor gesagt, sind IP-Adressen in Klassen unterteilt. Der Wert des&lt;br /&gt;
ersten Bytes gibt die Adressklasse an:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Adresse-1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Klasse A===&lt;br /&gt;
&lt;br /&gt;
Das erste Byte hat einen Wert kleiner als 128, d.h. das erste Bit der&lt;br /&gt;
Adresse ist 0. Das erste Byte ist Netzwerknummer, die letzten drei Bytes&lt;br /&gt;
identifizieren einen Host im Netz. Es gibt demzufolge also 126 Klasse A&lt;br /&gt;
Netze, die bis zu 16 Millionen Host in einem Netz.&lt;br /&gt;
&lt;br /&gt;
===Klasse B===&lt;br /&gt;
&lt;br /&gt;
Ein Wert von 128 bis 191 für das erste Byte (das erste Bit ist gleich 1,&lt;br /&gt;
Bit 2 gleich 0) identifiziert eine Klasse B Adresse. Die ersten beiden&lt;br /&gt;
Bytes identifizieren das Netzwerk, die letzen beiden Bytes einen Host.&lt;br /&gt;
Das ergibt 16382 Klasse B Netze mit bis zu 64000 Hosts in einem Netz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Klasse C===&lt;br /&gt;
&lt;br /&gt;
Klasse C Netze werden über Werte von 192 bis 223 für das erste Byte&lt;br /&gt;
(die ersten beiden Bits sind gleich 1, Bit 3 gleich 0) identifiziert. Es gibt&lt;br /&gt;
2 Millionen Klasse C Netze, d.h. die ersten drei Bytes werden für die&lt;br /&gt;
Netzwerkadresse verwendet. Ein Klasse C Netz kann bis zu 254 Host&lt;br /&gt;
beinhalten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Klasse D===&lt;br /&gt;
&lt;br /&gt;
Klasse D Adressen, sogenannte Multicast-Adressen, werden dazu&lt;br /&gt;
verwendet ein Datengramm an mehrere Hostadressen gleichzeitig zu&lt;br /&gt;
versenden. Das erste Byte einer Multicast-Adresse hat den Wertebereich&lt;br /&gt;
von 224 bis 239, d.h. die ersten drei Bit sind gesetzt und Bit 4 ist gleich&lt;br /&gt;
0. Sendet ein Prozeß eine Nachricht an eine Adresse der Klasse D, wird&lt;br /&gt;
die Nachricht an alle Mitglieder der adressierten Gruppe versendet. Die&lt;br /&gt;
Übermittlung der Nachricht erfolgt, wie bei IP üblich, nach bestem&lt;br /&gt;
Bemühen, d.h. ohne Garantie, daß die Daten auch tatsächlich alle&lt;br /&gt;
Mitglieder einer Gruppe erreichen.&lt;br /&gt;
Für das Multicasting wird ein spezielles Protokoll namens Internet Group&lt;br /&gt;
Management Protocol (IGMP) verwendet. IGMP entspricht grob ICMP, mit&lt;br /&gt;
dem Unterschied, daß es nur zwei Arten von Paketen kennt: Anfragen&lt;br /&gt;
und Antworten. Anfragen werden dazu verwendet, zu ermitteln welche&lt;br /&gt;
Hosts Mitglieder einer Gruppe sind. Antworten informieren darüber, zu&lt;br /&gt;
welchen Gruppen ein Host gehört. Jedes IGMP-Paket hat ein festes&lt;br /&gt;
Format und wird zur Übertragung in IP-Pakete eingekapselt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===EXKURS: Subnetting===&lt;br /&gt;
&lt;br /&gt;
[[Bild:Exkurs-Subnetting1.png]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:Exkurs-Subnetting2.png]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:Exkurs-Subnetting3.png]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:Exkurs-Subnetting4.png]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:Exkurs-Subnetting5.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===EXKURS: Supernetting===&lt;br /&gt;
&lt;br /&gt;
[[Bild:Exkurs-Supernetting1.png]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:Exkurs-Supernetting2.png]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:Exkurs-Supernetting3.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Der IGMP-Header====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:IGMP.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Version=====&lt;br /&gt;
&lt;br /&gt;
In RFC1112 ist die aktuelle Version 1 des IGMP Protokolls&lt;br /&gt;
spezifiziert. Version 0, die in RFC998 beschrieben wird, ist obsolet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Type=====&lt;br /&gt;
&lt;br /&gt;
Wie zuvor gesagt, kennt IGMP zwei Nachrichtentypen: Anfragen und&lt;br /&gt;
Antorten:&lt;br /&gt;
&lt;br /&gt;
1 = Host Membership Query (Anfrage)&lt;br /&gt;
2 = Host Membership Report (Antwort)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Unused=====&lt;br /&gt;
&lt;br /&gt;
Dieses Feld wird derzeit nicht benutzt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Checksum=====&lt;br /&gt;
&lt;br /&gt;
Der Algorithmus zur Berechnung der Checksumme entspricht dem&lt;br /&gt;
des IP-Protokolls.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Group Address=====&lt;br /&gt;
&lt;br /&gt;
Bei einer Anfrage zur Gruppenzugehörigkeit wird das&lt;br /&gt;
Gruppenadressenfeld mit Nullen gefüllt. Ein Host, der eine Anfrage&lt;br /&gt;
erhält, ignoriert dieses Feld. Bei einer IGMP-Antwort enthält das&lt;br /&gt;
Gruppenadressenfeld die Adresse der Gruppe, zu der der sendende&lt;br /&gt;
Host gehört.&lt;br /&gt;
Eine genaue Beschreibung des Internet Group Management&lt;br /&gt;
Protocol ist in RFC1112 zu finden (RFC1054 und RFC 998&lt;br /&gt;
beschreiben ältere Versionen von IGMP).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Klasse E===&lt;br /&gt;
&lt;br /&gt;
Der weitere Bereich der IP-Adressen von 240 bis 254 im ersten Byte ist&lt;br /&gt;
für zukünftige Nutzungen reserviert. In der Literatur wird dieser Bereich&lt;br /&gt;
oft auch als Klasse E bezeichnet [http://www.rvs.uni-bielefeld.de/~heiko/tcpip/referenzen.html#Comer4 (vgl. [Co98])].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Private Adressbereiche===&lt;br /&gt;
&lt;br /&gt;
Im Internet müssen die Netzkennungen eindeutig sein. Aus diesem&lt;br /&gt;
Grund werden die (Netz)Adressen, wie weiter oben schon gesagt, von&lt;br /&gt;
einer zentralen Organisation vergeben. Dabei ist sichergestellt, daß die&lt;br /&gt;
Adressen eindeutig sind und auch im Internet sichtbar sind.&lt;br /&gt;
Dies ist aber nicht immer notwendig. Netze, die keinen Kontakt zum&lt;br /&gt;
globalen Internet haben, benötigen keine Adresse, die auch im Internet&lt;br /&gt;
sichtbar ist. Es ist auch nicht notwendig, daß sichergestellt ist, das diese&lt;br /&gt;
Adressen in keinem anderen, privaten Netz eingesetzt werden.&lt;br /&gt;
Aus diesem Grund wurden Adreßbereiche festgelegt, die nur für private&lt;br /&gt;
Netze bestimmt sind. Diese Bereiche sind in RFC 1918 (Address&lt;br /&gt;
Allocation for Private Internets) festgelegt (RFC 1597, auf das sich oft&lt;br /&gt;
auch neuere Literatur bezieht, ist durch RFC 1918 ersetzt). Diese IP-&lt;br /&gt;
Nummern dürfen im Internet nicht weitergeleitet werden. Dadurch ist es&lt;br /&gt;
möglich, diese Adressen in beliebig vielen, nicht-öffentlichen Netzen,&lt;br /&gt;
einzusetzen.&lt;br /&gt;
Die folgenden Adressbereiche sind für die Nutzung in privaten Netzen&lt;br /&gt;
reserviert:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Klasse A: 10.0.0.0====&lt;br /&gt;
&lt;br /&gt;
Für ein privates Klasse A-Netz ist der Adressbereich von 10.0.0.0 bis&lt;br /&gt;
10.255.255.255 reserviert.&lt;br /&gt;
&lt;br /&gt;
====Klasse B: 172.16.0.0 bis 172.31.255.255====&lt;br /&gt;
&lt;br /&gt;
Für die private Nutzung sind 16 Klasse B-Netze reserviert. Jedes&lt;br /&gt;
dieser Netze kann aus bis zu 65.000 Hosts bestehen (also z.B. ein&lt;br /&gt;
Netz mit den Adressen von 172.17.0.1 bis 172.17.255.254).&lt;br /&gt;
&lt;br /&gt;
====Klasse C: 192.168.0.0 bis 192.168.255.255====&lt;br /&gt;
&lt;br /&gt;
256 Klasse C-Netzte stehen zur privaten Nutzung zur Verfügung. Jedes&lt;br /&gt;
dieser Netze kann jeweils 254 Hosts enthalten (z.B. ein Netz mit den&lt;br /&gt;
Adressen 192.168.0.1 bis 192.168.0.254).&lt;br /&gt;
Jeder kann aus diesen Bereichen den Adreßbereich für sein eigenes&lt;br /&gt;
privates Netz auswählen. Die Zuteilung dieser Adressen bedarf nicht&lt;br /&gt;
die Koordination mit der IANA oder einer anderen Organisation, die für&lt;br /&gt;
die Zuordnung von IP-Adressen verantwortlich ist.&lt;br /&gt;
&lt;br /&gt;
===Weitere Sonderfälle===&lt;br /&gt;
&lt;br /&gt;
====Netznummer 0====&lt;br /&gt;
&lt;br /&gt;
Adressen mit der Netznummer 0 beziehen sich auf das aktuelle Netz.&lt;br /&gt;
Mit einer solchen Adresse können sich Hosts auf ihr eigenes Netz&lt;br /&gt;
beziehen, ohne die Netzadresse zu kennen (allerdings muß bekannt&lt;br /&gt;
sein, um welche Netzklasse es sich handelt, damit die passende&lt;br /&gt;
Anzahl Null-Bytes gesetzt wird).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====127====&lt;br /&gt;
&lt;br /&gt;
steht für das Loopback Device eines Hosts. Pakete, die an eine&lt;br /&gt;
Adresse der Form 127.x.y.z gesendet werden, werden lokal&lt;br /&gt;
verarbeitet.&lt;br /&gt;
Neben einigen Netzadressen sind auch bestimmte Hostadressen für&lt;br /&gt;
spezielle Zwecke reserviert. Bei allen Netzwerkklassen sind die Werte&lt;br /&gt;
0 und 255 bei den Hostadressen reserviert. Eine IP-Adresse, bei der&lt;br /&gt;
alle Hostbits auf Null gesetzt sind, identifiziert das Netz selbst. Die&lt;br /&gt;
Adresse 80.0.0.0 bezieht sich so z.B. auf das Klasse A Netz 80, die&lt;br /&gt;
Adresse 128.66.0.0 bezieht sich auf das Klasse B Netz 128.66. Eine IP-&lt;br /&gt;
Adresse, bei der alle Host-Bytes den Wert 255 haben, ist eine&lt;br /&gt;
Broadcast-Adresse. Eine Broadcast-Adresse wird benutzt, um alle&lt;br /&gt;
Hosts in einem Netzwerk zu adressieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Fragmentierung===&lt;br /&gt;
&lt;br /&gt;
Damit Datengramme über jede Art von Netzwerk verschickt werden&lt;br /&gt;
können, muß das Internet Protokoll dazu in der Lage sein, die Größe der&lt;br /&gt;
Datengramme dem jeweiligen Netz anzupassen. Jedes Netzwerk besitzt&lt;br /&gt;
eine sogenannte maximale Paketgröße (Maximum Transfer Unit - MTU),&lt;br /&gt;
die bezeichnet, daß nur Pakete bis zu dieser Größe über das Netz&lt;br /&gt;
verschickt werden können. So dürfen z.B. Pakete, die über ein X.25-Netz&lt;br /&gt;
verschickt werden sollen nicht größer als 128 Byte sein. Ein Ethernet-&lt;br /&gt;
Paket darf die Größe von 1500 Byte nicht überschreiten. Falls die MTU&lt;br /&gt;
eines Übertragungsmediums kleiner ist als die Größe eines versendeten&lt;br /&gt;
Pakets, so muß dieses Paket in kleinere Pakete aufgeteilt werden.&lt;br /&gt;
Es genügt allerdings nicht, daß die Protokolle der Transportschicht nun&lt;br /&gt;
von sich aus einfach kleinere Pakete versenden. Ein Paket kann auf dem&lt;br /&gt;
Weg vom Quell- zum Zielhost mehrere unterschiedliche Netzwerke mit&lt;br /&gt;
unterschiedlichen MTUs durchlaufen. Aus diesem Grund muß ein&lt;br /&gt;
flexibleres Verfahren angewendet werden, daß bereits auf der Internet-&lt;br /&gt;
Schicht kleiner Pakete erzeugen kann. Dieses Verfahren wird&lt;br /&gt;
Fragmentierung genannt. Unter Fragmentierung wird verstanden, daß&lt;br /&gt;
das IP-Protokoll eines jeden Netzwerkknotens (sei es ein Router, ein Host&lt;br /&gt;
o.ä.) in der Lage ist (sein sollte), empfangene Pakete gegebenenfalls zu&lt;br /&gt;
zerteilen, um sie weiter über ein Teilnetz bis zum Zielhost zu übertragen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Bild:Fragmentierung.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jedes empfangende IP muß dazu in der Lage sein, diese Fragmente&lt;br /&gt;
wieder zum ursprünglichen Paket zusammenzusetzen.&lt;br /&gt;
Jedes Fragment eines zerteilten Pakets erhält einen eigenen,&lt;br /&gt;
vollständigen IP-Header. Über das Identifikationsfeld im Header können&lt;br /&gt;
alle Fragmente eines Pakets wiedererkannt werden. Die einzelnen&lt;br /&gt;
Fragmente eines Pakets können durchaus unterschiedliche Wege auf&lt;br /&gt;
dem Weg zum Zielhost nehmen. Die Lage der Daten eines Fragments&lt;br /&gt;
innerhalb der Gesamtnachricht wird mit Hilfe des Fragment Offset-&lt;br /&gt;
Feldes ermittelt.&lt;br /&gt;
&lt;br /&gt;
===Internet Control Message Protocol===&lt;br /&gt;
&lt;br /&gt;
Das Internet Control Message Protocol (ICMP) ist Bestandteil jeder IP-&lt;br /&gt;
Implementierung und hat die Aufgabe Fehler- und&lt;br /&gt;
Diagnoseinformationen für IP zu transportieren. ICMP ist im RFC 792&lt;br /&gt;
spezifiziert. Oft wird ICMP auch für Testzwecke verwendet, etwa um zu&lt;br /&gt;
ermitteln, ob ein Host derzeit empfangsbereit ist.&lt;br /&gt;
ICMP hat sehr unterschiedliche Informationen zu transportieren. Deshalb&lt;br /&gt;
ist nur der Grundaufbau des ICMP-Headers immer gleich, die Bedeutung&lt;br /&gt;
der einzelnen Felder im Protokollkopf wechselt jedoch. Jeder ICMP-&lt;br /&gt;
Nachrichtentyp wird in einem IP-Datengramm eingekapselt.&lt;br /&gt;
Der ICMP-Header (allgemeiner Aufbau).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Bild:MessageProtocol.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die derzeit wichtigsten ICMP-Nachrichtentypen sind:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Destination Unreachable (Ziel nicht erreichbar)====&lt;br /&gt;
&lt;br /&gt;
Diese Nachricht wird verwendet, wenn:&lt;br /&gt;
ein Netzwerk, Host, Protokoll oder Port nicht erreichbar ist,&lt;br /&gt;
ein Paket nicht fragmentiert werden kann, weil das DF-Bit gesetz ist,&lt;br /&gt;
die Source Route Option nicht erfolgreich ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Source Quench (Quelle löschen)====&lt;br /&gt;
&lt;br /&gt;
Wird ausgesendet, wenn ein Host zu viele Pakete verschickt, die aus&lt;br /&gt;
Kapazitätsmangel nicht mehr verarbeitet werden können. Der&lt;br /&gt;
sendende Host muß dann die Rate zum Aussenden von Nachrichten&lt;br /&gt;
verringern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Parameter Problem====&lt;br /&gt;
&lt;br /&gt;
Verständigt den Absender eines Datengramms darüber, daß das Paket&lt;br /&gt;
aufgrund einer fehlerhaften Angabe im IP-Header verworfen werden&lt;br /&gt;
mußte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Redirect====&lt;br /&gt;
&lt;br /&gt;
Wird ausgesendet, wenn ein Router feststellt, daß ein Paket falsch&lt;br /&gt;
weitergeleitet wurde. Der sendende Host wird damit aufgefordert, die&lt;br /&gt;
angegebene Route zu ändern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Time Exceeded (Zeit verstrichen)====&lt;br /&gt;
&lt;br /&gt;
Diese Nachricht wird an den Absender eines Datengramms gesendet,&lt;br /&gt;
dessen Lebensdauer den Wert 0 erreicht hat. Diese Nachricht ist ein&lt;br /&gt;
Zeichen dafür, daß Pakete in einem Zyklus wandern, daß Netz&lt;br /&gt;
überlastet ist oder die Lebensdauer für das Paket zu gering eingestellt&lt;br /&gt;
wurde&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Echo Reply, Echo Request====&lt;br /&gt;
&lt;br /&gt;
Mit diesen Nachrichten kann festgestellt werden, ob ein bestimmtes&lt;br /&gt;
Ziel erreichbar ist. Ein Echo Request wird an einen Host gesendet und&lt;br /&gt;
hat einen Echo Reply zur Folge (falls der Host erreicht wird).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Timestamp Request, Timestamp Reply====&lt;br /&gt;
&lt;br /&gt;
Diese beiden Nachrichten sind ähnlich den zuvor beschriebenen&lt;br /&gt;
Nachrichten, außer das die Ankunftszeit der Nachricht und die&lt;br /&gt;
Sendezeit der Antwort mit erfaßt werden. Mit diesen&lt;br /&gt;
Nachrichtentypen kann die Netzleistung gemessen werden.&lt;br /&gt;
&lt;br /&gt;
===Einsatz von icmp===&lt;br /&gt;
&lt;br /&gt;
IP verwendet ICMP zum versenden von Fehler- und Diagnosemeldungen,&lt;br /&gt;
während ICMP zur Übertragung seiner Nachrichten IP benutzt. Das&lt;br /&gt;
bedeutet, wenn eine ICMP-Nachricht verschickt werden muß, wird ein IP-&lt;br /&gt;
Datengramm erzeugt und die ICMP-Meldung in den Datenbereich des IP-&lt;br /&gt;
Datengramms eingekapselt (siehe Abbildung).&lt;br /&gt;
&lt;br /&gt;
[[Bild:icmp.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ICMP-Nachrichten-Einkapselung.&lt;br /&gt;
Das Datengramm wird dann wie üblich versendet. Eine ICMP-Nachricht&lt;br /&gt;
wird immer als Antwort auf ein Datengramm verschickt. Entweder ist ein&lt;br /&gt;
Datengramm auf ein Problem gestoßen, oder das Datengramm enthält&lt;br /&gt;
eine ICMP-Anfrage, auf die eine Antwort versendet versendet werden&lt;br /&gt;
muß. In beiden Fällen sendet ein Host oder Router eine ICMP-Nachricht&lt;br /&gt;
an die Quelle des Datengramms zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===EXKURS: ICMP TYPES AND CODES===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:icmp-types.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:icmp-types2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:icmp-types3.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Transportschicht=&lt;br /&gt;
&lt;br /&gt;
Über der Internet-Schicht befindet sich die Transportschicht (Host-to-Host-&lt;br /&gt;
Transport Layer). Die beiden wichtigsten Protokolle der Transportschicht sind&lt;br /&gt;
das Transmission Control Protocol (TCP) und das User Datagram Protocol&lt;br /&gt;
(UDP). Die Aufgabe von TCP besteht in der Bereitstellung eines sicheren und&lt;br /&gt;
zuverlässigen Ende-zu-Ende-Transports von Daten durch ein Netzwerk. UDP&lt;br /&gt;
ist im Gegensatz dazu ein verbindungsloses Transportprotokoll, das&lt;br /&gt;
Anwendungen die Möglichkeit bietet, eingekapselte rohe IP-Pakete zu&lt;br /&gt;
übertragen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Transmission Control Protocol (TCP)==&lt;br /&gt;
&lt;br /&gt;
Das Transmission Control Protocol (TCP) ist ein zuverlässiges,&lt;br /&gt;
verbindungsorientiertes, Bytestrom Protokoll. Die Hauptaufgabe von TCP&lt;br /&gt;
besteht in der Bereitstellung eines sicheren Transports von Daten durch&lt;br /&gt;
das Netzwerk. TCP ist im RFC 793 definiert. Diese Definitionen wurden im&lt;br /&gt;
Laufe der Zeit von Fehlern und Inkonsistenzen befreit (RFC 1122) und um&lt;br /&gt;
einige Anforderungen ergänzt (RFC 1323).&lt;br /&gt;
Im weiteren sollen nun die oben genannten Eigenschaften des&lt;br /&gt;
Transmission Control Protocol zuverlässig (reliable), verbindungsorientiert&lt;br /&gt;
(connection-oriented), Bytestrom (byte-stream) - näher betrachtet werden.&lt;br /&gt;
Das Transmission Control Protocol stellt die Zuverlässigkeit der&lt;br /&gt;
Datenübertragung mit einem Mechanismus, der als Positive&lt;br /&gt;
Acknowledgement with Re-Transmission (PAR) bezeichnet wird, bereit.&lt;br /&gt;
Dies bedeutet nichts anderes als das, daß das System, welches Daten&lt;br /&gt;
sendet, die Übertragung der Daten solange wiederholt, bis vom Empfänger&lt;br /&gt;
der Erhalt der Daten quittiert bzw. positiv bestätigt wird. Die&lt;br /&gt;
Dateneinheiten, die zwischen den sendenden und empfangenden TCP-&lt;br /&gt;
Einheiten ausgetauscht werden, heißen Segmente. Ein TCP-Segment&lt;br /&gt;
besteht aus einem mindestens 20 Byte großen Protokollkopf (s.u. Der TCP-&lt;br /&gt;
Header) und den zu übertragenden Daten. In jedem dieser Segmente ist&lt;br /&gt;
eine Prüfsumme enthalten, anhand derer der Empfänger prüfen kann, ob&lt;br /&gt;
die Daten fehlerfrei sind. Im Falle einer fehlerfreien Übertragung sendet&lt;br /&gt;
der Empfänger eine Empfangsbestätigung an den Sender. Andernfalls wird&lt;br /&gt;
das Datengramm verworfen und keine Empfangsbestätigung verschickt.&lt;br /&gt;
Ist nach einer bestimmten Zeitperiode (timeout-period) beim Sender keine&lt;br /&gt;
Empfangsbestätigung eingetroffen, verschickt der Sender das betreffende&lt;br /&gt;
Segment erneut. Näheres zur Zeitüberwachung siehe [Sa94].&lt;br /&gt;
TCP ist ein verbindungsorientiertes Protokoll. Verbindungen werden über&lt;br /&gt;
ein Dreiwege-Handshake (three-way handshake) aufgebaut. Über das&lt;br /&gt;
Dreiwege-Handshake werden Steuerinformationen ausgetauscht, die die&lt;br /&gt;
logische Ende-zu-Ende-Verbindung etablieren. Zum Aufbau einer&lt;br /&gt;
Verbindung sendet ein Host (Host 1) einem anderen Host (Host 2), mit&lt;br /&gt;
dem er eine Verbindung aufbauen will, ein Segment, in dem das SYN-Flag&lt;br /&gt;
(s.u. Der TCP-Header - Flags) gesetzt ist. Mit diesem Segment teilt Host 1&lt;br /&gt;
Host 2 mit, das der Aufbau einer Verbindung gewünscht wird. Die&lt;br /&gt;
Sequenznummer des von Host 1 gesendeten Segments gibt Host 2&lt;br /&gt;
außerdem an, welche Sequenznummer Host 1 zur Datenübertragung&lt;br /&gt;
verwendet. Sequenznummern sind notwendig, um sicherzustellen, daß die&lt;br /&gt;
Daten vom Sender in der richtigen Reihenfolge beim Empfänger&lt;br /&gt;
ankommen. Der empfangende Host 2 kann die Verbindung nun annehmen&lt;br /&gt;
oder ablehnen. Nimmt er die Verbindung an, wird ein&lt;br /&gt;
Bestätigungssegment gesendet. In diesem Segment sind das SYN-Bit und&lt;br /&gt;
das ACK-Bit (s.u. Der TCP-Header - Flags) gesetzt. Im Feld für die&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Bild:transmission.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quittungsnummer bestätigt Host 2 die Sequenznummer von Host 1,&lt;br /&gt;
dadurch, daß die um Eins erhöhte Sequenznummer von Host 1 gesendet&lt;br /&gt;
wird. Die Sequenznummer des Bestätigungssegments von Host 2 an Host&lt;br /&gt;
1 informiert Host 1 darüber, mit welcher Sequenznummer beginnend Host&lt;br /&gt;
2 die Daten empfängt. Schlußendlich bestätigt Host 1 den Empfang des&lt;br /&gt;
Bestätigungssegments von Host 2 mit einem Segment, in dem das ACK-&lt;br /&gt;
Flag gesetzt ist und die um Eins erhöhte Sequenznummer von Host 2 im&lt;br /&gt;
Quittungsnummernfeld eingetragen ist. Mit diesem Segment können auch&lt;br /&gt;
gleichzeitig die ersten Daten an Host 2 übertragen werden. Nach dem&lt;br /&gt;
Austausch dieser Informationen hat Host 1 die Bestätigung, daß Host 2&lt;br /&gt;
bereit ist Daten zu empfangen. Die Datenübertragung kann nun&lt;br /&gt;
stattfinden. Eine TCP-Verbindung besteht immer aus genau zwei&lt;br /&gt;
Endpunkten (Punkt-zu-Punkt-Verbindung).&lt;br /&gt;
Dreiwege-Handshake (hier Verbindungsaufbau).&lt;br /&gt;
Zum Beenden der Verbindung tauschen die beiden Host wiederum einen&lt;br /&gt;
Dreiwege-Handshake aus, bei dem das FIN-Bit (s.u. Der TCP-Header -&lt;br /&gt;
Flags) zum Beenden der Verbindung gesetzt ist. Natürlich verläuft der&lt;br /&gt;
Verbindungsaufbau nicht immer ohne Probleme. Eine Reihe interessanter&lt;br /&gt;
Betrachtungen ist zu finden in [Ta96].&lt;br /&gt;
&lt;br /&gt;
TCP nimmt Datenströme von Applikationen an und teilt diese in höchsten&lt;br /&gt;
64 KByte große Segmente auf (üblich sind ungefähr 1.500 Byte). Jedes&lt;br /&gt;
dieser Segmente wird als IP-Datengramm verschickt. Kommen IP-&lt;br /&gt;
Datengramme mit TCP-Daten bei einer Maschine an, werden diese an TCP&lt;br /&gt;
weitergeleitet und wieder zu den ursprünglichen Byteströmen&lt;br /&gt;
zusammengesetzt. Die IP-Schicht gibt allerdings keine Gewähr dafür, daß&lt;br /&gt;
die Datengramme richtig zugestellt werden. Es ist deshalb, wie oben&lt;br /&gt;
bereits gesagt, die Aufgabe von TCP für eine erneute Übertragung der&lt;br /&gt;
Daten zu sorgen. Es ist aber auch möglich, daß die IP-Datengramme zwar&lt;br /&gt;
korrekt ankommen, aber in der falschen Reihenfolge sind. In diesem Fall&lt;br /&gt;
muß TCP dafür sorgen, daß die Daten wieder in die richtige Reihenfolge&lt;br /&gt;
gebracht werden. Hierfür verwendet TCP eine Sequenznummer und eine&lt;br /&gt;
Bestätigungsnummer (siehe: Der TCP-Header - Sequence Number,&lt;br /&gt;
Acknowledgement Number).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Portnummern===&lt;br /&gt;
&lt;br /&gt;
TCP ist außerdem dafür verantwortlich, die empfangenen Daten an die&lt;br /&gt;
korrekte Applikation weiterzuleiten. Zur Adressierung der Anwendungen&lt;br /&gt;
werden auf der Transportebene deshalb sogenannte Portnummern&lt;br /&gt;
(Kanalnummern) verwendet. Portnummern sind 16 Bit groß; theoretisch&lt;br /&gt;
kann ein Host somit bis zu 65.535 verschiedene TCP-Verbindungen&lt;br /&gt;
aufbauen. Auch UDP verwendet Portnummern zur Adressierung.&lt;br /&gt;
Portnummern sind nicht einzigartig zwischen den Transportprotokollen -&lt;br /&gt;
die Transportprotokolle haben jeweils eigene Adreßräume. Das bedeutet&lt;br /&gt;
TCP und UDP können die gleichen Portnummern belegen. Das heißt, daß&lt;br /&gt;
die Portnummer 53 in TCP nicht identisch mit der Portnummer 53 in UDP&lt;br /&gt;
ist. Der Gültigkeitsbereich einer Portnummer ist auf einen Host&lt;br /&gt;
beschränkt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----- Das passt noch nicht ganz...&lt;br /&gt;
Eine IP-Adresse zusammen mit der Portnummer spezifiziert einen&lt;br /&gt;
Kommunikationsendpunkt, einen sogenannten Socket. Die&lt;br /&gt;
Socketnummern von Quelle und Ziel identifizieren die Verbindung&lt;br /&gt;
(socket1, socket2). Eine Verbindung ist durch die Angabe dieses Paares&lt;br /&gt;
eindeutig identifiziert. Möchte z.B. ein Host A eine Verbindung zu einem&lt;br /&gt;
entfernten Host B aufnehmen, z.B. um den Inhalt einer Webseite&lt;br /&gt;
anzuzeigen, so wird auf der TCP-Schicht als Zielport die Portnummer 80&lt;br /&gt;
für das Hypertext Transfer Protocol (http) angegeben. Host A, der den&lt;br /&gt;
Dienst auf Port 80 von Host B in Anspruch nehmen möchte gibt als&lt;br /&gt;
Quellport eine dynamische Portnummer (s.u.) aus dem Bereich 49.152 -&lt;br /&gt;
65.535 an, damit die von ihm gewünschten Daten von Host B an ihn&lt;br /&gt;
zurückgeliefert werden können. Damit ist die Verbindung auf der TCP-&lt;br /&gt;
Schicht über die Angabe von Quell- und Zielport eindeutig identifiziert.&lt;br /&gt;
Zusammen mit den IP-Adressen bilden die Portnummern die beiden&lt;br /&gt;
Sockets, die die Kommunikation zwischen Host A und Host B eindeutig&lt;br /&gt;
kennzeichnen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bis 1992 waren Portnummern unter 256 für gut bekannte Ports (well-&lt;br /&gt;
known ports) reserviert. Well-known Ports werden für Standarddienste,&lt;br /&gt;
wie z.B telnet, ftp etc. genutzt. Ports zwischen 256 und 1023 wurden im&lt;br /&gt;
allgemeinen für UNIX-spezifische Dienste (wie z.B. rlogin) benutzt. Ein&lt;br /&gt;
Beispiel für den Unterschied zwischen einem Internet-weiten Dienst und&lt;br /&gt;
einem UNIX-spezifischen Dienst ist der Unterschied zwischen Telnet und&lt;br /&gt;
RLogin. Beide Dienste erlauben es, sich über das Netz auf einem&lt;br /&gt;
entfernten Host einzuloggen. Telnet ist ein TCP/IP-Standard mit der&lt;br /&gt;
Portnummer 23 und kann von so gut wie auf allen Betriebssystemen&lt;br /&gt;
implementiert werden. RLogin ist im Gegensatz dazu ein UNIX-&lt;br /&gt;
spezifischer Dienst, dessen Portnummer 53 ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Verwaltung===&lt;br /&gt;
&lt;br /&gt;
Die Verwaltung der Portnummern ist nun auch von der Internet Assigned&lt;br /&gt;
Numbers Authority (IANA) [http://www.iana.org] übernommen worden.&lt;br /&gt;
Portnummern sind dabei in drei Bereiche aufgeteilt worden: ''well-known&lt;br /&gt;
ports, registered ports und dynamic ports''.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Verwaltung.png]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:Verwaltung2.png]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:Verwaltung3.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Der TCP-Header===&lt;br /&gt;
&lt;br /&gt;
[[Bild:tcpheader.png]]&lt;br /&gt;
&lt;br /&gt;
Die folgende Abbildung zeigt den Aufbau des TCP-Protokollkopfs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Der TCP-Header.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die sendende und die empfangende TCP-Einheit tauschen Daten in Form&lt;br /&gt;
von Segmenten aus. Ein Segment ist nichts anderes als die zu&lt;br /&gt;
übertragenden Daten, versehen mit &amp;quot;Steuerinformationen&amp;quot;. Jedes&lt;br /&gt;
Segment beginnt mit einem 20-Byte-Header, auf den Header-Optionen&lt;br /&gt;
folgen können. Den Optionen folgen schließlich die zu übertragenden&lt;br /&gt;
Daten. Die Segmentgröße wird durch zwei Faktoren begrenzt: erstens&lt;br /&gt;
muß jedes Segment, einschließlich des TCP-Headers, in das&lt;br /&gt;
Nutzdatenfeld des IP-Protokolls passen (65.535 Byte); zweitens hat jedes&lt;br /&gt;
Netz eine maximale Transfereinheit (MTU - Maximum Transfer Unit), in&lt;br /&gt;
die das Segment passen muß. In der Regel ist die MTU einige tausend&lt;br /&gt;
Byte groß und gibt die obere Grenze der Segmentgröße vor (z.B.&lt;br /&gt;
Ethernet 1.500 Bytes). Läuft ein Segment durch eine Anzahl von Netzen&lt;br /&gt;
und trifft dabei auf ein Netz mit einer kleineren MTU, so muß das&lt;br /&gt;
Segment vom Router in kleinere Segmente aufgeteilt (fragmentiert)&lt;br /&gt;
werden. Unabhängig von der Größe der MTU können dem TCP-Header&lt;br /&gt;
und den Optionen maximal 65.535-20-20 = 65.495 Datenbyte folgen&lt;br /&gt;
(die ersten 20 Byte beziehen sich auf den IP-Header, die zweiten auf den&lt;br /&gt;
TCP-Header; die Länge der Optionen wird mit zu den Datenbytes&lt;br /&gt;
gezählt). TCP-Segmente ohne Daten sind zulässig un dienen der&lt;br /&gt;
Übermittlung von Bestätigungen und Steuernachrichten.&lt;br /&gt;
&lt;br /&gt;
===Felder des TCP-Headers===&lt;br /&gt;
&lt;br /&gt;
====Source-/Destination-Port:====&lt;br /&gt;
&lt;br /&gt;
Die Felder Source Port (Quellport) und Destination Port (Zielport)&lt;br /&gt;
adressieren die Endpunkte der Verbindung. Die Größe für die beiden&lt;br /&gt;
Felder beträgt 16 Bit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Sequence Number, Acknowledgement Number:====&lt;br /&gt;
&lt;br /&gt;
Die Sequenznummer und die Bestätigungsnummer sind jeweils 32-Bit-&lt;br /&gt;
Zahlen. Die Nummern geben die Stellung der Daten des Segments&lt;br /&gt;
innerhalb des in der Verbindung ausgetauschten Datenstroms an. Die&lt;br /&gt;
Sequenznummer gilt in Senderichtung, die Bestätigungsnummer für&lt;br /&gt;
Empfangsquittungen. Jeder der beiden TCP-Verbindungspartner&lt;br /&gt;
generiert beim Verbindungsaufbau eine Sequenznummer, die sich&lt;br /&gt;
während des Zeitraums der Verbindung nicht wiederholen darf. Dies&lt;br /&gt;
ist allerdings durch den großen Zahlenraum von 2^32 wohl ausreichend&lt;br /&gt;
gesichert. Diese Nummern werden beim Verbindungsaufbau&lt;br /&gt;
ausgetauscht und gegenseitig quittiert. Bei der Datenübertragung&lt;br /&gt;
wird die Sequenznummer vom Absender jeweils um die Anzahl der&lt;br /&gt;
bereits gesendeten Bytes erhöht. Mit der Quittungsnummer gibt der&lt;br /&gt;
Empfänger an, bis zu welchem Byte er die Daten bereits korrekt&lt;br /&gt;
empfangen hat. Die Nummer gibt allerdings nicht an, welches Byte&lt;br /&gt;
zuletzt korrekt empfangen wurde, sondern welches Byte als nächstes&lt;br /&gt;
zu erwarten ist.&lt;br /&gt;
&lt;br /&gt;
====Offset:====&lt;br /&gt;
&lt;br /&gt;
Das Feld Offset (oder auch Header Length) gibt die Länge des TCP-&lt;br /&gt;
Headers in 32-Bit Worten an. Dies entspricht dem Anfang der Daten&lt;br /&gt;
im TCP-Segment. Das Feld ist notwendig, da der Header durch das&lt;br /&gt;
Optionsfeld eine variable Länge hat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Flags====&lt;br /&gt;
&lt;br /&gt;
Mit den sechs 1-Bit-Flags im Flags-Feld werden bestimmte Aktionen&lt;br /&gt;
im TCP-Protokoll aktiviert:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''URG'''&lt;br /&gt;
&lt;br /&gt;
Wird das Flag URG auf 1 gesetzt, so bedeutet dies, daß der Urgent&lt;br /&gt;
Pointer (Dringendzeiger) verwendet wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ACK'''&lt;br /&gt;
&lt;br /&gt;
Das ACK-Bit wird gesetzt, um anzugeben, daß die&lt;br /&gt;
Bestätigungsnummer im Feld Acknowledgement Number gültig ist. Ist&lt;br /&gt;
das Bit auf 0 gesetzt, enthält das TCP-Segment keine Bestätigung, das&lt;br /&gt;
Feld Acknowledgement Number wird ignoriert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''PSH'''&lt;br /&gt;
&lt;br /&gt;
Ist das PSH-Bit gesetzt, so werden die Daten in dem entsprechenden&lt;br /&gt;
Segment sofort bei Ankunft der adressierten Anwendung&lt;br /&gt;
bereitgestellt ohne sie zu puffern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''RST'''&lt;br /&gt;
&lt;br /&gt;
Das RST-Bit dient dazu eine Verbindung zurückzusetzen, falls ein&lt;br /&gt;
Fehler bei Übertragung aufgetreten ist. Dies kann sowohl der Fall sein,&lt;br /&gt;
wenn ein ungültiges Segment übertragen wurde, ein Host abgestürzt&lt;br /&gt;
ist oder der Versuch eines Verbindungsaufbaus abgewiesen werden&lt;br /&gt;
soll.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''SYN'''&lt;br /&gt;
&lt;br /&gt;
Das SYN-Flag (Synchronize Sequenze Numbers) wird verwendet, um&lt;br /&gt;
Verbindungen aufzubauen. Zusammen mit der Acknowledgement&lt;br /&gt;
Number und dem ACK-Bit wird die Verbindung im Form eines&lt;br /&gt;
Dreiwege-Handshake aufgebaut (siehe oben).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''FIN'''&lt;br /&gt;
&lt;br /&gt;
Das FIN-Bit dient zum Beenden einer Verbindung. Ist das Bit gesetzt,&lt;br /&gt;
gibt dies an, daß der Sender keine weiteren Daten zu Übertragen hat.&lt;br /&gt;
Das Segment mit gesetztem FIN-Bit muß quittiert werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Window====&lt;br /&gt;
&lt;br /&gt;
Das Feld Fenstergröße enthält die Anzahl Bytes, die der Empfänger ab&lt;br /&gt;
dem bereits bestätigten Byte empfangen kann. Mit der Angabe der&lt;br /&gt;
Fenstergröße erfolgt in TCP die Flußsteuerung. Das TCP-Protokoll&lt;br /&gt;
arbeitet nach dem Prinzip eines Schiebefensters mit variabler Größe&lt;br /&gt;
(Sliding Window). Jede Seite einer Verbindung darf die Anzahl Bytes&lt;br /&gt;
senden, die im Feld für die Fenstergröße angegeben ist, ohne auf eine&lt;br /&gt;
Quittung von der Empfängerseite zu warten. Währen des Sendens&lt;br /&gt;
können gleichzeitug Quittungen für die von der anderen Seite&lt;br /&gt;
empfangenen Daten eintreffen (diese Quittungen können wiederum&lt;br /&gt;
neue Fenstergrößen einstellen).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eine Fenstergröße von 0 besagt, daß die Bytes bis einschließlich der&lt;br /&gt;
Acknowledgement Number minus Eins empfangen wurden, der&lt;br /&gt;
&lt;br /&gt;
[[Bild:flags.png]]&lt;br /&gt;
&lt;br /&gt;
Empfänger momentan aber keine weiteren Daten empfangen kann.&lt;br /&gt;
Die Erlaubnis zum weiteren Senden von Daten erfolgt durch das&lt;br /&gt;
versenden eines Segments mit gleicher Bestätigungsnummer und&lt;br /&gt;
einer Fenstergröße ungleich Null.&lt;br /&gt;
&lt;br /&gt;
====Checksum====&lt;br /&gt;
&lt;br /&gt;
Die Prüfsumme prüft den Protokollkopf, die Daten und den Pseudo-&lt;br /&gt;
Header (siehe Abbildung).&lt;br /&gt;
Der Pseudo-Header in der Prüfsumme.&lt;br /&gt;
Der Algorithmus für die Bildung der Prüfsumme ist einfach: alle 16-Bit&lt;br /&gt;
Wörter werden im 1er-Komplement addiert und die Summe ermittelt.&lt;br /&gt;
Bei der Berechnung ist das Feld Checksum auf Null gesetzt und das&lt;br /&gt;
Datenfeld wird bei ungerader Länge um ein Nullbyte aufgefüllt. Führt&lt;br /&gt;
der Empfänger des Segments die Berechnung auf das gesamte&lt;br /&gt;
Segment aus - inklusive des Feldes für die Prüfsumme - sollte das&lt;br /&gt;
Ergebnis 0 sein [Ta96]. Der Pseudo-Header enthält die 32-bit großen&lt;br /&gt;
IP-Adressen der Quell- und Zielmaschine sowie die Protokollnummer&lt;br /&gt;
(für TCP 6) und die Länge des TCP-Segments. Die Einbeziehung der&lt;br /&gt;
Felder des Pseudo-Headers in die Prüfsummenberechnung hilft, durch&lt;br /&gt;
IP falsch zugeteilte Pakete zu erkennen. Die Verwendung von IP-&lt;br /&gt;
Adressen auf der Transportebene stellt allerdings eine Verletzung der&lt;br /&gt;
Protokollhierarchie dar.&lt;br /&gt;
&lt;br /&gt;
====Urgent Pointer====&lt;br /&gt;
&lt;br /&gt;
Der Urgent-Zeiger ergibt zusammen mit der Sequenznummer einen&lt;br /&gt;
Zeiger auf ein Datenbyte. Dies entspricht einem Byteversatz zu einer&lt;br /&gt;
Stelle, an der dringende Daten vorgefunden werden. TCP signalisiert&lt;br /&gt;
damit, daß sich an einer bestimmten Stelle im Datenstrom wichtige&lt;br /&gt;
Daten befinden, die sofort gelesen werden sollten. Das Feld wird nur&lt;br /&gt;
gelesen, wenn auch das Urgent-Flag (s.o.) gesetzt ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Options====&lt;br /&gt;
&lt;br /&gt;
Das Options-Feld soll eine Möglichkeit bieten Funktionen&lt;br /&gt;
bereitzustellen, die im normalen TCP-Protokollkopf nicht vorgesehen&lt;br /&gt;
sind. In TCP sind drei Optionen definiert: End of Option List, No-&lt;br /&gt;
Operation und Maximum Segment Size. Die wichtigste dieser drei&lt;br /&gt;
Optionen ist die Maximale Segmentgröße. Mit dieser Option kann ein&lt;br /&gt;
Host die maximale Anzahl Nutzdaten übermitteln, die er annehmen&lt;br /&gt;
will bzw. annehmen kann. Während eines Verbindungsaufbaus kann&lt;br /&gt;
jede Seite ihr Maximum an Nutzdaten übermitteln, die kleinere der&lt;br /&gt;
beiden Zahlen wird als maximale Nutzdatengröße für die Übertragung&lt;br /&gt;
übernommen. Wird diese Option von einem Host nicht unterstützt&lt;br /&gt;
wird als default die Vorgabe von 536 Byte verwendet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Padding====&lt;br /&gt;
&lt;br /&gt;
Das Feld Padding wird verwendet, um sicherzustellen, daß der Header&lt;br /&gt;
an einer 32-Bit Grenze endet und die Daten an einer 32-Bit Grenze&lt;br /&gt;
beginnen. Das Füllfeld wird mit Nullen gefüllt.&lt;br /&gt;
&lt;br /&gt;
==User Datagram Protocol (UDP)==&lt;br /&gt;
&lt;br /&gt;
Das User Datagram Protocol (UDP) ist im RFC 768 definiert. UDP ist ein&lt;br /&gt;
unzuverlässiges, verbindungsloses Protokoll. Wie zuvor schon gesagt,&lt;br /&gt;
bedeutet unzuverlässig in diesem Zusammenhang nicht, daß die Daten&lt;br /&gt;
evtl. fehlerhaft beim Zielrechner ankommen, sondern, daß das Protokoll&lt;br /&gt;
keinerlei Mechanismen zur Verfügung stellt, die sichern, daß die Daten&lt;br /&gt;
auch tatsächlich beim Zielrechner ankommen. Sind die Daten aber beim&lt;br /&gt;
Zielrechner angekommen, so sind sie auch korrekt. UDP bietet gegenüber&lt;br /&gt;
TCP den Vorteil eines geringen Protokoll-Overheads. Viele Anwendungen,&lt;br /&gt;
bei denen nur eine geringen Anzahl von Daten übertragen wird (z.B.&lt;br /&gt;
Client/Server-Anwendungen, die auf der Grundlage einer Anfrage und einer&lt;br /&gt;
Antwort laufen), verwenden UDP als Transportprotokoll, da unter&lt;br /&gt;
Umständen der Aufwand zur Herstellung einer Verbindung und einer&lt;br /&gt;
zuverlässigen Datenübermittlung größer ist als die wiederholte&lt;br /&gt;
Übertragung der Daten.&lt;br /&gt;
&lt;br /&gt;
Ein UDP-Segment besteht aus einem Header von 8 Byte, gefolgt von den&lt;br /&gt;
Daten. Der Header ist in der folgenden Abbildung dargestellt:&lt;br /&gt;
Der UDP-Header.&lt;br /&gt;
&lt;br /&gt;
[[Bild:header.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Sender- und Empfänger-Portnummern erfüllen den gleichen Zweck wie&lt;br /&gt;
beim Transmission Control Protocol. Sie identifizieren die Endpunkte der&lt;br /&gt;
Quell- und Zielmaschine. Das Feld für die Länge enthält die Länge des&lt;br /&gt;
gesamten Datengramms, inklusive der Länge des Protokollkopfes. Die&lt;br /&gt;
Prüfsumme enthält die Internet-Prüfsumme der UDP-Daten, des&lt;br /&gt;
Protokollkopfs und des Pseudo-Headers. Das Prüfsummenfeld ist optional.&lt;br /&gt;
Enthält das Feld eine 0, wurde vom Absender keine Prüfsumme&lt;br /&gt;
eingetragen und somit findet beim Empfänger keine Überprüfung statt.&lt;br /&gt;
Das User Datagram Protocol liefert über die Leistungen des Internet&lt;br /&gt;
Protokolls hinaus nur Portnummern für die Adressierung der&lt;br /&gt;
Kommunikationsendpunkte und eine optionale Prüfsumme. Das Protokoll&lt;br /&gt;
beinhaltet keine Transportquittungen oder andere Mechanismen für die&lt;br /&gt;
Bereitstellung einer zuverlässigen Ende-zu-Ende-Verbindung. Hierdurch&lt;br /&gt;
wird UDP allerdings sehr effizient und eignet sich somit besonders für&lt;br /&gt;
Anwendungen, bei denen es in erster Linie auf die Geschwindigkeit der&lt;br /&gt;
Datenübertragung ankommt (z.B. verteilte Dateisysteme wie NFS).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Applikationsschicht=&lt;br /&gt;
&lt;br /&gt;
Die oberste Schicht des TCP/IP-Modells ist die Applikationsschicht. Diese&lt;br /&gt;
Schicht bietet eine Reihe standardisierter Anwendungsprotokolle, auf die&lt;br /&gt;
eine Vielzahl von Anwendungsprogrammen aufsetzen. An dieser Stelle seien&lt;br /&gt;
nur einige Protokolle, die auf der Anwendungsschicht angeboten werden,&lt;br /&gt;
genannt:&lt;br /&gt;
&lt;br /&gt;
==TELNET==&lt;br /&gt;
&lt;br /&gt;
TELNET ist das Protokoll für virtuelle Terminals. Es dient dazu, Zugriff auf&lt;br /&gt;
einen am Netz angeschlossenen Rechner in Form einer Terminalsitzung&lt;br /&gt;
(auch remote login genannt) zu liefern. Der TELNET-Dienst benutzt den&lt;br /&gt;
TCP-Port 23. TELNET ist im RFC 854 spezifiziert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==FTP==&lt;br /&gt;
&lt;br /&gt;
Mit dem File Transfer Protocol - FTP lassen sich Dateien externer Rechner&lt;br /&gt;
übertragen, löschen, ändern oder umbenennen. FTP ist im RFC 959&lt;br /&gt;
definiert. Von FTP werden die Ports 20 und 21 benutzt. Port 21 wird als&lt;br /&gt;
Kommandokanal verwendet und Port 20 dient als Datenkanal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==SMTP==&lt;br /&gt;
&lt;br /&gt;
Das Simple Mail Transfer Protocol - SMTP ist das Protokoll für die&lt;br /&gt;
elektronische Post im Internet. Das Übertragungsprotokoll für elektronische&lt;br /&gt;
Post ist im RFC 821 und das Nachrichtenformat im RFC 822 spezifiziert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==DNS==&lt;br /&gt;
&lt;br /&gt;
Der Domain Name Service - DNS dient dazu ASCII-Zeichenketten in&lt;br /&gt;
Internet-Adressen und umgekehrt zu wandeln. DNS ist ein hierarchisches&lt;br /&gt;
Benennungssystem, das auf Domänen basiert und ein verteiltes&lt;br /&gt;
Datenbanksystem zur Implementierung des Benennungsschemas. Es wird&lt;br /&gt;
im wesentlichen dazu benutzt Hostnamen und E-Mailadressen (mit denen&lt;br /&gt;
Menschen nun einmal besser umgehen können) in IP-Adressen&lt;br /&gt;
umzuwandeln. DNS ist in den RFCs 1034 und 1035 definiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==NFS==&lt;br /&gt;
&lt;br /&gt;
Mit dem Network File System - NFS lassen sich mehrere Rechner auf&lt;br /&gt;
transparente Weise miteinander verbinden. Der NFS-Dienst stellt eine&lt;br /&gt;
virtuelle Verbindung von Laufwerken und Festplatten her, so daß sich&lt;br /&gt;
entfernte Dateisysteme als Erweiterung des eigenen lokalen Dateisystems&lt;br /&gt;
darstellen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Die Zukunft=&lt;br /&gt;
&lt;br /&gt;
Das rasche (exponentielle Wachstum) des Internet zwingt dazu, das Internet&lt;br /&gt;
Protokoll in der Version 4 (IPv4) durch ein Nachfolgeprotokoll zu ersetzen.&lt;br /&gt;
Bis vor einiger Zeit wurde das Internet größtenteils nur von Universitäten,&lt;br /&gt;
Regierungsbehörden (dies aber auch fast nur in den USA und hier vor allem&lt;br /&gt;
vom Verteidigungsministerium) und einigen Firmen aus der Industrie genutzt.&lt;br /&gt;
Seit der Einführung des World Wide Web (WWW) ist das Internet aber auch&lt;br /&gt;
zunehmend für Privatpersonen, kleinere Firmen etc. interessant. Das Internet&lt;br /&gt;
wandelt sich von einem &amp;quot;Spielplatz für Akademiker&amp;quot; zu einem weltweiten&lt;br /&gt;
Informations- und Unterhaltungssystem. Mit der ständig steigenden Anzahl von&lt;br /&gt;
Benutzern des Internet werden sich auch die Anforderungen an das Netz&lt;br /&gt;
ändern bzw. haben sich bereits geändert. Genannt sei hier nur als Beispiel das&lt;br /&gt;
angestrebte Zusammenwachsen der Computer-, Unterhaltungs- und&lt;br /&gt;
Telekommunikationsbranchen. Den Anforderungen, die z.B. Video-on-demand&lt;br /&gt;
stellt, ist das Internet bzw. das Internet Protokoll in der Version 4 nicht&lt;br /&gt;
gewachsen.&lt;br /&gt;
Vinton Cerf (der 'Vater' des Internet) bezeichnet in einem Interview mit der&lt;br /&gt;
Zeitschrift c't [Kr98] das Internet &amp;quot;(...) als die wichtigste Infrastruktur für alle&lt;br /&gt;
Arten von Kommunikation.&amp;quot;. Auf die Frage, wie man sich die neuen&lt;br /&gt;
Kommunikationsdienste des Internet vorstellen könne, antwortete Cerf:&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Am spannendsten finde ich es, die ganzen Haushaltsgeräte ans Netz&lt;br /&gt;
anzuschließen. Ich denke dabei nicht nur daran, daß der Kühlschrank&lt;br /&gt;
sich in Zukunft mit der Heizung austauscht, ob es in der Küche zu&lt;br /&gt;
warm ist. Stromgesellschaften könnten beispielsweise Geräte wie&lt;br /&gt;
Geschirrspülmaschinen kontrollieren und ihnen Strom genau dann zur&lt;br /&gt;
Verfügung stellen, wenn gerade keine Spitzennachfrage herrscht.&lt;br /&gt;
Derartige Anwendungen hängen allerdings davon ab, daß sie zu&lt;br /&gt;
einem erschwinglichen Preis angeboten werden. Das ist nicht&lt;br /&gt;
unbedingt ferne Zukunftsmusik; die Programmierer müßten eigentlich&lt;br /&gt;
nur damit anfangen, endlich Software für intelligente&lt;br /&gt;
Netzwerkanwendungen zu schreiben. Und natürlich muß die&lt;br /&gt;
Sicherheit derartiger Systeme garantiert sein. Schließlich möchte ich&lt;br /&gt;
nicht, daß die Nachbarkinder mein Haus programmieren!&amp;quot;&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
Auf die Internet Protokolle kommen in der nächsten Zeit also völlig neue&lt;br /&gt;
Anforderungen zu. Wie versucht wird, diese Anforderungen zu erfüllen, wird in&lt;br /&gt;
den nächsten Abschnitten beschrieben.&lt;br /&gt;
&lt;br /&gt;
==Classless InterDomain Routing - CIDR==&lt;br /&gt;
&lt;br /&gt;
Der Verknappung der Internet-Adressen durch die ständig steigende&lt;br /&gt;
Benutzerzahl wird zunächst versucht, mit dem Classless InterDomain Routing&lt;br /&gt;
(CIDR) entgegen zu wirken.&lt;br /&gt;
Durch die Vergabe von Internet-Adressen in Klassen (Netze der Klassen&lt;br /&gt;
A,B,C,...) wird eine große Anzahl von Adressen verschwendet. Hierbei stellt sich&lt;br /&gt;
vor allem die Klasse B als Problem dar. Viele Firmen nehmen ein Netz der&lt;br /&gt;
Klasse B für sich in Anspruch, da ein Klasse A Netz mit bis zu 16 Mio. Hosts&lt;br /&gt;
selbst für eine sehr große Firma überdimensioniert scheint. Tatsächlich ist aber&lt;br /&gt;
oft auch ein Klasse B Netz zu groß. Für viele Firmen würde ein Netz der Klasse C&lt;br /&gt;
ausreichen. Dies wurde aber nicht verlangt, da viele Unternehmen die&lt;br /&gt;
Befürchtung hatten, daß ein Klasse C Netz mit seinen bis zu 254 möglichen&lt;br /&gt;
Hosts nicht ausreichen würde.&lt;br /&gt;
Ein größeres Hostfeld für Netze der Klasse C (z.B. 10 Bit, das entspricht 1022&lt;br /&gt;
Host pro Netz) hätte das Problem der knapper werdenden IP-Adressen&lt;br /&gt;
vermutlich gemildert. Ein anderes Problem wäre dadurch allerdings entstanden:&lt;br /&gt;
die Einträge der Routing-Tabellen wären explodiert.&lt;br /&gt;
Ein anderes Konzept ist das Classless InterDomain Routing (RFC 1519): die&lt;br /&gt;
verbleibenden Netze der Klasse C werden in Blöcken variabler Größe&lt;br /&gt;
zugewiesen. Werden beispielsweise 2000 Adressen benötigt, so können einfach&lt;br /&gt;
acht aufeinanderfolgende Netze der Klasse C vergeben werden; das entspricht&lt;br /&gt;
einem Block von 2048 Adressen. Zusätzlich werden die verbliebenen Klasse C&lt;br /&gt;
Adressen restriktiver und strukturierter vergeben (RFC 1519). Die Welt ist dabei&lt;br /&gt;
in vier Zonen, von denen jede einen Teil des verbliebenen Klasse C Adreßraums&lt;br /&gt;
erhält, aufgeteilt:&lt;br /&gt;
&lt;br /&gt;
[[Bild:CIDR.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jede der Zonen erhält dadurch in etwa 32 Millionen Adressen zugewiesen.&lt;br /&gt;
Vorteil bei diesem Vorgehen ist, daß die 32 Millionen Adressen einer Region im&lt;br /&gt;
Prinzip zu einem Eintrag in den Routing-Tabellen komprimiert worden sind. Der&lt;br /&gt;
Vorteil der dadurch entsteht ist, daß z.B. jeder Router, der eine Adresse&lt;br /&gt;
außerhalb seiner Region zugesandt bekommt...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Internet Protokoll Version 6 - IPv6 (IP Next Generation)==&lt;br /&gt;
&lt;br /&gt;
Der vorrangige Grund für eine Änderung des IP-Protokolls ist auf den&lt;br /&gt;
begrenzten Adreßraum zurückzuführen. CIDR schafft hier zwar wieder etwas&lt;br /&gt;
Luft, dennoch ist klar absehbar, daß auch diese Maßnahmen nicht ausreichen,&lt;br /&gt;
um die Verknappung der Adressen für eine längere Zeit in den Griff zu&lt;br /&gt;
bekommen.&lt;br /&gt;
Weitere Gründe für eine Änderung des IP-Protokolls sind die oben schon&lt;br /&gt;
erwähnten neuen Anforderungen an das Internet. Diesen Anforderungen ist IP&lt;br /&gt;
in der Version 4 nicht gewachsen. Die IETF (Internet Engineering Task Force)&lt;br /&gt;
begann deshalb 1990 mit der Arbeit an einer neuen Version von IP. Die&lt;br /&gt;
wesentlichen Ziele des Projekts sind [Ta96]:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Unterstützung von Milliarden von Hosts, auch bei ineffizienter Nutzung des Adreßraums&lt;br /&gt;
       &lt;br /&gt;
*Reduzierung des Umfangs der Routing-Tabellen&lt;br /&gt;
         &lt;br /&gt;
*Vereinfachung des Protokolls, damit Router Pakete schneller abwickeln können&lt;br /&gt;
       &lt;br /&gt;
*Höhere Sicherheit (Authentifikation und Datenschutz) als das heutige IP&lt;br /&gt;
        &lt;br /&gt;
*Mehr Gewicht auf Dienstarten, insbesondere für Echtzeitanwendungen&lt;br /&gt;
      &lt;br /&gt;
*Unterstützung von Multicasting durch die Möglichkeit, den Umfang zu definieren&lt;br /&gt;
  &lt;br /&gt;
*Möglichkeit für Hosts, ohne Adreßänderung auf Reise zu gehen&lt;br /&gt;
 &lt;br /&gt;
*Möglichkeit für das Protokoll, sich zukünftig weiterzuentwickeln&lt;br /&gt;
&lt;br /&gt;
*Unterstützung der alten und neuen Protokolle in Koexistenz für Jahre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Dezember 1993 forderte die IETF mit RFC 1550 [IP: Next Generation (IPnG)&lt;br /&gt;
White Paper Solicitation, Dec. 1993] die Internet-Gemeinde dazu auf,&lt;br /&gt;
Vorschläge für ein neues Internet Protokoll zu machen. Auf die Anfrage wurde&lt;br /&gt;
eine Vielzahl von Vorschlägen eingereicht. Diese reichten von nur&lt;br /&gt;
geringfügigen Änderungen am bestehenden IPv4 bis zur vollständigen&lt;br /&gt;
Ablösung durch ein neues Protokoll. Die drei besten Vorschläge wurden im IEEE&lt;br /&gt;
Network Magazine veröffentlicht ([De93], [Fr93], [KF93]). Aus diesen&lt;br /&gt;
Vorschlägen wurde von der IETF das Simple Internet Protocol Plus (SIPP) als&lt;br /&gt;
Grundlage für die neue IP-Version ausgewählt. SIPP ist eine Kombination aus&lt;br /&gt;
den Vorschlägen von Deering [De93] und Francis [Fr93].&lt;br /&gt;
Als die Entwickler mit den Arbeiten an der neuen Version des Internet Protokolls&lt;br /&gt;
begannen, wurde natürlich auch ein Name für das Projekt bzw. das neue&lt;br /&gt;
Protokoll benötigt. Wohl angeregt durch eine gleichnamige Fernsehsendung,&lt;br /&gt;
wurde als Arbeitsname IP - Next Generation (IPnG) gewählt. Schließlich bekam&lt;br /&gt;
das neue IP eine offizielle Versionsnummer zugewiesen: IP Version 6 oder kurz&lt;br /&gt;
IPv6. Die Protokollnummer 5 (IPv5) wurde bereits für ein experimentelles&lt;br /&gt;
Protokoll verwendet.&lt;br /&gt;
Die folgende Beschreibung von IPv6 orientiert sich an RFC 2460 [Internet&lt;br /&gt;
Protocol, Version 6 (IPv6) Specification, Dec. 1998]. Dieses Dokument gibt den&lt;br /&gt;
neuesten Stand der Spezifikation des Internet Protokolls in der Version 6&lt;br /&gt;
wieder. RFC 2460 enthält einige wesentliche Änderungen der Spezifikation&lt;br /&gt;
gegenüber RFC 1883 [Internet Protocol, Version 6 (IPv6) Specification, Dec.&lt;br /&gt;
1995].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Die Merkmale von IPv6===&lt;br /&gt;
&lt;br /&gt;
Viele der als erfolgreich betrachteten Merkmale von IPv4 bleiben in IPv6 voll&lt;br /&gt;
erhalten. Trotzdem ist IPv6 im allgemeinen nicht mit IPv4 kompatibel, wohl aber&lt;br /&gt;
zu den weiteren Internet-Protokollen, insbesondere den Protokollen der&lt;br /&gt;
Transportschicht (TCP, UDP); eventuell nach geringfügigen Modifikationen. Die&lt;br /&gt;
Modifikationen betreffen im wesentlichen die erweiterte Adreßgröße (bisher 32&lt;br /&gt;
Bit auf nun 128 Bit).&lt;br /&gt;
&lt;br /&gt;
Die wesentlichen Merkmale von IPv6 sind:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Adressgröße''': &lt;br /&gt;
Als wichtigstes Merkmal hat IPv6 gegenüber IPv4 größere&lt;br /&gt;
Adressen. Statt bisher 32 Bit stehen nun 128 Bit für die Adressen bereit.&lt;br /&gt;
Theoretisch lassen sich damit 2128 = 3.4*1038 Adressen vergeben.&lt;br /&gt;
&lt;br /&gt;
*'''Header-Format''': &lt;br /&gt;
Der IPv6 (Basis)Header wurde vollständig geändert.&lt;br /&gt;
Der Header enthält nur 7 statt bisher 13 Felder. Diese Änderung&lt;br /&gt;
ermöglicht Routern, Pakete schneller zu verarbeiten. Im Gegensatz zu&lt;br /&gt;
IPv4 gibt es bei IPv6 nicht mehr nur einen Header, sondern mehrere&lt;br /&gt;
Header. Ein Datengramm besteht aus einem Basis-Header, sowie einem&lt;br /&gt;
oder mehreren Zusatz-Headern, gefolgt von den Nutzdaten.&lt;br /&gt;
&lt;br /&gt;
*'''Erweiterte Unterstützung von Optionen und Erweiterungen''': &lt;br /&gt;
Die Erweiterung der Optionen ist notwendig geworden, da einige, bei IPv4&lt;br /&gt;
notwendige Felder nun optional sind. Darüber hinaus unterscheidet sich&lt;br /&gt;
auch die Art, wie die Optionen dargestellt werden. Für Router wird es&lt;br /&gt;
damit einfacher, Optionen, die nicht für sie bestimmt sind, zu&lt;br /&gt;
überspringen. Dies ermöglicht ebenfalls eine schnellere Verarbeitung von&lt;br /&gt;
Paketen.&lt;br /&gt;
&lt;br /&gt;
*'''Dienstarten''': &lt;br /&gt;
IPv6 legt mehr Gewicht auf die Unterstützung von&lt;br /&gt;
Dienstarten. Damit kommt IPv6 den Forderungen nach einer verbesserten&lt;br /&gt;
Unterstützung der Übertragung von Video- und Audiodaten entgegen.&lt;br /&gt;
Pv6 bietet hierzu eine Option zur Echtzeitübertragung.&lt;br /&gt;
&lt;br /&gt;
*'''Sicherheit''': &lt;br /&gt;
IPv6 beinhaltet nun im Protokoll selbst Mechanismen zur&lt;br /&gt;
sicheren Datenübertragung. Wichtige neue Merkmale von IPv6 sind hier&lt;br /&gt;
Authentifikation (authentication), Datenintegrität (data integrity) und&lt;br /&gt;
Datenverlässlichkeit (data confidentiality).&lt;br /&gt;
&lt;br /&gt;
*'''Erweiterbarkeit''': &lt;br /&gt;
IPv6 ist ein erweiterbares Protokoll. Bei der&lt;br /&gt;
Spezifikation des Protokolls wurde nicht versucht alle potentiell möglichen&lt;br /&gt;
Einsatzfelder für das Protokoll in die Spezifikation zu integrieren. Vielmehr&lt;br /&gt;
bietet IPv6 die Möglichkeit über Erweiterungs-Header (s.u.) das Protokoll&lt;br /&gt;
zu erweitern. Damit ist das Protokoll offen für zukünftige Verbesserungen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Das IPv6 Datengrammformat===&lt;br /&gt;
&lt;br /&gt;
Ein IPv6-Datengramm besteht aus dem Basis-Header (s.u. Der IPv6-Basis-&lt;br /&gt;
Header), gefolgt von den optionalen Zusatz-Headern (s.u. Erweiterungs-&lt;br /&gt;
Header) und den Nutzdaten.&lt;br /&gt;
&lt;br /&gt;
[[Bild:datengrammformat.png]]&lt;br /&gt;
&lt;br /&gt;
Allgemeine Form eines IPv6-Datengramms.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Der IPv6-Basis-Header===&lt;br /&gt;
&lt;br /&gt;
Der IPv6-Basis-Header ist doppelt so groß wie der IPv4-Header. Der IPv6-Basis-&lt;br /&gt;
Header enthält weniger Felder als der IPv4-Header, dafür ist aber die&lt;br /&gt;
Adreßgröße für die Quell- und Zieladresse von bisher 32-Bit auf nunmehr 128-&lt;br /&gt;
Bit erweitert worden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''IPv6 Basis-Header'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Bild:basisheader.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Version:'''&lt;br /&gt;
&lt;br /&gt;
Mit dem Feld Version können Router überprüfen, um welche Version des&lt;br /&gt;
Protokolls es sich handelt. Für ein IPv6-Datengramm ist dieses Feld immer&lt;br /&gt;
6 und für ein IPv4-Datengramm dementsprechend immer 4. Mit diesem&lt;br /&gt;
Feld ist es möglich für eine lange Zeit die unterschiedlichen&lt;br /&gt;
Protokollversionen IPv4 und IPv6 nebeneinander zu verwenden. Über die&lt;br /&gt;
Prüfung des Feldes Version können die Daten an das jeweils richtige&lt;br /&gt;
&amp;quot;Verarbeitungsprogramm&amp;quot; weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Priority:'''&lt;br /&gt;
&lt;br /&gt;
Das Feld Priority (oder Traffic Class) ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Flow Label'''&lt;br /&gt;
&lt;br /&gt;
Das Feld Flow Label...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Payload Length'''&lt;br /&gt;
&lt;br /&gt;
Das Feld Payload Length (Nutzdatenlänge) gibt an, wie viele Bytes dem&lt;br /&gt;
IPv6-Basis-Header folgen, der IPv6-Basis-Header ist ausgeschlossen. Die&lt;br /&gt;
Erweiterungs-Header werden bei der Berechnung der Nutzdatenlänge mit&lt;br /&gt;
einbezogen. Das entsprechende Feld wird in der Protokollversion 4 mit&lt;br /&gt;
Total Length bezeichnet. Allerdings bezieht IPv4 den 20 Byte großen&lt;br /&gt;
Header auch mit in die Berechnung ein, wodurch die Bezeichnung &amp;quot;total&lt;br /&gt;
length&amp;quot; gerechtfertigt ist.&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
'''Next Header'''&lt;br /&gt;
&lt;br /&gt;
Das Feld Next Header gibt an, welcher Erweiterungs-Header dem IPv6-&lt;br /&gt;
Basis-Header folgt. Jeder folgende Erweiterungs-Header beinhaltet&lt;br /&gt;
ebenfalls ein Feld Next Header, das auf den nachfolgenden Header&lt;br /&gt;
verweist. Ist dies der letzte zu IPv6 zugehörige Header, so gibt das Feld an,&lt;br /&gt;
welches Transportprotokoll (z.B. TCP oder UDP) folgt. Eine genauere&lt;br /&gt;
Beschreibung des Konzepts mehrerer Header folgt im Abschnitt&lt;br /&gt;
[http://www.rvs.uni-bielefeld.de/~heiko/tcpip/kap_3_1.html#ipv6-extheader Erweiterungs-Header]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Hop Limit'''&lt;br /&gt;
&lt;br /&gt;
Mit dem Feld Hop Limit wird festgelegt, wie lange ein Paket überleben darf.&lt;br /&gt;
Der Wert des Feldes wird nach jeder Teilstrecke gesenkt. Ein Datengramm&lt;br /&gt;
wird dann verworfen, wenn das Feld Hop Limit auf Null herunter gezählt&lt;br /&gt;
ist, bevor das Datengramm sein Ziel erreicht hat. IPv4 verwendet hierzu&lt;br /&gt;
das Feld Time to Live, welches die Zeit in Sekunden angibt, die ein Paket&lt;br /&gt;
überleben darf. Allerdings wird dieses Feld von den meisten Routern nicht&lt;br /&gt;
so interpretiert. In IPv6 wurde das Feld deshalb umbenannt, um die&lt;br /&gt;
tatsächliche Nutzung wiederzugeben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Source Address, Destination Address'''&lt;br /&gt;
&lt;br /&gt;
Die beiden Felder Quell- und Zieladresse dienen zur Identifizierung des&lt;br /&gt;
Senders und Empfängers eines IP-Datengramms. IPv6 verwendet zur&lt;br /&gt;
Adressierung 4 mal so große Adressen wie IPv4: 128 Bit statt 32 Bit. Eine&lt;br /&gt;
genaue Beschreibung der IPv6-Adressen folgt im Abschnitt IPv6-&lt;br /&gt;
Adressierung.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein Vergleich des [http://www.rvs.uni-bielefeld.de/~heiko/tcpip/kap_2_3.html#ipv4-header IPv4-Headers] mit dem [http://www.rvs.uni-bielefeld.de/~heiko/tcpip/kap_3_1.html#ipv6-header IPv6-Basis-Header] veranschaulicht,&lt;br /&gt;
welche Felder bei IPv6 weggelassen wurden:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Das Feld Length (Internet Header Length - IHL) ist nicht mehr vorhanden, da der IPv6-Basis-Header eine feste Länge von 40 Byte hat. Bei IPv4 ist dieses Feld notwendig, da der Header aufgrund der Optionen eine variable Länge hat.&lt;br /&gt;
&lt;br /&gt;
*Das Feld Protocol wird nicht mehr benötigt, da das Feld Next Header angibt, was nach dem letzten IP-Header folgt (z.B. TCP oder UDP).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Alle Felder die bisher zur Fragmentierung eines IP-Datengramms benötigt wurden (Identification, Flags, Fragment Offset), sind im IPv6-Basis-Header nicht mehr vorhanden, da die Fragmentierung in IPv6 gegenüber IPv4 anders gehandhabt wird. Alle IPv6 kompatiblen Hosts und Router müssen Pakete mit einer Größe von 1280 Byte (RFC 1883 legte diese Größe noch auf 576 Byte fest) unterstützen. Durch diese Regel wird eine Fragmentierung im Prinzip nicht notwendig. Empfängt ein Router ein zu großes Paket, so führt er keine Fragmentierung mehr durch, sondern sendet eine Nachricht an den Absender des Pakets zurück. In dieser Nachricht wird der sendende Host angewiesen, alle weiteren Pakete zu diesem Ziel aufzuteilen. Das bedeutet, daß von den Hosts &amp;quot;erwartet&amp;quot; wird, daß sie von vornherein eine Datengrammgröße wählen, die keine Fragmentierung voraussetzt. Dadurch wird eine größere Effizienz bei der Übertragung erreicht, als wenn Pakete von Routern auf dem Weg fragmentiert werden müssen. Die Steuerung der Fragmentierung erfolgt bei IPv6 über den Fragment Header.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Das Feld Checksum ist nicht mehr vorhanden, da die Berechnung der Prüfsumme sich nachteilig auf die Leistung der Datenübertragung ausgewirkt hat. Das entfernen der Prüfsumme aus dem Internet Protokoll hat zu heftigen Diskussionen geführt [Ta96]. Die eine Seite kritisierte heftig das entfernen der Prüfsumme, während die andere Seite argumentierte, daß Prüfsummen etwas sind, das auch von Anwendungen übernommen werden kann, sofern sich die Anwendung tatsächlich um Datenintegrität kümmert. Ein weiteres Gegenargument war, daß eine Prüfsumme auf der Transportschicht bereits vorhanden ist, weshalb innerhalb der Vermittlungsschicht keine weitere Prüfsumme notwendig sei. Letztendlich fiel die Entscheidung, daß IPv6 keine Prüfsumme enthält.&lt;br /&gt;
&lt;br /&gt;
===Erweiterungs Header===&lt;br /&gt;
&lt;br /&gt;
IPv6 nutzt das Konzept der Erweiterungs-Header, um a) eine effiziente&lt;br /&gt;
Datenübertragung und b) eine Erweiterung des Protokolls zu ermöglichen. Der&lt;br /&gt;
erste Punkt ist leicht ersichtlich: Der Basis-Header enthält nur Felder, die&lt;br /&gt;
unbedingt für die Übermittlung eines Datengramms notwendig sind, erfordert&lt;br /&gt;
die Übertragung weitere Optionen, so können diese über einen Erweiterungs-&lt;br /&gt;
Header angegeben werden. IPv6 sieht vor, das einige Merkmale des Protokolls&lt;br /&gt;
nur gezielt benutzt werden. Ein gutes Beispiel ist hier die Fragmentierung von&lt;br /&gt;
Datengrammen. Obwohl viele IPv4-Datengramme nicht fragmentiert werden&lt;br /&gt;
müssen, enthält der IPv4-Header Felder, für die Fragmentierung. IPv6 gliedert&lt;br /&gt;
die Felder für die Fragmentierung in einen separaten Header aus, der wirklich&lt;br /&gt;
nur dann verwendet werden muß, wenn das Datengramm tatsächlich&lt;br /&gt;
fragmentiert werden muß. Ein weiterer wesentlicher Vorteil des Konzepts der&lt;br /&gt;
Erweiterungs-Header ist, daß das Protokoll um neue Funktionen erweitert&lt;br /&gt;
werden kann. Es genügt, für das Feld Next Header einen neuen Typ und ein&lt;br /&gt;
neues Header-Format zu definieren. IPv4 erfordert hierzu eine vollständige&lt;br /&gt;
Änderung des Headers.&lt;br /&gt;
Derzeit sind 6 Erweiterungs-Header definiert. Alle Erweiterungs-Header sind&lt;br /&gt;
optional. Werden mehrere Erweiterungs-Header verwendet, so ist es&lt;br /&gt;
erforderlich, sie in einer festen Reihenfolge anzugeben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:erweiterungsheader.png]]&lt;br /&gt;
&lt;br /&gt;
Die ersten 5 Header sind in RFC 2460 (bzw. RFC 1883). Der Authentifikations-&lt;br /&gt;
Header sowie der Header für Sicherheitsdaten werden in RFC 2402 (RFC 1826)&lt;br /&gt;
und RFC 2406 (RFC 1827) beschrieben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:erweiterungsheader2.png]]&lt;br /&gt;
&lt;br /&gt;
=== Anycast ===&lt;br /&gt;
&lt;br /&gt;
Adressierungsart die über eine Adresse einzelne Rechner aus einer Gruppe ansprechen kann. Es antwortet derjenige, der über die kürzeste Route erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
*; Geschwindigkeit: &lt;br /&gt;
:Mehrere Rechner können über die selbe Adresse angesprochen werden, wobei nur der Rechner antwortet der über die kürzeste Route angesprochen wird. &lt;br /&gt;
&lt;br /&gt;
*; Ausfallsicherheit:&lt;br /&gt;
: Sollte der Rechner mit der kürzesten Route ausfallen wird ohne Umwege der zweit nächste Rechner angesprochen.&lt;br /&gt;
&lt;br /&gt;
*; Transparenz:&lt;br /&gt;
: Aus Sicht eines Clients besteht zwischen Unicast und Anycast kein Unterschied. Der Client sendet ein IP-Paket an eine „normale“ IP-Adresse und erhält von dieser eine Antwort. Welcher Server angesprochen wird, bestimmt allein das Routing.&lt;br /&gt;
&lt;br /&gt;
*; Instabilitäten:&lt;br /&gt;
:Bei instabilem Routing können aufeinanderfolgende IP-Pakete zu unterschiedlichen Servern geleitet werden. Daher wird Anycast vorzugsweise bei verbindungslosen Protokollen wie UDP eingesetzt. In stabilen Umgebungen kann Anycast aber auch bei TCP verwendet werden.&lt;br /&gt;
&lt;br /&gt;
*; Aufwand:&lt;br /&gt;
: Da alle beteiligten Server stets identische Daten bereitstellen müssen, ist die interne Synchronisation aufwendig. Außerdem wird im Störfall die Fehlersuche erschwert, da oft nicht ohne weitere Analyse ersichtlich ist, welcher Server verantwortlich ist.&lt;br /&gt;
&lt;br /&gt;
=Referenzen=&lt;br /&gt;
&lt;br /&gt;
'''Anmerkungen zur Literatur'''&lt;br /&gt;
&lt;br /&gt;
Es gibt eine ganze Reihe an Literatur, die sich mit TCP/IP befaßt. Ich möchte an&lt;br /&gt;
dieser Stelle einige Werke hervorheben, die mir bei der Erstellung des&lt;br /&gt;
Seminarvortrags und der Ausarbeitung als besonders hilfreich aufgefallen sind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Comer D.E.: Internetworking with TCP/IP, Volumes I-III'''&lt;br /&gt;
&lt;br /&gt;
Die drei Bände von Comer über TCP/IP sind wohl die Werke über &lt;br /&gt;
TCP/IP schlechthin (wird von einigen auch die 'TCP/IP-Bibel' genannt).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Stevens R. W.: TCP/IP Illustrated, Volumes I-III'''&lt;br /&gt;
&lt;br /&gt;
Die drei Bände von Stevens stellen wohl die zweite Bibel über TCP/IP dar.&lt;br /&gt;
Mir persönlich gefallen die drei Bände von Stevens noch besser als die&lt;br /&gt;
Bücher von Comer. Stevens hat für die Darstellung der TCP/IP-Protokolle&lt;br /&gt;
einen etwas anderen Weg als die bloße Vorstellung der einzelnen&lt;br /&gt;
Protokolle gewählt; die Protokolle werden auch anhand eines Analyse-Tools untersucht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Comer D.E.: Computernetzwerke und Internets'''&lt;br /&gt;
&lt;br /&gt;
Noch ein gutes Buch von Douglas Comer. Das Buch gibt eine sehr gute und&lt;br /&gt;
umfassende Darstellung aller wichtigen Themen im Bereich Netzwerke und&lt;br /&gt;
Internets. Es geht dabei nicht so in die Tiefe wie das dreibändige Werk&lt;br /&gt;
&amp;quot;Internetworking with TCP/IP&amp;quot; oder &amp;quot;Computernetzwerke&amp;quot; von Tanenbaum.&lt;br /&gt;
Gerade deshalb eignet es sich aber besonders gut für den Einstieg.&lt;br /&gt;
Zu dem Buch gibt es auch eine WWW-Seite, auf der weitere Informationen&lt;br /&gt;
zum Buch (insbesondere alle Abbildungen und zahlreiche Animationen)&lt;br /&gt;
vorhanden sind. Dem Buch ist eine Kopie der WWW-Seiten als CD-ROM&lt;br /&gt;
begelegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Huitema C.: IPv6 die neue Generation'''&lt;br /&gt;
&lt;br /&gt;
Eine hervorragende Übersicht über das neue IP. Es wird verdeutlicht, wie&lt;br /&gt;
sich IPv6 von IPv4 unterscheidet und welche Vorbereitungen für den&lt;br /&gt;
Einsatz von IPv6 getroffen werden müssen. Neben allen wichtigen&lt;br /&gt;
Erläuterugen zum neuen Internet Protokoll wird fast nebenher auch ein&lt;br /&gt;
geschichtlicher Überblick über die Entwicklung von IPv6 gegeben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Holzmann G.J.: Design and Validation of Computer Protocols'''&lt;br /&gt;
&lt;br /&gt;
Dieses Buch ist eine sehr gute Einführung in (Computer)Protokolle, den&lt;br /&gt;
Entwurf von Protokollen und Verifikation von Protokollen.&lt;br /&gt;
Und das beste ist, daß das Buch vollständig als Postscript- oder PDF-Datei&lt;br /&gt;
im Internet verfügbar ist!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Hunt C.: TCP/IP Network Administration'''&lt;br /&gt;
&lt;br /&gt;
Ein Buch, das die Grundlagen von TCP/IP bespricht und vor allem für die&lt;br /&gt;
Administration von TCP/IP Netzwerken in einer UNIX Umgebung gedacht ist. Eine sehr gute Informationsquelle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Tanenbaum A.S.: Computer Networks'''&lt;br /&gt;
&lt;br /&gt;
Wer allgemein etwas über Computernetzwerke erfahren möchte, der sollte&lt;br /&gt;
in dieses Buch schauen. Das Buch deckt so ziemlich alles ab, was mit&lt;br /&gt;
Computernetzen zu tun hat und ist dabei sehr gut geschrieben. Im WWW&lt;br /&gt;
werden vom Autor und dem Verlag Leseproben und alle Abbildungen des&lt;br /&gt;
Buches zur Verfügung gestellt. Die vom Verlag zur Verfügung gestellten&lt;br /&gt;
Informationen finden sich unter&lt;br /&gt;
http://www.prenhall.com/divisions/ptr/tanenbaum/book.html; die&lt;br /&gt;
Informationen des Autors stehen unter http://www.cs.vu.nl/~ast.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Hedrick C.L.: Introduction to the Internet Protocols'''&lt;br /&gt;
&lt;br /&gt;
Hedrick's on-line Beschreibung von TCP/IP ist eine gute Quelle für alle, die&lt;br /&gt;
sich schnell einen Überblick darüber verschaffen wollen, was TCP/IP ist und&lt;br /&gt;
wie TCP/IP funktioniert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Santifaller M.: TCP/IP and ONC/NFS - Internetworking in a UNIX Environment'''&lt;br /&gt;
&lt;br /&gt;
Eine umfassende Beschreibung von TCP/IP, die sich auch mit NFS/ONC&lt;br /&gt;
(Network File System, Open Network Computing) befaßt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''RFCs - Request for Comments'''&lt;br /&gt;
&lt;br /&gt;
Ein RFC ist ein Papier, das sich in irgendeiner Form mit Verfahren, die im&lt;br /&gt;
Internet verwendet werden, beschäftigt. Dabei kann es sich um einen&lt;br /&gt;
Verbesserungsvorschlag oder eine Anmerkung für ein bestehendes&lt;br /&gt;
Verfahren handeln oder einem Vorschlag zu einem neuen Verfahren. Ein&lt;br /&gt;
Vorschlag zu einem neuen Verfahren kann nach einiger Zeit (und Prüfung)&lt;br /&gt;
dann zu einem Standard erklärt werden. Jedem vorgeschlagenen Standard&lt;br /&gt;
wird eine Nummer zugeordnet. Eine genauere Beschreibung von RFCs&lt;br /&gt;
findet sich im Abschnitt Eine kurze Gesichte des Internet in dieser Arbeit.&lt;br /&gt;
Die folgende Liste gibt eine Reihe von RFCs wieder, die sich mit Themen&lt;br /&gt;
des Vortrags bzw. dieser Arbeit befassen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*rfc768 - UDP&lt;br /&gt;
&lt;br /&gt;
*rfc783 - TFTP&lt;br /&gt;
&lt;br /&gt;
*rfc791 - IP&lt;br /&gt;
&lt;br /&gt;
*rfc792 - ICMP&lt;br /&gt;
&lt;br /&gt;
*rfc793 - TCP&lt;br /&gt;
&lt;br /&gt;
*rfc814 - Name, adresses, ports and routes&lt;br /&gt;
&lt;br /&gt;
*rfc821/2 - Mail&lt;br /&gt;
&lt;br /&gt;
*rfc825 - Specification for RFC's&lt;br /&gt;
&lt;br /&gt;
*rfc826 - ARP&lt;br /&gt;
&lt;br /&gt;
*rfc854 - TELNET&lt;br /&gt;
&lt;br /&gt;
*rfc894 - A Standard for the Transmission of IP Datagrams over Ethernet&lt;br /&gt;
  &lt;br /&gt;
*rfc903 - RARP&lt;br /&gt;
&lt;br /&gt;
*rfc950 - Internet Standard Subnetting Procedure (Subnets)&lt;br /&gt;
&lt;br /&gt;
*rfc959 - FTP&lt;br /&gt;
&lt;br /&gt;
*rfc1009 - Requirements for Internet Gateways&lt;br /&gt;
&lt;br /&gt;
*rfc1011 - Official Internet Protocols&lt;br /&gt;
&lt;br /&gt;
*rfc1013 - X Window System Protocol, Version 11 (Alpha Update)&lt;br /&gt;
&lt;br /&gt;
*rfc1032/3/4/5 - Domains (Domain Administration &amp;amp; Domain Names)&lt;br /&gt;
&lt;br /&gt;
*rfc1042 - Transmission of IP Datagrams over IEEE 802 Networks&lt;br /&gt;
&lt;br /&gt;
*rfc1058 - Routing Information Protocol&lt;br /&gt;
&lt;br /&gt;
*rfc1112 - Host Extensions for IP Multicasting&lt;br /&gt;
&lt;br /&gt;
*rfc1117 - Internet numbers&lt;br /&gt;
&lt;br /&gt;
*rfc1118 - Hitchhikers guide to the Internet&lt;br /&gt;
&lt;br /&gt;
*rfc1180 - A TCP/IP Tutorial&lt;br /&gt;
&lt;br /&gt;
*rfc1208 - Networking glossary of terms&lt;br /&gt;
&lt;br /&gt;
*rfc1310 - The Internet Standards Process&lt;br /&gt;
&lt;br /&gt;
*rfc1323 - TCP Extensions for High Performance&lt;br /&gt;
&lt;br /&gt;
*rfc1521 - MIME&lt;br /&gt;
&lt;br /&gt;
*rfc1550 - IPng White Paper Solicitation&lt;br /&gt;
&lt;br /&gt;
*rfc1597 - Address Allocation for Private Internets&lt;br /&gt;
&lt;br /&gt;
*rfc1700 - Assigned Numbers (Well-known Ports etc.)&lt;br /&gt;
&lt;br /&gt;
*rfc1752 - Recommedation for the IP Next Generation Protocol&lt;br /&gt;
&lt;br /&gt;
*rfc1825 - Security Architecture for the Internet Protocol&lt;br /&gt;
&lt;br /&gt;
*rfc1826 - IP Authentication Header&lt;br /&gt;
&lt;br /&gt;
*rfc1883 - Internet Protocol, Version 6 (IPv6)&lt;br /&gt;
&lt;br /&gt;
*rfc1884 - IP Version 6 Addressing Architecture&lt;br /&gt;
&lt;br /&gt;
*rfc1885 - Internet Control Message Protocol (ICMPv6)&lt;br /&gt;
&lt;br /&gt;
*rfc1886 - DNS Extensions to support IP version 6&lt;br /&gt;
&lt;br /&gt;
*rfc1918 - Address Allocation for Private Internets&lt;br /&gt;
&lt;br /&gt;
*rfc1972 - Transmission of IPv6 Packets over Ethernet Networks&lt;br /&gt;
&lt;br /&gt;
*rfc2019 - Transmission of IPv6 Packets over FDDI Networks&lt;br /&gt;
&lt;br /&gt;
*rfc2200 - Internet Official Protocol Standards&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Literaturliste'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
[Bl99 Black U.: Internet-Technologien der Zukunft. Addison-Wesley-] Longman, München, 1999.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Co95 Comer D.E., Stevens D.L.: Internetworking with TCP/IP, Vol. I -] Priciples, Protocols and Internals. Prentice Hall, Englewood Cliffs,&lt;br /&gt;
New Jersey, 1995, 3rd ed.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
[CS9 Comer D.E., Stevens D.L.: Internetworking with TCP/IP, Vol. II -4] Design, Implementation and Internals. Prentice Hall, Englewood&lt;br /&gt;
Cliffs, New Jersey, 1994, 2nd ed.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
[CS9 Comer D.E., Stevens D.L.: Internetworking with TCP/IP, Vol. III -&lt;br /&gt;
6] Client-Server Programming and Applications for the BSD Socket&lt;br /&gt;
Version. Prentice Hall, Englewood Cliffs, New Jersey, 1996, 2nd ed.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
[Co98 Comer D.E.: Computernetzwerke und Internets. Prentice Hall,] München, 1998. http://www.netbook.cs.purdue.edu.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
[Da8 Davidson J.: Introduction to TCP/IP. Springer, New York, 19888]&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
[DE- DE-NIC: Deutsches Network Information Center. http://www.nic.de/NIC]&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
[De9 Deering S.E.: SIP - Simple Internet Protocol. IEEE Network Magazine,3] Band 7, S. 16-28, Mai/Juni 1993.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[Fr93] Francis P.: A Near-Termn Architecture for Deploying Pip. IEEE NetworkMagazine, Band 7, S. 30-37, Mai/Juni 1993.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
[Ha9 Hasenstein M.: IP Network Address Translation. Diplomarbeit an der7] Technischen Universität Chemnitz, 1997. Online verfügbar unter:http://www.suse.de/~mha/HyperNews/get/linux-ip-net.html.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[HL20 Hafner K., Lyon M.: ARPA Kadabra - oder die Geschichte des Internet.00] DPunkt-Verlag, Heidelberg, 2000, 2. Auflage.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[HLW Hartjes K., Löffler H., Wessendorf G.: Fortsetzung folgt: Aktuelles zur97] IPv6-Einführung. ix 4/97, S. 97ff.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
[He8 Hedrick C.L.: Introduction to the Internet Protocols . Computer7] Science Facilities Group, Rutgers The State University of New Jersey,1987.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[Hind Hinden R.: IP Next Generation (IPng).en] http://playground.sun.com/pub/ipng/html/ipng-main.html.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
[Ho9 Holzmann G.J.: Design and Validation of Computer Protocols. Prentice1] Hall, Englewood Cliffs, New Jersey, 1991.Im Internet unter: http://cm.belllabs.com/cm/cs/what/spin/Doc/Book91.html.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
[HB9 Hosenfeld F., Brauer K.: Kommunikation ohne Grenzen: TCP/IP -5] Informationsübermittlung im Internet. c't 12/95, S. 330ff.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
[Ho9 Hosenfeld F.: Next Generation - IPv6: ein neues6] Kommunikationszeitalter?. c't 11/96, S. 380ff.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[Hui2 Huitema, C.: IPv6 - die neue Generation, Architektur und000] Implementierung. Addison Wesley, München, 2000.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[Hu9 Hunt C.: TCP/IP Network Administration. O'Reilly &amp;amp; Assoc.,5] Sebastopol, CA, 1995&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[KF93 Katz D., Ford P.S.: TUBA - Replacing IP with CLNP. IEEE Network] Magazine, Band 7, S. 38-47, Mai/Juni 1993.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[Kirch Kirch O.: LINUX Network Administrators Guide.] http://metalab.unc.edu/mdw/LDP/nag/nag.html.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[Kö93 Köhntopp K.: Weltweit vernetzt - Struktur und Dienste des Internet.a] c't 2/93, S. 82ff.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[Kö93 Köhntopp K.: Einheitliche Sicht - Netzwerkprotokolle im Internet. c'tb] 3/93, S. 232ff.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[Kr98 Krempl S.: Das Internet bleibt spannend! Im Gespräch mit 'Internet-] Vater' Vinton G. Cerf. c't 3/98. S. 44ff.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[Ku96 Kuri J.: Wenn der Postmann zweimal klingelt - Namen und Adressen] im TCP/IP-Netzwerk und im Internet. c't 12/96, S. 334ff.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[Ku97 Kuri J.: Böhmische Dörfer - Vom Kabel zum Netzwerk. c't 1/97, S.a] 245ff.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[Ku97 Kuri J.: Da geht's lang! - Routing, oder: wie die Daten im Internetb] ihren Weg finden. c't 6/97, S. 380ff.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[Kus9 Kuschke M.: Vervierfacht - IPv6: neue Spezifikationen zur Lösung des4] Adreßdilemmas. ix 10/94, S. 132ff.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[MS9 Microsoft: Windows NT Server - Introduction to TCP/IP. White Paper,8] Microsoft Corporation, Redmond, 1998. Online verfügbar unter:http://www.microsoft.com/NTServer/nts/techdetails/compares/TCPIntrowp.asp.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[MS2 Microsoft: Introduction to IP Version 6. White Paper, Microsoft001] Corporation, Redmond, 2001. Online verfügbar unter:http://www.microsoft.com/technet/network/ipvers6.aps.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[OV9 Oberschelp W., Vossen G.: Rechneraufbau und Rechnerstrukturen.5] Oldenbourg, München, 1995, 6. Auflg.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[RFC] RFC'S - Requests For Comments: Liste aller RFC's (nach Nummernsortiert) http://www.rfc-editor.org oder: http://internic.net/ds/rfc-index.txt oder: ftp://ftp.nic.de/rfc/pub/doc/rfc&lt;br /&gt;
Es gibt aber noch viele andere Adressen, unter denen die RFC's zu bekommen sind - auch als email.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[Sa98 Santifaller M.: TCP/IP und ONC/NFS - Internetworking mit UNIX.] &lt;br /&gt;
Addison Wesley, Bonn, Reding Massachucetts, 1998, 4. Auflage.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[Sch9 Schmidt J.: Firewall getunnelt - Geheimer Datenaustausch über ICMP-7a] Pakete. c't 11/97, S. 332ff.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[Sch9 Schmidt J.: Falsche Fährten - Mißbrauchsmöglichkeiten von ARP und 7b] ICMP. c't 12/97, S. 246ff.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[Si20 Sietmann R.: Mobilmachung - Internetprotokoll Version 6. iX 4/2000,00] S. 100ff.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[St20 Stainov, R.: IPnG - Das Internet-Protokoll der nächsten Generation.00] Thomson Publishing, Bonn, 1997.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[St87 Stallings W.: Handbook of Computer Communications Standards, Vol.] I: The Open Systems Interconnection (OSI) Model and OSI-Related Standards. MacMillan Pub. Company, Indianapolis, 1987&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[St88 Stallings W.: Handbook of Computer Communications Standards, Vol.a] II: Local Network Standards. MacMillan Pub. Company, New York,London, 1988&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[St88 Stallings W.: Handbook of Computer Communications Standards, Vol.b] III: Department of Defense (DoD) Protocol Standards. MacMillan Pub.&lt;br /&gt;
Company, New York, London, 1988&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[St99 Stevens R. W.: TCP/IP Illustrated, Vol. 1: The Protocols. Addisona] Wesley, 1999, 14th ed.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[St99 Stevens R. W., Wright G. R.: TCP/IP Illustrated, Vol. 2: Theb] Implementation. Addison Wesley, 1999, 7th ed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[St99 Stevens R. W., Wright G. R.: TCP/IP Illustrated, Vol. 3: TCP forc] transactions, HTTP, NNTP, and the UNIX Domain protocols. Addison&lt;br /&gt;
Wesley, 1998, 4th ed.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[Ku97 Kuri J.: Da geht's lang! - Routing, oder: wie die Daten im Internetb] ihren Weg finden. c't 6/97, S. 380ff.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[Kus9 Kuschke M.: Vervierfacht - IPv6: neue Spezifikationen zur Lösung des4] Adreßdilemmas. ix 10/94, S. 132ff.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[MS9 Microsoft: Windows NT Server - Introduction to TCP/IP. White Paper,8] Microsoft Corporation, Redmond, 1998. Online verfügbar unter:&lt;br /&gt;
http://www.microsoft.com/NTServer/nts/techdetails/compares/TCPIntrowp.asp.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[MS2 Microsoft: Introduction to IP Version 6. White Paper, Microsoft001] Corporation, Redmond, 2001. Online verfügbar unter:&lt;br /&gt;
http://www.microsoft.com/technet/network/ipvers6.aps.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
[OV9 Oberschelp W., Vossen G.: Rechneraufbau und Rechnerstrukturen.5] Oldenbourg, München, 1995, 6. Auflg.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[RFC] RFC'S - Requests For Comments: Liste aller RFC's (nach Nummernsortiert) http://www.rfc-editor.org oder: http://internic.net/ds/rfc-index.txt oder: ftp://ftp.nic.de/rfc/pub/doc/rfc&lt;br /&gt;
Es gibt aber noch viele andere Adressen, unter denen die RFC's zu bekommen sind - auch als email.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[Sa98 Santifaller M.: TCP/IP und ONC/NFS - Internetworking mit UNIX.] Addison Wesley, Bonn, Reding Massachucetts, 1998, 4. Auflage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[Sch9 Schmidt J.: Firewall getunnelt - Geheimer Datenaustausch über ICMP-7a] Pakete. c't 11/97, S. 332ff.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[Sch9 Schmidt J.: Falsche Fährten - Mißbrauchsmöglichkeiten von ARP und7b] ICMP. c't 12/97, S. 246ff.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[Si20 Sietmann R.: Mobilmachung - Internetprotokoll Version 6. iX 4/2000,00] S. 100ff.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[St20 Stainov, R.: IPnG - Das Internet-Protokoll der nächsten Generation.00] Thomson Publishing, Bonn, 1997.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[St87 Stallings W.: Handbook of Computer Communications Standards, Vol.] I: The Open Systems Interconnection (OSI) Model and OSI-Related Standards. MacMillan Pub. Company, Indianapolis, 1987&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[St88 Stallings W.: Handbook of Computer Communications Standards, Vol.a] II: Local Network Standards. MacMillan Pub. Company, New York,London, 1988&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[St88 Stallings W.: Handbook of Computer Communications Standards, Vol.b] III: Department of Defense (DoD) Protocol Standards. MacMillan Pub. Company, New York, London, 1988&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[St99 Stevens R. W.: TCP/IP Illustrated, Vol. 1: The Protocols. Addisona] Wesley, 1999, 14th ed.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[St99 Stevens R. W., Wright G. R.: TCP/IP Illustrated, Vol. 2: Theb] Implementation. Addison Wesley, 1999, 7th ed.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[St99 Stevens R. W., Wright G. R.: TCP/IP Illustrated, Vol. 3: TCP forc] transactions, HTTP, NNTP, and the UNIX Domain protocols. Addison Wesley, 1998, 4th ed.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[Ku97 Kuri J.: Da geht's lang! - Routing, oder: wie die Daten im Internetb] ihren Weg finden. c't 6/97, S. 380ff.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[Kus9 Kuschke M.: Vervierfacht - IPv6: neue Spezifikationen zur Lösung des4] Adreßdilemmas. ix 10/94, S. 132ff.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[MS9 Microsoft: Windows NT Server - Introduction to TCP/IP. White Paper,8] Microsoft Corporation, Redmond, 1998. Online verfügbar unter:http://www.microsoft.com/NTServer/nts/techdetails/compares/TCPIntrowp.asp.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[MS2 Microsoft: Introduction to IP Version 6. White Paper, Microsoft001] Corporation, Redmond, 2001. Online verfügbar unter:http://www.microsoft.com/technet/network/ipvers6.aps.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
[OV9 Oberschelp W., Vossen G.: Rechneraufbau und Rechnerstrukturen.5] Oldenbourg, München, 1995, 6. Auflg.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[RFC] RFC'S - Requests For Comments: Liste aller RFC's (nach Nummern&lt;br /&gt;
sortiert) http://www.rfc-editor.org oder: http://internic.net/ds/rfc-&lt;br /&gt;
index.txt oder: ftp://ftp.nic.de/rfc/pub/doc/rfc&lt;br /&gt;
Es gibt aber noch viele andere Adressen, unter denen die RFC's zubekommen sind - auch als email.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[Sa98 Santifaller M.: TCP/IP und ONC/NFS - Internetworking mit UNIX.] Addison Wesley, Bonn, Reding Massachucetts, 1998, 4. Auflage.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[Sch9 Schmidt J.: Firewall getunnelt - Geheimer Datenaustausch über ICMP-7a] Pakete. c't 11/97, S. 332ff.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[Sch9 Schmidt J.: Falsche Fährten - Mißbrauchsmöglichkeiten von ARP und7b] ICMP. c't 12/97, S. 246ff.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[Si20 Sietmann R.: Mobilmachung - Internetprotokoll Version 6. iX 4/2000,00] S. 100ff.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[St20 Stainov, R.: IPnG - Das Internet-Protokoll der nächsten Generation.00] Thomson Publishing, Bonn, 1997.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[St87 Stallings W.: Handbook of Computer Communications Standards, Vol.] I: The Open Systems Interconnection (OSI) Model and OSI-Related&lt;br /&gt;
Standards. MacMillan Pub. Company, Indianapolis, 1987&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[St88 Stallings W.: Handbook of Computer Communications Standards, Vol.a] II: Local Network Standards. MacMillan Pub. Company, New York,&lt;br /&gt;
London, 1988&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[St88 Stallings W.: Handbook of Computer Communications Standards, Vol.b] III: Department of Defense (DoD) Protocol Standards. MacMillan Pub.&lt;br /&gt;
Company, New York, London, 1988&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[St99 Stevens R. W.: TCP/IP Illustrated, Vol. 1: The Protocols. Addisona] Wesley, 1999, 14th ed.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[St99 Stevens R. W., Wright G. R.: TCP/IP Illustrated, Vol. 2: Theb] Implementation. Addison Wesley, 1999, 7th ed.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[St99 Stevens R. W., Wright G. R.: TCP/IP Illustrated, Vol. 3: TCP forc] transactions, HTTP, NNTP, and the UNIX Domain protocols. Addison&lt;br /&gt;
Wesley, 1998, 4th ed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Organisation'''&lt;br /&gt;
!'''Abkürzung'''&lt;br /&gt;
!'''URL'''&lt;br /&gt;
|-&lt;br /&gt;
| Internet Assigned Numbers Authority&lt;br /&gt;
| IANA&lt;br /&gt;
| www.iana.org/&lt;br /&gt;
|-&lt;br /&gt;
| Internet Corporation for Assigned Names and Numbers&lt;br /&gt;
| ICANN&lt;br /&gt;
| www.icann.org/&lt;br /&gt;
|-&lt;br /&gt;
|Asia Pacific Network Information Center&lt;br /&gt;
|APNIC&lt;br /&gt;
|www.apnic.net/&lt;br /&gt;
|-&lt;br /&gt;
| American Registry for Internet Numbers&lt;br /&gt;
| ARIN&lt;br /&gt;
| www.arin.net/&lt;br /&gt;
|-&lt;br /&gt;
|Réseaux IP Européens&lt;br /&gt;
|RIPE&lt;br /&gt;
|www.ripe.net/&lt;br /&gt;
|-&lt;br /&gt;
|Network Information Center&lt;br /&gt;
|NIC&lt;br /&gt;
|www.internic.net/&lt;br /&gt;
|-&lt;br /&gt;
|Internet Architecture Board&lt;br /&gt;
|IAB&lt;br /&gt;
|www.iab.org/&lt;br /&gt;
|-&lt;br /&gt;
|Internet Engineering Task Force&lt;br /&gt;
|IETF&lt;br /&gt;
|www.ietf.org/&lt;br /&gt;
|-&lt;br /&gt;
|Internet Research Task Force&lt;br /&gt;
|IRTF&lt;br /&gt;
|www.irtf.org/&lt;br /&gt;
|-&lt;br /&gt;
|Internet Societal Task Force&lt;br /&gt;
|ISTF&lt;br /&gt;
|www.istf.org/&lt;br /&gt;
|-&lt;br /&gt;
|Internet Society&lt;br /&gt;
|ISOC&lt;br /&gt;
|www.isoc.org/&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=MANPAGES=&lt;br /&gt;
&lt;br /&gt;
==IFCONFIG==&lt;br /&gt;
&lt;br /&gt;
'''NAME'''&lt;br /&gt;
&lt;br /&gt;
ifconfig ­ Konfiguration einer Netzwerkskarte &lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
'''SYNOPSIS'''&lt;br /&gt;
&lt;br /&gt;
ifconfig [Schnittstelle] &lt;br /&gt;
ifconfig Schnittstelle [AF­Typ] Optionen | Adresse ... &lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
'''BESCHREIBUNG'''&lt;br /&gt;
&lt;br /&gt;
Ifconfig wird benutzt um kernel­residente Netzwerksschnittstellen zu konfigurieren. Es wird zur &lt;br /&gt;
Systemstartzeit verwendet, um die Schnittstellen nach Notwendigkeit zu initialisieren. Danach wird &lt;br /&gt;
es üblicherweise nur zur Fehlersuche oder zur Verfeinerung der Systemkonfiguration verwendet. &lt;br /&gt;
Wenn keine Argumente angegeben werden, dann zeigt ifconfig den Zustand der Augenblicklich &lt;br /&gt;
aktiven Netzwerksschnittstellen. Wird ein einzelne Schnittstellenargument angegeben, so zeigt es &lt;br /&gt;
nur den Zustand der angegebenen Netzwerksschnittstelle an. Wird ein einzelne ­a Option &lt;br /&gt;
angegeben, zeigt es den Zustand aller Schnittstellen an, selbst wenn diese inaktiviert sind. &lt;br /&gt;
Ansonsten konfiguriert ifconfig eine Schnittstelle. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Adressfamilien'''&lt;br /&gt;
&lt;br /&gt;
Wird das erste Argument hinter dem Schnittstellennamen als der Name einer unterstützten &lt;br /&gt;
Adressfamilie erkannt, so wird diese Adressfamilie dazu benutzt um alle Protokolladressen zu &lt;br /&gt;
dekodieren und darzustellen. Zur Zeit werden u.a. folgende Adressfamilien unterstützt. inet (TCP/IP, &lt;br /&gt;
standard), inet6 (IPv6), ax25 (AMPR Packet Radio), ddp (Appletalk Phase 2), ipx (Novell IPX) and &lt;br /&gt;
netrom (AMPR Packet radio).  &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''OPTIONEN'''&lt;br /&gt;
&lt;br /&gt;
Schnittstelle &lt;br /&gt;
Der Name einer Netzwerksschnittstelle. Dies ist üblicherweise ein Treiber gefolgt von einer &lt;br /&gt;
laufenden Nummer, z.B. eth0 für die erste Ethernetschnittstelle &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''up''' &lt;br /&gt;
&lt;br /&gt;
Diese Flagge aktiviert die Schnittstelle. Sie wird implizit gesetzt, wenn eine Adresse einer &lt;br /&gt;
Schnittstelle zugewiesen wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''down''' &lt;br /&gt;
&lt;br /&gt;
Durch diese Flagge wird der Treiber für die Schnittstelle deaktiviert. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''[­]arp''' &lt;br /&gt;
&lt;br /&gt;
Schaltet das ARP­Protokoll auf dieser Schnittstelle ein oder aus. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''[­]promisc''' &lt;br /&gt;
&lt;br /&gt;
Ein-/Ausschalten des promiscuous Modus der Schnittstelle. Ist er&lt;br /&gt;
eingeschaltet, so werden alle Pakete vom Netzwerk empfangen&lt;br /&gt;
unabhängig davon, ob sie an die Schnittstelle adressiert sind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''[­]allmulti''' &lt;br /&gt;
&lt;br /&gt;
Ein­/Ausschalten des all­multicast Modus. Ist er eingeschaltet, so werden alle Multicastpakete &lt;br /&gt;
vom Netzwerk empfangen unabhängig davon, ob sie an die Schnittstelle adressiert sind oder &lt;br /&gt;
nicht. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''metric N''' &lt;br /&gt;
&lt;br /&gt;
Dieses Argument setzt den Metrik­Wert für die Schnittstelle auf N.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''mtu N''' &lt;br /&gt;
&lt;br /&gt;
Dieses Argument setzt die Maximum Transfer Unit (MTU) der Schnittstelle. Dies ist das &lt;br /&gt;
grösste Paket, das gesendet werden kann. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''dstaddr addr''' &lt;br /&gt;
&lt;br /&gt;
Setzt die IP­Adresse der Gegenseite für Punkt­zu­Punkt­Verbindungen wie z.B. PPP. Dieses &lt;br /&gt;
Schlüsselwort ist überholt; stattdessen sollte das pointopoint Schlüsselwort verwendet &lt;br /&gt;
werden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''netmask Adr''' &lt;br /&gt;
&lt;br /&gt;
Setzt die IP Netzwerksmaske für diese Schnittstelle. Die Voreinstellung ist abhängig von der &lt;br /&gt;
IP­Adresse der Schnittstelle, die Maske für ein Klasse A, B oder C Netzwerk, kann aber auf &lt;br /&gt;
jeden beliebigen Wert gesetzt werden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''add Adr/Prefixlen'''&lt;br /&gt;
&lt;br /&gt;
Fügt der Schnittstelle eine IPv6­Adresse zu. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''del addr/prefixlen'''&lt;br /&gt;
Entfernt eine IPv6­Adresse von der Schnittstelle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''tunnel aa.bb.cc.dd'''&lt;br /&gt;
 &lt;br /&gt;
Erzeugt ein neues SIT (IPv6­in­IPv4) Gerät, das Pakete zum angegebenen Ziel tunnelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''irq addr''' &lt;br /&gt;
&lt;br /&gt;
Setzt die Interruptleitung, die von diesem Gerät benutzt wird. Nicht alle Geräte können ihre &lt;br /&gt;
Interruptkonfiguration dynamisch ändern.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''io_addr Adr''' &lt;br /&gt;
&lt;br /&gt;
Setzt die I/O­Basisadresse für dieses Gerät.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''mem_start Adr''' &lt;br /&gt;
&lt;br /&gt;
Setzt die Startadresse für shared memory der von diesem Gerät benutzt wird. Dies wird nur &lt;br /&gt;
von wenigen Geräten benötigt.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''media Typ''' &lt;br /&gt;
&lt;br /&gt;
Setzt den physikalischen Anschluss oder den Mediumstyp, der vom Gerät verwendet wird. &lt;br /&gt;
Nicht alle Geräte können diese Einstellung ändern, und bei denjenigen, bei denen dies &lt;br /&gt;
möglich ist, variieren die unterstützten Werte. Typische Werte f:ur Typ sind 10base2 (thin &lt;br /&gt;
Ethernet), 10baseT (twisted­pair 10Mbps Ethernet), AUI (Externer Transceiver) und so &lt;br /&gt;
weiter. Der spezielle Mediumstyp auto kann benutzt werden, damit der Treiber automatischen &lt;br /&gt;
den Typ des Mediums erkennt. Wiederum unterstützen dies nicht alle Treiber.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''[­]broadcast [Adr]''' &lt;br /&gt;
&lt;br /&gt;
Wird das Adressargument gegeben, so wird die Protokolladresse für Broadcast für diese &lt;br /&gt;
Schnittstelle gesetzt. Ansonsten wird die IFF_BROADCAST Flagge für diese Schnittstelle &lt;br /&gt;
gesetzt bzw. gelöscht.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''[­]pointopoint [Adr]'''&lt;br /&gt;
 &lt;br /&gt;
Dieses Schlüsselwort aktiviert den Punkt­zu­Punkt Modus einer Schnittstelle. Das bedeutet, &lt;br /&gt;
dass eine Verbindung zwischen zwei Maschinen direkt ist, ohne dass weitere Maschinen &lt;br /&gt;
mithören. &lt;br /&gt;
Wird auch ein Adressargument gegeben, so wird die Protokolladrsse auf der Gegenseite der &lt;br /&gt;
Verbindung gesetzt, genau wie beim jetzt überholten dstaddr Schlüsselwort. Ansonsten wird &lt;br /&gt;
die IFF_POINTOPOINT Flagge für die Schnittstelle gesetzt bzw. gelöscht.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''hw Klasse Adresse''' &lt;br /&gt;
&lt;br /&gt;
Setzt die Hardwareadresse dieser Schnittstelle, wenn der Gerätetreiber diese Operation &lt;br /&gt;
unterstützt. Das Schlüsselwort muss vom Namen der Hardwareklasse und der ASCII­&lt;br /&gt;
Darstellung der Hardwareadresse gefolgt werden. Zur Zeit werden unter anderem folgende &lt;br /&gt;
Hardwareklassen unterstützt: ether (Ethernet), ax25 (AMPR AX.25), ARCnet and netrom &lt;br /&gt;
(AMPR NET/ROM). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''multicast''' &lt;br /&gt;
&lt;br /&gt;
Setzt die Multicastflagge der Schnittstelle. Dies sollte im Normalfall nicht benötigt werden, da &lt;br /&gt;
die Treiber die Flagge selbst setzen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Adresse''' &lt;br /&gt;
&lt;br /&gt;
Die IP­Adresse, die der Schnittstelle zugewiesen wird. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''txqueuelen L:ange''' &lt;br /&gt;
&lt;br /&gt;
Setzt die Länge der Sendewarteschlange des Geräts. Es kann nützlich sein, diesen Wert auf &lt;br /&gt;
einen kleinen Wert für langsame Geräte mit hoher Paketlaufzeit (Modems, ISDN) zu setzen &lt;br /&gt;
um zu verhindern, dass schnelle Grossübertragungen interaktiven Verkehr wie Telnet zu sehr &lt;br /&gt;
stören.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''BEMERKUNGEN'''&lt;br /&gt;
&lt;br /&gt;
Seit Kernel Version 2.2 gibt es keine expliziten Statistiken für Schnittstellenaliase mehr. Die &lt;br /&gt;
Statistiken für die Originaladresse werden mit allen Aliasen auf das gleiche Gerät geteilt. Um &lt;br /&gt;
Statistiken per Adresse zu erhalten sollte explizite EInträge für die Adresse mit dem ipchains(8) &lt;br /&gt;
Kommando gemacht werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''DATEIEN'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''/proc/net/socket'' &lt;br /&gt;
&lt;br /&gt;
''/proc/net/dev'' &lt;br /&gt;
&lt;br /&gt;
''/proc/net/if_inet6''&lt;br /&gt;
&lt;br /&gt;
==TCPDUMP==&lt;br /&gt;
&lt;br /&gt;
[[Bild:tcpdump.png]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:tcpdump2.png]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:tcpdump3.png]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:tcpdump4.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==NMAP==&lt;br /&gt;
&lt;br /&gt;
nmap ist ein Portscanner, der einen Zielrechner auf offene Ports, also&lt;br /&gt;
potentielle Sicherheitslücken, durchsuchen kann. Ihm entgegenzuwirken ist die&lt;br /&gt;
Aufgabe von snort, einem Daemon, der ein Netzwerk auf verdächtige Pakete&lt;br /&gt;
durchscannt und diese mitprotokolliert.&lt;br /&gt;
Die Welt der Netzwerksicherheit ist zweigeteilt: entweder gute oder böse&lt;br /&gt;
Absichten, entweder White Hat oder Black Hat, und dazwischen meist ein tiefer&lt;br /&gt;
Abgrund. Dabei sind sie sich ähnlicher als die meisten von ihnen zugeben&lt;br /&gt;
würden und auf jeden Fall benutzen sie die gleichen Werkzeuge.&lt;br /&gt;
Denn sicherlich wird jeder sicherheitsbewusste Netzwerkadministrator auch&lt;br /&gt;
einmal einen Portscanner benutzen wollen und jeder Hacker wird sich der&lt;br /&gt;
grundsätzlichen Unsicherheit jedes TCP/IP-Netzwerks bewusst sein, so dass bei&lt;br /&gt;
vielen von ihnen auch ein Network Intrusion Detection System das LAN&lt;br /&gt;
überwacht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''nmap - die dunkle Seite'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
nmap - der &amp;quot;Network Mapper&amp;quot; - wurde von dem Hacker &amp;quot;Fyodor&amp;quot; primär für das&lt;br /&gt;
Scannen großer Netzwerke entworfen, funktioniert aber natürlich auch für&lt;br /&gt;
einzelne Hosts. Durch die große Anzahl möglicher Scans und Optionen&lt;br /&gt;
existieren fast immer mehrere Möglichkeiten, ein- und dasselbe &amp;quot;Ziel&amp;quot; zu&lt;br /&gt;
erreichen: Manchmal benötigt man einen &amp;quot;schnellen&amp;quot; Scan, manchmal will man&lt;br /&gt;
nur minimale Spuren auf dem Zielsystem hinterlassen. In wieder anderen Fällen&lt;br /&gt;
ist es eventuell erforderlich, eine Firewall zu umgehen; oder man möchte nach&lt;br /&gt;
verschiedenen Protokollen (UDP, TCP, ICMP, etc.) scannen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:nmap.png]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:nmap1.png]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:nmap2.png]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:nmap3.png]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:nmap4.png]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:nmap5.png]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:nmap6.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Verbergen der eigenen IP-Adresse'''&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man noch eine sogenannte &amp;quot;decoy&amp;quot;-Option (-D) aktivieren -&lt;br /&gt;
sie verhindert, dass die Gegenseite erkennt, welcher Host den Scan nun&lt;br /&gt;
tatsächlich initiiert hat. Durch die Angabe der Option -Ddecoy1.&lt;br /&gt;
host.com,ME,decoy2.host.com &amp;quot;fälscht&amp;quot; nmap Pakete mit den Absendeadressen&lt;br /&gt;
von decoy1.host.com und decoy2.host.com.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sind sowohl decoy1.host.com als auch decoy2.host.com &amp;quot;up&amp;quot;, schicken diese&lt;br /&gt;
ihrerseits, wie erwartet, RST-Pakete, sodass für die Zielmaschine&lt;br /&gt;
decoy1.host.com, decoy2.host.com und der lokale Host ununterscheidbar sind.&lt;br /&gt;
Sind die decoy-Hosts &amp;quot;down&amp;quot;, so wird das Ziel unseres Scans mit SYN-Paketen&lt;br /&gt;
überflutet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Standardmodus benutzt nmap einen ICMP-Ping und einen TCP-ACK-Ping mit&lt;br /&gt;
Quellport Port 80 (Port 80 wird oft wegen HTTP-Requests durch Firewalls&lt;br /&gt;
durchgelassen), um zu bestimmen, ob Maschinen &amp;quot;up&amp;quot; sind. Danach wird der&lt;br /&gt;
Portscan durchgeführt. Als letztes wird versucht, das Betriebssystem des ge-&lt;br /&gt;
scannten Hosts zu bestimmen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ganz offensichtlich kann man für ein Intrusion Detection System (IDS) sehr&lt;br /&gt;
leicht eine Regel schreiben, die einen nmap-Scan sicher erkennen kann. Daher&lt;br /&gt;
kann man zum Beispiel mit -P0 den ICMP-Ping deaktivieren; explizites&lt;br /&gt;
Aktivieren des TCP-Pings geschieht durch -PT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Beispiele'''&lt;br /&gt;
&lt;br /&gt;
''% nohup nmap -r -iR -I -sT -p53 &amp;gt; named.scan.out &amp;amp;''&lt;br /&gt;
&lt;br /&gt;
''% tail -f named.scan.out''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hiermit gehen wir auf die Suche nach Maschinen, auf denen der named als root&lt;br /&gt;
läuft. Die Option -r scannt die Ports der Zielmaschine in einer zufälligen&lt;br /&gt;
Reihenfolge, -iR wählt zufällige IP's als Ziel der Scans aus, -I aktiviert den&lt;br /&gt;
reverse ident scan, der nur mit einem TCP-connect()-Scan (-sT) funktioniert.&lt;br /&gt;
-p53 definiert schließlich Port 53 als Scanziel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im zweiten Beispiel wollen wir target.host scannen, dabei aber einer allzu&lt;br /&gt;
leichten Entdeckung entgehen. Wir benutzen daher einige Decoy Hosts:&lt;br /&gt;
&lt;br /&gt;
''% nohup nmap -r -P0 -sS -Ddecoy1,decoy2,decoy3,decoy4,decoy5 target.host''&lt;br /&gt;
&lt;br /&gt;
Dabei sollten die Hosts decoy1 bis decoy5 existieren und erreichbar&lt;br /&gt;
beziehungsweise &amp;quot;up&amp;quot; sein. Die Option -P0 deaktivert das ping-en von&lt;br /&gt;
target.host vor dem Scan - wir gehen davon aus, dass er &amp;quot;up&amp;quot; ist. -sS aktiviert&lt;br /&gt;
den SYN-Scan und -Ddecoy1,decoy2,decoy3,decoy4,decoy5 nutzt die Hosts&lt;br /&gt;
decoy1 bis decoy5 um ein wenig Verwirrung zu stiften.&lt;br /&gt;
&lt;br /&gt;
==Route==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:route.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''OPTIONEN'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''-v'''&lt;br /&gt;
&lt;br /&gt;
schaltet ausführliche Ausgaben an.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''-A''' &lt;br /&gt;
&lt;br /&gt;
Adressfamilie &lt;br /&gt;
Benutzt die angegebene Adresse, z.B. inet oder inet6.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''-n'''&lt;br /&gt;
&lt;br /&gt;
zeigt numerische Adressen an, d.h. es wird nicht mehr versucht IP-   &lt;br /&gt;
Adressen in symbolische Hostnamen umzuwandeln. Dies kann z.B. nützlich&lt;br /&gt;
sein, wenn der Nameserver nicht mehr erreichbar ist, z.B. weil keine Route  &lt;br /&gt;
existiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''-e'''&lt;br /&gt;
     &lt;br /&gt;
Schaltet das Ausgabeformat von netstat(8) für die Anzeige der     &lt;br /&gt;
Routentabelle an. -ee gibt eine sehr lange Zeile mit allen   &lt;br /&gt;
Routenparametern aus der Routentabelle aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''-net'''&lt;br /&gt;
     &lt;br /&gt;
Das Ziel ist ein Netzwerk.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''-host'''&lt;br /&gt;
     &lt;br /&gt;
das Ziel ist ein Rechner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''-F'''&lt;br /&gt;
     &lt;br /&gt;
zeigt die FIB Routentabelle des Kerns an. Das Ausgabeformat kann mit den     &lt;br /&gt;
Optionen -e und -ee geändert werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''-C'''&lt;br /&gt;
     &lt;br /&gt;
zeigt den Routencache des Kernels an.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''del'''&lt;br /&gt;
     &lt;br /&gt;
löscht eine Route.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''add'''&lt;br /&gt;
   &lt;br /&gt;
fügt eine Route zu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ziel'''&lt;br /&gt;
     &lt;br /&gt;
Das Zielnetzwerk oder -System. Die Angabe sowohl von IP-Adressen in   &lt;br /&gt;
Form von dezimalen durch Punkt getrennten Quadrupeln, als auch     &lt;br /&gt;
Rechner- und Netznamen ist zulässig.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''netmask Nm'''&lt;br /&gt;
     &lt;br /&gt;
ändert die Netzwerksmaske der Route, die zugefügt werden soll.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''gw Router'''&lt;br /&gt;
     &lt;br /&gt;
Alle IP-Pakete für das Zielnetzwerk / -System werden zum angegebenen  &lt;br /&gt;
Router weitergeleitet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ANMERKUNG:''' Das angegebene Ziel muss zuerst erreichbar sein.&lt;br /&gt;
Üblicherweise bedeutet dies, dass zuerst eine statische Route zum Router&lt;br /&gt;
eingetragen werden muss. Wird die Adresse einer lokalen Schnittstelle&lt;br /&gt;
angegeben, so wird sie benutzt um zu entscheiden zu welcher Schnittstelle die&lt;br /&gt;
Pakete weitergeleitet werden. Dieses Merkmal dient der Kompatibilität mit BSD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''metric M'''&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
Setzt das Metric-Feld der Routentabelle, das von Routendämonen    &lt;br /&gt;
verwendet wird, auf M.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''mss M'''&lt;br /&gt;
     &lt;br /&gt;
Setzt den MSS-Wert (Maximum Segment Size) für TCP-Verbindungen über    &lt;br /&gt;
diese Route auf M bytes. Diese Einstellung kann verwendet werden um&lt;br /&gt;
eine kleinere MTU zu erzwingen, wenn Path MTU Discovery nicht&lt;br /&gt;
funktioniert (normalerweise weil ein Firewall dazwischen ist der ICMP&lt;br /&gt;
Fragmentation Needed blockt). Die Standardeinstellung ist die MTU des&lt;br /&gt;
Netzwerkinterfaces minus Headers oder eine kleinere, falls bekannt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''window W'''&lt;br /&gt;
     &lt;br /&gt;
Setzt das TCP-Fenster für Verbindungen über diese Route auf W bytes. Dies     &lt;br /&gt;
wird üblicherweise nur auf AX.25-Netzwerken und mit Treibern, die     &lt;br /&gt;
Probleme mit aufeinanderfolgenden Paketen haben, benutzt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''irtt A'''&lt;br /&gt;
     &lt;br /&gt;
Setzt die anfängliche Paketumlaufzeit (IRTT, Initial Round Trip Time) für     &lt;br /&gt;
TCP-Verbindungen auf A Millisekunden. Erlaubte Werte sind im Bereich von     &lt;br /&gt;
1-12000 Milisekunden. Dies wird üblicherweise nur auf AX.25 Netzwerken     &lt;br /&gt;
benutzt. Wenn ausgelassen, dann wird der Standardwert aus RFC1122 von     &lt;br /&gt;
300ms benutzt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''reject'''&lt;br /&gt;
     &lt;br /&gt;
Installiert eine Blockaderoute, die im Abbruch der Suche nach einer Route    &lt;br /&gt;
resultiert. Dies wird zum Beispiel benutzt um Netzwerke auszumaskieren,    &lt;br /&gt;
bevor die Standardroute verwendet wird. Dieses Merkmal ist NICHT zur    &lt;br /&gt;
Verwendung als Firewall gedacht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''mod, dyn, reinstate'''&lt;br /&gt;
     &lt;br /&gt;
Installiert eine dynamische oder modifizierte Route. Beide Flaggen werden     &lt;br /&gt;
im allgemeinen nur von Routendämonen verwendet und dienen im     &lt;br /&gt;
route(8) Kommando nur zu diagnostischen Zwecken.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''dev Schnittstelle'''&lt;br /&gt;
     &lt;br /&gt;
Erzwingt, dass die Route mit der angegebenen Schnittstelle assoziiert     &lt;br /&gt;
wird. Ansonsten würde der Kern selbstständig versuchen, die Schnittstelle     &lt;br /&gt;
durch Überprüfung bereits existierender Routen,     &lt;br /&gt;
Schnittstellenspezifikationen und der Stelle, zu der die Route zugefügt    &lt;br /&gt;
wird, festzustellen. In den meisten normalen Netzwerken wird dies nicht     &lt;br /&gt;
benötigt.    &lt;br /&gt;
Wird als letzte Option dev Schnittstelle angegeben, so kann das     &lt;br /&gt;
Schlüsselwort dev ausgelassen werden, da es Standardwert ist. Ansonsten     &lt;br /&gt;
ist die Reihenfolge der Optionen (metric, netmask, gw und dev), die die    &lt;br /&gt;
Route verändern, egal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''BEISPIELE'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''route add -net 127.0.0.0'''&lt;br /&gt;
    &lt;br /&gt;
erzeugt die normale Loopbackroute mit der Netzmaske 255.0.0.0    &lt;br /&gt;
(Netzwerk Klasse A, ermittelt aus der Zieladresse) und assoziert sie mit    &lt;br /&gt;
der Schnittstelle lo unter der Annahme, dass dieses Gerät vorher mit    &lt;br /&gt;
ifconfig(8) konfiguriert wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0'''&lt;br /&gt;
&lt;br /&gt;
Legt eine Route zum Netzwerk 192.56.76.x über eth0 an. Die Angabe der&lt;br /&gt;
Klasse C Netzmaske ist in diesem Fall nicht nötig. Das Wort dev darf in&lt;br /&gt;
diesem Fall ausgelassen werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''route add default gw mango-gw'''&lt;br /&gt;
    &lt;br /&gt;
legt eine Standardroute, d.h. eine Route die verwendet wird, wenn keine   &lt;br /&gt;
andere Route passt, an. Alle Pakete über diese Route werden über mango-    &lt;br /&gt;
gw weitergeleitet. Die Schnittstelle, die tatsächlich für diese Route    &lt;br /&gt;
verwendet wird, hängt davon ab, wie mango-gw erreicht werden kann.   &lt;br /&gt;
Zuvor muss mango-gw bereits über eine andere Route erreicht werden   &lt;br /&gt;
können.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''route add ipx4 sl0'''&lt;br /&gt;
    &lt;br /&gt;
Legt eine Route zum Rechner ipx4 über die SLIP-Schnittstelle an. Dabei    &lt;br /&gt;
wird angenommen dass ipx4 der SLIP-Rechner auf der Gegenseite ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''route add -net 192.57.66.0 netmask 255.255.255.0 gw ipx4'''&lt;br /&gt;
    &lt;br /&gt;
Dieses Kommando sorgt dafür, dass das Netz 192.57.66.x über die obige   &lt;br /&gt;
Route über die SLIP-Schnittstelle weitergeleitet wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''route add 224.0.0.0 netmask 240.0.0.0 dev eth0'''&lt;br /&gt;
    &lt;br /&gt;
Dieses etwas obscure Beispiel wird hier dokumentiert, um zu zeigen, wie    &lt;br /&gt;
Multicastrouten angelegt werden. Durch diese Route werden alle Pakete    &lt;br /&gt;
der Klasse D (Multicast) über eth0 weitergeleitet. Diese ist die korrekte    &lt;br /&gt;
Konfiguration für einen Kernel mit Multicast-Unterstützung.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''route add 10.0.0.0 netmask 255.0.0.0 reject'''&lt;br /&gt;
    &lt;br /&gt;
Dies installiert eine zurückweisende Route für das private Netzwerk    &lt;br /&gt;
10.x.x.x.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;AUSGABE&amp;lt;/big&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Die Ausgabe der Kernelroutentabelle besteht aus folgenden Spalten&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ziel'''&lt;br /&gt;
     Das Zielnetzwerk oder -System.&lt;br /&gt;
'''Router'''&lt;br /&gt;
     Die Adresse des weiterleitenden Routers oder &amp;quot;*&amp;quot;, wenn keine gesetzt ist.&lt;br /&gt;
'''Genmask'''&lt;br /&gt;
     Die Netzmaske für das Zielnetz; '255.255.255.255' für ein einzeles&lt;br /&gt;
     Zielsystem und '0.0.0.0' für die Standardroute (. default).&lt;br /&gt;
'''Flaggen'''&lt;br /&gt;
     Mögliche Flaggen sind&lt;br /&gt;
     U Route ist aktiviert ( up)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''H''' Ziel ist ein einzelner Rechner &lt;br /&gt;
    &lt;br /&gt;
'''G''' Benutzt einen Router als gateway &lt;br /&gt;
    &lt;br /&gt;
'''R''' modifiziert eine Route bei dynamischem Routen&lt;br /&gt;
     &lt;br /&gt;
'''D''' Route ist dynamisch von einem daemon oder redirect-Paket erzeugt worden.&lt;br /&gt;
     &lt;br /&gt;
'''M''' modified von einem Routendämon oder redirekt-Paket.&lt;br /&gt;
     &lt;br /&gt;
'''!''' (zurückweisendeRoute)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Metric'''&lt;br /&gt;
     Der Abstand zum Ziel, d.h. üblicherweise die Anzahl der Zwischenrouter.&lt;br /&gt;
     Dieser Wert wird von aktuellen Kernen nicht verwendet, kann aber u.U.&lt;br /&gt;
     von Routendämonen benötigt werden.&lt;br /&gt;
'''Ref'''&lt;br /&gt;
     Anzahl der Referenzen auf diese Route. Wird vom Linux Kernel nicht&lt;br /&gt;
     benutzt.&lt;br /&gt;
'''Benutzer'''&lt;br /&gt;
     Zahl der Suchvorgänge nach dieser Route. Abhängig von -F oder -C werden&lt;br /&gt;
     entweder fehlgeschlagene Suchen im Cache (-F) oder Cache-Treffer (-C)&lt;br /&gt;
     angezeigt.&lt;br /&gt;
'''Schnittstelle'''&lt;br /&gt;
     Schnittstelle auf die Pakete für diese Route geleitet werden.&lt;br /&gt;
'''MSS'''&lt;br /&gt;
     Maximale Segmentgrösse für TCP-Verbindungen über diese Route.&lt;br /&gt;
'''Fenster'''&lt;br /&gt;
     Voreinstellung für die Fenstergrösse von Verbindungen über diese Route.&lt;br /&gt;
'''irtt'''&lt;br /&gt;
     Anfängliche Paketumlaufszeit (IRTT, Initial Round Trip Time). Der Kernel&lt;br /&gt;
     benutzt diesen Wert um die bestmöglichen Parameter für das TCP-Protokoll&lt;br /&gt;
     abzuschätzen ohne möglicherweise auf eventuell langsame Antworten&lt;br /&gt;
     warten zu müssen.&lt;br /&gt;
'''HH (cached only)'''&lt;br /&gt;
     Die Anzahl der ARP-Einträge und gecachten Routen, die den Hardware-&lt;br /&gt;
     headercache der gecachten Route referenzieren. Die ist -1 wenn keine&lt;br /&gt;
     Hardwareadresse nicht für den Eintrag der gecachten Route benötigt wird,&lt;br /&gt;
     z.B. für lo.&lt;br /&gt;
'''Arp (nur gecachet)'''&lt;br /&gt;
     Nur wenn die Hardwareadresse für die gecachte Route aktuell ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;DATEIEN&amp;lt;/big&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
''/proc/net/ipv6_route''&lt;br /&gt;
&lt;br /&gt;
''/proc/net/route''&lt;br /&gt;
&lt;br /&gt;
''/proc/net/rt_cache''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;SIEHE AUCH&amp;lt;/big&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''[http://localhost/cgi-bin/man/man2html?8+ifconfig ifconfig](8), [http://localhost/cgi-bin/man/man2html?8+netstat netstat](8), [http://localhost/cgi-bin/man/man2html?8+arp arp](8), [http://localhost/cgi-bin/man/man2html?8+rarp rarp](8)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;GESCHICHTE&amp;lt;/big&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
'''Route''' für Linux wurde ursprünglich von Fred N. van Kempen geschrieben&lt;br /&gt;
(waltje@uwalt.nl.mugnet.org) und dann von Johannes Stille und Linus Torvalds&lt;br /&gt;
für pl15 verändert. Alan Cox hat die mss und window Optionen für Linux 1.1.22&lt;br /&gt;
hinzugefügt. Bernd Eckenfels hat schliesslich die Unterstützung für irtt&lt;br /&gt;
beigesteuert und den Code mit dem von Netstat vereinigt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;big&amp;gt;traceroute&amp;lt;/big&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:traceroute.png]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:traceroute1.png]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:traceroute2.png]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:traceroute3.png]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:traceroute4.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==NETSTAT==&lt;br /&gt;
&lt;br /&gt;
[[Bild:netstat.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''(no option)'''&lt;br /&gt;
&lt;br /&gt;
Ohne Optionen zeigt '''netstat''' den Zustand von offenen Sockets an. Wird keine&lt;br /&gt;
Adressfamilie angegeben, dann werden die offenen Sockets aller konfigurierten&lt;br /&gt;
Adressfamilien gedruckt. Die Option '''-e''' gibt zusätzliche Informationen aus (User&lt;br /&gt;
ID). Mit der Option '''-v''' gibt netstat zusätzlich Fehlermeldungen über vom&lt;br /&gt;
Kernel nicht unterstützte Adressfamilien aus. Die Option -p gibt zusätzlich die&lt;br /&gt;
PID und den Namen des Programms, das den Socket geöffnet hat, aus. '''-a'''&lt;br /&gt;
druckt alle Sockets einschliesslich der auf Verbinungen wartenden&lt;br /&gt;
Serversockets aus. Die Adressfamilie inet zeigt RAW, UDP und TCP Sockets an.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''-r, --route'''&lt;br /&gt;
&lt;br /&gt;
Die '''-r, --route''' Option gibt &lt;br /&gt;
die Routentabellen des Kernels im gleichen Format&lt;br /&gt;
wie '''route -e''' aus. '''netstat -er''' benutzt das Ausgabeformat von '''route'''. Für&lt;br /&gt;
mehr Details siehe route(8).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''-i, --interface Schnittstelle'''&lt;br /&gt;
&lt;br /&gt;
Wird die '''-i, --interfaces''' Option verwendet, so wird eine Tabelle aller (oder der&lt;br /&gt;
angegebenen Schnittstellen) ausgedruckt. Die Ausgabe ist im Format von&lt;br /&gt;
'''ifconfig -e''' und wird in ifconfig(8) beschrieben. '''netstat -ei''' druckt eine&lt;br /&gt;
Tabelle oder einen Eintrag für ein einzelnes Interface wie bei '''ifconfig'''. Die -a&lt;br /&gt;
Option schliesst Schnittstellen, die gar nicht konfiguriert sind in die Ausgabe&lt;br /&gt;
ein, (d.h. Alle, die U=UP Flagge nicht gesetzt haben).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''-M, --masquerade'''&lt;br /&gt;
'''&lt;br /&gt;
Eine Liste aller maskierten Sitzungen wird dargestellt. Maskieren wird dazu&lt;br /&gt;
verwendet um Maschinen mit inoffiziellen Netzwerkssitzungen vor der&lt;br /&gt;
Aussenwelt zu verstecken. Dies wird in ipfw(4), ipfwadm(8) und ipfw(8)&lt;br /&gt;
beschrieben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''-N, --netlink'''&lt;br /&gt;
&lt;br /&gt;
Aktuelle Kernel unterstützen die Kommunikation zwischen Kernel und&lt;br /&gt;
Anwendungen durch eine Option namens Netlink. Netlink ermöglicht es&lt;br /&gt;
Informationen über die Erzeugung und das Löschen von Schnittstellen oder&lt;br /&gt;
Routen von ''/dev/route'' (36,0) zu erhalten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;OPTIONEN&amp;lt;/big&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''-v, --verbose'''&lt;br /&gt;
&lt;br /&gt;
macht detailiertere Ausgaben. Insbesondere wird ausgegeben, welche&lt;br /&gt;
Adressfamilien nicht im Kern konfiguriert sind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''-n, --numeric'''&lt;br /&gt;
&lt;br /&gt;
gibt numerische Adressen aus, statt zu versuchen, den symbolischen Rechner,&lt;br /&gt;
Port oder Benutzernamen auszugeben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''-p, --programs'''&lt;br /&gt;
&lt;br /&gt;
Zeigt den Prozessnamen und die PID des Eigentümers des Sockets, der&lt;br /&gt;
ausgegeben wird. Nur der Eigentümer eines Prozess oder '''Root''' haben alle die&lt;br /&gt;
dazu nötigen Privilegien.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''-A, --af Familie'''&lt;br /&gt;
&lt;br /&gt;
benutzt einen alternativen Weg, um Adressfamilien zu setzen. Familie ist eine&lt;br /&gt;
durch Kommatas abgetrennte Liste von Schlüsselworten für Adressfamilien wie&lt;br /&gt;
'''inet, unix, ipx, ax25, netrom''' und '''ddp'''. Dies hat den gleichen Effekt wie die&lt;br /&gt;
Langoptionen '''--inet, --unix, --ipx, --ax25, --netrom''' und '''--ddp.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''-c, --continous'''&lt;br /&gt;
&lt;br /&gt;
Mit dieser Option wiederholt '''netstat''' im Sekundenabstand die Ausgabe, bis es&lt;br /&gt;
abgebrochen wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;AUSGABE&amp;lt;/big&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Aktive Internet-Verbindungen (TCP, UDP, RAW)'''&lt;br /&gt;
&lt;br /&gt;
'''Proto'''&lt;br /&gt;
&lt;br /&gt;
Das von Socket verwendete Protokoll (TCP, UDP, RAW).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Recv-Q'''&lt;br /&gt;
&lt;br /&gt;
Die Anzahl von Bytes, die noch nicht von der Anwendung vom Socket abgeholt&lt;br /&gt;
wurden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Send-Q'''&lt;br /&gt;
&lt;br /&gt;
Die Anzahl von Bytes, die von der Gegenseite noch nicht bestätigt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lokale Adresse'''&lt;br /&gt;
&lt;br /&gt;
Die lokale Adresse (lokaler Rechnername) und Portnummer des Sockets. Ausser&lt;br /&gt;
bei Verwendung der '''-n''' Option wird die Socketadresse nach dem kanonischen&lt;br /&gt;
Rechnernamen und die Portnummer in den zugehörigen Dienstenamen&lt;br /&gt;
aufgelistet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Gegenadresse'''&lt;br /&gt;
&lt;br /&gt;
Die Adresse und Portnummer der Gegenseite des Sockets. Wie bei lokalen&lt;br /&gt;
Adressen schaltet der '''-n''' Schalter die Umwandlung von Rechneradresse und&lt;br /&gt;
Portnummer ab.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''State'''&lt;br /&gt;
&lt;br /&gt;
Der Zustand des Sockets. Da RAW-Sockets und UDP-Sockets üblicherweise&lt;br /&gt;
keinen Zustand haben, kann diese Spalte leer bleiben. Normalerweise ist sie&lt;br /&gt;
einer von mehreren Werten:&lt;br /&gt;
&lt;br /&gt;
''VERBUNDEN''&lt;br /&gt;
     Der Socket hat eine etablierte Verbindung.&lt;br /&gt;
''SYN_SENT''&lt;br /&gt;
     Es wird versucht auf dem Socket eine Verbindung aufzubauen.&lt;br /&gt;
''SYN_RECV''&lt;br /&gt;
     Eine Verbindungsanfrage wurde von der Gegenseite empfangen.&lt;br /&gt;
''FIN_WAIT1''&lt;br /&gt;
    Der Socket wurde geschlossen und die Verbindung wird beendet.&lt;br /&gt;
''FIN_WAIT2''&lt;br /&gt;
    Die Verbindung ist geschlssen und der Socket wartet darauf, dass sie von&lt;br /&gt;
    der Gegenseite ebenfalls geschlossen wird.&lt;br /&gt;
''TIME_WAIT''&lt;br /&gt;
    Der Socket ist nach dem Schliessen im Wartezustand um Pakete zu&lt;br /&gt;
    handhaben, die sich eventuell noch im Netzwerk befinden.&lt;br /&gt;
''CLOSE''&lt;br /&gt;
    Der Socket wird nicht benutzt.&lt;br /&gt;
''CLOSE_WAIT''&lt;br /&gt;
    Die Gegenseite hat die Verbindung beendet und das Schliessen des&lt;br /&gt;
    Sockets wird erwartet.&lt;br /&gt;
''LAST_ACK''&lt;br /&gt;
    Die Gegenseite hat die Verbindung beendet und der Socket ist&lt;br /&gt;
    geschlossen; die Bestätigung wird abgewartet.&lt;br /&gt;
''LISTEN''&lt;br /&gt;
    Der Socket wartet auf eingehende Verbindungen. Diese Sockets werden&lt;br /&gt;
    nur angezeit, wenn die -a,--listening Option gegeben wird.&lt;br /&gt;
''CLOSING''&lt;br /&gt;
    Beide Sockets sind geschlossen es wurden aber noch nicht alle Daten&lt;br /&gt;
    geschickt.&lt;br /&gt;
''UNKNOWN''&lt;br /&gt;
    Der Zustand des Sockets ist unbekannt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Benutzer'''&lt;br /&gt;
&lt;br /&gt;
Der Name oder die Benutzer-ID des Eigentümers des Sockets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''PID/Program name'''&lt;br /&gt;
&lt;br /&gt;
Durch einen Schrägstrich abgetrenntes Paar von Prozess-ID und&lt;br /&gt;
Programmname des Programms, das diesen Socket besitzt. Die Option -p&lt;br /&gt;
schaltet die Anzeige dieser Spalte ein. Es werden root Privilegien benötigt um&lt;br /&gt;
die nötigen Daten zu erhalten. Für IPX Sockets sind diese Daten nicht&lt;br /&gt;
verfügbar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Aktive Sockets in der UNIX Dom:ane'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Proto'''&lt;br /&gt;
&lt;br /&gt;
Das Protokoll (in der Regel unix), das vom Socket verwendet wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''RefCnt'''&lt;br /&gt;
&lt;br /&gt;
Der Referenzzähler, d.h. die Zahl der Prozesse, die diesen Socket benutzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Flaggen'''&lt;br /&gt;
&lt;br /&gt;
Die Flaggen, die angezeigt werden sind SO_ACCEPTON (angezeigt als '''ACC'''),&lt;br /&gt;
SO_WAITDATA ('''W''') oder SO_NOSPACE ('''N'''). SO_ACCECPTON wird auf&lt;br /&gt;
unverbundenen Sockets verwendet, wenn die zugehörigen Sockets auf&lt;br /&gt;
Verbindungsanfragen warten. Die anderen Flaggen sind normalerweise nicht&lt;br /&gt;
von Interesse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;Typ&amp;lt;/big&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Es gibt verschiedene Arten von Socketzugriff:&lt;br /&gt;
&lt;br /&gt;
''SOCK_DGRAM''&lt;br /&gt;
     Der Socket wird im verbindungslosen Datagram-Modus verwendet.&lt;br /&gt;
''SOCK_STREAM''&lt;br /&gt;
     Dies ist ein verbindungsorientierter Stream-Socket.&lt;br /&gt;
''SOCK_RAW''&lt;br /&gt;
     Der Socket wird als RAW-Socket verwendet.&lt;br /&gt;
''SOCK_RDM''&lt;br /&gt;
     Dieser Socket bedient zuverlässig zugestellte Nachrichten.&lt;br /&gt;
''SOCK_SEQPACKET''&lt;br /&gt;
     Dies ist ein Socket, der die Zustellung in der richtigen Reihenfolge&lt;br /&gt;
     garantiert.&lt;br /&gt;
''SOCK_PACKET''&lt;br /&gt;
     Socket mit direktem (RAW) Zugriff auf die Schnittstelle.&lt;br /&gt;
''UNKNOWN''&lt;br /&gt;
     Wer weiss, was uns die Zukunft bringt soll es hier hinschreiben :-)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Zustand'''&lt;br /&gt;
&lt;br /&gt;
Dieses Feld enthält eines der folgenden Schlüsselworte:&lt;br /&gt;
&lt;br /&gt;
''FREI''&lt;br /&gt;
     Der Socket ist unbenutzt&lt;br /&gt;
''H:Ort''&lt;br /&gt;
     Der Socket lauscht nach Verbindungsanfragen. Diese Sockets werden nur&lt;br /&gt;
     angezeigt, wenn die -a,--listening Option gesetzt ist.&lt;br /&gt;
''VERBINDUNGSAUFBAU''&lt;br /&gt;
     Auf dem Socket wird gerade eine Verbindung aufgebaut.&lt;br /&gt;
''VERBUNDEN''&lt;br /&gt;
     Auf dem Socket ist Verbindung aufgebaut.&lt;br /&gt;
''VERBINDUNGSABBAU''&lt;br /&gt;
     Die Verbindung des Sockets wird gerade abgebaut.&lt;br /&gt;
''(empty)''&lt;br /&gt;
     Der Socket hat keine Verbundung zu einem anderen Socket.&lt;br /&gt;
''UNKNOWN''&lt;br /&gt;
     Ein Socket sollte niemals in diesem Zustand sein.&lt;br /&gt;
&lt;br /&gt;
'''PID/Programmname'''&lt;br /&gt;
&lt;br /&gt;
Prozess-ID und Programmname des Programs, das diesen Socket hält. Details&lt;br /&gt;
siehe oben unter Aktive Internetverbindungen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Pfad'''&lt;br /&gt;
&lt;br /&gt;
Zeigt den Pfadnamen an, über den der entsprechende Prozess in den Socket&lt;br /&gt;
eingebunden ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Aktive IPX'''-Sockets&lt;br /&gt;
&lt;br /&gt;
(Dieser Abschnitt sollte von jemandem geschrieben werden, der davon Ahnung&lt;br /&gt;
hat.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Aktive NET/ROM-Verdingungen'''&lt;br /&gt;
&lt;br /&gt;
(Dieser Abschnitt sollte von jemandem geschrieben werden, der davon Ahnung&lt;br /&gt;
hat.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Aktive AX.25-Verbindungen'''&lt;br /&gt;
&lt;br /&gt;
(Dieser Abschnitt sollte von jemandem geschrieben werden, der davon Ahnung&lt;br /&gt;
hat.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''BEMERKUNGEN'''&lt;br /&gt;
&lt;br /&gt;
Seit der Kernel Version 2.2 zeigt netstat -i keine Schnittstellenstatistiken von&lt;br /&gt;
Schnittstellenaliasen mehr an. Um Statistiken per Schnittstelle zur erhalten,&lt;br /&gt;
müssen jetzt mit dem ipchains(8) Befehl explizite Regeln zugefügt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''DATEIEN'''&lt;br /&gt;
&lt;br /&gt;
''/etc/services'' -- Die Zuordungstabelle für Netzwerksdienste&lt;br /&gt;
&lt;br /&gt;
''/proc/net/dev'' -- Informationen über Netzwerksschnittstellen&lt;br /&gt;
&lt;br /&gt;
''/proc/net/raw'' -- Informationen über RAW-Sockets&lt;br /&gt;
&lt;br /&gt;
''/proc/net/tcp'' -- Informationen über TCP-Sockets&lt;br /&gt;
&lt;br /&gt;
''/proc/net/udp'' -- Informationen über UDP-Sockets&lt;br /&gt;
&lt;br /&gt;
''/proc/net/igmp'' -- IGMP-bezogene Informationen&lt;br /&gt;
&lt;br /&gt;
''/proc/net/unix'' -- Informationen über UNIX-Sockets&lt;br /&gt;
&lt;br /&gt;
''/proc/net/ipx'' -- Informationen über IPX-Sockets&lt;br /&gt;
&lt;br /&gt;
''/proc/net/ax25'' -- Informationen über AX25-Sockets&lt;br /&gt;
&lt;br /&gt;
''/proc/net/appeltalk'' -- Informationen über Appletalk-/DDP-Sockets&lt;br /&gt;
&lt;br /&gt;
''/proc/net/nr'' -- Informationen über NET/ROM-Sockets&lt;br /&gt;
&lt;br /&gt;
''/proc/net/route'' -- Informationen zu Kernelrouten&lt;br /&gt;
&lt;br /&gt;
''/proc/net/ax25_route'' -- Kernelinformationen zum AX25-Routen&lt;br /&gt;
&lt;br /&gt;
''/proc/net/ipx_route'' -- Kernelinformationen zum IPX-Routen&lt;br /&gt;
&lt;br /&gt;
''/proc/net/nr_nodes'' -- Kernelliste der NET/ROM-Knoten&lt;br /&gt;
&lt;br /&gt;
''/proc/net/nr_neigh'' -- Kernelliste der NET/ROM-Nachbarn&lt;br /&gt;
&lt;br /&gt;
''/proc/net/ip_masquerade'' -- Liste der maskierten Verbindungen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''SIEHE AUCH'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
route(8), ifconfig(8), ipfw(4), ipfw(8), ipfwadm(8) ipchains(8)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''PROBLEME'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ändert sich der Zustand des Sockets während er gerade angezeigt wird, so&lt;br /&gt;
kann unsinnige Information ausgegeben werden. Dies ist jedoch&lt;br /&gt;
unwahrscheinlich.&lt;br /&gt;
Die '''netstat -i''' die beschrieben wird sollte nach einigem Säubern der BETA-&lt;br /&gt;
Version des Codes des Net-Tools Packets funktionieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ARP==&lt;br /&gt;
&lt;br /&gt;
'''NAME'''&lt;br /&gt;
&lt;br /&gt;
arp - Manipulation des ARP-Caches&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''SYNOPSIS'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''arp [-vn] [-H Typ] [-i Schnittstelle] -a [Rechnername]'''&lt;br /&gt;
&lt;br /&gt;
'''arp [-v] [-i if] -d Rechnername [pub]'''&lt;br /&gt;
&lt;br /&gt;
'''arp [-v] [-H Typ] [-i Schnittstelle] -s Rechnername hw_adr [temp]'''&lt;br /&gt;
&lt;br /&gt;
'''arp [-v] [-H Typ] [-i Interface] -s Rechnername hw_adr [netmask nm]&lt;br /&gt;
'''pub'''''&lt;br /&gt;
&lt;br /&gt;
'''arp [-v] [-H Typ] [-i Schnittstelle] -Ds Rechnername ifa [netmask nm]&lt;br /&gt;
'''pub'''''&lt;br /&gt;
&lt;br /&gt;
'''arp [-vnD] [-H Typ] [-i Schnittstelle] -f [Dateiname]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;BESCHREIBUNG&amp;lt;/big&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
'''Arp''' kann den ARP-Cache des Kernels auf verschiedene Arten manipulieren. Die&lt;br /&gt;
hauptsächliche Verwendung ist es Adresszuordnungseinträge zu löschen und&lt;br /&gt;
von Hand neue zu erzeugen. Zum Zweck der Fehlersuche ist möglich mit dem&lt;br /&gt;
'''arp''' Programm den Inhalt des ARP-Caches vollständig auszugeben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''OPTIONEN'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''-v, --verbose'''&lt;br /&gt;
      Ausführlichere Ausgaben.&lt;br /&gt;
'''-n, --numeric'''&lt;br /&gt;
      macht numerische Adressausgaben statt zu versuchen, den symbolischen&lt;br /&gt;
      Rechner-, Port- oder Benutzernamen zu ermitteln.&lt;br /&gt;
'''-H type, --hw-type type'''&lt;br /&gt;
      Beim Setzen oder Auslesen des ARP-Caches schränkt diese Option ein, auf&lt;br /&gt;
      welcher Klasse von Einträgen arp operieren soll. Der Standardwert dieses&lt;br /&gt;
      Arguments ist ether (d.h. Hardwarecode 0x01 für IEEE 802.3 10Mbps&lt;br /&gt;
      Ethernet). Andere mögliche Werte sind Netzwerkstechnologien so wie z.B.&lt;br /&gt;
      ARCnet (arcnet) , PROnet (pronet) , AX.25 (ax25) and NET/ROM&lt;br /&gt;
      (netrom).&lt;br /&gt;
'''-a [Rechnername], --display [Rechnername]'''&lt;br /&gt;
      Zeigt die Einträge der angegebenen Rechner an. Wird kein hostname-&lt;br /&gt;
      Argument verwendet, so werden alle Einträge aufgelistet.&lt;br /&gt;
'''-d Rechnername, --delete Rechnername'''&lt;br /&gt;
      Alle Einträge für den angegebenen Host entfernen. Dies kann z.B. benutzt&lt;br /&gt;
      werden, wenn ein System angehalten wird.&lt;br /&gt;
'''-D, --use-device'''&lt;br /&gt;
      Die Hardwareadresse der Netzwerksschnittstelle '''ifa''' verwenden.&lt;br /&gt;
'''-i If, --device Schnittstelle'''&lt;br /&gt;
      Eine Netzwerksschnittstelle auswählen. Es werden nur Einträge für die&lt;br /&gt;
      angegebene Schnittstelle ausgedruckt. Beim Setzen von von permanenten&lt;br /&gt;
      oder temporären Einträgen wird diese Schnittstelle mit dem Eintrag&lt;br /&gt;
      assoziiert. Wird diese Option nicht verwendet, so versucht der Kernel auf&lt;br /&gt;
      Basis der Routentabelle eine Schnittstelle auszuwählen. Für '''pub''' Einträge&lt;br /&gt;
      ist die angegebene Schnittstelle diejenige, auf der ARP-Anfragen&lt;br /&gt;
      beantwortet werden.&lt;br /&gt;
      '''ANMERKUNG''': Diese Schnittstelle muss eine andere sein als die, auf die&lt;br /&gt;
      die IP-Datagramme weitergeleitet werden.&lt;br /&gt;
'''-s Rechnername hw_addr, --set Rechnername'''&lt;br /&gt;
      Erzeugt manuel einen ARP Adresseintrag für den Rechner '''Rechnername'''&lt;br /&gt;
      in dem die Hardwareadresse auf '''hw_addr''' gesetzt ist. Das genaue Format&lt;br /&gt;
      der Hardwareadresse ist abhängig von der Hardwareklasse aber für die&lt;br /&gt;
      meisten Klassen kann man davon ausgehen, dass die übliche Darstellung&lt;br /&gt;
      verwendet wird. Für die Ethernetklasse sind dies sechs hexadezimale, von&lt;br /&gt;
      Doppelpunkten getrennte Bytes. Beim Zufügen von Proxy-ARP-Enträgen&lt;br /&gt;
      (das sind die mit der gesetzten '''pub'''lizieren Flagge) kann die '''Netmaske'''&lt;br /&gt;
      für ARP-Einträge für ganze Subnetze angegeben werde. Von dieser Praxis&lt;br /&gt;
      wird abgeraten. Sie wird von älteren Kerneln unterstützt, da sie&lt;br /&gt;
      gelegentlich nützlich ist. Wird die '''temp''' Flagge nicht angegeben, so&lt;br /&gt;
      werden die erzeugten Einträge nicht dauerhaft in den ARP-Cache&lt;br /&gt;
      eingetragen.&lt;br /&gt;
      '''ANMERKUNG''': Ab der Kernelversion 2.2.0 ist es nicht mehr möglich ARP-&lt;br /&gt;
      Einträge für ganze Teilnetze zu erzeugen. Stattdessen wird automatisches&lt;br /&gt;
      Proxy ARP durchgeführt, d.h. wenn eine Route existiert und Forwarding&lt;br /&gt;
      eingeschaltet ist wird automatisch ein temporärer Proxyarpeintrag erzeugt.&lt;br /&gt;
      Siehe auch arp(7) für mehr Details.&lt;br /&gt;
'''-f Dateiname, --file Dateiname'''&lt;br /&gt;
      Ähnlich der -s Option, ausser, dass diesmal die Adressinformation aus der&lt;br /&gt;
      Datei '''Dateiname''' verwendet wird. Dies kann verwendet werden, wenn&lt;br /&gt;
      ARP-Einträge für viele Rechner erzeugt werden müssen. Der Name dieser&lt;br /&gt;
      Datei ist oft /etc/ethers, aber dies ist nicht offizieil standardisiert. Wenn&lt;br /&gt;
      kein Dateinamen angeben ist wird /etc/ethers benutzt.&lt;br /&gt;
      &lt;br /&gt;
      Das Format der Datei ist einfach; es enthält nur ASCII-Textzeilen, die aus&lt;br /&gt;
      einem Rechnernamen und einer Hardwareadresse, getrennt von einem&lt;br /&gt;
      Zwischenraum, bestehen. Zusätzlich können die Flaggen '''pub''', '''temp''' and&lt;br /&gt;
      '''netmask''' angegeben werden.&lt;br /&gt;
&lt;br /&gt;
Überall, wo '''Rechnername''' erwartet wird, kann auch eine '''IP-Adresse''' in Form&lt;br /&gt;
eines durch Punkte getrennten Dezimalquadrupels angegeben werden. Aus&lt;br /&gt;
Kompatiblitätsgründen können Rechnername und die Hardwareadresse auch&lt;br /&gt;
vertauscht werden.&lt;br /&gt;
Jeder vollständige Eintrag wird im ARP-Cache mit der C Flagge markiert.&lt;br /&gt;
Permanente Einträge werden mit '''M''' und zu publizierende Einträge mit der P&lt;br /&gt;
Flagge.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''DATEIEN'''&lt;br /&gt;
&lt;br /&gt;
''/proc/net/arp,''&lt;br /&gt;
&lt;br /&gt;
''/etc/networks''&lt;br /&gt;
&lt;br /&gt;
''/etc/hosts''&lt;br /&gt;
&lt;br /&gt;
''/etc/ethers''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''SIEHE AUCH'''&lt;br /&gt;
&lt;br /&gt;
ethers(5), rarp(8), route(8), ifconfig(8), netstat(8)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==telnet==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''NAME'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
telnet – Benutzer-Schnittstelle zum TELNET Protokoll&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''SYNOPSIS'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''telnet [-S tos] [-e Fluchtzeichen] [-l Benutzer] [-n tracefile] [host [port]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''BESCHREIBUNG'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Programm telnet wird als Benutzerschnittstelle für die interaktive&lt;br /&gt;
Kommunikation mit einem anderen Netzwerkrechners mittels Verwendung des&lt;br /&gt;
telnet-Protokolls verwendet.Es strtet im Befehlsmodus, wo die&lt;br /&gt;
Eigabeaufforderung 'telnet&amp;gt;' angezeigt wird. Wenn telnet mit 'host-argument'&lt;br /&gt;
aufgerufen wird, wird der Befehl 'open' mit diesen Argumenten ausgeführt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''OPTIONEN'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''-a'''&lt;br /&gt;
     Durchführung einer automatischen Login-Prozedur auf dem entferneten&lt;br /&gt;
     System.&lt;br /&gt;
'''-d'''&lt;br /&gt;
     schaltet Debugging auf Socket-Ebene ein.&lt;br /&gt;
'''-e [Fluchtzeichen]'''&lt;br /&gt;
     Bestimmt Fluchtzeichen, mit dem die Telnet-Sitzung unterbrochen werden&lt;br /&gt;
     kann. Wird die Option -e ohne Angabe eines Fluchtzeichens verwendet,&lt;br /&gt;
     wird das vordefinierte Fluchtzeichen gelöscht.&lt;br /&gt;
'''-l Benutzer'''&lt;br /&gt;
     Der angegebene Benutzer wird, wenn die Verbindung zu einem entfernten&lt;br /&gt;
     System aufgebaut wird, als User für die Login-Prozedur übergeben (System&lt;br /&gt;
     muss die Option 'Environ' unterstützen).&lt;br /&gt;
'''-n tracefile'''&lt;br /&gt;
     Öffnet das angegebene Tracefile und schreibt Informationen zu einer&lt;br /&gt;
     TN3270-verbindung mit, wenn diese Variante unterstützt wird.&lt;br /&gt;
'''-r'''&lt;br /&gt;
     Emuliert rlogin. Das voreingestellt Escape-Zeichen ist eine Tilde. Ein&lt;br /&gt;
     Escape-Zeichen gefolgt von eienm Punkt führt zu eienm Abbruch der&lt;br /&gt;
     Verbindung. Ein ] (das voreingestellte Escape-Zeichen von telnet) erzeugt&lt;br /&gt;
     eine telnet-Eingabeaufforderung. Die Codes werden nur am Anfang einer Zeile verstanden.&lt;br /&gt;
'''-8'''&lt;br /&gt;
     Schaltet 8-Bit-Betrieb ein.&lt;br /&gt;
'''-E'''&lt;br /&gt;
     Schaltet die Escape-zeichen Funktionalität ab.&lt;br /&gt;
'''-L'''&lt;br /&gt;
     Legt einen 8-Bit-datenpfad für dei Ausgabe fest.&lt;br /&gt;
'''-S tos'''&lt;br /&gt;
     Setzt die Type-of-Service-Option (TOS) im IP-Protokoll für die telnet-&lt;br /&gt;
     verbindung auf den Wert tos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Befehle'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Strg – Z'''&lt;br /&gt;
     Hält telnet an&lt;br /&gt;
'''close'''&lt;br /&gt;
     schliesst eien laufende Sitzung&lt;br /&gt;
'''display Argument'''&lt;br /&gt;
     Zeigt Einstellungen für alle oder für die als Argument angegebenen set&lt;br /&gt;
     und toggle Werte an&lt;br /&gt;
'''environ [Argumente[ ]]'''&lt;br /&gt;
     Manipuliert Variablen, die über die Telnet Environ-Option geschickt werden&lt;br /&gt;
     können&lt;br /&gt;
'''logout'''&lt;br /&gt;
     Unterstützt derv entfernte Host den logout-Befehl, wird die telnet-Sitzung&lt;br /&gt;
     beendet.&lt;br /&gt;
'''open [-l User] Host [Port]'''&lt;br /&gt;
     Öffnet eine Verbindung zum angegebenen Host. Wenn kein spezieller Port&lt;br /&gt;
     angegeben ist, wird der Kontakt über den Standardport von Telnet (23/TCP)&lt;br /&gt;
     hergestellt.&lt;br /&gt;
'''quit'''&lt;br /&gt;
     schliesst alle offenen telnet-Sitzungen und beendet das Programm&lt;br /&gt;
'''status'''&lt;br /&gt;
     zeigt aktuellen Status an. Der Netzwerkrechner, zu dem eine Verbindung&lt;br /&gt;
     besteht, und der aktuelle Modus werden ausgegeben&lt;br /&gt;
'''send''' Argumente &lt;br /&gt;
     Sendet Zeichensequenzen zum entfernten Rechner.&lt;br /&gt;
'''toggle''' Argumente&lt;br /&gt;
    Schaltet verschiedene Flags zur Steuerung der Telnet-Reaktion auf&lt;br /&gt;
    Ergebnisse.&lt;br /&gt;
&lt;br /&gt;
==ping==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''NAME'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ping - sendet ICMP ECHO_REQUEST-Pakete an Netzwerk-Hosts&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''SYNOPSIS'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ping       [-dfnqrvR] [-c count] [-i wait] [-l preload] [-p pattern] [-s packetsize]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''BESCHREIBUNG'''&lt;br /&gt;
&lt;br /&gt;
Ping benutzt das bei ICMP-Protokollen obligatorische ECHO_REQUEST Datagram&lt;br /&gt;
um eine ICMP ECHO_RESPONSE von einem Host oder Gateway zu erhalten.&lt;br /&gt;
ECHO_REQUEST Datagramme (pings) bestehen aus IP und ICMP-Header gefolgt&lt;br /&gt;
von einem 'struct timeval' und einer belibigen Anzahl von 'pad bytes', die zum&lt;br /&gt;
Auffüllen des Paketes dienen.&lt;br /&gt;
Die Optionen lauten:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''-c Anzahl'''&lt;br /&gt;
&lt;br /&gt;
Stoppe nach (und Erhalt) Anzahl ECHO_RESPONSE Paketen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''-f'''&lt;br /&gt;
&lt;br /&gt;
Flood ping. Sendet Pakete so schnell wie sie zurückkommen oder 100&lt;br /&gt;
Stück pro Sekunde, je nachdem was mehr ist. Für jedes gesendete&lt;br /&gt;
ECHO_REQUEST wird ein '.'      ausgegeben, für jedes erhaltene ECHO_REPLY&lt;br /&gt;
ein 'backspace'. Dies ermöglicht eine      schnelle Anzeige der Anzahl der&lt;br /&gt;
'gedroppten' Pakete. Die Option steht nur dem Super-             User zur&lt;br /&gt;
Verfügung. Sie kann grosse Auswirkungen auf die Geschwindigkeit eines&lt;br /&gt;
Netzwerkes haben und soltte mit Vorsicht verwendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''-i Wartezeit'''&lt;br /&gt;
&lt;br /&gt;
Warte 'Wartezeit' Sekunden zwischen dem Senden einzelner Pakete.&lt;br /&gt;
Standard ist eine    Wartezeit von einer Sekunde zwischen jedem Paket. Die&lt;br /&gt;
Option ist nicht kompatibel    mit der -f -Option&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''-l preload'''&lt;br /&gt;
&lt;br /&gt;
Wird diese Option verwendet sendet ping die gewählte Anzahl von&lt;br /&gt;
Paketen so schnell wie möglich, bevor es zu seiner normalen Verhaltensweise&lt;br /&gt;
zurückkehrt. Die Option        steht nur dem Super-User zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''-n'''&lt;br /&gt;
&lt;br /&gt;
Nur numerische Ausgabe. Es wird kein Versuch unternommen&lt;br /&gt;
symbolische Hostnamen für Host-Adressen aufzulösen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''-p pattern'''&lt;br /&gt;
&lt;br /&gt;
man kann bis zu 16 'pad bytes' angeben um das zu sendende Paket&lt;br /&gt;
aufzufüllen. Dies    kann bei der Diagnose von datenabhängigen Problemen in&lt;br /&gt;
einem Netzwerk nützlich sein. Mit '-p ff' zum Beispiel wird das gesendete&lt;br /&gt;
Paket komplett gefüllt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''-q'''&lt;br /&gt;
&lt;br /&gt;
Es wird nichts angezeigt ausser der Zusammenfassung beim Start&lt;br /&gt;
und beim Beenden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''-R'''&lt;br /&gt;
&lt;br /&gt;
Aufzeichnungsroute. Erfasst die RECORD_ROUTE Option im&lt;br /&gt;
ECHO_REQUEST Packet und zeigt den route buffer bei erhaltenen Paketen.&lt;br /&gt;
Der IP-Header ist gross genug für neun solcher Routen. Viele Hosts&lt;br /&gt;
ignorieren oder verwerfen diese Option.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''-r'''&lt;br /&gt;
&lt;br /&gt;
Umgehe sie normale Routing-Tabelle und versende direkt an den&lt;br /&gt;
Host im eingebundenen Netzwerk. Ist der Host nicht in einem direkt&lt;br /&gt;
eingebundenen Netzwerk wird eine Fehlermeldung zurückgegeben. Die&lt;br /&gt;
Option kann verwendet werden um einen lokalen Host über ein Interface&lt;br /&gt;
anzupingen, durch das keine Route läuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''-s Paketgrösse'''&lt;br /&gt;
&lt;br /&gt;
Legt die Anzahl der zu sendenden Datenbytes fest. Standard ist 56&lt;br /&gt;
(ergibt sich, wenn 64 ICMP data-bytes mit den 8 bytes der ICMP-Header&lt;br /&gt;
Daten kombiniert werden)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''-v''' &lt;br /&gt;
&lt;br /&gt;
geschwätzige Ausgabe. Auch andere ICMP-Pakete als&lt;br /&gt;
ECHO_RESPONSE die empfangen wurden, werden gelistet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''SIEHE AUCH'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
netstat, ifconfig, route&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ethereal/wireshark==&lt;br /&gt;
&lt;br /&gt;
Ethereal ist ein freier Netzwerkprotokollanalysator. Er erlaubt es sowohl Daten&lt;br /&gt;
im laufenden Netzwerkbetrieb zu analysieren, als auch gesammelte Daten aus&lt;br /&gt;
einem Capture-File zu lesen. Mit diesem Tool lassen sich Details über jedes&lt;br /&gt;
einzelne TCP/IP-Paket anzeigen. Zusätzlich verfügt Ethereal über&lt;br /&gt;
leistungsfähige Analyse- und Summary-Funktionen sowie eine eigene Sprache&lt;br /&gt;
zum Filtern von Netzwerkpaketen.&lt;br /&gt;
Um Ethereal wirklich effizient anzuwenden, benötigen Sie allerdings Know-how&lt;br /&gt;
über die zu analysierenden Protokolle. Für den gelegentlichen Check, ob etwa&lt;br /&gt;
ein Tool &amp;quot;nach Hause telefoniert&amp;quot;, reicht Basiswissen. Das einzige Manko an&lt;br /&gt;
Ethereal ist die etwas umständliche Definition der Filter.&lt;br /&gt;
Die Installation unter Debian erfolgt als 'root' mit dem Befehl 'apt-get install&lt;br /&gt;
ethereal'. Gestartet wird durch Eingabe von 'ethereal' an der Konsole. Will man&lt;br /&gt;
'ethereal' auch als 'normaler' User starten, sollte man mit 'visudo' die Datei&lt;br /&gt;
'/etc/sudoers' etwa folgendermassen editieren:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Bild:ethereal.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinter 'User_Alias' folgt der Eintrag des priviligierten Benutzers, hinter&lt;br /&gt;
'Cmd_Alias' die entsprechende Anwendung. Am Ende werden die Einträge&lt;br /&gt;
miteinander verknüpft.Durch die Einstellungen im obigen Beispiel ist auch die&lt;br /&gt;
Eingabe eines Passwortes nicht nötig.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nach dem Start sieht man folgendes Fenster:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Bild:ethereal2.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Durch klicken auf 'Capture' und 'Start' gelngt man in folgendes Menu, das eine&lt;br /&gt;
Anzahl verschiedener Optionen anbietet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Bild:ethereal3.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter Interface wählt man das entsprechende Interface aus (hier 'eth0'). Falls&lt;br /&gt;
die Capture-Session nicht manuell beendet werden soll, kann man dies unter&lt;br /&gt;
Count (Anzahl der aufgezeichneten Pakete), File size (Größe der temporären&lt;br /&gt;
Stream-Datei) und Duration (Dauer der Capture-„Session) einstellen.&lt;br /&gt;
Wenn man die Pakete im promiscuous mode aufzeichnet, bringt man die Karte&lt;br /&gt;
dazu auch Pakete zu empfangen bzw. „durchzulassen“ die gar nicht an sie&lt;br /&gt;
bestimmt sind. Durch Angabe eines Filters lässt sich die erfasste Datenmenge&lt;br /&gt;
zur besseren Übersicht einschränken. Eine IP-Adresse wird mit dem&lt;br /&gt;
Schlüsselwort 'host' ergänzt um eine Richtungsangabe ('dst' für das Ziel der&lt;br /&gt;
Pakete, 'src' für die Quelle) angegeben. Man kann auch mehrere Filterkriterien&lt;br /&gt;
mit 'and' bzw. 'or' verknüpfen und durch eine Klammer gruppieren. Im Feld&lt;br /&gt;
'Capture file' gibt man die Datei an, in der 'ethereal' den Datenverkehr ablegt. .&lt;br /&gt;
Mit „Update list of packets in real time“ kann man sich die Pakete in Echtzeit&lt;br /&gt;
anzeigen lassen, wobei hier die Filterfunktionen etc. dementsprechend&lt;br /&gt;
langsamer ablaufen, da ständig neue Pakete hinzukommen (außerdem kann es&lt;br /&gt;
hier zu Drops führen, da der Rechner unter Umständen stark belastet wird).&lt;br /&gt;
Die Optionen „Enable MAC name resolution“, „Enable network name&lt;br /&gt;
resolution“, „Enable&lt;br /&gt;
transport name resolution“ sollte man deaktivieren, da das Programm sonst&lt;br /&gt;
versucht die entsprechenden „Namen“ aufzulösen, was natürlich nicht (immer)&lt;br /&gt;
möglich ist und zu&lt;br /&gt;
einer extremen Verlangsamung der Auswertung führen kann (da es für jede&lt;br /&gt;
Anfrage einen&lt;br /&gt;
timeout-Wert gibt, der erst erreicht werden muss).&lt;br /&gt;
Nachdem man auf „OK“ geklickt hat beginnt die Aufzeichnung, dabei sieht man&lt;br /&gt;
wieder eine&lt;br /&gt;
Art „Statistik“:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Bild:ethereal4.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man beendet die Aufzeichnung durch einen Klick auf 'Stop'. Damit wird die&lt;br /&gt;
aufgezeichnete Datei geladen. Durch anklicken einer Zeile kann man sich nun&lt;br /&gt;
Details über entsprechende Pakete anzeigen lassen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im oberen Fenster sieht man die Zeit, den Quell- und den Zielrechner, das&lt;br /&gt;
Protokoll und Informationen. Im mittleren Fenster schlüsselt Ethereal die&lt;br /&gt;
Struktur des ausgewählten Paketes nach Protokollschichten auf. Man kann sich&lt;br /&gt;
durch Klicken auf das + Zeichen Informationen über die Protokolltypen im&lt;br /&gt;
Deteil anzeigen lassen. Der untere Teil zeigt das oben ausgewählte Paket als&lt;br /&gt;
Hex- und ASCII-Dump.&lt;br /&gt;
Eine interessante Funktion ist 'Follow TCP Stream', mit dem der Ablauf eines&lt;br /&gt;
Protokolls nachvollziehbar ist. Man markiert dazu das gewünschte Paket. Mit&lt;br /&gt;
einem Klick auf die rechte Maustste öffnet sich ein Menu, in dem der erste&lt;br /&gt;
Eintrag 'Follow TCP Stream' ist. Mit dem Anklicken öffnet sich ein Fenster, das&lt;br /&gt;
den Inhalt des TCP-Streams (in der unteren Menuleiste können die&lt;br /&gt;
Verbindungspartner ausgewählt werden) anzeigt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Bild:ethereal5.png]]&amp;lt;/center&amp;gt;&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Debian_Samba4_ADS_Domaincontroller&amp;diff=4663</id>
		<title>Debian Samba4 ADS Domaincontroller</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Debian_Samba4_ADS_Domaincontroller&amp;diff=4663"/>
		<updated>2014-07-18T09:58:39Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: /* /etc/bind/named.conf.options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Installation=&lt;br /&gt;
==Interface anpassen==&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
address 192.168.240.199&lt;br /&gt;
netmask 255.255.248.0&lt;br /&gt;
gateway 192.168.240.100&lt;br /&gt;
dns-nameservers 192.168.240.199 8.8.8.8&lt;br /&gt;
dns-search xinux.lan&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==hosts anpassen==&lt;br /&gt;
 vi /etc/hosts&lt;br /&gt;
 127.0.0.1       localhost&lt;br /&gt;
 192.168.240.199 fenetre fenetre.xinux.lan&lt;br /&gt;
 echo fenetre.xinux.lan &amp;gt; /etc/hostname&lt;br /&gt;
 reboot&lt;br /&gt;
&lt;br /&gt;
==samba4 installieren==&lt;br /&gt;
 apt-get install samba smbclient winbind ntp libnss-winbind krb5-user acl&lt;br /&gt;
&lt;br /&gt;
==Domain anlegen==&lt;br /&gt;
vorher das löschen:&lt;br /&gt;
 rm /etc/samba/smb.conf /var/lib/samba/private/sam.ldb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' realm, domain und adminpass''' sollten/können angepasst werden!&lt;br /&gt;
 samba-tool domain provision --realm=xinux.lan --domain=xinux --adminpass=&amp;quot;Z0pp0Trump&amp;quot; --server-role=dc --dns-backend=SAMBA_INTERNAL&lt;br /&gt;
&lt;br /&gt;
oder&lt;br /&gt;
&lt;br /&gt;
===install bind===&lt;br /&gt;
 apt-get remove apparmor&lt;br /&gt;
 reboot&lt;br /&gt;
 apt-get install bind9 &lt;br /&gt;
 echo 'include &amp;quot;/var/lib/samba/private/named.conf&amp;quot;;' &amp;gt;&amp;gt; /etc/bind/named.conf&lt;br /&gt;
====/etc/bind/named.conf.options==== &lt;br /&gt;
 tkey-gssapi-keytab &amp;quot;/var/lib/samba/private/dns.keytab&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
====/var/lib/samba/private/named.conf====&lt;br /&gt;
dlz &amp;quot;AD DNS Zone&amp;quot; {&lt;br /&gt;
     database &amp;quot;dlopen /usr/lib/x86_64-linux-gnu/samba/bind9/dlz_bind9_9.so&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' realm, domain und adminpass''' sollten/können angepasst werden!&lt;br /&gt;
 samba-tool domain provision --realm=xinux.lan --domain=xinux --adminpass=&amp;quot;Z0pp0Trump&amp;quot; --server-role=dc --dns-backend=BIND9_DLZ&lt;br /&gt;
&lt;br /&gt;
==Reboot==&lt;br /&gt;
 reboot&lt;br /&gt;
&lt;br /&gt;
==smbversion, share und auth check==&lt;br /&gt;
&lt;br /&gt;
===smbversion===&lt;br /&gt;
Diese sollten übereinstimmen:&lt;br /&gt;
 root@fenetre:~# samba -V&lt;br /&gt;
 Version 4.1.6-Ubuntu&lt;br /&gt;
 root@fenetre:~# smbclient -V&lt;br /&gt;
 Version 4.1.6-Ubuntu&lt;br /&gt;
&lt;br /&gt;
===shares anzeigen:===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fenetre:~# smbclient -L localhost -U%&lt;br /&gt;
Domain=[XINUX] OS=[Unix] Server=[Samba 4.1.6-Ubuntu]&lt;br /&gt;
&lt;br /&gt;
	Sharename       Type      Comment&lt;br /&gt;
	---------       ----      -------&lt;br /&gt;
	netlogon        Disk      &lt;br /&gt;
	sysvol          Disk      &lt;br /&gt;
	IPC$            IPC       IPC Service (Samba 4.1.6-Ubuntu)&lt;br /&gt;
Domain=[XINUX] OS=[Unix] Server=[Samba 4.1.6-Ubuntu]&lt;br /&gt;
&lt;br /&gt;
	Server               Comment&lt;br /&gt;
	---------            -------&lt;br /&gt;
&lt;br /&gt;
	Workgroup            Master&lt;br /&gt;
	---------            -------&lt;br /&gt;
	WORKGROUP &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Authentication check:===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fenetre:~# smbclient //localhost/netlogon -UAdministrator%&amp;quot;Z0pp0Trump&amp;quot; -c 'ls'&lt;br /&gt;
Domain=[XINUX] OS=[Unix] Server=[Samba 4.1.6-Ubuntu]&lt;br /&gt;
  .                                   D        0  Thu Apr 24 15:51:50 2014&lt;br /&gt;
  ..                                  D        0  Thu Apr 24 15:51:54 2014&lt;br /&gt;
&lt;br /&gt;
		52706 blocks of size 524288. 47502 blocks available&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DNS setzen==&lt;br /&gt;
===Forwarder eintragen===&lt;br /&gt;
 sudo vi  /etc/samba/smb.conf&lt;br /&gt;
füge hinzu: (Man kann natürlich auch seinen eigenen DNS angeben)&lt;br /&gt;
 dns forwarder = 192.168.240.21&lt;br /&gt;
&lt;br /&gt;
===Check===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DOMAIN=&amp;quot;xinux.lan&amp;quot;&lt;br /&gt;
CONTROLLER=&amp;quot;fenetre&amp;quot;&lt;br /&gt;
host -t SRV _ldap._tcp.$DOMAIN&lt;br /&gt;
_ldap._tcp.xinux.lan has SRV record 0 100 389 fenetre.xinux.lan.&lt;br /&gt;
&lt;br /&gt;
host -t SRV _kerberos._udp.$DOMAIN&lt;br /&gt;
_kerberos._udp.xinux.lan has SRV record 0 100 88 fenetre.xinux.lan.&lt;br /&gt;
&lt;br /&gt;
host -t A $CONTROLLER.$DOMAIN&lt;br /&gt;
fenetre.xinux.lan has address 192.168.240.199&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Kerberos==&lt;br /&gt;
 cp /var/lib/samba/private/krb5.conf  /usr/share/samba/setup/krb5.conf&lt;br /&gt;
&lt;br /&gt;
==Share hinzufügen==&lt;br /&gt;
 mkfs.ext4 /dev/vdb1&lt;br /&gt;
 mkdir /share&lt;br /&gt;
 echo &amp;quot;/dev/vdb1  /share   ext4 user_xattr,acl 0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab &lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
 mkdir -m 770 /share&lt;br /&gt;
 chmod g+s /share&lt;br /&gt;
 chown root:users /share&lt;br /&gt;
&lt;br /&gt;
 vi /etc/samba/smb.conf&lt;br /&gt;
füge das ein:&lt;br /&gt;
&lt;br /&gt;
 [share]&lt;br /&gt;
  directory_mode: parameter = 0700&lt;br /&gt;
  read only = no&lt;br /&gt;
  path = /share&lt;br /&gt;
  csc policy = documents&lt;br /&gt;
&lt;br /&gt;
==Share testen==&lt;br /&gt;
 root@fenetre:~# smbclient -L localhost -U% | grep share&lt;br /&gt;
 Domain=[XINUX] OS=[Unix] Server=[Samba 4.1.6-Ubuntu]&lt;br /&gt;
 Domain=[XINUX] OS=[Unix] Server=[Samba 4.1.6-Ubuntu]&lt;br /&gt;
 	share           Disk&lt;br /&gt;
==Winbind==&lt;br /&gt;
===winbind link setzen===&lt;br /&gt;
 ln -s /lib/x86_64-linux-gnu/libnss_winbind.so.2 /lib/x86_64-linux-gnu/libnss_winbind.so&lt;br /&gt;
&lt;br /&gt;
===nsswitch.conf ändern===&lt;br /&gt;
 passwd:         compat winbind&lt;br /&gt;
 group:          compat winbind&lt;br /&gt;
===ist winbind is &amp;quot;pingbar=== &lt;br /&gt;
 root@fenetre:~# wbinfo -p&lt;br /&gt;
 Ping to winbindd succeeded&lt;br /&gt;
&lt;br /&gt;
===anzeigen der userliste===&lt;br /&gt;
 root@fenetre:~# wbinfo -u&lt;br /&gt;
 Administrator&lt;br /&gt;
 Guest&lt;br /&gt;
 krbtgt&lt;br /&gt;
&lt;br /&gt;
===funtioniert nsswitch===&lt;br /&gt;
 root@fenetre:~# getent passwd | grep XINUX&lt;br /&gt;
 XINUX\Administrator:*:0:100::/home/XINUX/Administrator:/bin/false&lt;br /&gt;
 XINUX\Guest:*:3000011:3000012::/home/XINUX/Guest:/bin/false&lt;br /&gt;
 XINUX\krbtgt:*:3000017:100::/home/XINUX/krbtgt:/bin/false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
===Adminpasswort läuft nicht ab===&lt;br /&gt;
 samba-tool user setexpiry administrator --noexpiry&lt;br /&gt;
&lt;br /&gt;
===Kennwortrichtlinie in Samba 4 Domain deaktivieren===&lt;br /&gt;
 samba-tool domain passwordsettings set --complexity=off&lt;br /&gt;
 samba-tool domain passwordsettings set --history-length=0&lt;br /&gt;
 samba-tool domain passwordsettings set --min-pwd-age=0&lt;br /&gt;
 samba-tool domain passwordsettings set --max-pwd-age=0&lt;br /&gt;
 samba-tool domain passwordsettings set --min-pwd-length 0&lt;br /&gt;
===Adminpasswort setzen===&lt;br /&gt;
 samba-tool user setpassword Administrator&lt;br /&gt;
&lt;br /&gt;
===Kennwortrichtlinie in Samba 4 Domain anzeigen===&lt;br /&gt;
 samba-tool domain passwordsettings show&lt;br /&gt;
&lt;br /&gt;
=SeDiskOperatorPrivilege=&lt;br /&gt;
 net rpc rights grant 'XINUX\Domain Admins' SeDiskOperatorPrivilege -Uadministrator&lt;br /&gt;
&lt;br /&gt;
===Vorhandene Rechte lassen sich so Anzeige===	&lt;br /&gt;
 net rpc rights list accounts -Uadministrator&lt;br /&gt;
=[[Userverwaltung]]=&lt;br /&gt;
&lt;br /&gt;
=howto=&lt;br /&gt;
https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO&lt;br /&gt;
&lt;br /&gt;
=installation=&lt;br /&gt;
*http://ubuntuforums.org/showthread.php?t=2146198&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Debian_Samba4_ADS_Domaincontroller&amp;diff=4662</id>
		<title>Debian Samba4 ADS Domaincontroller</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Debian_Samba4_ADS_Domaincontroller&amp;diff=4662"/>
		<updated>2014-07-18T09:56:35Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: /* install bind */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Installation=&lt;br /&gt;
==Interface anpassen==&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
address 192.168.240.199&lt;br /&gt;
netmask 255.255.248.0&lt;br /&gt;
gateway 192.168.240.100&lt;br /&gt;
dns-nameservers 192.168.240.199 8.8.8.8&lt;br /&gt;
dns-search xinux.lan&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==hosts anpassen==&lt;br /&gt;
 vi /etc/hosts&lt;br /&gt;
 127.0.0.1       localhost&lt;br /&gt;
 192.168.240.199 fenetre fenetre.xinux.lan&lt;br /&gt;
 echo fenetre.xinux.lan &amp;gt; /etc/hostname&lt;br /&gt;
 reboot&lt;br /&gt;
&lt;br /&gt;
==samba4 installieren==&lt;br /&gt;
 apt-get install samba smbclient winbind ntp libnss-winbind krb5-user acl&lt;br /&gt;
&lt;br /&gt;
==Domain anlegen==&lt;br /&gt;
vorher das löschen:&lt;br /&gt;
 rm /etc/samba/smb.conf /var/lib/samba/private/sam.ldb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' realm, domain und adminpass''' sollten/können angepasst werden!&lt;br /&gt;
 samba-tool domain provision --realm=xinux.lan --domain=xinux --adminpass=&amp;quot;Z0pp0Trump&amp;quot; --server-role=dc --dns-backend=SAMBA_INTERNAL&lt;br /&gt;
&lt;br /&gt;
oder&lt;br /&gt;
&lt;br /&gt;
===install bind===&lt;br /&gt;
 apt-get remove apparmor&lt;br /&gt;
 reboot&lt;br /&gt;
 apt-get install bind9 &lt;br /&gt;
 echo 'include &amp;quot;/var/lib/samba/private/named.conf&amp;quot;;' &amp;gt;&amp;gt; /etc/bind/named.conf&lt;br /&gt;
====/etc/bind/named.conf.options==== &lt;br /&gt;
 api-keytab &amp;quot;/var/lib/samba/private/dns.keytab&amp;quot;;&lt;br /&gt;
====/var/lib/samba/private/named.conf====&lt;br /&gt;
dlz &amp;quot;AD DNS Zone&amp;quot; {&lt;br /&gt;
     database &amp;quot;dlopen /usr/lib/x86_64-linux-gnu/samba/bind9/dlz_bind9_9.so&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' realm, domain und adminpass''' sollten/können angepasst werden!&lt;br /&gt;
 samba-tool domain provision --realm=xinux.lan --domain=xinux --adminpass=&amp;quot;Z0pp0Trump&amp;quot; --server-role=dc --dns-backend=BIND9_DLZ&lt;br /&gt;
&lt;br /&gt;
==Reboot==&lt;br /&gt;
 reboot&lt;br /&gt;
&lt;br /&gt;
==smbversion, share und auth check==&lt;br /&gt;
&lt;br /&gt;
===smbversion===&lt;br /&gt;
Diese sollten übereinstimmen:&lt;br /&gt;
 root@fenetre:~# samba -V&lt;br /&gt;
 Version 4.1.6-Ubuntu&lt;br /&gt;
 root@fenetre:~# smbclient -V&lt;br /&gt;
 Version 4.1.6-Ubuntu&lt;br /&gt;
&lt;br /&gt;
===shares anzeigen:===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fenetre:~# smbclient -L localhost -U%&lt;br /&gt;
Domain=[XINUX] OS=[Unix] Server=[Samba 4.1.6-Ubuntu]&lt;br /&gt;
&lt;br /&gt;
	Sharename       Type      Comment&lt;br /&gt;
	---------       ----      -------&lt;br /&gt;
	netlogon        Disk      &lt;br /&gt;
	sysvol          Disk      &lt;br /&gt;
	IPC$            IPC       IPC Service (Samba 4.1.6-Ubuntu)&lt;br /&gt;
Domain=[XINUX] OS=[Unix] Server=[Samba 4.1.6-Ubuntu]&lt;br /&gt;
&lt;br /&gt;
	Server               Comment&lt;br /&gt;
	---------            -------&lt;br /&gt;
&lt;br /&gt;
	Workgroup            Master&lt;br /&gt;
	---------            -------&lt;br /&gt;
	WORKGROUP &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Authentication check:===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fenetre:~# smbclient //localhost/netlogon -UAdministrator%&amp;quot;Z0pp0Trump&amp;quot; -c 'ls'&lt;br /&gt;
Domain=[XINUX] OS=[Unix] Server=[Samba 4.1.6-Ubuntu]&lt;br /&gt;
  .                                   D        0  Thu Apr 24 15:51:50 2014&lt;br /&gt;
  ..                                  D        0  Thu Apr 24 15:51:54 2014&lt;br /&gt;
&lt;br /&gt;
		52706 blocks of size 524288. 47502 blocks available&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DNS setzen==&lt;br /&gt;
===Forwarder eintragen===&lt;br /&gt;
 sudo vi  /etc/samba/smb.conf&lt;br /&gt;
füge hinzu: (Man kann natürlich auch seinen eigenen DNS angeben)&lt;br /&gt;
 dns forwarder = 192.168.240.21&lt;br /&gt;
&lt;br /&gt;
===Check===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DOMAIN=&amp;quot;xinux.lan&amp;quot;&lt;br /&gt;
CONTROLLER=&amp;quot;fenetre&amp;quot;&lt;br /&gt;
host -t SRV _ldap._tcp.$DOMAIN&lt;br /&gt;
_ldap._tcp.xinux.lan has SRV record 0 100 389 fenetre.xinux.lan.&lt;br /&gt;
&lt;br /&gt;
host -t SRV _kerberos._udp.$DOMAIN&lt;br /&gt;
_kerberos._udp.xinux.lan has SRV record 0 100 88 fenetre.xinux.lan.&lt;br /&gt;
&lt;br /&gt;
host -t A $CONTROLLER.$DOMAIN&lt;br /&gt;
fenetre.xinux.lan has address 192.168.240.199&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Kerberos==&lt;br /&gt;
 cp /var/lib/samba/private/krb5.conf  /usr/share/samba/setup/krb5.conf&lt;br /&gt;
&lt;br /&gt;
==Share hinzufügen==&lt;br /&gt;
 mkfs.ext4 /dev/vdb1&lt;br /&gt;
 mkdir /share&lt;br /&gt;
 echo &amp;quot;/dev/vdb1  /share   ext4 user_xattr,acl 0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab &lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
 mkdir -m 770 /share&lt;br /&gt;
 chmod g+s /share&lt;br /&gt;
 chown root:users /share&lt;br /&gt;
&lt;br /&gt;
 vi /etc/samba/smb.conf&lt;br /&gt;
füge das ein:&lt;br /&gt;
&lt;br /&gt;
 [share]&lt;br /&gt;
  directory_mode: parameter = 0700&lt;br /&gt;
  read only = no&lt;br /&gt;
  path = /share&lt;br /&gt;
  csc policy = documents&lt;br /&gt;
&lt;br /&gt;
==Share testen==&lt;br /&gt;
 root@fenetre:~# smbclient -L localhost -U% | grep share&lt;br /&gt;
 Domain=[XINUX] OS=[Unix] Server=[Samba 4.1.6-Ubuntu]&lt;br /&gt;
 Domain=[XINUX] OS=[Unix] Server=[Samba 4.1.6-Ubuntu]&lt;br /&gt;
 	share           Disk&lt;br /&gt;
==Winbind==&lt;br /&gt;
===winbind link setzen===&lt;br /&gt;
 ln -s /lib/x86_64-linux-gnu/libnss_winbind.so.2 /lib/x86_64-linux-gnu/libnss_winbind.so&lt;br /&gt;
&lt;br /&gt;
===nsswitch.conf ändern===&lt;br /&gt;
 passwd:         compat winbind&lt;br /&gt;
 group:          compat winbind&lt;br /&gt;
===ist winbind is &amp;quot;pingbar=== &lt;br /&gt;
 root@fenetre:~# wbinfo -p&lt;br /&gt;
 Ping to winbindd succeeded&lt;br /&gt;
&lt;br /&gt;
===anzeigen der userliste===&lt;br /&gt;
 root@fenetre:~# wbinfo -u&lt;br /&gt;
 Administrator&lt;br /&gt;
 Guest&lt;br /&gt;
 krbtgt&lt;br /&gt;
&lt;br /&gt;
===funtioniert nsswitch===&lt;br /&gt;
 root@fenetre:~# getent passwd | grep XINUX&lt;br /&gt;
 XINUX\Administrator:*:0:100::/home/XINUX/Administrator:/bin/false&lt;br /&gt;
 XINUX\Guest:*:3000011:3000012::/home/XINUX/Guest:/bin/false&lt;br /&gt;
 XINUX\krbtgt:*:3000017:100::/home/XINUX/krbtgt:/bin/false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
===Adminpasswort läuft nicht ab===&lt;br /&gt;
 samba-tool user setexpiry administrator --noexpiry&lt;br /&gt;
&lt;br /&gt;
===Kennwortrichtlinie in Samba 4 Domain deaktivieren===&lt;br /&gt;
 samba-tool domain passwordsettings set --complexity=off&lt;br /&gt;
 samba-tool domain passwordsettings set --history-length=0&lt;br /&gt;
 samba-tool domain passwordsettings set --min-pwd-age=0&lt;br /&gt;
 samba-tool domain passwordsettings set --max-pwd-age=0&lt;br /&gt;
 samba-tool domain passwordsettings set --min-pwd-length 0&lt;br /&gt;
===Adminpasswort setzen===&lt;br /&gt;
 samba-tool user setpassword Administrator&lt;br /&gt;
&lt;br /&gt;
===Kennwortrichtlinie in Samba 4 Domain anzeigen===&lt;br /&gt;
 samba-tool domain passwordsettings show&lt;br /&gt;
&lt;br /&gt;
=SeDiskOperatorPrivilege=&lt;br /&gt;
 net rpc rights grant 'XINUX\Domain Admins' SeDiskOperatorPrivilege -Uadministrator&lt;br /&gt;
&lt;br /&gt;
===Vorhandene Rechte lassen sich so Anzeige===	&lt;br /&gt;
 net rpc rights list accounts -Uadministrator&lt;br /&gt;
=[[Userverwaltung]]=&lt;br /&gt;
&lt;br /&gt;
=howto=&lt;br /&gt;
https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO&lt;br /&gt;
&lt;br /&gt;
=installation=&lt;br /&gt;
*http://ubuntuforums.org/showthread.php?t=2146198&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Debian_Samba4_ADS_Domaincontroller&amp;diff=4661</id>
		<title>Debian Samba4 ADS Domaincontroller</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Debian_Samba4_ADS_Domaincontroller&amp;diff=4661"/>
		<updated>2014-07-18T09:54:58Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: /* Domain anlegen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Installation=&lt;br /&gt;
==Interface anpassen==&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
address 192.168.240.199&lt;br /&gt;
netmask 255.255.248.0&lt;br /&gt;
gateway 192.168.240.100&lt;br /&gt;
dns-nameservers 192.168.240.199 8.8.8.8&lt;br /&gt;
dns-search xinux.lan&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==hosts anpassen==&lt;br /&gt;
 vi /etc/hosts&lt;br /&gt;
 127.0.0.1       localhost&lt;br /&gt;
 192.168.240.199 fenetre fenetre.xinux.lan&lt;br /&gt;
 echo fenetre.xinux.lan &amp;gt; /etc/hostname&lt;br /&gt;
 reboot&lt;br /&gt;
&lt;br /&gt;
==samba4 installieren==&lt;br /&gt;
 apt-get install samba smbclient winbind ntp libnss-winbind krb5-user acl&lt;br /&gt;
&lt;br /&gt;
==Domain anlegen==&lt;br /&gt;
vorher das löschen:&lt;br /&gt;
 rm /etc/samba/smb.conf /var/lib/samba/private/sam.ldb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' realm, domain und adminpass''' sollten/können angepasst werden!&lt;br /&gt;
 samba-tool domain provision --realm=xinux.lan --domain=xinux --adminpass=&amp;quot;Z0pp0Trump&amp;quot; --server-role=dc --dns-backend=SAMBA_INTERNAL&lt;br /&gt;
&lt;br /&gt;
oder&lt;br /&gt;
&lt;br /&gt;
===install bind===&lt;br /&gt;
 apt-get install bind9&lt;br /&gt;
 echo 'include &amp;quot;/var/lib/samba/private/named.conf&amp;quot;;' &amp;gt;&amp;gt; /etc/bind/named.conf&lt;br /&gt;
====/etc/bind/named.conf.options==== &lt;br /&gt;
 api-keytab &amp;quot;/var/lib/samba/private/dns.keytab&amp;quot;;&lt;br /&gt;
====/var/lib/samba/private/named.conf====&lt;br /&gt;
dlz &amp;quot;AD DNS Zone&amp;quot; {&lt;br /&gt;
     database &amp;quot;dlopen /usr/lib/x86_64-linux-gnu/samba/bind9/dlz_bind9_9.so&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' realm, domain und adminpass''' sollten/können angepasst werden!&lt;br /&gt;
 samba-tool domain provision --realm=xinux.lan --domain=xinux --adminpass=&amp;quot;Z0pp0Trump&amp;quot; --server-role=dc --dns-backend=BIND9_DLZ&lt;br /&gt;
&lt;br /&gt;
==Reboot==&lt;br /&gt;
 reboot&lt;br /&gt;
&lt;br /&gt;
==smbversion, share und auth check==&lt;br /&gt;
&lt;br /&gt;
===smbversion===&lt;br /&gt;
Diese sollten übereinstimmen:&lt;br /&gt;
 root@fenetre:~# samba -V&lt;br /&gt;
 Version 4.1.6-Ubuntu&lt;br /&gt;
 root@fenetre:~# smbclient -V&lt;br /&gt;
 Version 4.1.6-Ubuntu&lt;br /&gt;
&lt;br /&gt;
===shares anzeigen:===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fenetre:~# smbclient -L localhost -U%&lt;br /&gt;
Domain=[XINUX] OS=[Unix] Server=[Samba 4.1.6-Ubuntu]&lt;br /&gt;
&lt;br /&gt;
	Sharename       Type      Comment&lt;br /&gt;
	---------       ----      -------&lt;br /&gt;
	netlogon        Disk      &lt;br /&gt;
	sysvol          Disk      &lt;br /&gt;
	IPC$            IPC       IPC Service (Samba 4.1.6-Ubuntu)&lt;br /&gt;
Domain=[XINUX] OS=[Unix] Server=[Samba 4.1.6-Ubuntu]&lt;br /&gt;
&lt;br /&gt;
	Server               Comment&lt;br /&gt;
	---------            -------&lt;br /&gt;
&lt;br /&gt;
	Workgroup            Master&lt;br /&gt;
	---------            -------&lt;br /&gt;
	WORKGROUP &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Authentication check:===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fenetre:~# smbclient //localhost/netlogon -UAdministrator%&amp;quot;Z0pp0Trump&amp;quot; -c 'ls'&lt;br /&gt;
Domain=[XINUX] OS=[Unix] Server=[Samba 4.1.6-Ubuntu]&lt;br /&gt;
  .                                   D        0  Thu Apr 24 15:51:50 2014&lt;br /&gt;
  ..                                  D        0  Thu Apr 24 15:51:54 2014&lt;br /&gt;
&lt;br /&gt;
		52706 blocks of size 524288. 47502 blocks available&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DNS setzen==&lt;br /&gt;
===Forwarder eintragen===&lt;br /&gt;
 sudo vi  /etc/samba/smb.conf&lt;br /&gt;
füge hinzu: (Man kann natürlich auch seinen eigenen DNS angeben)&lt;br /&gt;
 dns forwarder = 192.168.240.21&lt;br /&gt;
&lt;br /&gt;
===Check===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DOMAIN=&amp;quot;xinux.lan&amp;quot;&lt;br /&gt;
CONTROLLER=&amp;quot;fenetre&amp;quot;&lt;br /&gt;
host -t SRV _ldap._tcp.$DOMAIN&lt;br /&gt;
_ldap._tcp.xinux.lan has SRV record 0 100 389 fenetre.xinux.lan.&lt;br /&gt;
&lt;br /&gt;
host -t SRV _kerberos._udp.$DOMAIN&lt;br /&gt;
_kerberos._udp.xinux.lan has SRV record 0 100 88 fenetre.xinux.lan.&lt;br /&gt;
&lt;br /&gt;
host -t A $CONTROLLER.$DOMAIN&lt;br /&gt;
fenetre.xinux.lan has address 192.168.240.199&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Kerberos==&lt;br /&gt;
 cp /var/lib/samba/private/krb5.conf  /usr/share/samba/setup/krb5.conf&lt;br /&gt;
&lt;br /&gt;
==Share hinzufügen==&lt;br /&gt;
 mkfs.ext4 /dev/vdb1&lt;br /&gt;
 mkdir /share&lt;br /&gt;
 echo &amp;quot;/dev/vdb1  /share   ext4 user_xattr,acl 0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab &lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
 mkdir -m 770 /share&lt;br /&gt;
 chmod g+s /share&lt;br /&gt;
 chown root:users /share&lt;br /&gt;
&lt;br /&gt;
 vi /etc/samba/smb.conf&lt;br /&gt;
füge das ein:&lt;br /&gt;
&lt;br /&gt;
 [share]&lt;br /&gt;
  directory_mode: parameter = 0700&lt;br /&gt;
  read only = no&lt;br /&gt;
  path = /share&lt;br /&gt;
  csc policy = documents&lt;br /&gt;
&lt;br /&gt;
==Share testen==&lt;br /&gt;
 root@fenetre:~# smbclient -L localhost -U% | grep share&lt;br /&gt;
 Domain=[XINUX] OS=[Unix] Server=[Samba 4.1.6-Ubuntu]&lt;br /&gt;
 Domain=[XINUX] OS=[Unix] Server=[Samba 4.1.6-Ubuntu]&lt;br /&gt;
 	share           Disk&lt;br /&gt;
==Winbind==&lt;br /&gt;
===winbind link setzen===&lt;br /&gt;
 ln -s /lib/x86_64-linux-gnu/libnss_winbind.so.2 /lib/x86_64-linux-gnu/libnss_winbind.so&lt;br /&gt;
&lt;br /&gt;
===nsswitch.conf ändern===&lt;br /&gt;
 passwd:         compat winbind&lt;br /&gt;
 group:          compat winbind&lt;br /&gt;
===ist winbind is &amp;quot;pingbar=== &lt;br /&gt;
 root@fenetre:~# wbinfo -p&lt;br /&gt;
 Ping to winbindd succeeded&lt;br /&gt;
&lt;br /&gt;
===anzeigen der userliste===&lt;br /&gt;
 root@fenetre:~# wbinfo -u&lt;br /&gt;
 Administrator&lt;br /&gt;
 Guest&lt;br /&gt;
 krbtgt&lt;br /&gt;
&lt;br /&gt;
===funtioniert nsswitch===&lt;br /&gt;
 root@fenetre:~# getent passwd | grep XINUX&lt;br /&gt;
 XINUX\Administrator:*:0:100::/home/XINUX/Administrator:/bin/false&lt;br /&gt;
 XINUX\Guest:*:3000011:3000012::/home/XINUX/Guest:/bin/false&lt;br /&gt;
 XINUX\krbtgt:*:3000017:100::/home/XINUX/krbtgt:/bin/false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
===Adminpasswort läuft nicht ab===&lt;br /&gt;
 samba-tool user setexpiry administrator --noexpiry&lt;br /&gt;
&lt;br /&gt;
===Kennwortrichtlinie in Samba 4 Domain deaktivieren===&lt;br /&gt;
 samba-tool domain passwordsettings set --complexity=off&lt;br /&gt;
 samba-tool domain passwordsettings set --history-length=0&lt;br /&gt;
 samba-tool domain passwordsettings set --min-pwd-age=0&lt;br /&gt;
 samba-tool domain passwordsettings set --max-pwd-age=0&lt;br /&gt;
 samba-tool domain passwordsettings set --min-pwd-length 0&lt;br /&gt;
===Adminpasswort setzen===&lt;br /&gt;
 samba-tool user setpassword Administrator&lt;br /&gt;
&lt;br /&gt;
===Kennwortrichtlinie in Samba 4 Domain anzeigen===&lt;br /&gt;
 samba-tool domain passwordsettings show&lt;br /&gt;
&lt;br /&gt;
=SeDiskOperatorPrivilege=&lt;br /&gt;
 net rpc rights grant 'XINUX\Domain Admins' SeDiskOperatorPrivilege -Uadministrator&lt;br /&gt;
&lt;br /&gt;
===Vorhandene Rechte lassen sich so Anzeige===	&lt;br /&gt;
 net rpc rights list accounts -Uadministrator&lt;br /&gt;
=[[Userverwaltung]]=&lt;br /&gt;
&lt;br /&gt;
=howto=&lt;br /&gt;
https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO&lt;br /&gt;
&lt;br /&gt;
=installation=&lt;br /&gt;
*http://ubuntuforums.org/showthread.php?t=2146198&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Debian_Samba4_ADS_Domaincontroller&amp;diff=4660</id>
		<title>Debian Samba4 ADS Domaincontroller</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Debian_Samba4_ADS_Domaincontroller&amp;diff=4660"/>
		<updated>2014-07-18T09:46:16Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: /* Domain anlegen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Installation=&lt;br /&gt;
==Interface anpassen==&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
address 192.168.240.199&lt;br /&gt;
netmask 255.255.248.0&lt;br /&gt;
gateway 192.168.240.100&lt;br /&gt;
dns-nameservers 192.168.240.199 8.8.8.8&lt;br /&gt;
dns-search xinux.lan&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==hosts anpassen==&lt;br /&gt;
 vi /etc/hosts&lt;br /&gt;
 127.0.0.1       localhost&lt;br /&gt;
 192.168.240.199 fenetre fenetre.xinux.lan&lt;br /&gt;
 echo fenetre.xinux.lan &amp;gt; /etc/hostname&lt;br /&gt;
 reboot&lt;br /&gt;
&lt;br /&gt;
==samba4 installieren==&lt;br /&gt;
 apt-get install samba smbclient winbind ntp libnss-winbind krb5-user acl&lt;br /&gt;
&lt;br /&gt;
==Domain anlegen==&lt;br /&gt;
vorher das löschen:&lt;br /&gt;
 rm /etc/samba/smb.conf /var/lib/samba/private/sam.ldb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' realm, domain und adminpass''' sollten/können angepasst werden!&lt;br /&gt;
 samba-tool domain provision --realm=xinux.lan --domain=xinux --adminpass=&amp;quot;Z0pp0Trump&amp;quot; --server-role=dc --dns-backend=SAMBA_INTERNAL&lt;br /&gt;
&lt;br /&gt;
oder&lt;br /&gt;
&lt;br /&gt;
''' realm, domain und adminpass''' sollten/können angepasst werden!&lt;br /&gt;
 samba-tool domain provision --realm=xinux.lan --domain=xinux --adminpass=&amp;quot;Z0pp0Trump&amp;quot; --server-role=dc --dns-backend=BIND9_DLZ&lt;br /&gt;
&lt;br /&gt;
==Reboot==&lt;br /&gt;
 reboot&lt;br /&gt;
&lt;br /&gt;
==smbversion, share und auth check==&lt;br /&gt;
&lt;br /&gt;
===smbversion===&lt;br /&gt;
Diese sollten übereinstimmen:&lt;br /&gt;
 root@fenetre:~# samba -V&lt;br /&gt;
 Version 4.1.6-Ubuntu&lt;br /&gt;
 root@fenetre:~# smbclient -V&lt;br /&gt;
 Version 4.1.6-Ubuntu&lt;br /&gt;
&lt;br /&gt;
===shares anzeigen:===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fenetre:~# smbclient -L localhost -U%&lt;br /&gt;
Domain=[XINUX] OS=[Unix] Server=[Samba 4.1.6-Ubuntu]&lt;br /&gt;
&lt;br /&gt;
	Sharename       Type      Comment&lt;br /&gt;
	---------       ----      -------&lt;br /&gt;
	netlogon        Disk      &lt;br /&gt;
	sysvol          Disk      &lt;br /&gt;
	IPC$            IPC       IPC Service (Samba 4.1.6-Ubuntu)&lt;br /&gt;
Domain=[XINUX] OS=[Unix] Server=[Samba 4.1.6-Ubuntu]&lt;br /&gt;
&lt;br /&gt;
	Server               Comment&lt;br /&gt;
	---------            -------&lt;br /&gt;
&lt;br /&gt;
	Workgroup            Master&lt;br /&gt;
	---------            -------&lt;br /&gt;
	WORKGROUP &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Authentication check:===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fenetre:~# smbclient //localhost/netlogon -UAdministrator%&amp;quot;Z0pp0Trump&amp;quot; -c 'ls'&lt;br /&gt;
Domain=[XINUX] OS=[Unix] Server=[Samba 4.1.6-Ubuntu]&lt;br /&gt;
  .                                   D        0  Thu Apr 24 15:51:50 2014&lt;br /&gt;
  ..                                  D        0  Thu Apr 24 15:51:54 2014&lt;br /&gt;
&lt;br /&gt;
		52706 blocks of size 524288. 47502 blocks available&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DNS setzen==&lt;br /&gt;
===Forwarder eintragen===&lt;br /&gt;
 sudo vi  /etc/samba/smb.conf&lt;br /&gt;
füge hinzu: (Man kann natürlich auch seinen eigenen DNS angeben)&lt;br /&gt;
 dns forwarder = 192.168.240.21&lt;br /&gt;
&lt;br /&gt;
===Check===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DOMAIN=&amp;quot;xinux.lan&amp;quot;&lt;br /&gt;
CONTROLLER=&amp;quot;fenetre&amp;quot;&lt;br /&gt;
host -t SRV _ldap._tcp.$DOMAIN&lt;br /&gt;
_ldap._tcp.xinux.lan has SRV record 0 100 389 fenetre.xinux.lan.&lt;br /&gt;
&lt;br /&gt;
host -t SRV _kerberos._udp.$DOMAIN&lt;br /&gt;
_kerberos._udp.xinux.lan has SRV record 0 100 88 fenetre.xinux.lan.&lt;br /&gt;
&lt;br /&gt;
host -t A $CONTROLLER.$DOMAIN&lt;br /&gt;
fenetre.xinux.lan has address 192.168.240.199&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Kerberos==&lt;br /&gt;
 cp /var/lib/samba/private/krb5.conf  /usr/share/samba/setup/krb5.conf&lt;br /&gt;
&lt;br /&gt;
==Share hinzufügen==&lt;br /&gt;
 mkfs.ext4 /dev/vdb1&lt;br /&gt;
 mkdir /share&lt;br /&gt;
 echo &amp;quot;/dev/vdb1  /share   ext4 user_xattr,acl 0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab &lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
 mkdir -m 770 /share&lt;br /&gt;
 chmod g+s /share&lt;br /&gt;
 chown root:users /share&lt;br /&gt;
&lt;br /&gt;
 vi /etc/samba/smb.conf&lt;br /&gt;
füge das ein:&lt;br /&gt;
&lt;br /&gt;
 [share]&lt;br /&gt;
  directory_mode: parameter = 0700&lt;br /&gt;
  read only = no&lt;br /&gt;
  path = /share&lt;br /&gt;
  csc policy = documents&lt;br /&gt;
&lt;br /&gt;
==Share testen==&lt;br /&gt;
 root@fenetre:~# smbclient -L localhost -U% | grep share&lt;br /&gt;
 Domain=[XINUX] OS=[Unix] Server=[Samba 4.1.6-Ubuntu]&lt;br /&gt;
 Domain=[XINUX] OS=[Unix] Server=[Samba 4.1.6-Ubuntu]&lt;br /&gt;
 	share           Disk&lt;br /&gt;
==Winbind==&lt;br /&gt;
===winbind link setzen===&lt;br /&gt;
 ln -s /lib/x86_64-linux-gnu/libnss_winbind.so.2 /lib/x86_64-linux-gnu/libnss_winbind.so&lt;br /&gt;
&lt;br /&gt;
===nsswitch.conf ändern===&lt;br /&gt;
 passwd:         compat winbind&lt;br /&gt;
 group:          compat winbind&lt;br /&gt;
===ist winbind is &amp;quot;pingbar=== &lt;br /&gt;
 root@fenetre:~# wbinfo -p&lt;br /&gt;
 Ping to winbindd succeeded&lt;br /&gt;
&lt;br /&gt;
===anzeigen der userliste===&lt;br /&gt;
 root@fenetre:~# wbinfo -u&lt;br /&gt;
 Administrator&lt;br /&gt;
 Guest&lt;br /&gt;
 krbtgt&lt;br /&gt;
&lt;br /&gt;
===funtioniert nsswitch===&lt;br /&gt;
 root@fenetre:~# getent passwd | grep XINUX&lt;br /&gt;
 XINUX\Administrator:*:0:100::/home/XINUX/Administrator:/bin/false&lt;br /&gt;
 XINUX\Guest:*:3000011:3000012::/home/XINUX/Guest:/bin/false&lt;br /&gt;
 XINUX\krbtgt:*:3000017:100::/home/XINUX/krbtgt:/bin/false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
===Adminpasswort läuft nicht ab===&lt;br /&gt;
 samba-tool user setexpiry administrator --noexpiry&lt;br /&gt;
&lt;br /&gt;
===Kennwortrichtlinie in Samba 4 Domain deaktivieren===&lt;br /&gt;
 samba-tool domain passwordsettings set --complexity=off&lt;br /&gt;
 samba-tool domain passwordsettings set --history-length=0&lt;br /&gt;
 samba-tool domain passwordsettings set --min-pwd-age=0&lt;br /&gt;
 samba-tool domain passwordsettings set --max-pwd-age=0&lt;br /&gt;
 samba-tool domain passwordsettings set --min-pwd-length 0&lt;br /&gt;
===Adminpasswort setzen===&lt;br /&gt;
 samba-tool user setpassword Administrator&lt;br /&gt;
&lt;br /&gt;
===Kennwortrichtlinie in Samba 4 Domain anzeigen===&lt;br /&gt;
 samba-tool domain passwordsettings show&lt;br /&gt;
&lt;br /&gt;
=SeDiskOperatorPrivilege=&lt;br /&gt;
 net rpc rights grant 'XINUX\Domain Admins' SeDiskOperatorPrivilege -Uadministrator&lt;br /&gt;
&lt;br /&gt;
===Vorhandene Rechte lassen sich so Anzeige===	&lt;br /&gt;
 net rpc rights list accounts -Uadministrator&lt;br /&gt;
=[[Userverwaltung]]=&lt;br /&gt;
&lt;br /&gt;
=howto=&lt;br /&gt;
https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO&lt;br /&gt;
&lt;br /&gt;
=installation=&lt;br /&gt;
*http://ubuntuforums.org/showthread.php?t=2146198&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Squid-kerberos&amp;diff=4651</id>
		<title>Squid-kerberos</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Squid-kerberos&amp;diff=4651"/>
		<updated>2014-07-17T13:49:22Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: /* restart */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=create computeraccount and a local keytab=&lt;br /&gt;
 kinit administrator&lt;br /&gt;
 msktutil -c -b &amp;quot;CN=Computers&amp;quot; -s HTTP/dewey.xinux.org -k /etc/squid3/PROXY.keytab --computer-name PROXYSRV-HTTP --upn HTTP/dewey.xinux.org --server gondor.xinux.org --verbose&lt;br /&gt;
 chown proxy.proxy /etc/squid3/PROXY.keytab&lt;br /&gt;
&lt;br /&gt;
=/etc/default/squid3=&lt;br /&gt;
 KRB5_KTNAME=/etc/squid3/PROXY.keytab&lt;br /&gt;
 export KRB5_KTNAME&lt;br /&gt;
=on the top of /etc/squid3/squid.conf add =&lt;br /&gt;
 auth_param negotiate program /usr/lib/squid3/squid_kerb_auth -d -i -s GSS_C_NO_NAME&lt;br /&gt;
 auth_param negotiate children 10&lt;br /&gt;
 auth_param negotiate keep_alive on&lt;br /&gt;
 acl auth proxy_auth REQUIRED&lt;br /&gt;
 http_access allow all auth&lt;br /&gt;
=restart=&lt;br /&gt;
 service squid3 start&lt;br /&gt;
=client Machine=&lt;br /&gt;
 Set your proxy to server dewey.xinux.org using port 3128. It is important that you use the fully qualified domain name and NOT the IP address.&lt;br /&gt;
&lt;br /&gt;
=debugging=&lt;br /&gt;
&lt;br /&gt;
*http://squid-web-proxy-cache.1019090.n4.nabble.com/squid-kerb-auth-received-type-1-NTLM-token-td2131613.html&lt;br /&gt;
=sources=&lt;br /&gt;
*http://roshan-g.blogspot.de/2014/05/squid-with-kerberos-and-ldap.html&lt;br /&gt;
*http://wiki.squid-cache.org/ConfigExamples/Authenticate/WindowsActiveDirectory&lt;br /&gt;
*http://stackoverflow.com/questions/18075028/squid-integration-with-active-directory-best-practise&lt;br /&gt;
*http://manpages.ubuntu.com/manpages/trusty/man8/negotiate_kerberos_auth.8.html&lt;br /&gt;
*http://serverfault.com/questions/66556/getting-squid-to-authenticate-with-kerberos-and-windows-2008-2003-7-xp&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Squid-kerberos&amp;diff=4650</id>
		<title>Squid-kerberos</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Squid-kerberos&amp;diff=4650"/>
		<updated>2014-07-17T13:35:54Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: /* sources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=create computeraccount and a local keytab=&lt;br /&gt;
 kinit administrator&lt;br /&gt;
 msktutil -c -b &amp;quot;CN=Computers&amp;quot; -s HTTP/dewey.xinux.org -k /etc/squid3/PROXY.keytab --computer-name PROXYSRV-HTTP --upn HTTP/dewey.xinux.org --server gondor.xinux.org --verbose&lt;br /&gt;
 chown proxy.proxy /etc/squid3/PROXY.keytab&lt;br /&gt;
&lt;br /&gt;
=/etc/default/squid3=&lt;br /&gt;
 KRB5_KTNAME=/etc/squid3/PROXY.keytab&lt;br /&gt;
 export KRB5_KTNAME&lt;br /&gt;
=on the top of /etc/squid3/squid.conf add =&lt;br /&gt;
 auth_param negotiate program /usr/lib/squid3/squid_kerb_auth -d -i -s GSS_C_NO_NAME&lt;br /&gt;
 auth_param negotiate children 10&lt;br /&gt;
 auth_param negotiate keep_alive on&lt;br /&gt;
 acl auth proxy_auth REQUIRED&lt;br /&gt;
 http_access allow all auth&lt;br /&gt;
=restart=&lt;br /&gt;
 service squid3 start&lt;br /&gt;
=debugging=&lt;br /&gt;
&lt;br /&gt;
*http://squid-web-proxy-cache.1019090.n4.nabble.com/squid-kerb-auth-received-type-1-NTLM-token-td2131613.html&lt;br /&gt;
=sources=&lt;br /&gt;
*http://roshan-g.blogspot.de/2014/05/squid-with-kerberos-and-ldap.html&lt;br /&gt;
*http://wiki.squid-cache.org/ConfigExamples/Authenticate/WindowsActiveDirectory&lt;br /&gt;
*http://stackoverflow.com/questions/18075028/squid-integration-with-active-directory-best-practise&lt;br /&gt;
*http://manpages.ubuntu.com/manpages/trusty/man8/negotiate_kerberos_auth.8.html&lt;br /&gt;
*http://serverfault.com/questions/66556/getting-squid-to-authenticate-with-kerberos-and-windows-2008-2003-7-xp&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Squid-kerberos&amp;diff=4649</id>
		<title>Squid-kerberos</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Squid-kerberos&amp;diff=4649"/>
		<updated>2014-07-17T13:19:54Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: /* sources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=create computeraccount and a local keytab=&lt;br /&gt;
 kinit administrator&lt;br /&gt;
 msktutil -c -b &amp;quot;CN=Computers&amp;quot; -s HTTP/dewey.xinux.org -k /etc/squid3/PROXY.keytab --computer-name PROXYSRV-HTTP --upn HTTP/dewey.xinux.org --server gondor.xinux.org --verbose&lt;br /&gt;
 chown proxy.proxy /etc/squid3/PROXY.keytab&lt;br /&gt;
&lt;br /&gt;
=/etc/default/squid3=&lt;br /&gt;
 KRB5_KTNAME=/etc/squid3/PROXY.keytab&lt;br /&gt;
 export KRB5_KTNAME&lt;br /&gt;
=on the top of /etc/squid3/squid.conf add =&lt;br /&gt;
 auth_param negotiate program /usr/lib/squid3/squid_kerb_auth -d -i -s GSS_C_NO_NAME&lt;br /&gt;
 auth_param negotiate children 10&lt;br /&gt;
 auth_param negotiate keep_alive on&lt;br /&gt;
 acl auth proxy_auth REQUIRED&lt;br /&gt;
 http_access allow all auth&lt;br /&gt;
=restart=&lt;br /&gt;
 service squid3 start&lt;br /&gt;
=debugging=&lt;br /&gt;
&lt;br /&gt;
*http://squid-web-proxy-cache.1019090.n4.nabble.com/squid-kerb-auth-received-type-1-NTLM-token-td2131613.html&lt;br /&gt;
=sources=&lt;br /&gt;
*http://roshan-g.blogspot.de/2014/05/squid-with-kerberos-and-ldap.html&lt;br /&gt;
*http://wiki.squid-cache.org/ConfigExamples/Authenticate/WindowsActiveDirectory&lt;br /&gt;
*http://stackoverflow.com/questions/18075028/squid-integration-with-active-directory-best-practise&lt;br /&gt;
*http://manpages.ubuntu.com/manpages/trusty/man8/negotiate_kerberos_auth.8.html&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Squid-kerberos&amp;diff=4648</id>
		<title>Squid-kerberos</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Squid-kerberos&amp;diff=4648"/>
		<updated>2014-07-17T13:05:01Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: /* restart */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=create computeraccount and a local keytab=&lt;br /&gt;
 kinit administrator&lt;br /&gt;
 msktutil -c -b &amp;quot;CN=Computers&amp;quot; -s HTTP/dewey.xinux.org -k /etc/squid3/PROXY.keytab --computer-name PROXYSRV-HTTP --upn HTTP/dewey.xinux.org --server gondor.xinux.org --verbose&lt;br /&gt;
 chown proxy.proxy /etc/squid3/PROXY.keytab&lt;br /&gt;
&lt;br /&gt;
=/etc/default/squid3=&lt;br /&gt;
 KRB5_KTNAME=/etc/squid3/PROXY.keytab&lt;br /&gt;
 export KRB5_KTNAME&lt;br /&gt;
=on the top of /etc/squid3/squid.conf add =&lt;br /&gt;
 auth_param negotiate program /usr/lib/squid3/squid_kerb_auth -d -i -s GSS_C_NO_NAME&lt;br /&gt;
 auth_param negotiate children 10&lt;br /&gt;
 auth_param negotiate keep_alive on&lt;br /&gt;
 acl auth proxy_auth REQUIRED&lt;br /&gt;
 http_access allow all auth&lt;br /&gt;
=restart=&lt;br /&gt;
 service squid3 start&lt;br /&gt;
=debugging=&lt;br /&gt;
&lt;br /&gt;
=sources=&lt;br /&gt;
*http://roshan-g.blogspot.de/2014/05/squid-with-kerberos-and-ldap.html&lt;br /&gt;
*http://wiki.squid-cache.org/ConfigExamples/Authenticate/WindowsActiveDirectory&lt;br /&gt;
*http://stackoverflow.com/questions/18075028/squid-integration-with-active-directory-best-practise&lt;br /&gt;
*http://manpages.ubuntu.com/manpages/trusty/man8/negotiate_kerberos_auth.8.html&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Squid-kerberos&amp;diff=4647</id>
		<title>Squid-kerberos</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Squid-kerberos&amp;diff=4647"/>
		<updated>2014-07-17T13:04:47Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: /* create computeraccount and a local keytab */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=create computeraccount and a local keytab=&lt;br /&gt;
 kinit administrator&lt;br /&gt;
 msktutil -c -b &amp;quot;CN=Computers&amp;quot; -s HTTP/dewey.xinux.org -k /etc/squid3/PROXY.keytab --computer-name PROXYSRV-HTTP --upn HTTP/dewey.xinux.org --server gondor.xinux.org --verbose&lt;br /&gt;
 chown proxy.proxy /etc/squid3/PROXY.keytab&lt;br /&gt;
&lt;br /&gt;
=/etc/default/squid3=&lt;br /&gt;
 KRB5_KTNAME=/etc/squid3/PROXY.keytab&lt;br /&gt;
 export KRB5_KTNAME&lt;br /&gt;
=on the top of /etc/squid3/squid.conf add =&lt;br /&gt;
 auth_param negotiate program /usr/lib/squid3/squid_kerb_auth -d -i -s GSS_C_NO_NAME&lt;br /&gt;
 auth_param negotiate children 10&lt;br /&gt;
 auth_param negotiate keep_alive on&lt;br /&gt;
 acl auth proxy_auth REQUIRED&lt;br /&gt;
 http_access allow all auth&lt;br /&gt;
=restart=&lt;br /&gt;
 service squid3 start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=sources=&lt;br /&gt;
*http://roshan-g.blogspot.de/2014/05/squid-with-kerberos-and-ldap.html&lt;br /&gt;
*http://wiki.squid-cache.org/ConfigExamples/Authenticate/WindowsActiveDirectory&lt;br /&gt;
*http://stackoverflow.com/questions/18075028/squid-integration-with-active-directory-best-practise&lt;br /&gt;
*http://manpages.ubuntu.com/manpages/trusty/man8/negotiate_kerberos_auth.8.html&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Squid-kerberos&amp;diff=4646</id>
		<title>Squid-kerberos</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Squid-kerberos&amp;diff=4646"/>
		<updated>2014-07-17T13:03:33Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=create computeraccount and a local keytab=&lt;br /&gt;
 kinit administrator&lt;br /&gt;
 msktutil -c -b &amp;quot;CN=Computers&amp;quot; -s HTTP/dewey.xinux.org -k /etc/squid3/PROXY.keytab --computer-name PROXYSRV-HTTP --upn HTTP/dewey.xinux.org --server gondor.xinux.org --verbose&lt;br /&gt;
=/etc/default/squid3=&lt;br /&gt;
 KRB5_KTNAME=/etc/squid3/PROXY.keytab&lt;br /&gt;
 export KRB5_KTNAME&lt;br /&gt;
=on the top of /etc/squid3/squid.conf add =&lt;br /&gt;
 auth_param negotiate program /usr/lib/squid3/squid_kerb_auth -d -i -s GSS_C_NO_NAME&lt;br /&gt;
 auth_param negotiate children 10&lt;br /&gt;
 auth_param negotiate keep_alive on&lt;br /&gt;
 acl auth proxy_auth REQUIRED&lt;br /&gt;
 http_access allow all auth&lt;br /&gt;
=restart=&lt;br /&gt;
 service squid3 start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=sources=&lt;br /&gt;
*http://roshan-g.blogspot.de/2014/05/squid-with-kerberos-and-ldap.html&lt;br /&gt;
*http://wiki.squid-cache.org/ConfigExamples/Authenticate/WindowsActiveDirectory&lt;br /&gt;
*http://stackoverflow.com/questions/18075028/squid-integration-with-active-directory-best-practise&lt;br /&gt;
*http://manpages.ubuntu.com/manpages/trusty/man8/negotiate_kerberos_auth.8.html&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Squid-kerberos&amp;diff=4645</id>
		<title>Squid-kerberos</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Squid-kerberos&amp;diff=4645"/>
		<updated>2014-07-17T13:02:53Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=create computeraccount and a local keytab=&lt;br /&gt;
 kinit administrator&lt;br /&gt;
 msktutil -c -b &amp;quot;CN=Computers&amp;quot; -s HTTP/dewey.xinux.org -k /etc/squid3/PROXY.keytab --computer-name PROXYSRV-HTTP --upn HTTP/dewey.xinux.org --server gondor.xinux.org --verbose&lt;br /&gt;
=/etc/default/squid3=&lt;br /&gt;
 KRB5_KTNAME=/etc/squid3/PROXY.keytab&lt;br /&gt;
 export KRB5_KTNAME&lt;br /&gt;
=on the top of /etc/squid3/squid.conf add =&lt;br /&gt;
 auth_param negotiate program /usr/lib/squid3/squid_kerb_auth -d -i -s GSS_C_NO_NAME&lt;br /&gt;
 auth_param negotiate children 10&lt;br /&gt;
 auth_param negotiate keep_alive on&lt;br /&gt;
 acl auth proxy_auth REQUIRED&lt;br /&gt;
 http_access allow all auth&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=sources=&lt;br /&gt;
*http://roshan-g.blogspot.de/2014/05/squid-with-kerberos-and-ldap.html&lt;br /&gt;
*http://wiki.squid-cache.org/ConfigExamples/Authenticate/WindowsActiveDirectory&lt;br /&gt;
*http://stackoverflow.com/questions/18075028/squid-integration-with-active-directory-best-practise&lt;br /&gt;
*http://manpages.ubuntu.com/manpages/trusty/man8/negotiate_kerberos_auth.8.html&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Squid-kerberos&amp;diff=4644</id>
		<title>Squid-kerberos</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Squid-kerberos&amp;diff=4644"/>
		<updated>2014-07-17T13:02:43Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=create computeraccount and a local keytab=&lt;br /&gt;
 kinit administrator&lt;br /&gt;
 msktutil -c -b &amp;quot;CN=Computers&amp;quot; -s HTTP/dewey.xinux.org -k /etc/squid3/PROXY.keytab --computer-name PROXYSRV-HTTP --upn HTTP/dewey.xinux.org --server gondor.xinux.org --verbose&lt;br /&gt;
=/etc/default/squid3&lt;br /&gt;
 KRB5_KTNAME=/etc/squid3/PROXY.keytab&lt;br /&gt;
 export KRB5_KTNAME&lt;br /&gt;
=on the top of /etc/squid3/squid.conf add =&lt;br /&gt;
 auth_param negotiate program /usr/lib/squid3/squid_kerb_auth -d -i -s GSS_C_NO_NAME&lt;br /&gt;
 auth_param negotiate children 10&lt;br /&gt;
 auth_param negotiate keep_alive on&lt;br /&gt;
 acl auth proxy_auth REQUIRED&lt;br /&gt;
 http_access allow all auth&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=sources=&lt;br /&gt;
*http://roshan-g.blogspot.de/2014/05/squid-with-kerberos-and-ldap.html&lt;br /&gt;
*http://wiki.squid-cache.org/ConfigExamples/Authenticate/WindowsActiveDirectory&lt;br /&gt;
*http://stackoverflow.com/questions/18075028/squid-integration-with-active-directory-best-practise&lt;br /&gt;
*http://manpages.ubuntu.com/manpages/trusty/man8/negotiate_kerberos_auth.8.html&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Kerberos&amp;diff=4642</id>
		<title>Kerberos</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Kerberos&amp;diff=4642"/>
		<updated>2014-07-17T11:36:28Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=important=&lt;br /&gt;
client and servers should have the correct time and should resolv A and PTR record on dns &lt;br /&gt;
=ssh-server=&lt;br /&gt;
==modification /etc/ssh/sshd_config==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# GSSAPI options&lt;br /&gt;
GSSAPIAuthentication yes&lt;br /&gt;
GSSAPICleanupCredentials yes&lt;br /&gt;
GSSAPIKeyExchange yes&lt;br /&gt;
GSSAPIStoreCredentialsOnRekey yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==generate a keytab-file==&lt;br /&gt;
net ads keytab create -U administrator&lt;br /&gt;
=ssh-client=&lt;br /&gt;
==modification /etc/ssh/ssh_config==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GSSAPIAuthentication yes&lt;br /&gt;
GSSAPIDelegateCredentials yes&lt;br /&gt;
GSSAPIKeyExchange yes&lt;br /&gt;
GSSAPIRenewalForcesRekey yes&lt;br /&gt;
GSSAPITrustDNS yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Kerberos&amp;diff=4641</id>
		<title>Kerberos</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Kerberos&amp;diff=4641"/>
		<updated>2014-07-17T09:31:37Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: Die Seite wurde neu angelegt: „=ssh-server= ==modification /etc/ssh/sshd_config== &amp;lt;pre&amp;gt; # GSSAPI options GSSAPIAuthentication yes GSSAPICleanupCredentials yes GSSAPIKeyExchange yes GSSAPIStoreC…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=ssh-server=&lt;br /&gt;
==modification /etc/ssh/sshd_config==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# GSSAPI options&lt;br /&gt;
GSSAPIAuthentication yes&lt;br /&gt;
GSSAPICleanupCredentials yes&lt;br /&gt;
GSSAPIKeyExchange yes&lt;br /&gt;
GSSAPIStoreCredentialsOnRekey yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Ubuntu-ads-client&amp;diff=4640</id>
		<title>Ubuntu-ads-client</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Ubuntu-ads-client&amp;diff=4640"/>
		<updated>2014-07-17T05:37:05Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: /* common-session */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=auf dem domain controller=&lt;br /&gt;
 kinit administrator&lt;br /&gt;
 samba-tool dns add localhost  xinux.org dewey A 192.168.244.152&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
==Interface anpassen==&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
 address 192.168.244.152&lt;br /&gt;
 netmask 255.255.248.0&lt;br /&gt;
 gateway 192.168.240.100&lt;br /&gt;
 dns-nameservers 192.168.240.200&lt;br /&gt;
 dns-search xinux.org&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==hosts anpassen==&lt;br /&gt;
 vi /etc/hosts&lt;br /&gt;
 127.0.0.1       localhost&lt;br /&gt;
 192.168.244.152 dewey dewey.xinux.org &lt;br /&gt;
 echo dewey.xinux.org &amp;gt; /etc/hostname&lt;br /&gt;
 reboot&lt;br /&gt;
&lt;br /&gt;
==samba4 installieren==&lt;br /&gt;
 apt-get install samba smbclient winbind ntp libnss-winbind lib krb5-user acl&lt;br /&gt;
&lt;br /&gt;
==/etc/samba/smb.conf==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[global]&lt;br /&gt;
   workgroup = XINUX&lt;br /&gt;
   security = ADS&lt;br /&gt;
   realm = XINUX.ORG&lt;br /&gt;
   winbind separator = +&lt;br /&gt;
   winbind enum users = yes&lt;br /&gt;
   winbind enum groups = yes&lt;br /&gt;
   winbind use default domain = yes&lt;br /&gt;
   winbind refresh tickets = Yes&lt;br /&gt;
   template shell = /bin/bash&lt;br /&gt;
   idmap config * : range = 1000000 - 1999999&lt;br /&gt;
   idmap config EXAMPLE : backend = rid&lt;br /&gt;
   idmap config EXAMPLE : range = 1000000 - 1999999&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==/etc/krb5.conf==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[libdefaults]&lt;br /&gt;
...&lt;br /&gt;
[realms]&lt;br /&gt;
        XINUX.ORG = {&lt;br /&gt;
                kdc = gondor.xinux.org&lt;br /&gt;
                admin_server = gondor.xinux.org&lt;br /&gt;
....&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==domaine beitreten==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
net ads join -U administrator&lt;br /&gt;
Enter administrator's password:&lt;br /&gt;
Using short domain name -- XINUX&lt;br /&gt;
Joined 'DEWEY' to dns domain 'xinux.org'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===nsswitch.conf ändern===&lt;br /&gt;
 passwd:         compat winbind&lt;br /&gt;
 group:          compat winbind&lt;br /&gt;
&lt;br /&gt;
===ist winbind is &amp;quot;pingbar=== &lt;br /&gt;
 root@fenetre:~# wbinfo -p&lt;br /&gt;
 Ping to winbindd succeeded&lt;br /&gt;
&lt;br /&gt;
===anzeigen der userliste===&lt;br /&gt;
 root@fenetre:~# wbinfo -u&lt;br /&gt;
 Administrator&lt;br /&gt;
 Guest&lt;br /&gt;
 krbtgt&lt;br /&gt;
&lt;br /&gt;
===function of nsswitch===&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
getent passwd | grep 700&lt;br /&gt;
administrator:*:70001:70005:Administrator:/home/XINUX/administrator:/bin/bash&lt;br /&gt;
dns-gondor:*:70002:70005:dns-gondor:/home/XINUX/dns-gondor:/bin/bash&lt;br /&gt;
krbtgt:*:70003:70005:krbtgt:/home/XINUX/krbtgt:/bin/bash&lt;br /&gt;
thomas:*:70004:70005:thomas:/home/XINUX/thomas:/bin/bash&lt;br /&gt;
guest:*:70005:70006:Guest:/home/XINUX/guest:/bin/bash&lt;br /&gt;
squid:*:70006:70005:squid:/home/XINUX/squid:/bin/bash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*https://help.ubuntu.com/community/ActiveDirectoryWinbindHowto&lt;br /&gt;
=libpam-winbind=&lt;br /&gt;
 apt-get install libpam-winbind&lt;br /&gt;
==änderungen in /etc/pam.d/==&lt;br /&gt;
sollten automatisch geändert worden sein&lt;br /&gt;
===common-auth===&lt;br /&gt;
 auth    [success=2 default=ignore]      pam_unix.so nullok_secure&lt;br /&gt;
 auth    [success=1 default=ignore]      pam_winbind.so krb5_auth krb5_ccache_type=FILE cached_login try_first_pass&lt;br /&gt;
 auth    requisite                       pam_deny.so&lt;br /&gt;
 auth    required                        pam_permit.so&lt;br /&gt;
 auth    optional                        pam_cap.so&lt;br /&gt;
===common-account===&lt;br /&gt;
 account [success=2 new_authtok_reqd=done default=ignore]        pam_unix.so&lt;br /&gt;
 account [success=1 new_authtok_reqd=done default=ignore]        pam_winbind.so&lt;br /&gt;
 account requisite                       pam_deny.so&lt;br /&gt;
 account required                        pam_permit.so&lt;br /&gt;
===common-session===&lt;br /&gt;
 session [default=1]                     pam_permit.so&lt;br /&gt;
 session requisite                       pam_deny.so&lt;br /&gt;
 session required                        pam_permit.so&lt;br /&gt;
 session optional                        pam_umask.so&lt;br /&gt;
 session required pam_mkhomedir.so umask=0022 skel=/etc/skel&lt;br /&gt;
 session required        pam_unix.so&lt;br /&gt;
 session optional                        pam_winbind.so&lt;br /&gt;
 session optional        pam_systemd.so&lt;br /&gt;
===sudo===&lt;br /&gt;
 auth sufficient pam_winbind.so&lt;br /&gt;
 auth sufficient pam_unix.so use_first_pass&lt;br /&gt;
 auth required   pam_deny.so&lt;br /&gt;
 @include common-account&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Ubuntu-ads-client&amp;diff=4639</id>
		<title>Ubuntu-ads-client</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Ubuntu-ads-client&amp;diff=4639"/>
		<updated>2014-07-17T05:35:04Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: /* common-session */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=auf dem domain controller=&lt;br /&gt;
 kinit administrator&lt;br /&gt;
 samba-tool dns add localhost  xinux.org dewey A 192.168.244.152&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
==Interface anpassen==&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
 address 192.168.244.152&lt;br /&gt;
 netmask 255.255.248.0&lt;br /&gt;
 gateway 192.168.240.100&lt;br /&gt;
 dns-nameservers 192.168.240.200&lt;br /&gt;
 dns-search xinux.org&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==hosts anpassen==&lt;br /&gt;
 vi /etc/hosts&lt;br /&gt;
 127.0.0.1       localhost&lt;br /&gt;
 192.168.244.152 dewey dewey.xinux.org &lt;br /&gt;
 echo dewey.xinux.org &amp;gt; /etc/hostname&lt;br /&gt;
 reboot&lt;br /&gt;
&lt;br /&gt;
==samba4 installieren==&lt;br /&gt;
 apt-get install samba smbclient winbind ntp libnss-winbind lib krb5-user acl&lt;br /&gt;
&lt;br /&gt;
==/etc/samba/smb.conf==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[global]&lt;br /&gt;
   workgroup = XINUX&lt;br /&gt;
   security = ADS&lt;br /&gt;
   realm = XINUX.ORG&lt;br /&gt;
   winbind separator = +&lt;br /&gt;
   winbind enum users = yes&lt;br /&gt;
   winbind enum groups = yes&lt;br /&gt;
   winbind use default domain = yes&lt;br /&gt;
   winbind refresh tickets = Yes&lt;br /&gt;
   template shell = /bin/bash&lt;br /&gt;
   idmap config * : range = 1000000 - 1999999&lt;br /&gt;
   idmap config EXAMPLE : backend = rid&lt;br /&gt;
   idmap config EXAMPLE : range = 1000000 - 1999999&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==/etc/krb5.conf==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[libdefaults]&lt;br /&gt;
...&lt;br /&gt;
[realms]&lt;br /&gt;
        XINUX.ORG = {&lt;br /&gt;
                kdc = gondor.xinux.org&lt;br /&gt;
                admin_server = gondor.xinux.org&lt;br /&gt;
....&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==domaine beitreten==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
net ads join -U administrator&lt;br /&gt;
Enter administrator's password:&lt;br /&gt;
Using short domain name -- XINUX&lt;br /&gt;
Joined 'DEWEY' to dns domain 'xinux.org'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===nsswitch.conf ändern===&lt;br /&gt;
 passwd:         compat winbind&lt;br /&gt;
 group:          compat winbind&lt;br /&gt;
&lt;br /&gt;
===ist winbind is &amp;quot;pingbar=== &lt;br /&gt;
 root@fenetre:~# wbinfo -p&lt;br /&gt;
 Ping to winbindd succeeded&lt;br /&gt;
&lt;br /&gt;
===anzeigen der userliste===&lt;br /&gt;
 root@fenetre:~# wbinfo -u&lt;br /&gt;
 Administrator&lt;br /&gt;
 Guest&lt;br /&gt;
 krbtgt&lt;br /&gt;
&lt;br /&gt;
===function of nsswitch===&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
getent passwd | grep 700&lt;br /&gt;
administrator:*:70001:70005:Administrator:/home/XINUX/administrator:/bin/bash&lt;br /&gt;
dns-gondor:*:70002:70005:dns-gondor:/home/XINUX/dns-gondor:/bin/bash&lt;br /&gt;
krbtgt:*:70003:70005:krbtgt:/home/XINUX/krbtgt:/bin/bash&lt;br /&gt;
thomas:*:70004:70005:thomas:/home/XINUX/thomas:/bin/bash&lt;br /&gt;
guest:*:70005:70006:Guest:/home/XINUX/guest:/bin/bash&lt;br /&gt;
squid:*:70006:70005:squid:/home/XINUX/squid:/bin/bash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*https://help.ubuntu.com/community/ActiveDirectoryWinbindHowto&lt;br /&gt;
=libpam-winbind=&lt;br /&gt;
 apt-get install libpam-winbind&lt;br /&gt;
==änderungen in /etc/pam.d/==&lt;br /&gt;
sollten automatisch geändert worden sein&lt;br /&gt;
===common-auth===&lt;br /&gt;
 auth    [success=2 default=ignore]      pam_unix.so nullok_secure&lt;br /&gt;
 auth    [success=1 default=ignore]      pam_winbind.so krb5_auth krb5_ccache_type=FILE cached_login try_first_pass&lt;br /&gt;
 auth    requisite                       pam_deny.so&lt;br /&gt;
 auth    required                        pam_permit.so&lt;br /&gt;
 auth    optional                        pam_cap.so&lt;br /&gt;
===common-account===&lt;br /&gt;
 account [success=2 new_authtok_reqd=done default=ignore]        pam_unix.so&lt;br /&gt;
 account [success=1 new_authtok_reqd=done default=ignore]        pam_winbind.so&lt;br /&gt;
 account requisite                       pam_deny.so&lt;br /&gt;
 account required                        pam_permit.so&lt;br /&gt;
===common-session===&lt;br /&gt;
 session [default=1]                     pam_permit.so&lt;br /&gt;
 session requisite                       pam_deny.so&lt;br /&gt;
 session required                        pam_permit.so&lt;br /&gt;
 session optional                        pam_umask.so&lt;br /&gt;
 session required pam_mkhomedir.so umask=0022 skel=/etc/skel&lt;br /&gt;
 session required        pam_unix.so&lt;br /&gt;
 session optional                        pam_winbind.so&lt;br /&gt;
 session optional        pam_systemd.so&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Ubuntu-ads-client&amp;diff=4638</id>
		<title>Ubuntu-ads-client</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Ubuntu-ads-client&amp;diff=4638"/>
		<updated>2014-07-17T05:22:26Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: /* funtioniert nsswitch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=auf dem domain controller=&lt;br /&gt;
 kinit administrator&lt;br /&gt;
 samba-tool dns add localhost  xinux.org dewey A 192.168.244.152&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
==Interface anpassen==&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
 address 192.168.244.152&lt;br /&gt;
 netmask 255.255.248.0&lt;br /&gt;
 gateway 192.168.240.100&lt;br /&gt;
 dns-nameservers 192.168.240.200&lt;br /&gt;
 dns-search xinux.org&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==hosts anpassen==&lt;br /&gt;
 vi /etc/hosts&lt;br /&gt;
 127.0.0.1       localhost&lt;br /&gt;
 192.168.244.152 dewey dewey.xinux.org &lt;br /&gt;
 echo dewey.xinux.org &amp;gt; /etc/hostname&lt;br /&gt;
 reboot&lt;br /&gt;
&lt;br /&gt;
==samba4 installieren==&lt;br /&gt;
 apt-get install samba smbclient winbind ntp libnss-winbind lib krb5-user acl&lt;br /&gt;
&lt;br /&gt;
==/etc/samba/smb.conf==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[global]&lt;br /&gt;
   workgroup = XINUX&lt;br /&gt;
   security = ADS&lt;br /&gt;
   realm = XINUX.ORG&lt;br /&gt;
   winbind separator = +&lt;br /&gt;
   winbind enum users = yes&lt;br /&gt;
   winbind enum groups = yes&lt;br /&gt;
   winbind use default domain = yes&lt;br /&gt;
   winbind refresh tickets = Yes&lt;br /&gt;
   template shell = /bin/bash&lt;br /&gt;
   idmap config * : range = 1000000 - 1999999&lt;br /&gt;
   idmap config EXAMPLE : backend = rid&lt;br /&gt;
   idmap config EXAMPLE : range = 1000000 - 1999999&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==/etc/krb5.conf==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[libdefaults]&lt;br /&gt;
...&lt;br /&gt;
[realms]&lt;br /&gt;
        XINUX.ORG = {&lt;br /&gt;
                kdc = gondor.xinux.org&lt;br /&gt;
                admin_server = gondor.xinux.org&lt;br /&gt;
....&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==domaine beitreten==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
net ads join -U administrator&lt;br /&gt;
Enter administrator's password:&lt;br /&gt;
Using short domain name -- XINUX&lt;br /&gt;
Joined 'DEWEY' to dns domain 'xinux.org'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===nsswitch.conf ändern===&lt;br /&gt;
 passwd:         compat winbind&lt;br /&gt;
 group:          compat winbind&lt;br /&gt;
&lt;br /&gt;
===ist winbind is &amp;quot;pingbar=== &lt;br /&gt;
 root@fenetre:~# wbinfo -p&lt;br /&gt;
 Ping to winbindd succeeded&lt;br /&gt;
&lt;br /&gt;
===anzeigen der userliste===&lt;br /&gt;
 root@fenetre:~# wbinfo -u&lt;br /&gt;
 Administrator&lt;br /&gt;
 Guest&lt;br /&gt;
 krbtgt&lt;br /&gt;
&lt;br /&gt;
===function of nsswitch===&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
getent passwd | grep 700&lt;br /&gt;
administrator:*:70001:70005:Administrator:/home/XINUX/administrator:/bin/bash&lt;br /&gt;
dns-gondor:*:70002:70005:dns-gondor:/home/XINUX/dns-gondor:/bin/bash&lt;br /&gt;
krbtgt:*:70003:70005:krbtgt:/home/XINUX/krbtgt:/bin/bash&lt;br /&gt;
thomas:*:70004:70005:thomas:/home/XINUX/thomas:/bin/bash&lt;br /&gt;
guest:*:70005:70006:Guest:/home/XINUX/guest:/bin/bash&lt;br /&gt;
squid:*:70006:70005:squid:/home/XINUX/squid:/bin/bash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*https://help.ubuntu.com/community/ActiveDirectoryWinbindHowto&lt;br /&gt;
=libpam-winbind=&lt;br /&gt;
 apt-get install libpam-winbind&lt;br /&gt;
==änderungen in /etc/pam.d/==&lt;br /&gt;
sollten automatisch geändert worden sein&lt;br /&gt;
===common-auth===&lt;br /&gt;
 auth    [success=2 default=ignore]      pam_unix.so nullok_secure&lt;br /&gt;
 auth    [success=1 default=ignore]      pam_winbind.so krb5_auth krb5_ccache_type=FILE cached_login try_first_pass&lt;br /&gt;
 auth    requisite                       pam_deny.so&lt;br /&gt;
 auth    required                        pam_permit.so&lt;br /&gt;
 auth    optional                        pam_cap.so&lt;br /&gt;
===common-account===&lt;br /&gt;
 account [success=2 new_authtok_reqd=done default=ignore]        pam_unix.so&lt;br /&gt;
 account [success=1 new_authtok_reqd=done default=ignore]        pam_winbind.so&lt;br /&gt;
 account requisite                       pam_deny.so&lt;br /&gt;
 account required                        pam_permit.so&lt;br /&gt;
===common-session===&lt;br /&gt;
 session [default=1]                     pam_permit.so&lt;br /&gt;
 session requisite                       pam_deny.so&lt;br /&gt;
 session required                        pam_permit.so&lt;br /&gt;
 session optional                        pam_umask.so&lt;br /&gt;
 session required        pam_unix.so&lt;br /&gt;
 session optional                        pam_winbind.so&lt;br /&gt;
 session optional        pam_systemd.so&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Ubuntu-ads-client&amp;diff=4637</id>
		<title>Ubuntu-ads-client</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Ubuntu-ads-client&amp;diff=4637"/>
		<updated>2014-07-17T05:14:47Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: /* samba4 installieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=auf dem domain controller=&lt;br /&gt;
 kinit administrator&lt;br /&gt;
 samba-tool dns add localhost  xinux.org dewey A 192.168.244.152&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
==Interface anpassen==&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
 address 192.168.244.152&lt;br /&gt;
 netmask 255.255.248.0&lt;br /&gt;
 gateway 192.168.240.100&lt;br /&gt;
 dns-nameservers 192.168.240.200&lt;br /&gt;
 dns-search xinux.org&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==hosts anpassen==&lt;br /&gt;
 vi /etc/hosts&lt;br /&gt;
 127.0.0.1       localhost&lt;br /&gt;
 192.168.244.152 dewey dewey.xinux.org &lt;br /&gt;
 echo dewey.xinux.org &amp;gt; /etc/hostname&lt;br /&gt;
 reboot&lt;br /&gt;
&lt;br /&gt;
==samba4 installieren==&lt;br /&gt;
 apt-get install samba smbclient winbind ntp libnss-winbind lib krb5-user acl&lt;br /&gt;
&lt;br /&gt;
==/etc/samba/smb.conf==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[global]&lt;br /&gt;
   workgroup = XINUX&lt;br /&gt;
   security = ADS&lt;br /&gt;
   realm = XINUX.ORG&lt;br /&gt;
   winbind separator = +&lt;br /&gt;
   winbind enum users = yes&lt;br /&gt;
   winbind enum groups = yes&lt;br /&gt;
   winbind use default domain = yes&lt;br /&gt;
   winbind refresh tickets = Yes&lt;br /&gt;
   template shell = /bin/bash&lt;br /&gt;
   idmap config * : range = 1000000 - 1999999&lt;br /&gt;
   idmap config EXAMPLE : backend = rid&lt;br /&gt;
   idmap config EXAMPLE : range = 1000000 - 1999999&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==/etc/krb5.conf==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[libdefaults]&lt;br /&gt;
...&lt;br /&gt;
[realms]&lt;br /&gt;
        XINUX.ORG = {&lt;br /&gt;
                kdc = gondor.xinux.org&lt;br /&gt;
                admin_server = gondor.xinux.org&lt;br /&gt;
....&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==domaine beitreten==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
net ads join -U administrator&lt;br /&gt;
Enter administrator's password:&lt;br /&gt;
Using short domain name -- XINUX&lt;br /&gt;
Joined 'DEWEY' to dns domain 'xinux.org'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===nsswitch.conf ändern===&lt;br /&gt;
 passwd:         compat winbind&lt;br /&gt;
 group:          compat winbind&lt;br /&gt;
&lt;br /&gt;
===ist winbind is &amp;quot;pingbar=== &lt;br /&gt;
 root@fenetre:~# wbinfo -p&lt;br /&gt;
 Ping to winbindd succeeded&lt;br /&gt;
&lt;br /&gt;
===anzeigen der userliste===&lt;br /&gt;
 root@fenetre:~# wbinfo -u&lt;br /&gt;
 Administrator&lt;br /&gt;
 Guest&lt;br /&gt;
 krbtgt&lt;br /&gt;
&lt;br /&gt;
===funtioniert nsswitch===&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
getent passwd | grep 700&lt;br /&gt;
administrator:*:70001:70005:Administrator:/home/XINUX/administrator:/bin/bash&lt;br /&gt;
dns-gondor:*:70002:70005:dns-gondor:/home/XINUX/dns-gondor:/bin/bash&lt;br /&gt;
krbtgt:*:70003:70005:krbtgt:/home/XINUX/krbtgt:/bin/bash&lt;br /&gt;
thomas:*:70004:70005:thomas:/home/XINUX/thomas:/bin/bash&lt;br /&gt;
guest:*:70005:70006:Guest:/home/XINUX/guest:/bin/bash&lt;br /&gt;
squid:*:70006:70005:squid:/home/XINUX/squid:/bin/bash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*https://help.ubuntu.com/community/ActiveDirectoryWinbindHowto&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Ubuntu-ads-client&amp;diff=4636</id>
		<title>Ubuntu-ads-client</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Ubuntu-ads-client&amp;diff=4636"/>
		<updated>2014-07-17T05:03:32Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: /* funtioniert nsswitch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=auf dem domain controller=&lt;br /&gt;
 kinit administrator&lt;br /&gt;
 samba-tool dns add localhost  xinux.org dewey A 192.168.244.152&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
==Interface anpassen==&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
 address 192.168.244.152&lt;br /&gt;
 netmask 255.255.248.0&lt;br /&gt;
 gateway 192.168.240.100&lt;br /&gt;
 dns-nameservers 192.168.240.200&lt;br /&gt;
 dns-search xinux.org&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==hosts anpassen==&lt;br /&gt;
 vi /etc/hosts&lt;br /&gt;
 127.0.0.1       localhost&lt;br /&gt;
 192.168.244.152 dewey dewey.xinux.org &lt;br /&gt;
 echo dewey.xinux.org &amp;gt; /etc/hostname&lt;br /&gt;
 reboot&lt;br /&gt;
&lt;br /&gt;
==samba4 installieren==&lt;br /&gt;
 apt-get install samba smbclient winbind ntp libnss-winbind krb5-user acl&lt;br /&gt;
&lt;br /&gt;
==/etc/samba/smb.conf==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[global]&lt;br /&gt;
   workgroup = XINUX&lt;br /&gt;
   security = ADS&lt;br /&gt;
   realm = XINUX.ORG&lt;br /&gt;
   winbind separator = +&lt;br /&gt;
   winbind enum users = yes&lt;br /&gt;
   winbind enum groups = yes&lt;br /&gt;
   winbind use default domain = yes&lt;br /&gt;
   winbind refresh tickets = Yes&lt;br /&gt;
   template shell = /bin/bash&lt;br /&gt;
   idmap config * : range = 1000000 - 1999999&lt;br /&gt;
   idmap config EXAMPLE : backend = rid&lt;br /&gt;
   idmap config EXAMPLE : range = 1000000 - 1999999&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==/etc/krb5.conf==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[libdefaults]&lt;br /&gt;
...&lt;br /&gt;
[realms]&lt;br /&gt;
        XINUX.ORG = {&lt;br /&gt;
                kdc = gondor.xinux.org&lt;br /&gt;
                admin_server = gondor.xinux.org&lt;br /&gt;
....&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==domaine beitreten==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
net ads join -U administrator&lt;br /&gt;
Enter administrator's password:&lt;br /&gt;
Using short domain name -- XINUX&lt;br /&gt;
Joined 'DEWEY' to dns domain 'xinux.org'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===nsswitch.conf ändern===&lt;br /&gt;
 passwd:         compat winbind&lt;br /&gt;
 group:          compat winbind&lt;br /&gt;
&lt;br /&gt;
===ist winbind is &amp;quot;pingbar=== &lt;br /&gt;
 root@fenetre:~# wbinfo -p&lt;br /&gt;
 Ping to winbindd succeeded&lt;br /&gt;
&lt;br /&gt;
===anzeigen der userliste===&lt;br /&gt;
 root@fenetre:~# wbinfo -u&lt;br /&gt;
 Administrator&lt;br /&gt;
 Guest&lt;br /&gt;
 krbtgt&lt;br /&gt;
&lt;br /&gt;
===funtioniert nsswitch===&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
getent passwd | grep 700&lt;br /&gt;
administrator:*:70001:70005:Administrator:/home/XINUX/administrator:/bin/bash&lt;br /&gt;
dns-gondor:*:70002:70005:dns-gondor:/home/XINUX/dns-gondor:/bin/bash&lt;br /&gt;
krbtgt:*:70003:70005:krbtgt:/home/XINUX/krbtgt:/bin/bash&lt;br /&gt;
thomas:*:70004:70005:thomas:/home/XINUX/thomas:/bin/bash&lt;br /&gt;
guest:*:70005:70006:Guest:/home/XINUX/guest:/bin/bash&lt;br /&gt;
squid:*:70006:70005:squid:/home/XINUX/squid:/bin/bash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*https://help.ubuntu.com/community/ActiveDirectoryWinbindHowto&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Ubuntu-ads-client&amp;diff=4635</id>
		<title>Ubuntu-ads-client</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Ubuntu-ads-client&amp;diff=4635"/>
		<updated>2014-07-17T05:02:24Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: Die Seite wurde neu angelegt: „=auf dem domain controller=  kinit administrator  samba-tool dns add localhost  xinux.org dewey A 192.168.244.152  =Installation= ==Interface anpassen==  vi /etc/…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=auf dem domain controller=&lt;br /&gt;
 kinit administrator&lt;br /&gt;
 samba-tool dns add localhost  xinux.org dewey A 192.168.244.152&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
==Interface anpassen==&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
 address 192.168.244.152&lt;br /&gt;
 netmask 255.255.248.0&lt;br /&gt;
 gateway 192.168.240.100&lt;br /&gt;
 dns-nameservers 192.168.240.200&lt;br /&gt;
 dns-search xinux.org&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==hosts anpassen==&lt;br /&gt;
 vi /etc/hosts&lt;br /&gt;
 127.0.0.1       localhost&lt;br /&gt;
 192.168.244.152 dewey dewey.xinux.org &lt;br /&gt;
 echo dewey.xinux.org &amp;gt; /etc/hostname&lt;br /&gt;
 reboot&lt;br /&gt;
&lt;br /&gt;
==samba4 installieren==&lt;br /&gt;
 apt-get install samba smbclient winbind ntp libnss-winbind krb5-user acl&lt;br /&gt;
&lt;br /&gt;
==/etc/samba/smb.conf==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[global]&lt;br /&gt;
   workgroup = XINUX&lt;br /&gt;
   security = ADS&lt;br /&gt;
   realm = XINUX.ORG&lt;br /&gt;
   winbind separator = +&lt;br /&gt;
   winbind enum users = yes&lt;br /&gt;
   winbind enum groups = yes&lt;br /&gt;
   winbind use default domain = yes&lt;br /&gt;
   winbind refresh tickets = Yes&lt;br /&gt;
   template shell = /bin/bash&lt;br /&gt;
   idmap config * : range = 1000000 - 1999999&lt;br /&gt;
   idmap config EXAMPLE : backend = rid&lt;br /&gt;
   idmap config EXAMPLE : range = 1000000 - 1999999&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==/etc/krb5.conf==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[libdefaults]&lt;br /&gt;
...&lt;br /&gt;
[realms]&lt;br /&gt;
        XINUX.ORG = {&lt;br /&gt;
                kdc = gondor.xinux.org&lt;br /&gt;
                admin_server = gondor.xinux.org&lt;br /&gt;
....&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==domaine beitreten==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
net ads join -U administrator&lt;br /&gt;
Enter administrator's password:&lt;br /&gt;
Using short domain name -- XINUX&lt;br /&gt;
Joined 'DEWEY' to dns domain 'xinux.org'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===nsswitch.conf ändern===&lt;br /&gt;
 passwd:         compat winbind&lt;br /&gt;
 group:          compat winbind&lt;br /&gt;
&lt;br /&gt;
===ist winbind is &amp;quot;pingbar=== &lt;br /&gt;
 root@fenetre:~# wbinfo -p&lt;br /&gt;
 Ping to winbindd succeeded&lt;br /&gt;
&lt;br /&gt;
===anzeigen der userliste===&lt;br /&gt;
 root@fenetre:~# wbinfo -u&lt;br /&gt;
 Administrator&lt;br /&gt;
 Guest&lt;br /&gt;
 krbtgt&lt;br /&gt;
&lt;br /&gt;
===funtioniert nsswitch===&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
getent passwd | grep 700&lt;br /&gt;
administrator:*:70001:70005:Administrator:/home/XINUX/administrator:/bin/false&lt;br /&gt;
dns-gondor:*:70002:70005:dns-gondor:/home/XINUX/dns-gondor:/bin/false&lt;br /&gt;
krbtgt:*:70003:70005:krbtgt:/home/XINUX/krbtgt:/bin/false&lt;br /&gt;
thomas:*:70004:70005:thomas:/home/XINUX/thomas:/bin/false&lt;br /&gt;
guest:*:70005:70006:Guest:/home/XINUX/guest:/bin/false&lt;br /&gt;
squid:*:70006:70005:squid:/home/XINUX/squid:/bin/false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*https://help.ubuntu.com/community/ActiveDirectoryWinbindHowto&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Samba4&amp;diff=4634</id>
		<title>Samba4</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Samba4&amp;diff=4634"/>
		<updated>2014-07-17T05:01:23Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Installation=&lt;br /&gt;
*[[Sources]]&lt;br /&gt;
*[[Ubuntu-samba4]]&lt;br /&gt;
*[[Ubuntu-ads-member]]&lt;br /&gt;
*[[Ubuntu-ads-client]]&lt;br /&gt;
*[[Sernet]]&lt;br /&gt;
*[[Windows-8.1-samba4|Windows-8.1]]&lt;br /&gt;
*[[Usermanagment]]&lt;br /&gt;
*[[DNS]]&lt;br /&gt;
*[[Kerberos]]&lt;br /&gt;
*[[Roaming Profiles]]&lt;br /&gt;
*[[Gruppenrichtlinien]]&lt;br /&gt;
*[[Debugging]]&lt;br /&gt;
*[[Upgrading von 3 nach 4]]&lt;br /&gt;
*[[Backup]]&lt;br /&gt;
*[[ldb-tools]]&lt;br /&gt;
*[[RSAT]]&lt;br /&gt;
*[[Registry]]&lt;br /&gt;
*[[automatic shares]]&lt;br /&gt;
*[[change dns backend]]&lt;br /&gt;
*[[squid-kerberos]]&lt;br /&gt;
&lt;br /&gt;
=pam ldap=&lt;br /&gt;
*http://zachbethel.com/2013/04/10/linux-ldap-authentication-with-samba4/&lt;br /&gt;
=ldapbackend=&lt;br /&gt;
*http://www.foteviken.de/?p=1925&lt;br /&gt;
=samba-and-active-directory=&lt;br /&gt;
*http://www.held-im-ruhestand.de/software/samba-and-active-directory&lt;br /&gt;
=domain member=&lt;br /&gt;
*https://wiki.samba.org/index.php/Samba4/Domain_Member&lt;br /&gt;
=group policiy=&lt;br /&gt;
*http://www.alexwyn.com/computer-tips/folder-redirection-samba4-active-directory-domain-controller&lt;br /&gt;
=movies=&lt;br /&gt;
*http://www.samba.org/tridge/Samba4Demo/&lt;br /&gt;
&lt;br /&gt;
=Kennwortrichtlinie deaktivieren=&lt;br /&gt;
 Du gehst in die Gruppenrichtlinienverwaltung.&lt;br /&gt;
 Dann gehst du in das Verzecihnis deiner gewünschten Domäne.&lt;br /&gt;
 Jetzt solltest du einen eintrag sehen, der sich &amp;quot;Default Domain Controllers Policy&amp;quot; nennt.&lt;br /&gt;
 Mit rechter Maustaste draufklicken und bearbeiten. Dann öffnet sich der Gruppenrichtlinienverwaltungs-Editor&lt;br /&gt;
 (Achtung! Auf den ersten Blick sehr leicht mit der Gruppenrichtlinienverwaltung zu verwechseln).&lt;br /&gt;
 Jetzt schaust du unter &amp;quot;Computerconfiguration&amp;gt; Richtlinien&amp;gt; Windows-Einstellungen&amp;gt; Sicherheitseinstellungen&amp;gt; Kontorichtlinien&amp;gt; Kennwortrichtlinien.&lt;br /&gt;
 &lt;br /&gt;
 Dort darf man dann endlich die Kennwortrichtlinie deaktivieren.&lt;br /&gt;
&lt;br /&gt;
=debian=&lt;br /&gt;
*http://chris-blog.net/2014/01/freigaben-auf-einem-samba-4-server-einrichten/&lt;br /&gt;
=ubuntu=&lt;br /&gt;
http://xiep.de/allgemein/ubuntu-server-12-04-mit-samba-4-und-active-directory-pdc/&lt;br /&gt;
=dns=&lt;br /&gt;
https://wiki.archlinux.org/index.php/Samba_4_Active_Directory_Domain_Controller&lt;br /&gt;
=kennwortrichtlinien=&lt;br /&gt;
http://chris-blog.net/2014/01/kennwortrichtlinie-in-samba-4-domain-deaktivieren/&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=DNS&amp;diff=4621</id>
		<title>DNS</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=DNS&amp;diff=4621"/>
		<updated>2014-07-16T08:55:40Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*kinit&lt;br /&gt;
 kinit administrator@SIMPLEX.LOCAL&lt;br /&gt;
&lt;br /&gt;
*Creating a new zone (forward)&lt;br /&gt;
 samba-tool dns zonecreate localhost 244.168.192.in-addr.arpa&lt;br /&gt;
&lt;br /&gt;
*Creating a new zone (reverse)&lt;br /&gt;
 samba-tool dns zonecreate localhost willux.org&lt;br /&gt;
&lt;br /&gt;
*A RECORD add&lt;br /&gt;
 samba-tool dns add localhost  simplex.local  otto A 192.168.246.23&lt;br /&gt;
&lt;br /&gt;
*A RECORD delete&lt;br /&gt;
 samba-tool dns delete localhost  simplex.local  otto A 192.168.246.23&lt;br /&gt;
&lt;br /&gt;
*CNAME RECORD add&lt;br /&gt;
 samba-tool dns add localhost  simplex.local  karl CNAME otto.simplex.local &lt;br /&gt;
&lt;br /&gt;
*PTR RECORD add&lt;br /&gt;
 samba-tool dns add localhost  246.168.192.in-addr.arpa  23  PTR  otto.simplex.local &lt;br /&gt;
&lt;br /&gt;
*CNAME RECORD delete&lt;br /&gt;
 samba-tool dns delete localhost  simplex.local  karl CNAME otto.simplex.local&lt;br /&gt;
&lt;br /&gt;
*NS RECORD add&lt;br /&gt;
samba-tool dns add localhost  246.168.192.in-addr.arpa @ NS  sux.simplex.local&lt;br /&gt;
&lt;br /&gt;
*SERVER INFO&lt;br /&gt;
 samba-tool dns serverinfo localhost&lt;br /&gt;
&lt;br /&gt;
*ZONE INFO&lt;br /&gt;
 samba-tool dns zoneinfo localhost simplex.local&lt;br /&gt;
&lt;br /&gt;
*ZONE LIST&lt;br /&gt;
 samba-tool dns zonelist localhost &lt;br /&gt;
&lt;br /&gt;
*Print all DNS records &lt;br /&gt;
 samba-tool dns query localhost simplex.local @ ALL&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Squid-kerberos&amp;diff=4620</id>
		<title>Squid-kerberos</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Squid-kerberos&amp;diff=4620"/>
		<updated>2014-07-15T14:34:38Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*http://roshan-g.blogspot.de/2014/05/squid-with-kerberos-and-ldap.html&lt;br /&gt;
*http://wiki.squid-cache.org/ConfigExamples/Authenticate/WindowsActiveDirectory&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Squid-kerberos&amp;diff=4619</id>
		<title>Squid-kerberos</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Squid-kerberos&amp;diff=4619"/>
		<updated>2014-07-15T14:34:12Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*http://roshan-g.blogspot.de/2014/05/squid-with-kerberos-and-ldap.html&lt;br /&gt;
*&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Squid-kerberos&amp;diff=4618</id>
		<title>Squid-kerberos</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Squid-kerberos&amp;diff=4618"/>
		<updated>2014-07-15T09:37:47Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: Die Seite wurde neu angelegt: „*http://roshan-g.blogspot.de/2014/05/squid-with-kerberos-and-ldap.html“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*http://roshan-g.blogspot.de/2014/05/squid-with-kerberos-and-ldap.html&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Samba4&amp;diff=4617</id>
		<title>Samba4</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Samba4&amp;diff=4617"/>
		<updated>2014-07-15T09:37:35Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Installation=&lt;br /&gt;
*[[Sources]]&lt;br /&gt;
*[[Ubuntu-samba4|Ubuntu]]&lt;br /&gt;
*[[Sernet]]&lt;br /&gt;
*[[Windows-8.1-samba4|Windows-8.1]]&lt;br /&gt;
*[[Usermanagment]]&lt;br /&gt;
*[[DNS]]&lt;br /&gt;
*[[Kerberos]]&lt;br /&gt;
*[[Roaming Profiles]]&lt;br /&gt;
*[[Gruppenrichtlinien]]&lt;br /&gt;
*[[Debugging]]&lt;br /&gt;
*[[Upgrading von 3 nach 4]]&lt;br /&gt;
*[[Backup]]&lt;br /&gt;
*[[ldb-tools]]&lt;br /&gt;
*[[RSAT]]&lt;br /&gt;
*[[Registry]]&lt;br /&gt;
*[[automatic shares]]&lt;br /&gt;
*[[change dns backend]]&lt;br /&gt;
*[[squid-kerberos]]&lt;br /&gt;
&lt;br /&gt;
=pam ldap=&lt;br /&gt;
*http://zachbethel.com/2013/04/10/linux-ldap-authentication-with-samba4/&lt;br /&gt;
=ldapbackend=&lt;br /&gt;
*http://www.foteviken.de/?p=1925&lt;br /&gt;
=samba-and-active-directory=&lt;br /&gt;
*http://www.held-im-ruhestand.de/software/samba-and-active-directory&lt;br /&gt;
=domain member=&lt;br /&gt;
*https://wiki.samba.org/index.php/Samba4/Domain_Member&lt;br /&gt;
=group policiy=&lt;br /&gt;
*http://www.alexwyn.com/computer-tips/folder-redirection-samba4-active-directory-domain-controller&lt;br /&gt;
=movies=&lt;br /&gt;
*http://www.samba.org/tridge/Samba4Demo/&lt;br /&gt;
&lt;br /&gt;
=Kennwortrichtlinie deaktivieren=&lt;br /&gt;
 Du gehst in die Gruppenrichtlinienverwaltung.&lt;br /&gt;
 Dann gehst du in das Verzecihnis deiner gewünschten Domäne.&lt;br /&gt;
 Jetzt solltest du einen eintrag sehen, der sich &amp;quot;Default Domain Controllers Policy&amp;quot; nennt.&lt;br /&gt;
 Mit rechter Maustaste draufklicken und bearbeiten. Dann öffnet sich der Gruppenrichtlinienverwaltungs-Editor&lt;br /&gt;
 (Achtung! Auf den ersten Blick sehr leicht mit der Gruppenrichtlinienverwaltung zu verwechseln).&lt;br /&gt;
 Jetzt schaust du unter &amp;quot;Computerconfiguration&amp;gt; Richtlinien&amp;gt; Windows-Einstellungen&amp;gt; Sicherheitseinstellungen&amp;gt; Kontorichtlinien&amp;gt; Kennwortrichtlinien.&lt;br /&gt;
 &lt;br /&gt;
 Dort darf man dann endlich die Kennwortrichtlinie deaktivieren.&lt;br /&gt;
&lt;br /&gt;
=debian=&lt;br /&gt;
*http://chris-blog.net/2014/01/freigaben-auf-einem-samba-4-server-einrichten/&lt;br /&gt;
=ubuntu=&lt;br /&gt;
http://xiep.de/allgemein/ubuntu-server-12-04-mit-samba-4-und-active-directory-pdc/&lt;br /&gt;
=dns=&lt;br /&gt;
https://wiki.archlinux.org/index.php/Samba_4_Active_Directory_Domain_Controller&lt;br /&gt;
=kennwortrichtlinien=&lt;br /&gt;
http://chris-blog.net/2014/01/kennwortrichtlinie-in-samba-4-domain-deaktivieren/&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=VLC&amp;diff=4616</id>
		<title>VLC</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=VLC&amp;diff=4616"/>
		<updated>2014-07-14T09:03:34Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: /* m3u bugfix */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:vlc.jpg]]&lt;br /&gt;
&lt;br /&gt;
=VLC media player=&lt;br /&gt;
Der VLC media player, oder anfangs VideoLAN client, ist ein mittlerweile bekannter freier Mediaplayer der die unterschiedlichsten Codecs und Dateiformate sowie DVD's und Video-CD's unterstützt.&lt;br /&gt;
&lt;br /&gt;
==Geschichte==&lt;br /&gt;
Der VLC media player wird seit 1999 vom VideoLAN-Team entwickelt. Dieses besteht aus Studenten der französischen Ingenieurschule École centrale Paris in Châtenay-Malabry bei Paris und Entwicklern aus über 20 Ländern. Das Programm steht seit dem 1. Februar 2001 unter der GNU General Public License.&lt;br /&gt;
&lt;br /&gt;
=== Logo ===&lt;br /&gt;
Der Entwickler Antoine Cellerier kennt die Geschichte des Logos selbst nur vom Hörensagen: Eines Tages kamen Studenten eines der Netzwerk-Clubs der École centrale Paris betrunken mit einem Verkehrssicherungskegel nach Hause. Später ging aus diesem Club das VideoLAN-Projekt hervor. Als man ein Logo für das Programm suchte, fiel die Wahl auf den Kegel, aus dem zu diesem Zeitpunkt bereits eine beträchtliche Kegel-Sammlung hervorgegangen war.&lt;br /&gt;
&lt;br /&gt;
==Merkmale==&lt;br /&gt;
===Die Streaming Lösung===&lt;br /&gt;
Die ursprüngliche Streaming-Lösung besteht aus dem VideoLAN Server und dem VLC media player. Damit war das Streaming von digitalen TV-Inhalten, DVDs und MPEG- &amp;amp; DivX-Filmdateien über den Campus der École Centrale Paris möglich. Mittlerweile wurden beide Programme erweitert, sodass auch Streaming über das Internet realisierbar ist. VLC unterstützt mittlerweile auch Video on Demand, so dass es durchaus mit Streaminglösungen kommerzieller Anbieter konkurrieren kann. &lt;br /&gt;
&lt;br /&gt;
Durch die Weiterentwicklung des VLC media player zu einem eigenen Streaming-Server wurde das Konzept der Lösung seit Januar 2003 aufgeweicht. Eine mittelbare Folge davon ist, dass die Lösung auch von Benutzern ohne große Vorkenntnisse eingesetzt werden kann.&lt;br /&gt;
&lt;br /&gt;
===Vielseitigkeit===&lt;br /&gt;
Besonders hervorzuheben ist die Vielseitigkeit des Programms, das nahezu jedes Format und jede Datei abspielt, auch unvollständige oder bruchstückhafte AVI-Dateien, was z. B. bei nicht vollständig heruntergeladenen Dateien der Fall sein kann. &lt;br /&gt;
&lt;br /&gt;
Zusätzlich können über Filter verschiedene Effekte in Echtzeit angewandt werden. So kann z. B. ein Video, das im Hochformat aufgenommen wurde, um 90° gedreht, und Farbfilter etc. angewandt werden.&lt;br /&gt;
&lt;br /&gt;
===Portabilität===&lt;br /&gt;
Der VLC media player läuft unter GNU/Linux, Microsoft Windows, Mac OS X, BeOS, Syllable. Einige andere Betriebssysteme wie z. B. BSD werden auch unterstützt, für sie gibt es nur keine vorkompilierte Binär-Pakete.&lt;br /&gt;
Außerdem gibt es für Microsoft Windows eine portable (vom USB-Stick ohne Installation lauffähige) Version.&lt;br /&gt;
&lt;br /&gt;
== Einsatz ==&lt;br /&gt;
Der ''VLC media player'' kommt bei Privatnutzern, in Schulen und Universitäten, aber auch bei professionellen Anwendern zum Einsatz. Geschätzt wird vor allem die hohe Kompatibilität mit einer Vielzahl von Formaten und Codecs, wodurch er beinahe alles wiedergeben kann. Auch die im September 2007 vorgestellte ZDFmediathek unterstützt den VLC zur Wiedergabe ihres Video-on-Demand- und Livestream-Angebots (bei bestmöglicher Bildqualität dank Wiedergabe einer H.264-kodierten Videoquelle).&lt;br /&gt;
&lt;br /&gt;
=Benutzung=&lt;br /&gt;
Man kann den VLC Player auch ohne eine Menu zu öffnen mit '''cvlc''' aufrufen. &lt;br /&gt;
&lt;br /&gt;
==Hilfe bekommen==&lt;br /&gt;
Alle Standard Operationen von VLC sollten über die Grafische Benutzeroberfläche verfügbar sein. Wie auch immer, manche komplexen Operationen können nur von der Kommandozeile aus benutzt werden  und es gibt Situationen in welchen man die Grafische Benutzeroberfläche nicht benötigt oder möchte.&lt;br /&gt;
&lt;br /&gt;
VLC hat eine Modulstruktur. Der Kern verwaltet haupsächlich die Kommunikation zwischen Modulen. Alle Multimediaprozesse werden von Modulen abgewickelt. Es gibt Input-Module, Demultiplexer, Decoder, Video Output Module und mehr...&lt;br /&gt;
&lt;br /&gt;
Dieses Kapitel wird nur die Kernoptionen erörtern. Jedes Modul erweitert VLC um neue Optionen. Zum Beispiel fügt das HTTP-Inputmodul Optionen für caching, proxy und Authentifikation hinzu.&lt;br /&gt;
&lt;br /&gt;
Einfachen Kernoptionen erfährt man mit:&lt;br /&gt;
&lt;br /&gt;
 xinux@zero:~$ '''vlc --help'''&lt;br /&gt;
&lt;br /&gt;
Alle Grundoptionen des Kerns + der Module mit:&lt;br /&gt;
&lt;br /&gt;
 xinux@zero:~$ '''vlc --longhelp'''&lt;br /&gt;
&lt;br /&gt;
Und wirklich alle Optionen mit:&lt;br /&gt;
&lt;br /&gt;
 xinux@zero:~$ '''vlc --longhelp --advanced'''&lt;br /&gt;
&lt;br /&gt;
==Medien öffnen==&lt;br /&gt;
&lt;br /&gt;
Der folgende Befehl startet VLC mit &amp;quot;Datei&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 thomas@cardassia:~$ vlc simpsons.mpg &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Öffnen von DVD's, Video- oder Audio CD's.&lt;br /&gt;
&lt;br /&gt;
DVD mit Menüs:&lt;br /&gt;
&lt;br /&gt;
 thomas@cardassia:~$ vlc dvd://&amp;quot;/dev/dvd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
DVD ohne Menüs:&lt;br /&gt;
&lt;br /&gt;
 thomas@cardassia:~$ vlc dvdsimple://&amp;quot;/dev/dvd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
VCD:&lt;br /&gt;
&lt;br /&gt;
 thomas@cardassia:~$ vlc vcd://&amp;quot;/dev/cdrom&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Audio CD:&lt;br /&gt;
&lt;br /&gt;
 thomas@cardassia:~$ vlc cdda://&amp;quot;/dev/cdrom&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Stream senden (UDP)==&lt;br /&gt;
&lt;br /&gt;
Eine Datei kann man über VLC mit folgendem Befehl streamen:&lt;br /&gt;
&lt;br /&gt;
 xinux@zero:~$ vlc Datei '''--sout udp:IP-Adresse'''&lt;br /&gt;
&lt;br /&gt;
Die &amp;quot;IP-Adresse&amp;quot; muss entweder &lt;br /&gt;
&lt;br /&gt;
* ein Rechner an den man Unicast-Streamen will,&lt;br /&gt;
 thomas@cardassia:~$ cvlc simpsons.mpg --sout udp:192.168.247.201 &lt;br /&gt;
* eine Multicast IP-Adresse sein (224.0.0.0 bis 239.255.255.255).&lt;br /&gt;
 thomas@cardassia:~$ cvlc simpsons.mpg --sout udp:224.0.0.224 &lt;br /&gt;
*um eine DVD zu streamen benutzt man:&lt;br /&gt;
 thomas@cardassia:~$ cvlc dvdsimple://&amp;quot;/dev/dvd&amp;quot; --sout 'udp:224.0.0.224' --ttl 12&lt;br /&gt;
&lt;br /&gt;
*Webcam Stream&lt;br /&gt;
 cvlc v4l2:///dev/video0 --sout '#transcode{vcodec=mp2v,vb=800}:standard{access=http,mux=ts,dst=:8080}'&lt;br /&gt;
&lt;br /&gt;
==Stream empfangen (UDP)==&lt;br /&gt;
&lt;br /&gt;
Um einen Unicast RTP/UDP Stream (Gesendet von VLC's Stream Output) zu empfangen muss man VLC mit folgenden Befehlen starten:&lt;br /&gt;
&lt;br /&gt;
  thomas@lydia:~$ vlc udp://&lt;br /&gt;
&lt;br /&gt;
Wenn man den Standartport '''1234''' verwendet reicht '''vlc rtp://'''&lt;br /&gt;
&lt;br /&gt;
Um einen Multicast-Stream zu empfangen benutzt man:&lt;br /&gt;
&lt;br /&gt;
 thomas@lydia:~$ vlc udp://@224.0.0.224&lt;br /&gt;
&lt;br /&gt;
Um einen HTTP-Stream zu empfangen startet man VLC mit:&lt;br /&gt;
&lt;br /&gt;
 xinux@zero:~$ vlc http://www.beispiel.org/Datei.mpg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==DVB-T Streamen (UDP)==&lt;br /&gt;
Transponder Datei anlegen&lt;br /&gt;
&lt;br /&gt;
 root@lydia:/usr/share/dvb/dvb-t# cat   de-Zweibrücken&lt;br /&gt;
 &lt;br /&gt;
 # DVB-T Zweibrücken&lt;br /&gt;
 # by Thomas Will (thomas.will@xinux.de) &lt;br /&gt;
 &lt;br /&gt;
 T 546000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE #3sat kika zdf zdf-info&lt;br /&gt;
 T 642000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE #arte das erste-1 phönix-1 sr1&lt;br /&gt;
 T 786000000  8MHz 2/3 NONE QAM16 8k 1/4 NONE #arte-1 ard einsplus phönix&lt;br /&gt;
 T 658000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # br hr swr wdr&lt;br /&gt;
&lt;br /&gt;
Channels Datei erzeugen&lt;br /&gt;
 root@lydia:/usr/share/dvb/dvb-t# scan de-Zweibrücken &amp;gt; channels.conf &lt;br /&gt;
&lt;br /&gt;
Und danach einfach über &amp;quot;Medien -&amp;gt; Datei öffnen&amp;quot; (oder M) die Datei auswählen. In der Wiedergabeliste (Aufruf: L) stehen dann alle verfügbaren Sender.&lt;br /&gt;
&lt;br /&gt;
 thomas@lydia:~$ cvlc channels.conf --out udp://224.0.0.224&lt;br /&gt;
&lt;br /&gt;
==Remote Control==&lt;br /&gt;
&lt;br /&gt;
VLC lässt sich nach belieben auch über Interfaces wie Telnet auf entfernten Rechnern steuern.&lt;br /&gt;
&lt;br /&gt;
Ein VLC mit Remote Control benutzbarkeit öffnet man mit:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# cvlc --rc-fake-tty --extraintf rc --rc-host &amp;quot;IP:PORT&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Beispiel&lt;br /&gt;
 &lt;br /&gt;
 root@zero:~# cvlc --rc-fake-tty --extraintf rc --rc-host 192.168.178.46:20000  \ &lt;br /&gt;
                 dvdsimple://&amp;quot;/dev/dvd&amp;quot; --sout udp:224.0.0.224 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die &amp;quot;IP-Adresse&amp;quot; ist die des Rechners auf dem VLC ausgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Mann kann dann mit Tools wie ''Netcat'' darauf zugreifen mit dem Befehl:&lt;br /&gt;
&lt;br /&gt;
 root@zero:~# nc &amp;quot;IP-Adresse&amp;quot; &amp;quot;PORT&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Beispiel&lt;br /&gt;
&lt;br /&gt;
 thomas@lydia:~$ echo stop | netcat 192.168.178.46 20000&lt;br /&gt;
 stop: returned 0 (no error)&lt;br /&gt;
 status change: ( play state: 8 ): End&lt;br /&gt;
 ^C&lt;br /&gt;
 &lt;br /&gt;
 thomas@lydia:~$ &lt;br /&gt;
 thomas@lydia:~$ echo play | netcat 192.168.178.46 20000&lt;br /&gt;
 play: returned 0 (no error)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Man sieht hierbei keine Bestätigung, aber mit '''help''' lassen sich die benutzbaren Befehle anzeigen.&lt;br /&gt;
&lt;br /&gt;
== Stream ==&lt;br /&gt;
V4L2 returns raw video. You cannot stream raw video. You must encode it first.&lt;br /&gt;
 cvlc v4l2:///dev/video0 --sout '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:standard{access=http,mux=ogg,dst=:8080}'&lt;br /&gt;
&lt;br /&gt;
: faster&lt;br /&gt;
 cvlc v4l2:///dev/video0 --sout '#transcode{vcodec=mp2v,vb=800}:standard{access=http,mux=ts,dst=:8080}'&lt;br /&gt;
&lt;br /&gt;
== webcam stream ==&lt;br /&gt;
&lt;br /&gt;
Anzeigen der Schnittstelle&lt;br /&gt;
 lsusb&lt;br /&gt;
&lt;br /&gt;
Suchen des Devicenamens&lt;br /&gt;
 ls -la /dev/video*&lt;br /&gt;
&lt;br /&gt;
 Ausgabe sollte so aussehen:&lt;br /&gt;
  crw-rw----+ 1 root video 81, 1 Mai  8 16:20 '''/dev/video1'''&lt;br /&gt;
&lt;br /&gt;
===stream via vlc===&lt;br /&gt;
&lt;br /&gt;
Stream headless starten (nicht als root)&lt;br /&gt;
 cvlc v4l2:// :v4l2-dev='''/dev/video1''' :v4l2-width=640 :v4l2-height=480 --sout &amp;quot;#transcode{vcodec=mpeg4,adec=mpga,vb=800,ab=128}:standard{access=udp, mux=ts, sap, name=live-video, dst=224.0.0.1, port=1234}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  v4l2-dev= Angabe des Devices.&lt;br /&gt;
  v4l2-width= Breite des Bildes&lt;br /&gt;
  v4l2-height= Höhe des Bildes&lt;br /&gt;
  vcodec= Einstellung des VideoCodecs.&lt;br /&gt;
  acodec= Einstellung des AudioCodecs.&lt;br /&gt;
  dst= Hier: Eine Multicast Adresse&lt;br /&gt;
  port= Einstellung des Ports.&lt;br /&gt;
&lt;br /&gt;
Streamen mit vlc&lt;br /&gt;
 vlc -vvv udp://@224.0.0.1:1234&lt;br /&gt;
&lt;br /&gt;
===stream via web===&lt;br /&gt;
&lt;br /&gt;
Stream headless starten (nicht als root)&lt;br /&gt;
 cvlc v4l2:// :v4l2-dev=/dev/video0 :v4l2-width=640 :v4l2-height=480 --sout &amp;quot;#transcode{vcodec=mpeg4,acodec=mpga,vb=800,ab=128}:standard{access=http, mux=ts, sap, name=live-video, dst='''eigene_IP''', port='''8080'''}&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 cvlc v4l2:// :v4l2-dev=/dev/video1 :v4l2-width=640 :v4l2-height=480 --sout &amp;quot;#transcode{vcodec=mpeg4,acodec=mpga,vb=800,ab=128}:standard{access=http, mux=ts, sap, name=live-video, dst=192.168.241.1, port=8080}&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
Streamen&lt;br /&gt;
VLC kann nun über Medien -&amp;gt; Netzwerksteam öffnen den Stream öffnen: http://'''IP_des_Servers''':8080&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===HTTP Streaming per Motion===&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install motion&lt;br /&gt;
&lt;br /&gt;
 vi etc/motion/motion.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''height 480'''   # Höhe des Bildes&lt;br /&gt;
&lt;br /&gt;
'''width 640'''    # Breite des Bildes&lt;br /&gt;
&lt;br /&gt;
'''framerate 10'''    # Bilder pro Sekunde (Bildrate); je höher, desto mehr Bilder&lt;br /&gt;
&lt;br /&gt;
'''text_left Kamera %t'''    # Beschriftung im Kamerabild&lt;br /&gt;
&lt;br /&gt;
'''webcam_quality 100'''    # Qualität des Bildes&lt;br /&gt;
&lt;br /&gt;
'''webcam_localhost off'''    # Zugriff auf Kamerabild auch von “außerhalb” des eigenen Rechners erlauben&lt;br /&gt;
&lt;br /&gt;
'''control_localhost off'''    # Zugriff auf Control-Interface auch von “außerhalb” des eigenen Rechners erlauben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 vi /etc/default/motion&lt;br /&gt;
 &lt;br /&gt;
 # set to ‘yes’ to enable the motion daemon&lt;br /&gt;
 start_motion_daemon=yes&lt;br /&gt;
&lt;br /&gt;
 sudo /etc/init.d/motion start &lt;br /&gt;
   * Starting motion detection daemon motion      [ OK ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
&lt;br /&gt;
Mögliche Probleme: '''VLC meldet “Permission denied”'''&lt;br /&gt;
&lt;br /&gt;
  v4l2 demux error: cannot open video device '/dev/video0' (Permission denied)&lt;br /&gt;
&lt;br /&gt;
Ein Blick auf die Rechte zeigt, dass das Device root gehört:&lt;br /&gt;
&lt;br /&gt;
 Shell # &amp;gt; ls -all /dev/video* &lt;br /&gt;
 crw-rw—- 1 root video 81, 0 2011-10-16 22:53 /dev/video0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: http://www.lavrsen.dk/foswiki/bin/view/Motion/WebHome&lt;br /&gt;
: http://www.videolan.org/doc/streaming-howto/en/ch02.html&lt;br /&gt;
: http://blog.rotzoll.net/2011/10/seine-webcam-als-uberwachungskamera-nutzen/&lt;br /&gt;
&lt;br /&gt;
     &lt;br /&gt;
&lt;br /&gt;
=m3u bugfix=&lt;br /&gt;
*http://www.browser.de/browser-forum/firefox/plugins/2538-livestreams-im-m3u-format-werden-nicht-abgespielt/&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=VPN_Astaro_zu_Linux&amp;diff=4615</id>
		<title>VPN Astaro zu Linux</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=VPN_Astaro_zu_Linux&amp;diff=4615"/>
		<updated>2014-07-11T12:18:23Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: /* Astaro-Seite (statisch) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Komponenten==&lt;br /&gt;
*1 PC&lt;br /&gt;
*1 VM&lt;br /&gt;
&lt;br /&gt;
==Zielbestimmung==&lt;br /&gt;
&lt;br /&gt;
VPN zwischen PC und VM die Netze dahinter Tunneln&lt;br /&gt;
&lt;br /&gt;
===Muss Kriterien===&lt;br /&gt;
&lt;br /&gt;
*Netzwerke über Tunnel gegenseitig erreichbar&lt;br /&gt;
&lt;br /&gt;
===Kann Kriterien===&lt;br /&gt;
&lt;br /&gt;
*PSK&lt;br /&gt;
*Zertifikate&lt;br /&gt;
**mit roadwarrior&lt;br /&gt;
**ohne roadwarrior&lt;br /&gt;
&lt;br /&gt;
==Umgebung==&lt;br /&gt;
===Software===&lt;br /&gt;
&lt;br /&gt;
*Astaro Release 8.102&lt;br /&gt;
*Ubuntu 10.04.2 2.6.32-33-generic-pae&lt;br /&gt;
&lt;br /&gt;
===Hardware===&lt;br /&gt;
*Router mit 2 Netzwerk-Schnittstellen&lt;br /&gt;
*ESXi Server (VMware)&lt;br /&gt;
&lt;br /&gt;
==Funktionalität==&lt;br /&gt;
*Ipsec implementierung muss auf Linux-Seite vorhanden sein&lt;br /&gt;
 apt-get install openswan&lt;br /&gt;
===PSK===&lt;br /&gt;
====Linux-Seite====&lt;br /&gt;
*/etc/ipsec.conf&lt;br /&gt;
 conn par-asg&lt;br /&gt;
       left=192.168.242.100&lt;br /&gt;
       leftid=192.168.242.100&lt;br /&gt;
       leftsubnet=172.23.242.0/24&lt;br /&gt;
       right=192.168.249.150&lt;br /&gt;
       rightid=192.168.249.150&lt;br /&gt;
       rightsubnet=172.30.232.0/24&lt;br /&gt;
       ike=3des-md5-modp1024&lt;br /&gt;
       esp=3des-md5-96&lt;br /&gt;
       authby=secret&lt;br /&gt;
       pfs=yes&lt;br /&gt;
       auto=start&lt;br /&gt;
&lt;br /&gt;
*/etc/ipsec.secrets&lt;br /&gt;
 192.168.242.100 192.168.249.150 : PSK &amp;quot;geheim&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Astaro-Seite====&lt;br /&gt;
*Remote Gateway einrichten&lt;br /&gt;
;[[file:astaro-v2-1.3.jpg|750px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*IPsec Verbindung einrichten&lt;br /&gt;
;[[file:astaro-v2-2.2.jpg|750px]]&lt;br /&gt;
&lt;br /&gt;
===Zertifikate einrichten===&lt;br /&gt;
====Zertifizierungsstelle erstellen====&lt;br /&gt;
&lt;br /&gt;
 makepki ca&lt;br /&gt;
&lt;br /&gt;
====Zertifikate erstellen====&lt;br /&gt;
&lt;br /&gt;
 makepki cert paragon&lt;br /&gt;
 makepki cert astaro&lt;br /&gt;
&lt;br /&gt;
====Zertifikate übernehmen====&lt;br /&gt;
Auf der Zertifizierungsstelle&lt;br /&gt;
 cd /var/ssl/ca&lt;br /&gt;
 tar -cvzf paragon.tgz ca.crt ca.crl paragon.key paragon.crt&lt;br /&gt;
 scp paragon.tgz paragon:/root&lt;br /&gt;
 cp astaro.p12 /export/share/tmp&lt;br /&gt;
=====Linux-Seite=====&lt;br /&gt;
&lt;br /&gt;
 tar -xvzf paragon.tgz&lt;br /&gt;
 cp -v ca.crt /etc/ipsec.d/cacerts/xinux-ca.crt&lt;br /&gt;
 cp -v ca.crl /etc/ipsec.d/crls/xinux-ca.crt&lt;br /&gt;
 cp -v paragon.key /etc/ipsec.d/private/&lt;br /&gt;
 cp -v paragon.crt /etc/ipsec.d/certs/&lt;br /&gt;
&lt;br /&gt;
=====Astaro-Seite=====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[file:astaro-sts2.jpg|750px]]&lt;br /&gt;
&lt;br /&gt;
====Linux-Seite====&lt;br /&gt;
&lt;br /&gt;
===x509 static-to-static===&lt;br /&gt;
&lt;br /&gt;
====Linux-Seite====&lt;br /&gt;
*/etc/ipsec.conf&lt;br /&gt;
 conn par-asg&lt;br /&gt;
      leftcert=paragon-cfg.crt&lt;br /&gt;
      left=192.168.242.100&lt;br /&gt;
      leftrsasigkey=%cert&lt;br /&gt;
      leftid=&amp;quot;C=de, ST=rlp, L=zweibruecken, OU=edv, CN=paragon, E=technik@xinux.de&amp;quot;&lt;br /&gt;
      leftsubnet=172.23.242.0/24&lt;br /&gt;
      right=192.168.249.150&lt;br /&gt;
      rightid=&amp;quot;C=de, ST=rlp, L=zweibruecken, OU=edv, CN=astaro, E=technik@xinux.de&amp;quot;&lt;br /&gt;
      rightrsasigkey=%cert&lt;br /&gt;
      rightsubnet=172.30.232.0/24&lt;br /&gt;
      ike=3des-md5-modp1024&lt;br /&gt;
      esp=3des-md5-96&lt;br /&gt;
      authby=rsasig&lt;br /&gt;
      pfs=yes&lt;br /&gt;
      auto=start&lt;br /&gt;
&lt;br /&gt;
*/etc/ipsec.secrets&lt;br /&gt;
 192.168.242.100 : RSA paragon-cfg.key &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Astaro-Seite====&lt;br /&gt;
[[file:astaro-sts1.jpg|750px]]&lt;br /&gt;
===x509 dynamic-to-static===&lt;br /&gt;
&lt;br /&gt;
====Linux-Seite (dynamisch)====&lt;br /&gt;
&lt;br /&gt;
*/etc/ipsec.conf&lt;br /&gt;
 conn par-asg&lt;br /&gt;
      leftcert=paragon-cfg.crt&lt;br /&gt;
      left=%defaultroute&lt;br /&gt;
      leftrsasigkey=%cert&lt;br /&gt;
      leftid=&amp;quot;C=de, ST=rlp, L=zweibruecken, OU=edv, CN=paragon, E=technik@xinux.de&amp;quot;&lt;br /&gt;
      leftsubnet=172.23.242.0/24&lt;br /&gt;
      right=192.168.249.150&lt;br /&gt;
      rightid=&amp;quot;C=de, ST=rlp, L=zweibruecken, OU=edv, CN=astaro, E=technik@xinux.de&amp;quot;&lt;br /&gt;
      rightrsasigkey=%cert&lt;br /&gt;
      rightsubnet=172.30.232.0/24&lt;br /&gt;
      ike=3des-md5-modp1024&lt;br /&gt;
      esp=3des-md5-96&lt;br /&gt;
      authby=rsasig&lt;br /&gt;
      pfs=yes&lt;br /&gt;
      auto=start&lt;br /&gt;
&lt;br /&gt;
====Astaro-Seite (statisch)====&lt;br /&gt;
[[file:astaro-dts1.jpg|750px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Linuxseite==&lt;br /&gt;
*linux.p12 generieren&lt;br /&gt;
*astaro VPN Signing CA als PEM runterladen &lt;br /&gt;
*nach /etc/ipsec.d/cacerts verschieben ... &lt;br /&gt;
*vpn-id der astaro steht unter IPSEC Lokaler RSA-S.....&lt;br /&gt;
&lt;br /&gt;
==Astaroseite==&lt;br /&gt;
*linux.p12 hinzufügen und namen linux-cert geben &lt;br /&gt;
 linux.crt und linux-ca.crt sind nun auf der astaro seite &lt;br /&gt;
*neues gateway erzeugen linux-gw&lt;br /&gt;
**nur antworten&lt;br /&gt;
**lokales zertifikat linux-cert auswählen &lt;br /&gt;
**netze nach belieben ...&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Change_dns_backend&amp;diff=4611</id>
		<title>Change dns backend</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Change_dns_backend&amp;diff=4611"/>
		<updated>2014-07-07T17:58:25Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=packet installation=&lt;br /&gt;
*samba stop&lt;br /&gt;
 service samba-ad-dc  stop&lt;br /&gt;
*install bind9&lt;br /&gt;
 apt-get install bind9&lt;br /&gt;
*stop bind9 if it run &lt;br /&gt;
 service bind9  stop&lt;br /&gt;
*because i am to lazy to configure apparmor - remove it :-)&lt;br /&gt;
 apt-get remove apparmor&lt;br /&gt;
 reboot&lt;br /&gt;
*add this to named.conf.local&lt;br /&gt;
 include &amp;quot;/var/lib/samba/private/named.conf&amp;quot;;&lt;br /&gt;
*add this to named.conf.local&lt;br /&gt;
 tkey-gssapi-keytab &amp;quot;/var/lib/samba/private/dns.keytab&amp;quot;;&lt;br /&gt;
*remove from smb.conf&lt;br /&gt;
 server services = ........ -dns&lt;br /&gt;
*change in &lt;br /&gt;
 /var/lib/samba/private/named.conf&lt;br /&gt;
 # For BIND 9.9.0&lt;br /&gt;
 database &amp;quot;dlopen /usr/lib/x86_64-linux-gnu/samba/bind9/dlz_bind9_9.so&amp;quot;;&lt;br /&gt;
*start the services&lt;br /&gt;
 service samba-ad-dc  start&lt;br /&gt;
 service bind9  start&lt;br /&gt;
=from the source=&lt;br /&gt;
*samba stop&lt;br /&gt;
 service samba  stop&lt;br /&gt;
*install bind9&lt;br /&gt;
 apt-get install bind9&lt;br /&gt;
*stop bind9 if it run &lt;br /&gt;
 service bind9  stop&lt;br /&gt;
*because i am to lazy to configure apparmor - remove it :-)&lt;br /&gt;
 apt-get remove apparmor&lt;br /&gt;
 reboot&lt;br /&gt;
*add this to named.conf.local&lt;br /&gt;
 include &amp;quot;/usr/local/samba/private/named.conf&amp;quot;;&lt;br /&gt;
*add this to named.conf.local&lt;br /&gt;
 tkey-gssapi-keytab &amp;quot;/usr/local/samba/private/dns.keytab&amp;quot;;&lt;br /&gt;
*remove from smb.conf&lt;br /&gt;
 server services = ........ -dns&lt;br /&gt;
*change in &lt;br /&gt;
 /usr/local/samba/private/named.conf&lt;br /&gt;
 # For BIND 9.9.0&lt;br /&gt;
 database &amp;quot;dlopen /usr/lib/x86_64-linux-gnu/samba/bind9/dlz_bind9_9.so&amp;quot;;&lt;br /&gt;
*start the services&lt;br /&gt;
 service samba  start&lt;br /&gt;
 service bind9  start&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Debian_Samba4_ADS_Domaincontroller&amp;diff=4598</id>
		<title>Debian Samba4 ADS Domaincontroller</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Debian_Samba4_ADS_Domaincontroller&amp;diff=4598"/>
		<updated>2014-07-07T10:27:56Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: /* Adminpasswort setzen= */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Installation=&lt;br /&gt;
==Interface anpassen==&lt;br /&gt;
 vi /etc/network/interfaces&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
address 192.168.240.199&lt;br /&gt;
netmask 255.255.248.0&lt;br /&gt;
gateway 192.168.240.100&lt;br /&gt;
dns-nameservers 192.168.240.199 8.8.8.8&lt;br /&gt;
dns-search xinux.lan&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==hosts anpassen==&lt;br /&gt;
 vi /etc/hosts&lt;br /&gt;
 127.0.0.1       localhost&lt;br /&gt;
 192.168.240.199 fenetre fenetre.xinux.lan&lt;br /&gt;
 echo fenetre.xinux.lan &amp;gt; /etc/hostname&lt;br /&gt;
 reboot&lt;br /&gt;
&lt;br /&gt;
==samba4 installieren==&lt;br /&gt;
 apt-get install samba smbclient winbind ntp libnss-winbind krb5-user acl&lt;br /&gt;
&lt;br /&gt;
==Domain anlegen==&lt;br /&gt;
vorher das löschen:&lt;br /&gt;
 rm /etc/samba/smb.conf /var/lib/samba/private/sam.ldb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' realm, domain und adminpass''' sollten/können angepasst werden!&lt;br /&gt;
 samba-tool domain provision --realm=xinux.lan --domain=xinux --adminpass=&amp;quot;Z0pp0Trump&amp;quot; --server-role=dc --dns-backend=SAMBA_INTERNAL&lt;br /&gt;
&lt;br /&gt;
==Reboot==&lt;br /&gt;
 reboot&lt;br /&gt;
&lt;br /&gt;
==smbversion, share und auth check==&lt;br /&gt;
&lt;br /&gt;
===smbversion===&lt;br /&gt;
Diese sollten übereinstimmen:&lt;br /&gt;
 root@fenetre:~# samba -V&lt;br /&gt;
 Version 4.1.6-Ubuntu&lt;br /&gt;
 root@fenetre:~# smbclient -V&lt;br /&gt;
 Version 4.1.6-Ubuntu&lt;br /&gt;
&lt;br /&gt;
===shares anzeigen:===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fenetre:~# smbclient -L localhost -U%&lt;br /&gt;
Domain=[XINUX] OS=[Unix] Server=[Samba 4.1.6-Ubuntu]&lt;br /&gt;
&lt;br /&gt;
	Sharename       Type      Comment&lt;br /&gt;
	---------       ----      -------&lt;br /&gt;
	netlogon        Disk      &lt;br /&gt;
	sysvol          Disk      &lt;br /&gt;
	IPC$            IPC       IPC Service (Samba 4.1.6-Ubuntu)&lt;br /&gt;
Domain=[XINUX] OS=[Unix] Server=[Samba 4.1.6-Ubuntu]&lt;br /&gt;
&lt;br /&gt;
	Server               Comment&lt;br /&gt;
	---------            -------&lt;br /&gt;
&lt;br /&gt;
	Workgroup            Master&lt;br /&gt;
	---------            -------&lt;br /&gt;
	WORKGROUP &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Authentication check:===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fenetre:~# smbclient //localhost/netlogon -UAdministrator%&amp;quot;Z0pp0Trump&amp;quot; -c 'ls'&lt;br /&gt;
Domain=[XINUX] OS=[Unix] Server=[Samba 4.1.6-Ubuntu]&lt;br /&gt;
  .                                   D        0  Thu Apr 24 15:51:50 2014&lt;br /&gt;
  ..                                  D        0  Thu Apr 24 15:51:54 2014&lt;br /&gt;
&lt;br /&gt;
		52706 blocks of size 524288. 47502 blocks available&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DNS setzen==&lt;br /&gt;
===Forwarder eintragen===&lt;br /&gt;
 sudo vi  /etc/samba/smb.conf&lt;br /&gt;
füge hinzu: (Man kann natürlich auch seinen eigenen DNS angeben)&lt;br /&gt;
 dns forwarder = 192.168.240.21&lt;br /&gt;
&lt;br /&gt;
===Check===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DOMAIN=&amp;quot;xinux.lan&amp;quot;&lt;br /&gt;
CONTROLLER=&amp;quot;fenetre&amp;quot;&lt;br /&gt;
host -t SRV _ldap._tcp.$DOMAIN&lt;br /&gt;
_ldap._tcp.xinux.lan has SRV record 0 100 389 fenetre.xinux.lan.&lt;br /&gt;
&lt;br /&gt;
host -t SRV _kerberos._udp.$DOMAIN&lt;br /&gt;
_kerberos._udp.xinux.lan has SRV record 0 100 88 fenetre.xinux.lan.&lt;br /&gt;
&lt;br /&gt;
host -t A $CONTROLLER.$DOMAIN&lt;br /&gt;
fenetre.xinux.lan has address 192.168.240.199&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Kerberos==&lt;br /&gt;
 cp /var/lib/samba/private/krb5.conf  /usr/share/samba/setup/krb5.conf&lt;br /&gt;
&lt;br /&gt;
==Share hinzufügen==&lt;br /&gt;
 mkfs.ext4 /dev/vdb1&lt;br /&gt;
 mkdir /share&lt;br /&gt;
 echo &amp;quot;/dev/vdb1  /share   ext4 user_xattr,acl 0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab &lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
 mkdir -m 770 /share&lt;br /&gt;
 chmod g+s /share&lt;br /&gt;
 chown root:users /share&lt;br /&gt;
&lt;br /&gt;
 vi /etc/samba/smb.conf&lt;br /&gt;
füge das ein:&lt;br /&gt;
&lt;br /&gt;
 [share]&lt;br /&gt;
  directory_mode: parameter = 0700&lt;br /&gt;
  read only = no&lt;br /&gt;
  path = /share&lt;br /&gt;
  csc policy = documents&lt;br /&gt;
&lt;br /&gt;
==Share testen==&lt;br /&gt;
 root@fenetre:~# smbclient -L localhost -U% | grep share&lt;br /&gt;
 Domain=[XINUX] OS=[Unix] Server=[Samba 4.1.6-Ubuntu]&lt;br /&gt;
 Domain=[XINUX] OS=[Unix] Server=[Samba 4.1.6-Ubuntu]&lt;br /&gt;
 	share           Disk&lt;br /&gt;
==Winbind==&lt;br /&gt;
===winbind link setzen===&lt;br /&gt;
 ln -s /lib/x86_64-linux-gnu/libnss_winbind.so.2 /lib/x86_64-linux-gnu/libnss_winbind.so&lt;br /&gt;
&lt;br /&gt;
===nsswitch.conf ändern===&lt;br /&gt;
 passwd:         compat winbind&lt;br /&gt;
 group:          compat winbind&lt;br /&gt;
===ist winbind is &amp;quot;pingbar=== &lt;br /&gt;
 root@fenetre:~# wbinfo -p&lt;br /&gt;
 Ping to winbindd succeeded&lt;br /&gt;
&lt;br /&gt;
===anzeigen der userliste===&lt;br /&gt;
 root@fenetre:~# wbinfo -u&lt;br /&gt;
 Administrator&lt;br /&gt;
 Guest&lt;br /&gt;
 krbtgt&lt;br /&gt;
&lt;br /&gt;
===funtioniert nsswitch===&lt;br /&gt;
 root@fenetre:~# getent passwd | grep XINUX&lt;br /&gt;
 XINUX\Administrator:*:0:100::/home/XINUX/Administrator:/bin/false&lt;br /&gt;
 XINUX\Guest:*:3000011:3000012::/home/XINUX/Guest:/bin/false&lt;br /&gt;
 XINUX\krbtgt:*:3000017:100::/home/XINUX/krbtgt:/bin/false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
===Adminpasswort läuft nicht ab===&lt;br /&gt;
 samba-tool user setexpiry administrator --noexpiry&lt;br /&gt;
&lt;br /&gt;
===Kennwortrichtlinie in Samba 4 Domain deaktivieren===&lt;br /&gt;
 samba-tool domain passwordsettings set --complexity=off&lt;br /&gt;
 samba-tool domain passwordsettings set --history-length=0&lt;br /&gt;
 samba-tool domain passwordsettings set --min-pwd-age=0&lt;br /&gt;
 samba-tool domain passwordsettings set --max-pwd-age=0&lt;br /&gt;
 samba-tool domain passwordsettings set --min-pwd-length 0&lt;br /&gt;
===Adminpasswort setzen===&lt;br /&gt;
 samba-tool user setpassword Administrator&lt;br /&gt;
&lt;br /&gt;
===Kennwortrichtlinie in Samba 4 Domain anzeigen===&lt;br /&gt;
 samba-tool domain passwordsettings show&lt;br /&gt;
&lt;br /&gt;
=SeDiskOperatorPrivilege=&lt;br /&gt;
 net rpc rights grant 'XINUX\Domain Admins' SeDiskOperatorPrivilege -Uadministrator&lt;br /&gt;
&lt;br /&gt;
===Vorhandene Rechte lassen sich so Anzeige===	&lt;br /&gt;
 net rpc rights list accounts -Uadministrator&lt;br /&gt;
=[[Userverwaltung]]=&lt;br /&gt;
&lt;br /&gt;
=howto=&lt;br /&gt;
https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO&lt;br /&gt;
&lt;br /&gt;
=installation=&lt;br /&gt;
*http://ubuntuforums.org/showthread.php?t=2146198&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Skripte&amp;diff=4594</id>
		<title>Skripte</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Skripte&amp;diff=4594"/>
		<updated>2014-06-27T11:02:28Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=network-tabelle-generator=&lt;br /&gt;
==4 spalten komplette ip==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
NET=$1&lt;br /&gt;
cat&amp;lt;&amp;lt;HERE&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|+ $NET.0/24&lt;br /&gt;
! IP || Host || IP || Host || IP || HOST || IP || HOST &lt;br /&gt;
|-&lt;br /&gt;
HERE&lt;br /&gt;
for ((y=0;y&amp;lt;64;y++))&lt;br /&gt;
do&lt;br /&gt;
echo -n &amp;quot;|&amp;quot; &lt;br /&gt;
for ((x=0;x&amp;lt;4;x++))&lt;br /&gt;
do&lt;br /&gt;
LINE=$((y*4))&lt;br /&gt;
if test $x != 3&lt;br /&gt;
then&lt;br /&gt;
echo -n &amp;quot;$NET.$(($x+$LINE)) || frei || &amp;quot;  &lt;br /&gt;
else&lt;br /&gt;
echo -n &amp;quot;$NET.$(($x+$LINE)) || frei &amp;quot;  &lt;br /&gt;
echo &lt;br /&gt;
echo -n &amp;quot;|-&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
done&lt;br /&gt;
echo &lt;br /&gt;
done&lt;br /&gt;
echo &amp;quot;|}&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==8 spalten letztes oktett==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
NET=$1&lt;br /&gt;
&lt;br /&gt;
cat&amp;lt;&amp;lt;HERE&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|+ $NET.0/24&lt;br /&gt;
! IP || Host || IP || Host || IP || HOST || IP || HOST || IP || Host || IP || Host || IP || HOST || IP || HOST &lt;br /&gt;
|-&lt;br /&gt;
HERE&lt;br /&gt;
for ((y=0;y&amp;lt;32;y++))&lt;br /&gt;
do&lt;br /&gt;
echo -n &amp;quot;|&amp;quot; &lt;br /&gt;
for ((x=0;x&amp;lt;8;x++))&lt;br /&gt;
do&lt;br /&gt;
LINE=$((y*8))&lt;br /&gt;
if test $x != 7&lt;br /&gt;
then&lt;br /&gt;
echo -n &amp;quot;$(($x+$LINE)) || frei || &amp;quot;  &lt;br /&gt;
else&lt;br /&gt;
echo -n &amp;quot;$(($x+$LINE)) || frei &amp;quot;  &lt;br /&gt;
echo &lt;br /&gt;
echo -n &amp;quot;|-&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
done&lt;br /&gt;
echo &lt;br /&gt;
done&lt;br /&gt;
echo &amp;quot;|}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Skripte&amp;diff=4590</id>
		<title>Skripte</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Skripte&amp;diff=4590"/>
		<updated>2014-06-27T10:21:07Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=network-tabelle-generator=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
NET=$1&lt;br /&gt;
cat&amp;lt;&amp;lt;HERE&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|+ $NET.0/24&lt;br /&gt;
! IP || Host || IP || Host || IP || HOST || IP || HOST &lt;br /&gt;
|-&lt;br /&gt;
HERE&lt;br /&gt;
for ((y=0;y&amp;lt;64;y++))&lt;br /&gt;
do&lt;br /&gt;
echo -n &amp;quot;|&amp;quot; &lt;br /&gt;
for ((x=0;x&amp;lt;4;x++))&lt;br /&gt;
do&lt;br /&gt;
LINE=$((y*4))&lt;br /&gt;
if test $x != 3&lt;br /&gt;
then&lt;br /&gt;
echo -n &amp;quot;$NET.$(($x+$LINE)) || frei || &amp;quot;  &lt;br /&gt;
else&lt;br /&gt;
echo -n &amp;quot;$NET.$(($x+$LINE)) || frei &amp;quot;  &lt;br /&gt;
echo &lt;br /&gt;
echo -n &amp;quot;|-&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
done&lt;br /&gt;
echo &lt;br /&gt;
done&lt;br /&gt;
echo &amp;quot;|}&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Skripte&amp;diff=4589</id>
		<title>Skripte</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Skripte&amp;diff=4589"/>
		<updated>2014-06-27T10:20:42Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: /* network-tabelle=generator */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=network-tabelle-generator=&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Skripte&amp;diff=4588</id>
		<title>Skripte</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Skripte&amp;diff=4588"/>
		<updated>2014-06-27T10:20:33Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: Die Seite wurde neu angelegt: „=network-tabelle=generator=“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=network-tabelle=generator=&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Mediawiki&amp;diff=4587</id>
		<title>Mediawiki</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Mediawiki&amp;diff=4587"/>
		<updated>2014-06-27T10:20:10Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[[Installation von Mediawiki unter Ubuntu]]&lt;br /&gt;
*[[Skripte]]&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Mediawiki&amp;diff=4586</id>
		<title>Mediawiki</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Mediawiki&amp;diff=4586"/>
		<updated>2014-06-27T10:19:46Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: Die Seite wurde neu angelegt: „*Installation von Mediawiki unter Ubuntu“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[[Installation von Mediawiki unter Ubuntu]]&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Hauptseite&amp;diff=4585</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Hauptseite&amp;diff=4585"/>
		<updated>2014-06-27T10:19:27Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: /* Misc */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Dokumentation ===&lt;br /&gt;
&lt;br /&gt;
* [[Aufgaben]]&lt;br /&gt;
* [[Lösungen]]&lt;br /&gt;
=== Grundlagen und Administration ===&lt;br /&gt;
&lt;br /&gt;
* [[Linux Grundlagen]]&lt;br /&gt;
* [[Bootprozess]]&lt;br /&gt;
&lt;br /&gt;
* [[Administration]]&lt;br /&gt;
* [[Kernelmodule]]&lt;br /&gt;
* [[Bash]]&lt;br /&gt;
* [[VI Crash]]&lt;br /&gt;
* [[Netzwerkkonfiguration unter Ubuntu]]&lt;br /&gt;
* [[Paketmanagement]]&lt;br /&gt;
* [[RPM]]&lt;br /&gt;
* [[Yum howto]]&lt;br /&gt;
* [[Nützliche Tools]]&lt;br /&gt;
* [[LVM]]&lt;br /&gt;
* [[RAID|RAID einrichten]]&lt;br /&gt;
* [[sudo]]&lt;br /&gt;
* [[syslog-ng]]&lt;br /&gt;
* [[cron]]&lt;br /&gt;
* [[incron]]&lt;br /&gt;
* [[Screen]]&lt;br /&gt;
* [[PPA]]&lt;br /&gt;
* [[systemd]]&lt;br /&gt;
* [[Exploit]]&lt;br /&gt;
* [[WLAN]]&lt;br /&gt;
* [[Netstat unter Windows]]&lt;br /&gt;
* [[ACL - Kurzreferenz]]&lt;br /&gt;
* [[Fedora]]&lt;br /&gt;
* [[grub2]]&lt;br /&gt;
* [[System klonen]]&lt;br /&gt;
* [[CUPS]]&lt;br /&gt;
&lt;br /&gt;
=== Netzwerken ===&lt;br /&gt;
* [[http://www.xinux.de//docs/internetadmin.pdf interadmin]]&lt;br /&gt;
* [[Ubuntu Serverdienste]]&lt;br /&gt;
* [[Network Tools]]&lt;br /&gt;
* [[SSH]]&lt;br /&gt;
* [[Ssh-tunnel]]&lt;br /&gt;
* [[Mailserver]]&lt;br /&gt;
* [[NTP]]&lt;br /&gt;
* [[Rsync]]&lt;br /&gt;
* [[IP Befehle]]&lt;br /&gt;
* [[Tcpdump]]&lt;br /&gt;
* [[Cloud]]&lt;br /&gt;
* [[NET]]&lt;br /&gt;
* [[Udpcast]]&lt;br /&gt;
* [[Dynamic Host Configuration Protocol]]&lt;br /&gt;
* [[Ramdisk entpacken]]&lt;br /&gt;
* [[PXELinux]]&lt;br /&gt;
* [[Bing]]&lt;br /&gt;
* [[Nemesis]]&lt;br /&gt;
* [[Heartbeat]]&lt;br /&gt;
* [[DRBD]]&lt;br /&gt;
* [[RedHat Cluster Suite]]&lt;br /&gt;
* [[PACEMAKER]]&lt;br /&gt;
* [[OCFS2]]&lt;br /&gt;
* [[CRM/CIB]]&lt;br /&gt;
* [[WLAN AccessPoint]]&lt;br /&gt;
* [[IPTables - from scratch]]&lt;br /&gt;
* [[Bintec]]&lt;br /&gt;
* [[Netzwerktechnik]]&lt;br /&gt;
* [[tcp/ip]]&lt;br /&gt;
* [[Nagios]]&lt;br /&gt;
* [[Betavine Connection Manager]]&lt;br /&gt;
* [[VLAN]]&lt;br /&gt;
* [[pix howto]]&lt;br /&gt;
* [[cisco howto]]&lt;br /&gt;
* [[Firewall Allgemein]]&lt;br /&gt;
* [[Subnetz mit Ubuntu Router]]&lt;br /&gt;
* [[Multicast Routing]]&lt;br /&gt;
* [[VPN]]&lt;br /&gt;
* [[VPN Allgemein|VPN Allgemein]]&lt;br /&gt;
* [[IPSEC]]&lt;br /&gt;
* [[nTop]]&lt;br /&gt;
* [[Fritz unter Ubuntu 10.04]]&lt;br /&gt;
* [[DNS mit bind9]]&lt;br /&gt;
* [[L2TP over IPSEC]]&lt;br /&gt;
* [[Traffic measure]]&lt;br /&gt;
&lt;br /&gt;
=== Systeme ===&lt;br /&gt;
* [[FreeNas]]&lt;br /&gt;
* [[FreeBsd]]&lt;br /&gt;
* [[RaspberryPi]]&lt;br /&gt;
* [[Microsoft]]&lt;br /&gt;
&lt;br /&gt;
=== Dienste ===&lt;br /&gt;
* [[Untersuchung eines Linuxserver]]&lt;br /&gt;
* [[apache2]]&lt;br /&gt;
* [[apache2-neue Version]]&lt;br /&gt;
* [[Apache SSL]]&lt;br /&gt;
* [[PostgreSQL]]&lt;br /&gt;
* [[Tomcat 5.5]]&lt;br /&gt;
* [[Squid]]&lt;br /&gt;
* [[VLC]]&lt;br /&gt;
* [[VMware installation auf Ubuntu]]&lt;br /&gt;
* [[vpnc]]&lt;br /&gt;
* [[Wireless Tools]]&lt;br /&gt;
* [[Perl]]&lt;br /&gt;
* [[Joomla]]&lt;br /&gt;
* [[MySQL]]&lt;br /&gt;
* [[Typo3]]&lt;br /&gt;
* [[Samba]]&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
* [[Computer]]&lt;br /&gt;
* [[RAM]]&lt;br /&gt;
&lt;br /&gt;
=== Virtualisierung ===&lt;br /&gt;
* [[KVM]]&lt;br /&gt;
* [[Virtualbox]]&lt;br /&gt;
* [[Proxmox]]&lt;br /&gt;
&lt;br /&gt;
=== Operating Systeme ===&lt;br /&gt;
* [[Android]]&lt;br /&gt;
* [[OSX]]&lt;br /&gt;
&lt;br /&gt;
=== Misc ===&lt;br /&gt;
* [[Pflichtenheft]]&lt;br /&gt;
* [[Projektdoku]]&lt;br /&gt;
* [[Ubuntu]]&lt;br /&gt;
* [[o2 Mobile]]&lt;br /&gt;
* [[ESXI|Vmware|]]&lt;br /&gt;
* [[iscsi]]&lt;br /&gt;
* [[firefox]]&lt;br /&gt;
* [[mediawiki]]&lt;br /&gt;
&lt;br /&gt;
=== Mitarbeiter ===&lt;br /&gt;
* [[Systemaufbau]]&lt;br /&gt;
=== Grafisches ===&lt;br /&gt;
* [[Netzwerk]]&lt;br /&gt;
* [[Paketmanager]]&lt;br /&gt;
* [[CD Brennen]]&lt;br /&gt;
* [[EMail einrichten]]&lt;br /&gt;
* [[Drucker]]&lt;br /&gt;
* [[TS schneiden und brennen]]&lt;br /&gt;
* [[Video Konvert Misc]]&lt;br /&gt;
* [[VNC Server]]&lt;br /&gt;
* [[Unity]]&lt;br /&gt;
* [[Avidemux]]&lt;br /&gt;
&lt;br /&gt;
===== [[LibreOffice]] =====&lt;br /&gt;
* [[Erste Schritte in LibreOffice|Erste Schritte]]&lt;br /&gt;
* [[Dokumente mit LibreOffice|Writer]]&lt;br /&gt;
* [[Tabellenkalkulation mit LibreOffice|Calc]]&lt;br /&gt;
* [[Presentationen mit LibreOffice|Impress]]&lt;br /&gt;
* [[Vektorgrafiken mit LibreOffice|Draw]]&lt;br /&gt;
* [[Der LibreOffice Formeleditor|Math]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
* [[Gruppenrichtlinien]]&lt;br /&gt;
&lt;br /&gt;
===Sprachen===&lt;br /&gt;
*[[Perl]]&lt;br /&gt;
*[[Php]]&lt;br /&gt;
&lt;br /&gt;
=== How To's ===&lt;br /&gt;
&lt;br /&gt;
* [[Installation von Mediawiki unter Ubuntu]]&lt;br /&gt;
* [[Openssl]]&lt;br /&gt;
* [[Ungeschütztes Linux Hacken|Linux Grub Passwort Reset]]&lt;br /&gt;
* [[Root RAID|Root RAID einrichten]]&lt;br /&gt;
* [[Runit|Runit einrichten]]&lt;br /&gt;
* [[Wiederherstellung vom Master Boot Record - Windows 7]]&lt;br /&gt;
* [[glusterfs]]&lt;br /&gt;
* [[Geräte mit Android via MTP in Ubuntu Linux einbinden]]&lt;br /&gt;
* [[Autostart von script mit udev]]&lt;br /&gt;
* [[USB-Installation von Linux]]&lt;br /&gt;
* [[KVM Images mounten]]&lt;br /&gt;
* [[pppoe einrichten]]&lt;br /&gt;
* [[qcow2 backup]]&lt;br /&gt;
* [[VM's von VMwares Server2 zu ESXi migrieren]]&lt;br /&gt;
* [[Netzwerkkarten bündeln]]&lt;br /&gt;
* [[ESXI]]&lt;br /&gt;
* [[S.M.A.R.T. - smartmontools]]&lt;br /&gt;
* [[lsb-release IO Error mit Teamviewer8 - FIX]]&lt;br /&gt;
* [[asterisk]]&lt;br /&gt;
* [[rkhunter]]&lt;br /&gt;
* [[uefi und gpt]]&lt;br /&gt;
* [[locale]]&lt;br /&gt;
* [[icinga]]&lt;br /&gt;
* [[dummy, pseudo Interface]]&lt;br /&gt;
* [[xtrend]]&lt;br /&gt;
* [[windows complete backup rebuild]]&lt;br /&gt;
* [[stunnel]]&lt;br /&gt;
* [[ubuntu auflösung ändern]]&lt;br /&gt;
* [[capi]]&lt;br /&gt;
* [[unetbootin bugversion]]&lt;br /&gt;
* [[hacking]]&lt;br /&gt;
* [[Hot add a new disk device to Ubuntu server]]&lt;br /&gt;
* [[Tmux]]&lt;br /&gt;
* [[golang]]&lt;br /&gt;
* [[iwatch]]&lt;br /&gt;
* [[Plugin Netzwerküberwachung Smartphone]]&lt;br /&gt;
&lt;br /&gt;
=== New ===&lt;br /&gt;
* [[Debian]]&lt;br /&gt;
* [[CentOS]]&lt;br /&gt;
* [[Clouds]]&lt;br /&gt;
* [[LDAP]]&lt;br /&gt;
* [[Datarecovery]]&lt;br /&gt;
* [[Linux Mint]]&lt;br /&gt;
* [[Ubuntu Tips]]&lt;br /&gt;
* [[Raidcontroller Monitortools]]&lt;br /&gt;
* [[Telekom]]&lt;br /&gt;
&lt;br /&gt;
=== Videos===&lt;br /&gt;
* [[http://www.youtube.com/watch?v=FaQm9gtUzSs Astaro HA Cluster]]&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Automatic_shares&amp;diff=4583</id>
		<title>Automatic shares</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Automatic_shares&amp;diff=4583"/>
		<updated>2014-06-26T14:36:29Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=installation iwatch=&lt;br /&gt;
*[[iwatch]]&lt;br /&gt;
=samba script=&lt;br /&gt;
*/usr/local/sbin/dir-watch&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
EVENT=$(echo $1 | cut -f 2 -d ,)&lt;br /&gt;
SMBPATH=$2&lt;br /&gt;
SHARE=$(basename $2)&lt;br /&gt;
case $EVENT in&lt;br /&gt;
IN_CREATE|IN_MOVED_TO)&lt;br /&gt;
echo $EVENT $SMBPATH &amp;gt;&amp;gt; /tmp/iwatch&lt;br /&gt;
net conf addshare $SHARE $SMBPATH writeable=y guest_ok=n &amp;quot;SHARE share&amp;quot;&lt;br /&gt;
;;&lt;br /&gt;
IN_DELETE|IN_MOVED_FROM)&lt;br /&gt;
echo $EVENT $SMPATH &amp;gt;&amp;gt; /tmp/iwatch&lt;br /&gt;
net conf delshare $SHARE&lt;br /&gt;
;;&lt;br /&gt;
esac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Automatic_shares&amp;diff=4582</id>
		<title>Automatic shares</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Automatic_shares&amp;diff=4582"/>
		<updated>2014-06-26T14:21:07Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: /* samba script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=installation iwatch=&lt;br /&gt;
*[[iwatch]]&lt;br /&gt;
=samba script=&lt;br /&gt;
*/usr/local/sbin/dir-watch&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
EVENT=$(echo $1 | cut -f 2 -d ,)&lt;br /&gt;
SMBPATH=$2&lt;br /&gt;
SHARE=$(basename $2)&lt;br /&gt;
case $EVENT in&lt;br /&gt;
IN_CREATE)&lt;br /&gt;
echo CREATE &amp;gt;&amp;gt; /tmp/iwatch&lt;br /&gt;
net conf addshare $SHARE $SMBPATH writeable=y guest_ok=n &amp;quot;SHARE share&amp;quot;&lt;br /&gt;
;;&lt;br /&gt;
IN_DELETE)&lt;br /&gt;
echo DELETE &amp;gt;&amp;gt; /tmp/iwatch&lt;br /&gt;
net conf delshare $SHARE&lt;br /&gt;
;;&lt;br /&gt;
esac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Automatic_shares&amp;diff=4581</id>
		<title>Automatic shares</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Automatic_shares&amp;diff=4581"/>
		<updated>2014-06-26T14:09:06Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=installation iwatch=&lt;br /&gt;
*[[iwatch]]&lt;br /&gt;
=samba script=&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Automatic_shares&amp;diff=4580</id>
		<title>Automatic shares</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Automatic_shares&amp;diff=4580"/>
		<updated>2014-06-26T14:08:23Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: Die Seite wurde neu angelegt: „=installation iwatch= *iwatch“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=installation iwatch=&lt;br /&gt;
*[[iwatch]]&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Samba4&amp;diff=4579</id>
		<title>Samba4</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Samba4&amp;diff=4579"/>
		<updated>2014-06-26T14:07:33Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Installation=&lt;br /&gt;
*[[Sources]]&lt;br /&gt;
*[[Ubuntu-samba4|Ubuntu]]&lt;br /&gt;
*[[Sernet]]&lt;br /&gt;
*[[Windows-8.1-samba4|Windows-8.1]]&lt;br /&gt;
*[[Usermanagment]]&lt;br /&gt;
*[[DNS]]&lt;br /&gt;
*[[Kerberos]]&lt;br /&gt;
*[[Roaming Profiles]]&lt;br /&gt;
*[[Gruppenrichtlinien]]&lt;br /&gt;
*[[Debugging]]&lt;br /&gt;
*[[Upgrading von 3 nach 4]]&lt;br /&gt;
*[[Backup]]&lt;br /&gt;
*[[ldb-tools]]&lt;br /&gt;
*[[RSAT]]&lt;br /&gt;
*[[Registry]]&lt;br /&gt;
*[[automatic shares]]&lt;br /&gt;
&lt;br /&gt;
=pam ldap=&lt;br /&gt;
*http://zachbethel.com/2013/04/10/linux-ldap-authentication-with-samba4/&lt;br /&gt;
=ldapbackend=&lt;br /&gt;
*http://www.foteviken.de/?p=1925&lt;br /&gt;
=samba-and-active-directory=&lt;br /&gt;
*http://www.held-im-ruhestand.de/software/samba-and-active-directory&lt;br /&gt;
=domain member=&lt;br /&gt;
*https://wiki.samba.org/index.php/Samba4/Domain_Member&lt;br /&gt;
=group policiy=&lt;br /&gt;
*http://www.alexwyn.com/computer-tips/folder-redirection-samba4-active-directory-domain-controller&lt;br /&gt;
=movies=&lt;br /&gt;
*http://www.samba.org/tridge/Samba4Demo/&lt;br /&gt;
&lt;br /&gt;
=Kennwortrichtlinie deaktivieren=&lt;br /&gt;
 Du gehst in die Gruppenrichtlinienverwaltung.&lt;br /&gt;
 Dann gehst du in das Verzecihnis deiner gewünschten Domäne.&lt;br /&gt;
 Jetzt solltest du einen eintrag sehen, der sich &amp;quot;Default Domain Controllers Policy&amp;quot; nennt.&lt;br /&gt;
 Mit rechter Maustaste draufklicken und bearbeiten. Dann öffnet sich der Gruppenrichtlinienverwaltungs-Editor&lt;br /&gt;
 (Achtung! Auf den ersten Blick sehr leicht mit der Gruppenrichtlinienverwaltung zu verwechseln).&lt;br /&gt;
 Jetzt schaust du unter &amp;quot;Computerconfiguration&amp;gt; Richtlinien&amp;gt; Windows-Einstellungen&amp;gt; Sicherheitseinstellungen&amp;gt; Kontorichtlinien&amp;gt; Kennwortrichtlinien.&lt;br /&gt;
 &lt;br /&gt;
 Dort darf man dann endlich die Kennwortrichtlinie deaktivieren.&lt;br /&gt;
&lt;br /&gt;
=debian=&lt;br /&gt;
*http://chris-blog.net/2014/01/freigaben-auf-einem-samba-4-server-einrichten/&lt;br /&gt;
=ubuntu=&lt;br /&gt;
http://xiep.de/allgemein/ubuntu-server-12-04-mit-samba-4-und-active-directory-pdc/&lt;br /&gt;
=dns=&lt;br /&gt;
https://wiki.archlinux.org/index.php/Samba_4_Active_Directory_Domain_Controller&lt;br /&gt;
=kennwortrichtlinien=&lt;br /&gt;
http://chris-blog.net/2014/01/kennwortrichtlinie-in-samba-4-domain-deaktivieren/&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Iwatch&amp;diff=4578</id>
		<title>Iwatch</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Iwatch&amp;diff=4578"/>
		<updated>2014-06-26T14:04:03Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: /* main config */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=installation=&lt;br /&gt;
 apt-get install iwatch&lt;br /&gt;
=configuration=&lt;br /&gt;
==start at boot==&lt;br /&gt;
*/etc/default/iwatch&lt;br /&gt;
 START_DAEMON=true&lt;br /&gt;
 CONFIG_FILE=/etc/iwatch/iwatch.xml&lt;br /&gt;
==main config==&lt;br /&gt;
*/etc/iwatch/iwatch.xml&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE config SYSTEM &amp;quot;/etc/iwatch/iwatch.dtd&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;config&amp;gt;&lt;br /&gt;
  &amp;lt;guard email=&amp;quot;technik@xinux.de&amp;quot; name=&amp;quot;IWatch&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;watchlist&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Operating System&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;contactpoint email=&amp;quot;technik@xinux.de&amp;quot; name=&amp;quot;Administrator&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;path type=&amp;quot;single&amp;quot; syslog=&amp;quot;on&amp;quot; exec=&amp;quot;/usr/local/sbin/dir-watch %e %f&amp;quot;&amp;gt;/daten&amp;lt;/path&amp;gt;&lt;br /&gt;
  &amp;lt;/watchlist&amp;gt;&lt;br /&gt;
&amp;lt;/config&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=script=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
ARG1=$1&lt;br /&gt;
ARG2=$2&lt;br /&gt;
echo $ARG1 $ARG2  &amp;gt;&amp;gt; /tmp/iwatch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Iwatch&amp;diff=4577</id>
		<title>Iwatch</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Iwatch&amp;diff=4577"/>
		<updated>2014-06-26T14:02:27Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=installation=&lt;br /&gt;
 apt-get install iwatch&lt;br /&gt;
=configuration=&lt;br /&gt;
==start at boot==&lt;br /&gt;
*/etc/default/iwatch&lt;br /&gt;
 START_DAEMON=true&lt;br /&gt;
 CONFIG_FILE=/etc/iwatch/iwatch.xml&lt;br /&gt;
==main config==&lt;br /&gt;
*/etc/iwatch/iwatch.xml&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE config SYSTEM &amp;quot;/etc/iwatch/iwatch.dtd&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;config&amp;gt;&lt;br /&gt;
  &amp;lt;guard email=&amp;quot;technik@xinux.de&amp;quot; name=&amp;quot;IWatch&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;watchlist&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Operating System&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;contactpoint email=&amp;quot;technik@xinux.de&amp;quot; name=&amp;quot;Administrator&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;path type=&amp;quot;single&amp;quot; syslog=&amp;quot;on&amp;quot; exec=&amp;quot;/usr/local/sbin/dir-watch %e %f&amp;quot;&amp;gt;/daten&amp;lt;/path&amp;gt;&lt;br /&gt;
  &amp;lt;/watchlist&amp;gt;&lt;br /&gt;
&amp;lt;/config&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
	<entry>
		<id>https://www.xinux.net/index.php?title=Iwatch&amp;diff=4576</id>
		<title>Iwatch</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Iwatch&amp;diff=4576"/>
		<updated>2014-06-26T12:36:17Z</updated>

		<summary type="html">&lt;p&gt;192.168.244.1: Die Seite wurde neu angelegt: „=installation=  apt-get install iwatch“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=installation=&lt;br /&gt;
 apt-get install iwatch&lt;/div&gt;</summary>
		<author><name>192.168.244.1</name></author>
	</entry>
</feed>