Verwenden Sie den Raspberry Pi als Router?

Hat jemand seinen Raspberry Pi als Routing-Gerät verwendet?

Hauptsächlich möchte ich ihn zur Überwachung meines Netzwerks verwenden, und das würde es auch Es wäre großartig, wenn es einen Ein- und Ausgang für Ethernet hätte, aber nicht. Daher frage ich mich, ob es sehr effektiv ist, das Netzwerk zu überwachen, indem man den Ethernet-Eingang hat und dann einen USB-Dongle als WLAN-Router verwendet Hat jemand so etwas getan? Verlangsamt es das Internet erheblich?

Kommentare

  • Hängt davon ab, wie schnell Ihre Internetverbindung ist. Meine ist 100 MB, Ich ‚ bin mir ziemlich sicher, dass es langsamer wird;)
  • Ich ‚ habe eine 30-Mbit / s-Internetverbindung. und zu diesem Zeitpunkt mit 5 Mbit / s Datenverkehr verbraucht mein Inline-Himbeer-Pi mit Schnupfen ~ 50-95% CPU und 85% Speicher. Mein Setup ist noch nicht abgestimmt, aber ich möchte Ihnen einige echte Zahlen zeigen.
  • weiß jemand nicht, wie schlecht die Breitenzuweisung mit einem angepassten Router mit Himbeer-Pi funktioniert? Ich habe eine sp Nach einer 3-Mbit / s-Internetverbindung habe ich 10 Benutzer. Können Sie erklären, wie es aufgeteilt wird? die 3Mbps Geschwindigkeit. Vielen Dank. Ich hoffe du verstehst. 🙂
  • Hallo Kirbs. Bitte stellen Sie keine Frage zu einer anderen Frage. Öffnen Sie stattdessen eine neue Frage mit dem Link Frage stellen oben auf der Seite. Vielen Dank.
  • Vielleicht das? learn.adafruit.com/…

Antwort

Ich habe mein Modell B als Router mit Traffic Shaping verwendet und nur den einen Ethernet-Port verwendet, mit dem es geliefert wird. Hier erfahren Sie, wie es geht :

  1. Aktivieren Sie die IPv4-Weiterleitung , sodass Ihr Pi als Router fungiert, indem er den empfangenen Datenverkehr weiterleitet.
  2. Konfigurieren Sie Ihren Pi mit einer statischen Netzwerkkonfiguration, damit er nicht von den unten vorgeschlagenen DHCP-Änderungen beeinflusst wird. Hier ist der Inhalt meiner /etc/network/interfaces als Referenz:

    # pi@flux:/home/pi/projects/adsl/rrdlogger (master *) # cat /etc/network/interfaces auto lo iface lo inet loopback #iface eth0 inet dhcp iface eth0 inet static address 192.168.1.1 netemask 255.255.255.0 gateway 192.168.1.254 # IP of my ADSL router box allow-hotplug wlan0 iface wlan0 inet manual wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf iface default inet dhcp 
  3. Ändern Sie nun die DHCP-Einstellungen Ihres Netzwerks so, dass das Standard-Gateway / der Standard-Router Ihr Pi ist. Dies bedeutet wahrscheinlich, dass Sie die Einstellungen Ihres vorhandenen ADSL ändern Router-Box. In meinem obigen Beispiel lautet die IP-Adresse meines Pi 192.168.1.1.

Wenn Ihre Geräte das nächste Mal eine Verbindung zum herstellen Netzwerk wird ihnen mitgeteilt, dass Ihr Pi ihr Gateway zum Internet ist, und der gesamte internetgebundene Datenverkehr wird an ihn gesendet. Ihr Pi leitet den gesamten Datenverkehr an Ihren üblichen Router weiter. Möglicherweise müssen Sie Ihre Geräte trennen und dann wieder verbinden, damit diese Änderungen wirksam werden.

Jetzt können Sie ein Tool erstellen oder installieren, mit dem Sie Ihre Überwachung für Sie durchführen können, z. B. vnstat .

Traffic Shaping

In Bezug auf die Traffic Shaping finden Sie hier eine weitere Kurzanleitung, die meine persönliche Variante von verwendet Wondershaper .

