Ein lokales Netz mit eine Raspberry PI in ein WLAN einbinden

Bisher hat Mamas Computerlexikon einfache Fragen im Fokus, die sich mit vergleichsweise einfachen Dingen befassen wie Sie bei der Nutzung von Office Software auftreten. Dies ändert sich mit diesem Beitrag rapide. Die Frage, die es zu beantworten gilt ist schon ein bisschen komplexer und braucht dementsprechend einer ausführlichen Einleitung.

Mamas aktuelles Problem entsteht aus der Situation heraus, dass Sie ein kleines privates Netzwerk nutzt, in dem ein paar Rechner, Drucker und ein NAS miteinander kommunizieren. Das lokale Netzwerk soll über einen WLAN Accesspoint ins Internet gebracht werden. Das ganze ist im nachfolgenden Bild skizziert. Entsprechend dem orangenen Pfeil soll ein Rechner aus dem lokalen Netzwerk heraus über das WLAN ins Internet gelangen können.

Lan Netzwerk mit WLAN im Internet

Die Netzwerke physisch zu verbinden ist durch die örtlichen Gegebenheiten verhindert. Das WLAN ist der einfachste Weg die Verbindung zu erzeugen. Alle Geräte über das WLAN direkt zu verbinden ist auch kein Weg, da das NAS für Backups genutzt wird, was über das WLAN zu langsam ist.

Die Lösung ist PI

Für das lokale Netz wurde ein Raspberry PI B als Server genutzt. In Verbindung mit einer WLAN Karte, einem USP Hub und einem Switch hat Mama alles was Sie für Ihr lokales Netz braucht. Als Betriebssystem für den Raspberry PI nutzt Mama den Debian Ableger namens „Raspbian“. Dieser sollte als Ableger eines vollwertigen Linux für die anstehende Aufgabe ausreichend gut vorbereitet sein und ist, da die Raspberry Foundation als Quelle dient, hoffentlich auch entsprechend gut mit Updates versorgt.

Das WLAN soll hier keine große Hürde darstellen. Es wird durch einen Marktüblichen DSL Router mit integriertem WLAN aufgebaut und darf eigentlich auf Mamas vorhaben keinen Einfluss haben.

Für die Durchführung des Vorhabens sind mehrere Schritte notwendig, die hier im einzelnen beschrieben -, oder zumindest mit einem passenden Link zu einer einfachen Erklärung ergänzt werden sollen.

 Schritte in der Durchführung

folgende Schritte müssen durchgeführt werden:

  1. [intlink id=“197″ type=“post“]Installation von Raspbian auf der SD-Karte[/intlink]
  2. [intlink id=“211″ type=“post“]Inbetriebnahme des PI[/intlink]
  3. [intlink id=“225″ type=“post“]WLAN einrichten[/intlink]
  4. [intlink id=“233″ type=“post“]System Update durchführen[/intlink][intlink id=“239″ type=“post“]LAN einrichten[/intlink]
  5. [intlink id=“240″ type=“post“]PI als Bridge zwischen LAN und WLAN konfigurieren[/intlink]

Das Ziel dieses Aufbau ist nachfolgend nochmals skizziert.

Lan Netzwerk mit WLAN und PI

 

Raspberry als Bridge zwischen zwei Netzen konfigurieren

Um einen Raspberry PI in eine Brücke (Bridge) zwischen zwei Netzen einzusetzen, muß folgendes bereits erfüllt sein:

  1. [intlink id=“197″ type=“post“]Der Raspberry PI muß mit dem Betriebssystem Raspbian ausgestattet sein[/intlink]
  2. [intlink id=“225″ type=“post“]Ein WLAN muß in ein lokales WLAN für den Internetzugang eingebunden sein[/intlink]
  3. [intlink id=“239″ type=“post“]Das LAN muß im lokalen Netz funktionieren und der Raspberry PI muß mit einer statischen IP-Adresse versehen sein[/intlink]

