Router im Eigenbau: Teil 2 – Die Inbetriebnahme

Nachdem es einige Verzögerungen durch langsame Lieferung gab sowie einen Fehler bei der Bestellung geht es zumindest nun endlich weiter.

Heute geht’s um das Thema, welche Hardware wir genommen haben, die Installation von Ubuntu 14.04.1 (Trusty) sowie der der Basic Konfiguration als Router.

Hinweis: Dieser Blog Beitrag richtet sich an Leute die bereits Erfahrung mit Linux und Netzwerken haben und nicht an Einsteiger.

Hardware

Als Router Board kommt das von PC Engines hergestellte apu1d4 Board zum Einsatz. Dieses hat einen AM G series T40E CPU mit 2x 1GhZ Leistung. Die CPU Architektur entspricht x86-64.

Das Modell apu1d4 hat im Gegensatz zum Modell apu1d 4 GB statt 2 GB Arbeitsspeicher. Intern gibt es einen SATA Anschluss, sowie 1x mSATA sowie 2x miniPCI Express.

Auch hat das Board GPIO Pins, in der erster Version des Routers verwenden wir diese Pins jedoch nicht. Später hingegen ist geplant den Router ggf. um ein Display nachzurüsten.

Die Einkaufsliste
  • 1x PC Engines AMD APU1D4 System Board, 1GHz, 4GB DDR3 RAM, 3x GBLAN
  • 1x PC Engines Enclosure für APU1C Serie, 3xGBLAN, 1xUSB, 2xWLAN
  • 1x JPS Steckernetzteil, 12V, 2.0A (5,5mm / 2,1mm)
  • 1x Compex WLE200NX a/b/g/n miniPCI Express Radio Card
  • 2x Pigtail SMA Buchse, 15cm Kabel
  • 2x Omni Antenne 5dBi RP-SMA, Dualband, 2,4GHz und 5GHz
  • 1x Samsung MZ-MTE500BW mSATA interne SSD 500GB silber
  • 1x Manhattan USB – RS232 (Seriell) Konverter Konverter USB-Seriell USB – A / Stecker – DB9 / Stecker 0.45 m
  • 1x Cables to Go 81418 Nullmodemkabel (DB9, Buchse auf Buchse, 2m) schwarz

Bei der mSATA SSD kann man sich natürlich auch für eine kleine 16GB Version entscheiden, wenn man wirklich nur Router Funktionen nutzen möchte. Ich habe mich jedoch für 500GB entschieden damit der Router nebenbei auch als kleiner Fileserver dienen kann.

Zusammengebaut sieht das ganze dann wie folgt aus, nur die WLAN Antennen fehlen noch auf diesem Bild.

IMG_0622

 Betriebssystem Installation

Wir haben uns für das Betriebssystem Ubuntu 14.04 entschieden. Der Hauptgrund sind die aktuellen Pakete sowie der gute Treiber Support. Auf anhieb wurden alle Geräte und Karten sofort erkannt.

Die Installation auf diesem Gerät ist etwas tricky da man keinen Monitor Anschluss hat. Man muss in diesem Fall direkt per Serial Anschluss (RS232) an das Gerät ran. Hierfür benötigt man einen USB to RS232 Adapter sowie ein RS232 Nullmodemkabel. Beides ist bereits in der Einkaufsliste vorhanden.

Zuerst benötigt man jedoch den Treiber für den USB to RS232 Adapter. Wenn ihr euch für das Gerät aus der Einkaufsliste entscheidet, findet ihr den Treiber hier. In meinem Fall unter OS X 10.10 erhält ihr nach dem Neustart ein tty.usbserial Device.

Danach installiert euch am besten dterm. Unter OS X geht das am einfachsten mit brew. Mit dem folgenden Befehl könnt ihr euch zum Router verbinden:

dterm 115200 8 n 1 tty.usbserial

