Solaris hat das bereits eingebaut, Kenner haben bestimmt schon mal sowas wie "le0:1" gesehen.
Da modload auf SunOS 4.1.1 nicht gescheit funktioniert, werden wir den Treiber in den Kernel einbauen. Das ist nicht weiter schwierig.
Nachteil: Man kann den Treiber nicht im laufenden Betrieb entfernen.
Vorteil: Man kann den Treiber nicht im laufenden Betrieb entfernen, während er in Benutzung ist, was zum Absturz der Maschine führt.
gzcat vif-1.11.tar.gz | tar xvf - cd vif-1.11An der Datei if_vif.c muss eine kleine Änderung vorgenommen werden:
vi if_vif.cGleich hinter der Zeile
#include "vif.h"Muss folgende Zeile eingefügt werden:
#if NVIF > 0Das dazugehörige
#endifkommt ganz ans Ende der Datei.
Dann kopiert man den Treiber nach /sys/net:
cp if_vif.c /sys/net/Als nächstes muss man folgende Zeile in /sys/conf.common/files.cmn einfügen:
net/if_vif.c optional vifGleich hinter dem Eintrag für net/if.c wäre die geeignete Stelle.
Nun muss in /sys/sun/conf.c ein Anschluss für den Treiber eingerichtet werden. Hinter der Anschussdefinition des Grafikbeschleunigers NGAONE füge man folgendes ein:
#include "vif.h" #if NVIF > 0 int vif_open(),vif_close(),vif_read(), vif_write(),vif_ioctl(),vif_select(); #else #define vif_open nodev #define vif_close nodev #define vif_read nodev #define vif_write nodev #define vif_ioctl nodev #define vif_select nodev #endifDann muss man in der cdevsw-Struktur einen Eintrag machen. Am besten modifiziert man dazu den Eintrag #14, der früher für die cgone reserviert war:
{ vif_open, vif_close, vif_read, vif_write, /*14*/ vif_ioctl, nodev, vif_select, 0, /* was cgone */ 0, },Wir merken uns: Die Hauptgerätenummer (major device number)] ist die 14!
Zu guter Letzt muss auch noch ein Eintrag in der Kernelkonfiguration gemacht werden:
pseudo-device vif8Eine gute Stelle dafür wäre hinter den anderen Pseudo-Geräten und gleich vor den Kommentaren zur "config vmunix"-Zeile.
Man kann die Zahl hinter "vif" auch erhöhen, aber wenn man mehr als 10 Schnittstellen angibt, zeigt "netstat" diese ein wenig komisch an.
Nun muss der Kernel neu konfiguriert, gebaut, installiert und die Maschine neu gestartet werden. Danach erzeugt man die Gerätedateien:
cd /dev mknod vif0 c 14 0 mknod vif1 c 14 1 mknod vif2 c 14 2 mknod vif3 c 14 3 mknod vif4 c 14 4 mknod vif5 c 14 5 mknod vif6 c 14 6 mknod vif7 c 14 7 : : :
127.0.0.1 localhost 192.68.1.1 myhost # this is my host 192.68.1.2 othername # another name for my hostDann muss man einen arp-Eintrag machen:
arp -s othername 8:0:20:0:1b:a5 pubWichtig: Gerät initialisieren:
echo >/dev/vif0Dann kann man es konfigurieren:
ifconfig vif0 othername upFertig!
ifconfig vif0 down arp ... ifconfig vif0 upWenn man sehen will, ob alles funktioniert, kann man folgendes eingeben:
netstat -ian netstat -rn ifconfig -a arp -aSieht das alles vernünftig aus, kann man mal von einem anderen Rechner aus ein ping oder ein telnet auf die neue Adresse wagen.
Um die Ethnernet-Adresse der eigenen Maschine herauszubekommen, kann man die arp-Tabelle einer anderen Maschine auslesen:
# ping myhost # arp -a : myhost (123.234.56.78) at 8:0:20:0:1b:a5 : ^^^^ here ^^^^