Das weiter vorgehen erfordert zuerst die Installation der notwendigen Pakete für das Einrichten der Bridge. Dies geschieht mit dem nachfolgenden Kommando.

#Installation der Bridge-Utils
sudo apt-get install bridge-utils

Diese sind die Voraussetzung, dass die nachfolgende Konfiguration in /etc/network/interfaces auch wirklich funktioniert. Die Konfiguration ist hier einmal komplett wiedergegebene, also auch mit den Angaben zu den notwenigen Interfaces (eth0 und wlan0)

auto lo
iface lo inet loopback

iface eth0 inet static
        address 192.168.3.2
        netmask 255 what is sildenafil citrate.255.255.0
        network 192.168.3.0
        broadcast 192.168.3.255

auto wlan0
iface wlan0 inet dhcp
wpa-ap-scan 1
wpa-scan-ssid 1
wpa-ssid "My SSID"
wpa-psk 123456789012345678901234567890123456789012345678901234567890

#Netwerkbrücke
auto br0
iface br0 inet dhcp
        bridge_ports eth0 wlan0
        bridge_fd 5
        bridge_stp no

Der Fokus in diesem Beitrag liegt auf der Bridge Konfiguration. Diese sollte dabei so einfach wie möglich gestaltet sein.

Mit dem Befehl „auto br0“ wird das Interface auf Autostart gesetzt, es wird also beim Starten des PI automatisch hochgefahren. Die Definition der Schnittstelle (iface) definiert es als IPv4 Netzwerk (inet) und läßt eine Vergabe der IP-Adresse per DHCP zu. Dies funktioniert, wenn ein DHCP Server im Netz ist, was in diesem Szenario durch den DSL Router mit WLAN gegeben ist. Mit dem Befehl bridge_ports wird angegeben welche Ports hier „überbrückt“ werden. Die Brücke wird zwischen dem LAN Port (eth0) und dem WLAN Port (wlan0) geschlagen. Mit bridge_fd wird der Timeout von 15 Sekunden auf 5 Sekunden gesenkt. Dieser Befehl könnte ohne weiteres entfallen. Zuletzt gibt es noch den Befehl bridge_stp dieser stellt in komplexen Netzwerken sicher, dass keine Zirkelschlüsse entstehen. Da dies in einem einfachen Konstrukt wie diesem nicht stattfinden kann wird es mit „no“ abgestellt.

Damit ist das Szenario hergestellt in dem die Geräte aus einem lokalen Netzwerk, das über den Raspberry PI mit einem WLAN verbunden ist, über den WLAN Router ihre IP-Adressen beziehen.

Lan Netzwerk mit WLAN im Internet

Jetzt muß Mama nur noch Ihren Netzwerkdrucker über die USP-Ports des Raspberry PI anschliessen und als Netzwerkdrucker freigeben, dann ist das LAN fertig.

 

Raspberry PI WLAN einrichten

Mamas Etappenziel ist es, den Raspberry PI mittels WLAN ins Internet zu bringen. der Zugangspunkt ist ein WLAN in einem DSL Router, der auch per DHCP die IP-Adressen vergibt.

Raspberry PI kommt mittels WLAN ins Internet

Das WLAN ist für die weiteren Schritte wichtig, da es bei diesem Setup den Zugriff auf die notwendigen Pakete über den Paketdienst erlaubt.

Um das WLAN zu aktivieren müssen wir das Netzwerk in der Datei /etc/network/interfaces korrekt bekannt machen. Da auf dem PI in der Regel kein „echter“ root Account existiert, und der Schreibzugriff auf dies Datei geschützt ist, müssen wir vor dem Befehl zum editieren ein „sudo“ anfügen, um root Rechte zu erlangen.

Mama hat nohc gelernt mit dem VI umzugehen. Das ist nicht jedermanns Sache. Für User, die es gern einfacher wollen, gibt es auch noch den „nano“ als editor.

Vor dem Editieren machen wir wie es sich gehört eine Sicherheitskopie:

cp /ect/network/interfaces /ect/network/interfaces.org

