Dieser Text darf frei Kopiert, aber nicht verändert werden.
Copyright liegt bei Dobin Rutishauser.
Kommentare und aktive Beiträge zu diesem Dokument sind jederzeit willkommen.
Bitte senden sie Hinweise, Kommentare, Anregungen oder Berichtigungen zu anthraxx@gmx.net
Dieses Howto soll dabei helfen, eine Netzwerkarte bzw ein Netzwerk mit OpenBSD zum laufen zu bringen. Es ist eigentlich für Linux Umsteiger gedacht, aber auch andere Unix Umsteiger werden (hoffentlich :) damit zurechtkommen.
Dieses Howto ist speziell für OpenBSD 2.6 geschrieben, ist aber auch für die meisten OpenBSD Versionen übertragbar. Das meiste lässt sich auch auf Free- oder sogar NetBSD übertragen.
Dieses Howto beschreibt, wie man eine Netwerkkarte in ein schon installiertes OpenBSD der i386 Architektur installiert und konfiguriert.
Hilfe zur Installtion von OpenBSD gibts auf www.openbsd.org
BSD's verwalten Netzwerkarten anders als Linux. In Linux ist die erste Netzwerkkarte immer /dev/eth0, die zweite eth1 und so weiter.
Bei BSD's entsprechen die Devicenamen der Typenbezeichnung oder dem Hersteller der Netzwerkkarte. Das heisst, wenn sie zum Beispiel eine 3COM 3c9xx Netzwerkkarte haben, hat sie das Device /dev/xl0. Eine NE2000 kompatible PCI NIC wird mit /dev/ne0 angesprochen.
Das hat einige vorteile, mach es aber schwer zu erkennen, ob OpenBSD ihre Netzwerkkarte erkannt hat. Geben sie "dmesg | more" ein und durchsuchen sie die Ausgabe nach ihrer NIC. Meistens folgt sie nach der Erkennung der HD, wenn sie den Devicenamen gefunden haben, können wir zu Kapitel 4 gehen.Wenn nicht, haben sie ein Problem :). Der Standardkernel nach der Installation von OpenBSD hat eigentlich alle Treiber für Netzwerkkarten aktiviert. Vergewissern sie sich, das die NIC richtig sitzt und probieren sie den Befehl
# dmesg | grep ".*:.*:.*"
aus. Dass sollte mindestens zwei Zeilen liefern, nämlich eine mit der Aktuellen Kernel Version und eine zweite mit ihrer Netzwerkkarte.Siehe Anhang A für die Devices der unterstützen NIC's in OpenBSD 2.6.
In meinem fall heist das Device "xl0", was ich im Rest dieses Textes auch verwenden werde. Ersetzen sie "xl0" einfach durch das Device ihrer NIC.Um zu sehen, was alles für Netzwerkkarten in ihrem System erkannt wurden, geben sie
# ifconfig -aein. Bei mir ergibt das: (gekürzt)
# ifconfig -a lo0: flags=8009xl0 ist wie sie sehen meine Netzwerkkarte, bis jetzt noch ohne IP und auf 10baseT eingestellt. Geben wir xl0 nun eine IP:inet 127.0.0.1 netmask 0xff000000 lo1: flags=8008 xl0: flags=8802 media: Ethernet 10baseT (10baseT half-duplex) #
# ifconfig xl0 192.168.1.1 netmask 255.255.255.0 upDie Optionen für Ifconfig ersehen sie aus der man Page oder durch einfaches eingeben von "ifconfig". Bei uns sind die Optionen:
# ifconfig DEVICE IP netmask NETMASK upWenn dies geklappt hat, pingen sie einen anderen Rechner aus ihrem Netzwerk an. Fals auch dies Erfolgreich war, können sie sich ein Bier, eine Milch oder wass sie gerne Trinken gönnen, sie haben eine lauffähige NIC in ihren OpenBSD System.
Fals nicht, liegt das warscheinlich an der Einstellung der Netzwerkkarte. Wie sie oben sehen ist meine 10/100Mbit NIC auf 10baseT, also 10 Mbit mit TP Kabeln gestellt. Was aber ist, wenn sie an einem 100Mbit HUB hängt, der 10Mbit nicht unterstützt? Als erstes müssen Sie sich also Erkundigen, mit welcher Geschwindigkeit und/oder in welcher Topologie ihr Netz läuft.
Danach können sie mit
# ifconfig -m DEVICEdie von der Netzwerkkarten unterstützen Modi ausgeben. Bei meiner NIC ergibt das:
# ifconfig -m xl0 xl0: flags=8843Wenn ich sie nun auf 100Mbit und full-duplex einstellen will, muss ich sie zuerst wieder abschalten:media: Ethernet 10baseT full-duplex status: active supported media: media autoselect media 100baseTX mediaopt full-duplex media 100baseTX media 10baseT mediaopt full-duplex media 10baseT media 100baseTX mediaopt loopback inet 192.168.1.20 netmask 0xffffff00 broadcast 192.168.1.255 #
# ifconfig xl0 downUnd dann mit den neuen Optionen wieder einschalten:# ifconfig xl0 192.168.1.20 netmask 255.255.255.0 media 100baseTX mediaopt full-duplexWie sie sehen kann man die Optionen einfach übernehmen. "media" ist meistens der Medientyp, wie 10BaseT oder 10Base5, und mediaopt zustätzliche Optionen dazu, wie full- oder half duplex.
Nun haben sie eine Lauffähige Netzwerkkarte. Blos werden die Einstellungen beim nächsten booten wieder vorlorengehen, und sie müssten die Befehle von neuem Eingeben. Also sehen wir in diesem Kapitel an, wie sie ihre NIC schon beim Booten konfigurieren.Eigentlich ist es ganz einfach. Wenn ihre NIC das Device xl0 hat, wird die Konfiguration in /etc/hostname.xl0 gespeichert. Bei ne1 hostname.ne1 und so weiter. Schauen wir mal eine solche Konfigurationsdatei an:
# cat /etc/hostname.xl0 inet 192.168.1.10 255.255.255.0 NONE media 100baseT mediaopt full-duplex #Wie sie sehen stehen in dieser Datei einfach alle Optionen für ifconfig, ohne "ifconfig" selber und mit einem NONE nach der Netmask.
Hostname:
In der /etc/myname steht der Symbolische hostname, den man auch mit dem Befehl "hostname" ändern oder anzeigen lassen kann.# cat /etc/myname firestarter #
Andere Hosts:
Wie bei dem meisten Unixen werden in der /etc/hosts die Hostnamen für andere Computer gespeichert:# cat /etc/hosts 127.0.0.1 localhost 192.168.1.20 firestarter.swissnet.net firestarter 192.168.1.1 unreal.swissnet.net unreal #
Default Gateway:
In /etc/mygate wird der default Gateway eingetragen (der gleiche Effekt hätte "route add default 192.168.1.10"):# cat /etc/mygate 192.168.1.10 #
Nameserver:
In /etc/resolv.conf werden die Nameserver eingetragen:# cat /etc/resolv.conf nameserver 212.40.0.10 nameserver 212.40.5.50 #
Andere Netzwerkdienste:
In /etc/rc.conf wird unter anderem Eingestellt, ob und welche Netwerkdienste (wie inetd, portmapper) gestartet werden sollen.
Startscript:
/etc/netstart ist ein Script, das während dem Booten lo0 (loopback device) und alle anderen NICs konfiguriert und startet, ein Blick hierrein ist immer Interesant.
Anhang A:
Aus /usr/src/sys/arch/i386/conf/GENERIC# Networking devices we0 at isa? port 0x280 iomem 0xd0000 irq 9 # WD/SMC 80x3 ethernet we1 at isa? port 0x300 iomem 0xcc000 irq 10 # we* at isapnp? ec0 at isa? port 0x250 iomem 0xd8000 irq 9 # 3C503 ethernet ne0 at isa? port 0x240 irq 9 # NE[12]000 ethernet ne1 at isa? port 0x300 irq 10 # NE[12]000 ethernet ne2 at isa? port 0x280 irq 9 # NE[12]000 ethernet ne* at isapnp? # NE[12]000 PnP ethernet eg0 at isa? port 0x310 irq 5 # 3C505/Etherlink+ ethernet el0 at isa? port 0x300 irq 9 # 3C501 ethernet ep0 at isa? port ? irq ? # 3C509 ethernet ep* at isapnp? # 3C509 PnP ethernet ep* at isa? port ? irq ? # 3C509 ethernet ef* at isapnp? # 3C515 PnP ethernet ie0 at isa? port 0x360 iomem 0xd0000 irq 7 # StarLAN and 3C507 ie1 at isa? port 0x300 irq 10 # EtherExpress le0 at isa? port 0x360 irq 15 drq 6 # IsoLan, NE2100, and DEPCA ex0 at isa? port 0x320 irq 5 # Intel EtherExpress PRO/10 ep0 at eisa? slot ? ep* at eisa? slot ? # 3C579 ethernet fea* at eisa? slot ? # DEC DEFEA FDDI lmc* at pci? dev ? function ? # Lan Media Corp SSI/T3/HSSI le* at pci? dev ? function ? # PCnet-PCI based ethernet le* at isapnp? de* at pci? dev ? function ? # DC21X4X-based ethernet fxp* at pci? dev ? function ? # EtherExpress 10/100B ethernet ne* at pci? dev ? function ? # NE2000-compat ethernet ep0 at pci? dev ? function ? # 3C59x ethernet ep* at pci? dev ? function ? # 3C59x ethernet ne* at pcmcia? function ? # PCMCIA based NE2000 ethernet ep* at pcmcia? function ? # PCMCIA based 3C5xx ethernet sm* at pcmcia? function ? # PCMCIA based sm ethernet xe* at pcmcia? function ? # Xircom ethernet wi* at pcmcia? function ? # WaveLAN IEEE 802.11 fpa* at pci? dev ? function ? # DEC DEFPA FDDI xl* at pci? dev ? function ? # 3c9xx ethernet rl* at pci? dev ? function ? # RealTek 81[23]9 ethernet tx* at pci? dev ? function ? # SMC 83C170 EPIC ethernet tl* at pci? dev ? function ? # Compaq Thunderlan ethernet mx* at pci? dev ? function ? # Macronix PMAC ethernet vr* at pci? dev ? function ? # VIA Rhine ethernet pn* at pci? dev ? function ? # Lite-On PNIC ethernet wb* at pci? dev ? function ? # Winbond W89C840F ethernet ti* at pci? dev ? function ? # Alteon Tigon 1Gb ethernet ax* at pci? dev ? function ? # ASIX AX88140A ethernet skc* at pci? dev ? function ? # SysKonnect GEnesis 984x sk* at skc? # each port of above