Ihr könnt ein Ubuntu Image nun per USB Stick oder PXE booten. Ich empfehle PXE da dort direkt die notwendigen Einstellungen vorgenommen werden können damit die Installation über den Serial Terminal funktioniert.

Die PXE Konfiguration muss wie folgt angepasst werden, entweder die default direkt oder für die Mac Addresse eine eigene Konfiguration anlegen. Bei Ubuntu müsst ihr dazu ins folgende Verzeichnis: /var/lib/tftpboot/pxelinux.cfg/

Dort bearbeitet ihr die default Konfiguration wie folgt:

serial 0 115200

LABEL ubuntu1404
KERNEL ubuntu-1404/linux APPEND console=ttyS0,115200 video=off initrd=ubuntu-1404/initrd.gz vga=788 priority=critical DEBIAN_FRONTEND=text interface=auto netcfg/dhcp_timeout=30 console-setup/layoutcode=de

Das ganze setzt jedoch bereits eine funktionierende Ubuntu 14.04 PXE Installation voraus. Hier zeige ich nur welche Einstellungen gesetzt werden müssen, um durch die Installation via RS232 zu kommen.

Es besteht theoretisch auch die Möglichkeit das ganze mit einem Live Image und debootstrap oder USB Installation zu lösen. Ich empfehle jedoch die PXE Variante.

Der Start als Router

Grundkonfiguration

Nachdem Ubuntu 14.04 installiert wurde müssen noch ein paar Einstellungen durchgeführt werden damit der Linux Mini PC nun als Router arbeitet.

Ich beschreibe die Konfiguration mit und ohne W-LAN Interface.  Wir eine Netzwerkbrücke konfigurieren um alle Geräte mit dem selben IP Netz zu versorgen.

Achtet darauf das die W-LAN Karte den Betrieb im Brückenmodus unterstützt. Sollte dies nicht der Fall sein so müssen die W-LAN Geräte ein anderes Netz erhalten. Dies wird hier nicht erklärt da dies nur alte W-LAN Netzwerkkarten betrifft.

Folgende Pakete müssen nun installiert werden:

apt-get install -y bridge-utils  dnsmasq hostapd

Das Paket hostapd muss jedoch nur installiert werden, sofern man sich mit W-LAN entschieden hat.

Die /etc/network/interfaces sollte wie folgt aussehen:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto p4p1
iface p4p1 inet dhcp

auto br0
iface br0 inet static
  address 192.168.33.1
  netmask 255.255.255.0
  broadcast 255.255.255.0
  bridge_ports wlan0 p5p1 p6p1
  bridge_fd 0
  bridge_stp no

Sollte man kein W-LAN nutzen lässt man bei bridge_ports das wlan0 Gerät weg. Das Interface p4p1 wird in meiner Konfiguration als WAN Schnittstelle genutzt. Dieses steht auf DHCP da KabelBW diese Information via DHCP ausliefert, auch bei statischen IP Adressen. Nun kann man mit „ifup br0“ die Brücke hochfahren.

Nun müssen noch folgende Einstellungen in die /etc/rc.local hinzugefügt werden. Um die Einstellungen zusätzlich sofort in Betrieb zu nehmen und nicht erst nach einem Neustart, kann man diese natürlich zusätzlich auch selbst eingeben.

sysctl -w net.ipv4.ip_forward=1  
iptables -t nat -A POSTROUTING -o p4p1 -j MASQUERADE

Einfach gesagt: Diese beiden Einstellungen sorgen dafür das der Router nun alle anderen Geräte mit der Internet Verbindung vom WAN Port p4p1 versorgt. Damit es losgehen kann fehlt jedoch noch der DHCP Server für die IP Adressen Verteilung.

Diesen Inhat muss die /etc/dnsmasq.conf aufweisen:

interface=br0
no-dhcp-interface=p4p1
dhcp-range=192.168.33.50,192.168.33.150,12h