Interfaces Editieren

Wir öffnen die Datei /etc/network/interfaces entsprechend mit dem passenden Befehl zum Editor. Wer den vi nicht nutzen möchte, sollte diesen Begriff durch nano ersetzen.

sudo vi /etc/network/interfaces

Das File sieht initial in etwa wie folgt aus

auto lo
iface lo inet loopback

iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

Auf der Basis dieser Konfiguration passen wir die Settings an:

auto lo
iface lo inet loopback

iface eth0 inet dhcp

auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
wpa-ap-scan 1
wpa-scan-ssid 1
wpa-ssid "SSID des Netwerks"
wpa-psk "passphrase des Netzwerks"

In der abgebildeten Konfiguration müssen wir natürlich die Begriffe "SSID des Netwerks" und "passphrase des Netzwerks" durch die echte SSID und die zugehörige Passphrase ersetzen.

In dieser Form können wir die Konfiguration abspeichern und testen. Dies geschieht durch einen Neustart der Netzwerkverbindungen.

sudo service networking restart

Beim Neustart der Netzwerkverbindung sollte eine Meldung wie diese im langen Sermon der Ausgaben enthalten sein.

DHCPOFFER From 192.168.xxx.yyy

DHCPACK from 192.168.xxx.yyy

bound to 192.168.xxx.aaa -- renewal in ... seconds.

Die IP-Adressen können abweichen, das ist normal, wichtig ist die Aussage, dass der DHCP Server eine IP-Adresse anbietet und diese auch („bound to“) an den Raspberry PI gebunden wird.

Passphrase nicht im Klartext

Um die Sicherheit noch ein bisschen zu erhöhen, nehmen wir noch ein Änderung an der /etc/network/interfaces vor. Die Passphrase haben wir im ersten Schritt im Klartext einfegügt, das funktioniert, ist aber alles andere als sicher. Um hier die Sicherheit noch ein bisschen zu erhöhen, ersetzen wir die Passphrase im Klartext durch eine verschlüsselte Version.

Mit dem nachfolgenden Befehl verschlüsseln wir die Passphrase. Die so verschlüsselte form können wir direkt in die /etc/network/interfaces anstelle der unverschlüsselten Passphrase einsetzen.

wpa_passphrase "SSID des Netwerks"  "passphrase des Netzwerks"

Die daraus resultierende Ausgabe sieht in etwa so aus:

network={
   ssid="SSID des Netwerks"
   #psk="passphrase des Netzwerks"
   psk=aefd5a7c8954f958dae0fd73ffffb9bfe074bcc888e045a5a7028a6dec342f9c
}

Der Key nach „psk=“ wird anstelle der unverschlüsselten Passphrase in die /etc/network/interfaces Datei eingesetzt.

 

 

Raspberry PI LAN einrichten

Raspberry PI Logoeigentlich muß ich bei einem Raspberry PI mit Raspbian kein LAN einrichten. Denn initial ist das Lan Netzwerk, also das Netzwerk, das über den Netzwerkstecker genutzt wird so eingerichtet, dass es sich von einem DHCP Server eine IP-Adresse bezieht und dann funktioniert. In der notwendigen Konfiguration unter /etc/network/interfaces findet Mama bei einem frisch installierten Raspbian die Zeile

iface eth0 inet dhcp

was dem Betriebssystem sagt, dass das Netzwerk mit dem Namen „eth0“ per DHCP angesprochen wird. Der Begriff „inet“ steht für das TCP/IPv4 Protokoll. In der nächsten Tabelle finden sich die möglichen weiteren Optionen für diese Einstellung. Da wir hier ein lokales Netzwerk konfigurieren sollte ein IPv4 Netz ausreichen.

Protokoll
Netzwerkprotokoll Beschreibung
inet IPv4 (Standard)
inet6 IPv6
ipx IPX/SPX

 

Um den Raspberry PI als Server einzusetzen, der z.B. auch als DHCP Server auftritt, ist es notwendig die Schnittstelle fest vorzudefinieren. In diesem Fall sieht die Konfiguration etwwas ausführlicher aus.

