1.8.2. Interface-Einstellung

Wir haben gesehen, daß ein Rechner auch mehrere Netzinterfaces und folglich mehrere IP-Adressen, Subnetzmasken usw. haben kann. Die Konfigurierung dieser Parameter ist deshalb immer an ein bestimmtes Interface gebunden.

Wieder am Beispiel Linux gibt es dazu das Kommando ifconfig (Interface Configuration). Durch Aufruf ohne Option oder mit der Option -a kann man den Zustand aller Interfaces erkunden:

# ifconfig -a
lo  Link encap:Local Loopback  
    inet addr:127.0.0.1  Bcast:127.255.255.255  Mask:255.0.0.0
    UP BROADCAST LOOPBACK RUNNING  MTU:2000  Metric:1
    RX packets:12 errors:0 dropped:0 overruns:0
    TX packets:12 errors:0 dropped:0 overruns:0

sl0 Link encap:VJ Serial Line IP  
    inet addr:192.168.7.1  P-t-P:192.168.7.2  Mask:255.255.255.0
    UP POINTOPOINT RUNNING  MTU:296  Metric:1
    RX packets:0 errors:0 dropped:0 compressed:0
    TX packets:0 errors:0 dropped:0 compressed:0
Hier sind zwei Netzinterfaces konfiguriert: das immer vorhandene Loopback-Gerät lo und eine SLIP-Verbindung sl0. Die einzelnen Angaben haben folgende Bedeutung: Mit ifconfig kann man Interface-Parameter nicht nur abfragen, sondern auch einstellen. Die allgemeine Syntax dafür lautet
  ifconfig Interface IP-Adresse

bzw.

  ifconfig Interface Optionsname Optionswert
Beide Formen können auch kombiniert werden. In vielen Fällen wird die Interface-Einstellung beim Systemstart durch Shell-Skripte in rc-Dateien (in etwa vergleichbar mit der autoexec.bat unter DOS) vorgenommen, z.B. in der Datei /etc/rc.d/network, wobei der konkrete Name sowie der Pfad je nach Linux-Distribution variieren können. In diesen Skripten können wir nachsehen, wie die obigen Einstellungen erreicht wurden:
  ifconfig lo 127.0.0.1
  slattach -p cslip -s 19200 /dev/cua1 &
  ifconfig sl0 192.168.7.1 pointopoint 192.168.7.2
Wir sehen an dem Beispiel die Besonderheit, daß vor dem Konfigurieren der SLIP-Schnittstelle noch das Kommando slattach ausgeführt werden muß. Das hat seinen Grund darin, daß sl0 eigentlich gar kein ständig vorhandenes physisches Interface ist. Erst durch den Aufruf von slattach wird aus dem physischen Interface /dev/cua1 (das ist der COM2-Anschluß) ein Interface mit dem Protokoll cslip und der Datenrate (speed) 19200 bit/s.

Für die nicht angegebenen Parameter werden automatisch "sinnvolle" Einstellungen vorgenommen; Broadcast-Adresse und Subnetzmaske werden beispielsweise aus der Adreßklasse bestimmt.

Wenn unser Rechner einen Ethernet-Anschluß hat, sieht dessen Einstellung beispielsweise so aus:

  ifconfig eth0 176.16.20.5 broadcast 176.16.20.255 netmask 255.255.255.0
Andere Systeme geben nicht ganz so ausführliche Informationen. Hier ein Beispiel von SunOS 4.1.x:
  % ifconfig -a
  le0: flags=63
          inet 176.16.1.1 netmask ffff0000 broadcast 176.16.0.0
  lo0: flags=49
          inet 127.0.0.1 netmask ff000000 
Wir erkennen zwei Interfaces: le0 als Ethernet und lo0 als Loopback.

Dieses Beispiel stammt aus der "Anfangszeit" unserer IP-Erfahrungen und enthält einen schwerwiegenden Konfigurierungsfehler. Überlegen Sie, was falsch ist und wie man es korrigieren würde!

Lösung

Eine weitere Möglichkeit zur Gewinnung statistischer Angaben zu den Netzinterfaces ist das Kommando netstat -i:

  # netstat -i
  Kernel Interface table
  Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flags
  lo   2000  0    14      0      0      0    14      0      0      0  BLRU
  sl0   296  0     0      0      0      0     0      0      0      0  PRU
Nach dem Interfacenamen und der konfigurierten MTU (Maximum Transmission Unit) folgt die Metrik (siehe Routing-Einstellung).

Die nächsten Spalten sind Paketzähler:

RX-OK empfangene fehlerfreie Pakete
RX-ERR empfangene Pakete mit Fehlern
RX-DRP Pakete, die wegen Speicherknappheit weggeworfen wurden ... ("drop")
RX-OVR Pakete, die ignoriert wurden, weil der Rechner zu langsam war ("overflow")
TX-OK fehlerfrei gesendete Pakete
TX-ERR gesendete Pakete mit Fehlern (?)
TX-DRP Pakete, die wegen Speicherknappheit weggeworfen wurden ...
TX-OVR Pakete, die nicht gesendet werden konnten, weil der Rechner zu langsam war

Flags:

A Interface empfängt alle Multicast-Adressen
B Broadcasts sind gestattet
D Debugging ist eingeschaltet
L Loopback-Gerät
M alle Pakete werden empfangen (Promiscuous Mode)
N No Trailers (keine Köpfe am Ende)
O No ARP (kein Address Resolution Protocol)
P Punkt-zu-Punkt-Verbindung
R Running (in Benutzung)
U Up (eingeschaltet)

Eine kontinuierliche Statistik wird durch die zusätzliche Option -c ausgegeben:

  % netstat -c -i
Die zusätzliche Option -n sorgt für eine numerische Anzeige der IP-Adressen. Das ist nützlich, wenn kein DNS zur Verfügung steht oder wenn Netzbeobachtungen nicht durch DNS-Abfragen beeinflußt werden sollen.

Bei anderen Systemen kann sich die Ausgabe etwas unterscheiden. Hier ein Beispiel von SunOS 4.1.x:

  % netstat -i
  Name Mtu  Net/Dest   Address   Ipkts Ierrs Opkt Oer Col Que
  le0  1500 141.99.0.0 sparc     4690   0    282   0   0   0
  lo0  1536 loopback   localhost 7663   0    7663  0   0   0

ARP-Einstellung

Einige Sorten von Interfaces bzw. Netztechnologien benutzen das bereits behandelte ARP-Protokoll. Normalerweise funktioniert dieses Protokoll "automatisch". In einigen wenigen Sonderfällen können aber Eingriffe von Hand mit Hilfe des Kommandos arp erforderlich sein. Hier die wichtigsten Verwendungen:
arp -a
Anzeige des ARP-Cache-Inhalts

arp -s hostname hw_addr
Setzen eines neuen ARP-Eintrags für hostname (das kann auch eine numerische IP-Adresse sein) und hw_addr als Ethernet-Adresse

arp -s hostname hw_addr pub
wie oben, ober zusätzlich mit der Option publish, d.h. Proxy-ARP

arp -d hostname
Entfernen eines ARP-Eintrags

© Uwe Hübner, 20.3.98