Damit dies nützlich ist, müssen Sie wissen, wie schnell Ihre Internetverbindung ist. Diese finden Sie normalerweise in Ihrem (Original) ) Weboberfläche des Routers, andernfalls können Sie eine Schätzung mit einem Geschwindigkeitstest erhalten.

  1. sudo apt-get install iptables
  2. wget https://raw.github.com/meermanr/adsl/master/wondershaper/wondershaper
  3. sudo ./wondershaper eth0 wird gedruckt den aktuellen Status der Verkehrsformung. Offensichtlich ist der erwartete Status, dass es keine Formgebung gibt, was bedeutet, dass „eine einzige Regel in Kraft ist, die als pfifo_fast:

    • ( ist der Name des kabelgebundenen Netzwerkadapters in einem Modell B. Die Namen der Schnittstellen auf Ihrem System finden Sie unter ifconfig
    # pi@flux:/home/pi/projects/adsl/wondershaper (master *) # sudo ./wondershaper eth0 qdisc pfifo_fast 0: root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1 Sent 1908 bytes 15 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0 
  4. sudo ./wondershaper eth0 3000 370, wobei:

    • 3000 die Downlink-Geschwindigkeit meiner Internetverbindung in kbit ist . 3 Mbit == 3000 kbit
    • 370 ist also die Uplink-Geschwindigkeit meiner Internetverbindung, wieder in kbit.
  5. sudo ./wondershaper eth0 sollte jetzt viel mehr Ausgabe anzeigen:

    # pi@flux:/home/pi/projects/adsl/wondershaper (master *) # sudo ./wondershaper eth0 qdisc htb 1: root refcnt 2 r2q 10 default 0 direct_packets_stat 0 Sent 1858 bytes 9 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0 qdisc sfq 40: parent 1:40 limit 127p quantum 1526b depth 127 divisor 1024 perturb 10sec Sent 1858 bytes 9 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0 qdisc sfq 10: parent 1:10 limit 127p quantum 1526b depth 127 divisor 1024 perturb 10sec Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0 qdisc sfq 20: parent 1:20 limit 127p quantum 1526b depth 127 divisor 1024 perturb 10sec Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0 qdisc sfq 30: parent 1:30 limit 127p quantum 1526b depth 127 divisor 1024 perturb 10sec Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0 qdisc ingress ffff: parent ffff:fff1 ---------------- Sent 768 bytes 12 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0 class htb 1:1 root rate 370000bit ceil 370000bit burst 10Kb cburst 1599b Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: 3459453 ctokens: 540531 class htb 1:10 parent 1:1 leaf 10: prio 1 rate 370000bit ceil 370000bit burst 1599b cburst 1599b Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: 540531 ctokens: 540531 class htb 1:20 parent 1:1 leaf 20: prio 2 rate 246000bit ceil 246000bit burst 1599b cburst 1599b Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: 813000 ctokens: 813000 class htb 1:30 parent 1:1 leaf 30: prio 3 rate 74000bit ceil 74000bit burst 1599b cburst 1599b Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: 2702687 ctokens: 2702687 class htb 1:40 root leaf 40: prio 0 rate 100000Kbit ceil 100000Kbit burst 512Kb cburst 1600b Sent 3486 bytes 15 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 lended: 15 borrowed: 0 giants: 0 tokens: 654609 ctokens: 1250 

Ihr ausgehender Netzwerkverkehr wird jetzt von Ihrem Pi geprägt, und Ihr eingehender Verkehr wird leicht gedrosselt, um sicherzustellen, dass der Pi und nicht Ihre ursprüngliche Routing-Box hat die Kontrolle über den Datenverkehr.

Um die Formgebung zu deaktivieren, führen Sie einfach sudo ./wondershaper eth0 clear aus. Sie können die Uplink- und Downlink-Raten ändern, ohne vorher zu löschen , aber es tut nicht weh.

Update: Sie müssen auch die Übertragung von ICMP-Weiterleitungen , da der gesamte Datenverkehr den Pi durchlaufen muss, damit die Formgebung stattfinden kann.Es stellt sich heraus, dass der Linux-Kernel intelligent genug ist, um herauszufinden, dass die Clients in Ihrem Heimnetzwerk direkt mit der ADSL-Box kommunizieren können, anstatt den Datenverkehr über den Pi zu leiten, und dies wird ihnen bei jeder Gelegenheit mitgeteilt. Die Clients senden dann ihren Datenverkehr direkt an Ihre ADSL-Box, und der Pi hat keine Chance, ihn zu formen. Deaktivieren Sie ihn im laufenden Betrieb (verloren beim nächsten Neustart):

echo 0 | sudo tee /proc/sys/net/ipv4/conf/*/send_redirects 

Aktualisieren Sie Folgendes, um dies während des Startvorgangs festzulegen: /etc/sysctl.conf

net/ipv4/conf/eth0/send_redirects = 0 

( Vielen Dank an https://unix.stackexchange.com/a/58081/22537 für diesen Tipp)

Sie könnten auch an meinen persönlichen Notizen interessiert sein zum Konfigurieren eines Linux-Gateways: http://www.robmeerman.co.uk/unix/gateway

Kommentare

  • Wie stellen Sie den WLAN-Netzwerknamen und das Kennwort ein, mit denen andere Geräte eine Verbindung herstellen können?
  • Eine großartige Anleitung. Ich habe eine Frage zu Ihrer wondershaper Vorschlag: Ist das Limit pro Client oder insgesamt?
  • @fommil: In meinem obigen Handbuch wird davon ausgegangen, dass Sie weiterhin das Modem / Router / WiFi-Zugangspunkt verwenden, das Ihnen Ihr ISP gegeben hat. aber dass Sie es so konfigurieren, dass allen Clients, die eine Verbindung herstellen, “ Senden Sie Datenverkehr an den Pi „. Dies erfolgt normalerweise durch Eingabe der (statischen!) IP-Adresse Ihres Pi ‚ in die DHCP-Einstellungen Ihrer ISP-Box. In der Regel wird in einem Feld mit dem Namen “ Gateway “ “ Standard-Gateway “ oder vielleicht “ Standardroute „.
  • @Bob: Die Zahlen, die Sie Geben Sie die Summe für Ihren Internet-Link ein. Das Wondershaper-Skript versucht dann, dies basierend auf Nachfrage an alle Ihre Kunden weiterzugeben. Wenn also nur ein Client das Internet nutzt, sollte er 100% davon erhalten. Wenn ein anderer Client gestartet wird, verbraucht er nach ein wenig “ Einschwingzeit “ (~ 10 Sekunden) jeweils 50%. und so weiter.
  • Perfekt. Nur ein Hinweis an @fommil: Keiner meiner Router (und ich gehe davon aus, dass viele weitere gleich sind) bietet eine einfache Möglichkeit, das über DHCP zugewiesene Gateway festzulegen. Am Ende habe ich DHCP auf dem Router ausgeschaltet und einen DHCP-Server auf dem Pi eingerichtet – ‚ ist ein ziemlich einfacher Vorgang (suchen Sie nach einer Anleitung, wenn Sie möchten).

Antwort

Wenn Sie einen kleinen Netzwerkhintergrund haben, fällt Ihnen als Erstes ein, dass Sie ihn als Snort-Box verwenden Dann müssen Sie sich keine Sorgen mehr machen, dass nur eine Schnittstelle vorhanden ist. Sie würden Ihren Switch / Router so einrichten, dass der gesamte Datenverkehr an den Pi weitergeleitet, aber auch an das Endgerät weitergeleitet wird. Dies wird als Switchport-Monitor bezeichnet, Ihr Gerät jedoch möglicherweise Dies wird möglicherweise nicht unterstützt. Möglicherweise benötigen Sie einen verwalteten Switch , um dies zu tun. Snort würde dann den Datenverkehr analysieren und darüber Bericht erstatten. Weitere Informationen zu Snort http://www.snort.org/

Das Schöne an dieser Art von Setup ist, dass Ihr Pi zur Seite sitzt und alles beobachtet wird durch den Switch ausgeführt, anstatt mit den Daten in Einklang zu stehen. Wenn Sie eine Software haben g Auf diese Weise kann der Verkehr immer noch fließen, nur nicht überwacht werden. Mit dem, was Sie mit zwei Schnittstellen beschreiben, stürzt Ihr Programm ab, Ihr Netzwerk stürzt ab.

Hiermit wird der pi nicht als Router verwendet, Sie können jedoch den Datenverkehr überwachen und melden, der sich über Ihr Netzwerk bewegt .

Antwort

Ich habe den Raspberry Pi für das Routing verwendet und es hat gut funktioniert. Wie Sie sagen, benötigen Sie mindestens eine weitere Netzwerkschnittstelle, da der Raspberry Pi nur einen Ethernet-Port hat. Sie können eine weitere Schnittstelle hinzufügen, die an den USB-Anschluss angeschlossen ist. Ich habe ein GSM-Modem und einen Wi-Fi-Stick verwendet.

Beachten Sie Folgendes:

  • Verwenden Sie einen USB-Hub mit Stromversorgung. Wi-Fi- und GSM-Geräte benötigen mehr Strom als die USB-Anschlüsse des Raspberry Pi liefern können.
  • Wenn Sie Wi-Fi-Geräte kaufen, erwerben Sie eines mit guter Linux-Unterstützung. Sie möchten eines, das funktioniert Zugriffspunktmodus, und nicht alle Sticks. Überprüfen Sie dies unter linuxwireless.org .

Hier ist meine Blogpost zum Routing und ein weiterer zum Einrichten eines Wi-Fi-Zugangspunkts . Diese Anleitung hat mir beim Routing-Setup geholfen. Das Routing-Material ist nicht sehr spezifisch für den Raspberry Pi. Alles, was unter Linux im Allgemeinen funktioniert, sollte möglich sein. Die Details hängen ein wenig davon ab Verteilung, die Sie verwenden.

Antwort

Ich verwende den Raspberry Pi seit ungefähr einem Monat ohne Probleme als Router Ich habe einen kommerziellen Wi-Fi-Zugangsport, keinen Heim-Wi-Fi-Router, also habe ich diesen verwendet. Ich habe auch einen USB-zu-Ethernet-Konverter, der “ von der Wii ausgeliehen.Das geht in das Heim-LAN und das integrierte Ethernet des Raspberry Pi geht in das WAN / Internet.

Holen Sie sich eine Kopie von IPFire für den Raspberry Pi. Sie möchten die ARM-Version ohne serielle Konsole und die neueste stabile Version. Klicken Sie auf die Registerkarte ARM. Laden Sie das Image “ für die armv5tel-Architektur „.

Booten Sie davon. Schließen Sie einen HDMI-Fernseher und eine Tastatur an. Beantworten Sie die ersten Fragen. Der Rest der Konfiguration kann über einen Browser erfolgen das Heimnetzwerk, also brauchen Sie danach weder Fernseher noch Tastatur.

Es war nicht zu schwer und hat wie ein Champion funktioniert! Hier sind die formalen Anweisungen: https://wiki.ipfire.org/hardware/arm/rpi/threeplus

Eine letzte Sache. Wenn Sie einen Wi-Fi-Dongle mit USB-Stromversorgung verwenden, überprüfen Sie das Netzteil Ihres Raspberry Pi. Ein USB-Netzteil mit 700 mA reicht möglicherweise aus, um den Raspberry Pi mit Strom zu versorgen, lässt jedoch nicht viel für die Stromversorgung des Wi übrig -Fi. Verwenden Sie entweder einen USB-Hub mit Stromversorgung oder versorgen Sie den Raspberry Pi mit einem 1 bis 2 A USB-Netzteil.
Viel Glück!

Antwort

(Dieser Nachtrag folgt meiner vorherigen Antwort , die eine Anleitung zum Konfigurieren Ihres Pi als Internet-Gateway Ihres LAN war.)

Ich bin nicht zufrieden mit der Überwachung meiner gesamten Internetnutzung. Ich habe ein Tool geschrieben, das die Internetnutzung jedes Geräts in meinem LAN überwacht. Auf diese Weise kann ich die sofortige Verwendung in einem Konsolenfenster anzeigen und Diagramme der historischen Verwendung erstellen, damit ich sehen kann, was über Nacht passiert ist.


Rhodes , ein Tool zur Überwachung der Echtzeit- und historischen Netzwerknutzung von LAN-Geräten (basierend auf der MAC-Adresse): https://github.com/meermanr/adsl/tree/master/rhodes

Beispiel für eine Konsolenausgabe:

193 kiB/s TX 17 kiB/s RX 0004edbf98c0 home.gateway (Billion Electric Co.) 0 kiB/s TX 0 kiB/s RX 2002af18dc15 Samsung Galaxy Tab 10.1, Vicky 0 kiB/s TX 0 kiB/s RX 34af2c01197b Nintendo 3DS:XL, Robert 0 kiB/s TX 0 kiB/s RX 34af2c3af204 Nintendo 3DS:XL, Vicky 0 kiB/s TX 0 kiB/s RX 34af2c9cfffd Nintendo WiiU 0 kiB/s TX 0 kiB/s RX 6045bd9c9dbc Xbox360 Slim 0 kiB/s TX 0 kiB/s RX 745e1c56c297 Pioneer SX-LX57 13 kiB/s TX 109 kiB/s RX 7831c1be0c34 Az Pro (Macbook Pro) 0 kiB/s TX 0 kiB/s RX 80ea96e6214e Roberts-AirPort-Time-Capsule 0 kiB/s TX 0 kiB/s RX 88308a770370 Samsung Galaxy S3, Vicky 189 kiB/s TX 211 kiB/s RX b827eb8fc0f3 Flux (Raspberry Pi) 2 kiB/s TX 39 kiB/s RX b8e8563acb34 Macbook Pro, Vicky 0 kiB/s TX 0 kiB/s RX d022be2c26ef Samsung Galaxy Note 3, Rob 0 kiB/s TX 0 kiB/s RX f82fa89368ea 

Die erste Spalte zeigt, wie viel Geräte senden, was normalerweise das Hochladen ins Internet bedeutet. Eine Ausnahme bildet der ADSL-Router selbst (home.gateway im obigen Beispiel), der die vom ISP empfangenen Daten an das Gerät überträgt, das sie angefordert hat (d. H. Downloads). Natürlich überträgt es auch Uploads ins Internet, aber dies geschieht über sein ADSL-Modem, das sich nicht im LAN befindet und daher für dieses Tool nicht sichtbar ist.

Die andere Ausnahme wäre der Raspberry Pi (“ Flux „(oben) selbst, der natürlich alle von ihm verwalteten Daten in beide Richtungen überträgt.

Abgesehen von diesen Ausnahmen beziehen sich die TX-Nummern (Senden) auf das Hochladen und die RX-Nummern (Empfangen) ) Nummern zum Herunterladen. Die dritte Spalte ist die MAC-Adresse des Geräts (ohne die üblichen Trennzeichen „:“ oder „-„). Die vierte Spalte zeigt den lesbaren Namen des Geräts, sofern bekannt.

Diagramme werden durch Ausführen von ./index.py generiert, das von einem Webserver wie lighttpd (mit index.py zur index-file.names -Konfigurationseinstellung in /etc/lighttpd/lighttpd.conf hinzugefügt. Sie können es einfach manuell ausführen und es werden einige Bilder und generiert Drucken Sie HTML in STDOUT. Sie möchten dies also in eine Datei umleiten, die Sie in einem Browser öffnen können:

./index.py > index.html 

Öffnen Sie dann index.html in Ihrer bevorzugten Datei Browser.

Installationsanforderungen (alle können mit apt-get install installiert werden):

  • tcpdump – Befehlszeilentools zum Erfassen und Beschreiben des Netzwerkverkehrs
  • rrdtool – Round Robin-Datenbank-Tool, das Zeitreihendaten aufzeichnet und grafisch darstellt
  • rrdcached – Round Robin Database Caching Daemon, ein Dienst, der den Overhead reduziert, wenn gleichzeitig mit mehreren RRD-Dateien gearbeitet wird.
  • pypy-upstream (eine schnelle Implementierung der Programmiersprache Python)

    • Sie können den Standard-Python verwenden, den Sie möchten: python rhodes.py (pypy ist eine alternative Implementierung der Python-Programmiersprache, die die Just-In-Time-Kompilierung (JIT) durchführt, sodass Skripte mit langer Laufzeit weniger CPU-Zyklen auf Kosten von mehr Speicher benötigen / li>

Verwendungshinweis : Das Tool „tcpdump“ Für die Verwendung durch dieses Skript sind Root-Berechtigungen erforderlich, um auf den unformatierten Netzwerkverkehr zugreifen zu können. Dies wird erreicht, indem Sie beim Starten des Skripts sudo tcpdump starten, sodass Sie möglicherweise aufgefordert werden, Ihr Kennwort einzugeben. Persönlich habe ich /etc/sudoers eine NOPASSWD-Regel hinzugefügt, sodass ich nie dazu aufgefordert werde.

Schreibe einen Kommentar

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