# LAN konfigurieren mit statischer IP
iface eth0 inet static
address 192.168.3.2
netmask 255.255.255.0
broadcast 192.168.3.255
gateway 192.168.3.2
dns-nameservers 192.168.3.2

Das Interface wird hier mit dem Begriff „static“ so definiert, dass eine feste IP-Adresse vergeben ist. Diese wird dann mit dem Befehl „address“ festgelegt. Zusätzlich zur Adresse braucht das Interface eine Netzwerkmaske. Diese definiert, mit welchen Computern der Raspberry PI kommunizieren darf. Bei der angegebenen Maske sind es alle Computer im selben Netzsegment als die mit den IP-Adressen 192.168.3.0 bis 192.168.3.254. Der „broadcast“ Befehl definiert eine Adresse, über die allgemeine Nachrichten ins lokale Netz gegeben werden. Hierüber erhält ein Rechner z.B. Auskunft über die im Netz verfügbaren Rechner.

Lan Netzwerk mit PI

Ein „gateway“ schafft den Übergang von einem Netzwerk ins nächste. Hier wurde der Raspberry PI als Gateway definiert. Zuletzt wird noch ein „dns-nameserver“ angegeben. Dieser wird auch als der PI definiert.

Wenn auf diesem Raspberry PI jetzt ein DHCP-Server in Betrieb genommen wird, dann kann er als eigenständiger Server im lokalen Netz den Bertieb übernehmen. Wenn wir zusätzlich einen DNS-Server in Betrieb nehmen, dann kann der PI auch sprechende Netzwerknamen verwalten.

Unser Ziel ist es aber eine Brücke (Bridge) zwischen einem[intlink id=“185″ type=“post“] WLAN mit Router[/intlink] zu schlagen, der den Zugang ins Internet stellt. Dieser ist bereits in der Lage IP-Adressen zu vergeben und mit DNS Namesauflösung umzugehen.

 

Raspberry PI in Betrieb nehmen

in einem der vorherigen Beiträge hat Mama das Betriebssystem „raspbian“ [intlink id=“197″ type=“post“]auf eine SD-Karte gebracht[/intlink]. Mit dieser Karte läßt sich der Raspberry PI jetzt in Betrieb nehmen. Die Inbetriebnahme ist eigentlich kein Problem, wenn man die notwendige Utensilien bereit hat:

Weitere Utensilien sind:

  1. eine Stromversorgung mit Micro USB Anschluss mit einem entsprechenden Kabel
  2. einen USB – Hub (sinnvoll aber nicht notwendig)
  3. USB Tastatur und USB Maus (Maus ist nicht zwingend notwendig wenn man auf der Kommandozeile bleibt)
  4. Ein Monitor mit HDMI Anschluss
  5. und natürlich eine SD-Karte, die wie an anderer Stelle beschrieben mit einem Betriebssystem versehen wurde.

Das Modell B des Raspberry PI ist Voraussetzung, da das Modell A keinen Ethernet Anschluss hat und das Endziel meines Projektes ein lokales Netzwerk ist, in dem der PI als Server arbeitet.

Das ganze läßt sich ohne weiteres in ein 10″ Serverschränkchen unterbringen, was gleich ein etwas professionelleres Aussehen gibt. Im nächsten Bild sieht man, dass ein bisschen Kabelbinder schon sehr viel Ordnung bringt.

Raspberry PI in 10 Zoll Gehäuse mit Switch und USB Hub

Raspberry PI einrichten

nach dem ersten Start des Raspberry PI erscheint ein Dialog zur Konfiguration des kleinen Computers.  Das sogenannte „Raspberry PI Software Configuration Tool“ hilft die wichtigsten Grundeinstellungen vorzunehmen.

PI-Software  Configuration Tool (raspi-config)