Nach einem „service dnsmasq restart“ sollten per Kabel angeschlossene Geräte nun über Internet verfügen. In unserem Fall nutzen wir das Netz 192.168.33.0/24. Per DHCP wird der Range .50 –  .150 verteilt. Die IP 192.168.33.1 ist der Router. Die IP’s zwischen 192.168.33.2-192.168.33.49 sowie 192.168.33.151-192.168.33.254 können manuell konfiguriert werden.

 W-LAN

Sollte man sich für die Variante mit W-LAN entschieden haben, muss man noch das hostapd Paket konfiguriert werden. Hierfür bearbeiten wir die Datei /etc/hostapd.conf.

# Schnittstelle und Treiber
interface=wlan0
bridge=br0
driver=nl80211

# WLAN-Konfiguration
ssid=MyWIFI
channel=11

# ESSID sichtbar
ignore_broadcast_ssid=0

# Ländereinstellungen
country_code=DE
ieee80211d=1

# Übertragungsmodus
hw_mode=g

# Draft-N Modus aktivieren / optional nur für entsprechende Karten
ieee80211n=1

# Enabled WMM mode
wmm_enabled=1

# Beacons
beacon_int=100
dtim_period=2

# MAC-Authentifizierung
macaddr_acl=0

# max. Anzahl der Clients
max_num_sta=20

# Größe der Datenpakete/Begrenzung
rts_threshold=2347
fragm_threshold=2346

# hostapd Log Einstellungen
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2

# temporäre Konfigurationsdateien
dump_file=/tmp/hostapd.dump
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0

# Authentifizierungsoptionen 
auth_algs=3

# wmm-Funktionalität

# Verschlüsselung / hier rein WPA2
wpa=2
rsn_preauth=1
rsn_preauth_interfaces=wlan0
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP

# Schlüsselintervalle / Standardkonfiguration
wpa_group_rekey=600
wpa_ptk_rekey=600
wpa_gmk_rekey=86400

# Zugangsschlüssel (PSK) / hier in Klartext (ASCII)
wpa_passphrase=MySuperSecretPassword

Zum Schluss noch die Datei /etc/init.d/hostapd  bearbeiten und folgende Zeilen hinzufügen:

DAEMON_CONF="/etc/hostapd.conf"
RUN_DAEMON=yes

Nach einem „service hostapd restart“ steht auch euer W-LAN bereit unter der SSID MyWIFI. Wir haben dieses nun als Wireless N konfiguriert und WMM zur Performance Steigerung aktiviert. Als Kanal verwende ich 11 jedoch solltet ihr selbst testen welcher Kanal der beste ist. Dies hängt stark von eurer Umgebung ab.

Weiter geht’s demnächst mit ein paar Spielereien sowie ein paar Tuning Einstellungen.

Das fertige Gerät in seiner vollen Pracht
Das fertige Gerät in seiner vollen Pracht

 

2 Kommentare

  1. Super Eintrag und Idee… ich bin auf der Suche möglichst flexibel unterschiedliche Routen, VPN und Diverses zu konfigurieren. Dabei werde ich vermutlnicht früher oder später nicht um einen Eigenbau rumkommen.

    Sind Dir Möglichkeiten mit OpenWRT bekannt?
    Die DSL Einwahl übernimmt aber ein „normaler“ Router, vermute ich?
    Könnte man die Hardware auch mit pfsense einsetzen?

    1. Die DSL Einwahl oder auch Einwahl in ein Kabelnetz erfolgt mit einem normalen Modem. Wenn der ISP einen Router als Modem liefert dann den Eigenbau Router als DMZ Host konfigurieren.

      Installiert werden kann problemlos auch OpenWRT oder pfsense da es sich um ein einfaches x86-64 System handelt. OpenWRT ist super. Aktuell läuft auf dem Router auch kein Ubuntu mehr sondern ipfire. Wobei ich doch wieder auf ein eigenes Linux umsteigen werde, da mir die Konfigurationsmöglichkeiten bei ipfire nicht mehr ausreichen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert