BeagleBone Black mit Arch Linux: Internet over USB

Wie man mittels Ethernet over USB auf den BeagleBone Black zugreifen kann, habe ich bereits in einem früheren Artikel beschrieben. Mit der dort zu findenden Anleitung ist es möglich, mit SSH auf den BBB zuzugreifen. In diesem Tutorial gehe ich noch einen Schritt weiter und beschreibe die notwendigen Schritte, die es möglich machen, über die USB-Verbindung vom BBB aus ins Internet zu kommen.

Voraussetzungen

Das Tutorial aus dem letzten Beitrag zu diesem Thema dient als Grundlage; alle Schritte müssen durchgeführt worden sein. Außerdem muss dem Host-PC stets die IP-Adresse 192.168.7.1 zugewiesen werden; meine Überlegungen zum größeren Adressbereich des DHCP-Servers auf dem BeagleBone Black sind damit hinfällig.

Änderungen auf dem BeagleBone Black

In die Datei /etc/netctl/USB müssen wir zwei weitere Zeilen eintragen, um das Gateway bekannt zu machen:

Description='USB ethernet connection'
Interface=usb0
Connection=ethernet
IP=static
Address=('192.168.7.2/24')
Gateway=('192.168.7.1')
DNS=('8.8.8.8')

## For IPv6 autoconfiguration
IP6=stateless

ExecUpPost='/usr/bin/ntpd -gq || true'

8.8.8.8 ist die Adresse von Googles Public- DNS-Server.

Anschließend müssen wir die Netzwerkverbindung neu starten:

$ netctl restart USB

Der BBB sollte den DNS-Server auch automatisch in die Datei /etc/resolv.conf eingetragen haben:

$ cat /etc/resolv.conf

# Generated by resolvconf
nameserver 8.8.8.8

Falls das nicht geschehen ist, holen wir das manuell nach:

$ sudo echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf > /dev/null

Änderungen auf dem Host-PC (Arch Linux)

Auf dem Host-PC müssen wir die Firewall iptables konfigurieren, dass sie den Datenverkehr vom USB-Port zum Router weiterleitet. Dies geschieht mittels der folgenden Befehle:

$ su
# iptables -t nat -A POSTROUTING -o enp3s0 -j MASQUERADE
# iptables -A FORWARD -o enp3s0 -j ACCEPT
# iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# echo 1 > /proc/sys/net/ipv4/ip_forward

enp3s0 ist der Name meiner Netzwerkverbindung, die mit dem Internet-Gateway verbunden ist. Bitte entsprechend an die eigenen Bedürfnisse anpassen (ip addr kann helfen).

Direkt im Anschluss sollte es möglich sein, mit dem BBB ins Internet zu kommen.

Problem: nach einem Neustart des Host-PCs hat iptables unsere Weiterleitung vergessen. Wir können diese Änderungen durchaus jedes Mal manuell mit Hilfe eines Shellscripts automatisieren, doch wir können die Änderung auch direkt ins System übernehmen. Dazu müssen wir zweierlei Dinge tun:

# iptables-save > /etc/iptables/iptables.rules

Mit dieser Änderung wird unser Routing permanent übernommen. Dann editieren wir die Datei /etc/sysctl.d/30-ipforward.conf (oder erstellen sie neu, falls sie noch nicht existiert) und bearbeiten dort die folgende Zeile:

# nano /etc/sysctl.d/30-ipforward.conf

net.ipv4.ip_forward = 1

Zu guter Letzt müssen wir den iptables-Daemon noch aktivieren, falls das noch nicht geschehen ist:

# systemctl enable iptables
# systemctl start iptables

Wer diese Änderung permanent macht, sollte sich generell genauer mit der iptables-Firewall beschäftigen. Bei einer derartigen Modifikation (und nicht nur dann) tut man gut daran, sein System allgemein besser abzusichern. Ich empfehle als weiterführende Lektüre den Artikel „Simple Stateful Firewall“ aus dem Arch-Wiki.

GD Star Rating
loading…

Dieser Blogeintrag wurde 2292 mal gelesen.

Kategorien: Computer und Single Board Computer.