Zur Nutzung des Dialogs braucht man folgende Tasten:

  • TAB  springt zur nächsten Auswahl
  • Pfeil-Oben, Pfeil-Unten um in Listen zu Wählen
  • SPACE um zu markieren
  • ENTER um eine Eingabe zu vollenden oder einen „Button“ auszuwählen

 

Die nachfolgenden Punkte sollte man bei der Konfiguration in jedem Fall ansehen und einstellen.

1. Expand Filesystem

Dieser Menüpunkt sorg dafür, das die bereitsgestellte SD-Karte vollständig für den PI zur Verfügung steht.

2. Change User Password

Der genutzte User heiß „pi“ und sein Initialpasswort ist „raspberry“, wenn man den PI also wirklich betreiben will

4. Internationalisation Options

Hier sollte man in jedem Fall einstellen, welche Sprache man nutzt. Dazu wählt man den Punkt I1 durch drücken der „Enter“ Taste aus. In der Liste fährt man mit den Cursortasten so lange nach unten, bis das Rote Eckchen auf „de_DE.UTF-8 UTF-8“ steht. Mit der Leertaste setzt man einen Punkt zwischen die eckigen Klammern.

Sprachauswahl

Die Auswahl „en_GB.UTF-8 UTF-8“ habe ich stehen gelassen, es sind damit zwei Sprachen gewählt. Mit der „TAB“ Taste kommt man von der Liste auf die <OK> und <Cancel> Buttons.

Unter I2 findet sich die Zeitzone, hier bitte mit den oben beschriebenen Tasten die korrekte Kombination auswählen, z.B. im ersten Dialog „Europa“ im zweiten Dialog „Berlin“ und dann mit <OK> bestätigen.

Die wirklich wichtige Einstellung ist das Keyboard Layout. Das initial auf Englisch steht. Da meine Tastatur zwar mit dem Hersteller (Cherry) in der Liste auftaucht, aber nicht namentlich zu finden war, bin ich bei der „Generic 105-key (Intl) PC“ auswahl verblieben.

Wichtiger ist, die Sprache korrekt zu wählen, da ansonsten die Sonderzeichen nicht funktionieren. In der Auswahl nach dem Tastaturlayout, wählt man, wenn nur „Englisch “ verfügbar ist entsprechend den Punkt „Others“ und sucht sich dort „German“ als Land. Für die ALTGr Taste ist die Einstellung „The Default for the keyboard layout“ in der Regel in Ordnung. Alle weitere Fragen habe ich im Standard belassen.

8 Advanced Options

Da der Raspberry PI als Netwerkserver genutzt werden soll, ist es wichtig unter „A2 Hostname“ einen Namen zu definieren. Da Mama gerne mit SSH arbeitet, habe ich auch noch unter „A4 SSH“ die Möglichkeit des SSH Zugriff geschaffen.

Der aufmerksame Beobachter wird festgestellt haben, dass ich die grafische Benutzeroberfläche nicht aktiviert habe. Ein Netzwerkserver sollte auch ohne diese auskommen.

 

 

 

Raspbian für PI auf einer SD-Karte installieren

Für den Betrieb eines Raspberry PI ist es notwendig ein entsprechendes Betriebssystem auf einer SD-Karte bereitzustellen. Dies wird hier anhand von Rasbian erläutert.

Schritt 1: Download eines Diskimage

Raspbian bezieht man am einfachsten direkt von der Raspberry Foundation unter www.raspberry.org im Download Bereich. Das Diskimage herunterladen und lokal im Filesystem speichern. Hier gibt es keine Einschränkungen wo es zu liegen hat. Der einfachheit halber legt man es am besten zum üblichen „Downloads“ Bereich, den das Betriebssystem vorgibt.

Download Bereich

Nach dem Download, der einige Zeit in Anspruch nehmen kann, muß das Disk-Image noch entpackt werden. Der Download befördert ein „ZIP“ File ins Filesystem. Nach dem Entpacken mit Bordmitteln des Computers oder einem anderen Werkzeug wie WinZIP oder 7zip, hat das File die Endung .img und ist ca. 2,9GB (!) groß.

Schritt 2: Ein Werkzeug zum transferieren des Image

Ein Disk Image, wie wir es gerade heruntergeladen haben ist eingentlich ein Abbild einer Festplatte oder anderen Disk. Diese wurde für den Transfer aller Daten in eine einzelnes File gepackt, das Disk-Image eben. Um das Disk-Image wieder auf einen Datenträger zu schreiben, brauchen wir eine passende Software. Unter Windows ist dies „Win32 Disk Imager„.  Das Werkzeug ist als Open Source Software für jedermann kostenlos nutzbar und kann direkt von Source Forge heruntergeladen werden.

Für die Installation des Disk Imager werden Administrationsrechte benötigt und auch bei der Ausführung muß der Disk Imager mit diesen Rechten ausgestattet werden.

Schritt 3: Raspbian Image auf eine SD-Karte brennen

Der Raspberry PI bedient sich einer SD-Karte als Massenspeicher. Wir müssen also das Betriebssystem auf eine SD-Karte übertragen. Der Rechner an dem wir dies tun sollte dementsprechend in irgend einer Form mit einem SD-Karten Leser ausgestattet sein.

Um das Raspbian Disk Image auf die SD Karte zu übertragen legen wir zuerst die SD-Karte in den Kartenleser und warten, bis sie als Laufwerk im Rechner angezeigt wird.

SD-Karte als Laufwerk im Explorer

Wenn die SD-Karte als Laufwerk erscheint starten wir die zuvor installierte Software „Win32 Disk Imager“. Der Disk Imager öffnet mit einem einfachen und recht kleinen Fenster.

Win32 Disk Imager nach dem Start

In dieser Fenster müssen wir zuerst das Raspbian Disk-Image finden, das wir in Schritt 1 von der Website der Raspberry foundation heruntergeladen haben. Dazu klicken wir auf das blaue Ordner Icon oben rechts im Fenster. Es öffnet sich ein Dialog zum auswählen des Disk Images. Es sollte unter „Downloads“ liegen.

ACHTUNG: Der Disk Imager zeigt leider nur „echte“ Laufwerke und nicht die ganzen nützlichen bibliotheken, die es unter Windows gibt. Wir müssen uns als durchs Filesystem schlagen. Die Downloads sind unter C:Users<Username>downloads.

Win32 Disk Imager mit ausgewähltem Image

Jetzt muß das richtige Zeillaufwerk definiert werden. Dies geschieht über das Dropdownmenü unter „Device“. In der ansicht des Computers im Explorer (siehe oben) finden wir neben dem Laufwerknamen (hier: SD-Karte) den Laufwerksbuchstabe. Diesen müssen wir auswählen. Aus dem Bild oben ergibt sich [F:] , dies kann aber von Computer zu computer variieren.

Zu guter letzt müssen wir den Image Writer noch anweisen zu schreiben. Dies geschieht durch druck auf den Button „Write“. Der Image Writer quittiert dies zuerst mit einer dramatisch klingenden Bestätigungsmeldung check this site out.

Warnmeldung

Sie sollten sich sicher sein, dass Sie wirklich die SD-Karte ausgewählt haben und nicht versehentlich auf die Festplatte des Computers schreiben. Dies hätte fatale Folgen.

Wenn also in der Box wirklich die SD-Karte benannt ist, dann können wir mit „Yes“ bestätigen, dass wir das Image schreiben wollen. Danach ist ein wenig zurücklehnen oder andere Dinge tun angesagt. Wir können jetzt z.B. unseren Raspberry PI richtig verkabeln und für den Betrieb vorbereiten.

Win32 Disk Imager - das erstellen der Boot SD-Karte für den PI braucht etwas Zeit

Wenn nun alles gut gelaufen ist, dann beendet der Image Writer die Arbeit mit der schönen Meldung „Write Successful“. Danach können wir den Image Writer beenden und die SD-Karte ihrer Bestimmung zuführen. Dem Betrieb eines Raspberry PI.

 

Image Writer - Writing Complete