Hat jemand seinen Raspberry Pi als Routing-Gerät verwendet?
Hauptsächlich möchte ich es verwenden, um mein Netzwerk zu überwachen, und es wäre großartig, wenn es einen Ein- und Ausgang für Ethernet hätte, aber nicht, also frage ich mich, ob es sehr effektiv ist, das Netzwerk über den Ethernet-Eingang zu überwachen und dann mit einem USB-Dongle als WLAN-Router. Hat jemand so etwas getan? Verlangsamt es das Internet um ein Vielfaches?
Antworten:
Ich habe mein Modell B als Router mit Traffic-Shaping verwendet und nur den einen Ethernet-Port verwendet, mit dem es geliefert wird. Hier ist ein kurzer Überblick darüber, wie:
Konfigurieren Sie Ihren Pi mit einer statischen Netzwerkkonfiguration, damit er nicht von den unten vorgeschlagenen DHCP-Änderungen beeinflusst wird. Hier sind die Inhalte von my
/etc/network/interfaces
als Referenz:Ändern Sie nun die DHCP-Einstellungen Ihres Netzwerks so, dass der Standard-Gateway / -Router Ihr Pi ist. Dies bedeutet wahrscheinlich, dass Sie die Einstellungen an Ihrer vorhandenen ADSL-Router-Box ändern müssen. 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 Netzwerk herstellen, wird Ihrem Pi mitgeteilt, dass es das Gateway zum Internet ist, und der gesamte internetgebundene Datenverkehr wird an das Pi gesendet. Ihr Pi leitet den gesamten Datenverkehr an Ihren üblichen Router weiter. Möglicherweise müssen Sie Ihre Geräte trennen und erneut verbinden, damit diese Änderungen wirksam werden.
Jetzt können Sie ein Tool erstellen oder installieren, mit dem Sie Ihre Überwachung durchführen können, z. B. vnstat .
Verkehrsformung
Was die Gestaltung des Verkehrs angeht, ist hier eine weitere Kurzanleitung, in der meine persönliche Variante von Wondershaper zum Einsatz kommt .
Damit dies nützlich ist, müssen Sie wissen, wie schnell Ihre Internetverbindung ist. Normalerweise finden Sie dies auf der Weboberfläche Ihres (Original-) Routers . Andernfalls können Sie mithilfe eines Geschwindigkeitstests eine Schätzung abrufen .
sudo apt-get install iptables
wget https://raw.github.com/meermanr/adsl/master/wondershaper/wondershaper
sudo ./wondershaper eth0
Gibt den aktuellen Status der Verkehrssteuerung aus. Offensichtlich ist der erwartete Status, dass es keine Formgebung gibt, was bedeutet, dass eine einzige Regel in Kraft istpfifo_fast
:eth0
ist der Name des verkabelten Netzwerkadapters in Modell B.ifconfig
Die Namen der Schnittstellen in Ihrem System finden Sie unter.)sudo ./wondershaper eth0 3000 370
, wo:3000
ist die Downlink-Geschwindigkeit meiner Internetverbindung in kbit . Also 3Mbit == 3000kbit370
ist die Uplink-Geschwindigkeit meiner Internetverbindung, wieder in kbit.sudo ./wondershaper eth0
sollte jetzt viel mehr anzeigen: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 die Kontrolle über den Verkehr hat.
Zum Deaktivieren der Formgebung einfach ausführen
sudo ./wondershaper eth0 clear
. Sie können die Uplink- und Downlink-Raten ändern, ohne sie vorher zu löschen, aber das tut nicht weh.Update: Sie müssen auch die Übertragung von ICMP-Weiterleitungen deaktivieren , da der gesamte Datenverkehr den Pi durchlaufen muss, damit die Formung stattfinden kann. Es stellt sich heraus, dass der Linux-Kernel klug 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. 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 es sofort wie folgt (verloren, wenn Sie das nächste Mal neu starten):
Aktualisieren Sie Folgendes, um dies während des Startvorgangs festzulegen:
/etc/sysctl.conf
(Vielen Dank an https://unix.stackexchange.com/a/58081/22537 für diesen Tipp)
Möglicherweise interessieren Sie auch meine persönlichen Hinweise zur Konfiguration eines Linux-Gateways: http://www.robmeerman.co.uk/unix/gateway
quelle
wondershaper
Vorschlag: Ist das Limit pro Kunde oder insgesamt?Wenn Sie ein wenig Netzwerk-Hintergrund haben, ist das erste, was Ihnen einfällt, die Verwendung als Snort-Box. Dann müssen Sie sich keine Sorgen mehr machen, dass Sie nur eine Schnittstelle haben. Sie würden Ihren Switch / Router so einrichten, dass der gesamte Datenverkehr zum Pi weitergeleitet wird, aber auch an das Endgerät weitergeleitet wird. Dies wird als Switchport-Monitor bezeichnet, wird jedoch möglicherweise von Ihrem Gerät nicht unterstützt. Möglicherweise benötigen Sie dazu einen verwalteten Switch . Snort würde dann den Verkehr analysieren und darüber berichten. Weitere Informationen zu Snort finden Sie unter http://www.snort.org/
Das Schöne an dieser Art von Setup ist, dass Ihr Pi abseits der Seite sitzt und alles beobachtet, was durch den Switch läuft, anstatt sich mit den Daten in Einklang zu setzen. Wenn Sie auf diese Weise eine Software-Panne haben, kann der Datenverkehr immer noch fließen und nur nicht überwacht werden. Mit dem, was Sie mit zwei Schnittstellen beschreiben, stürzt Ihr Programm ab, Ihr Netzwerk stürzt ab.
Dadurch wird der pi nicht als Router verwendet, Sie können jedoch den Datenverkehr überwachen und darüber Bericht erstatten, der sich in Ihrem Netzwerk bewegt.
quelle
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 über einen Ethernet-Port verfügt. Sie können eine weitere Schnittstelle hinzufügen, die an den USB-Anschluss angeschlossen ist. Ich habe ein GSM-Modem und einen WLAN-Stick verwendet.
Dinge zu beachten:
Hier ist mein Blogbeitrag zum Thema Routing und ein weiterer zum Einrichten eines WLAN-Zugangspunkts . Diese Anleitung hat mir bei der Einrichtung des Routings geholfen. Das Routing-Zeug 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, welche Distribution Sie verwenden.
quelle
Ich benutze den Raspberry Pi seit ungefähr einem Monat ohne Probleme als Router. Ich habe einen tatsächlichen kommerziellen Wi-Fi Access Port, keinen Heim-Wi-Fi-Router, also habe ich diesen verwendet. Ich habe auch einen USB-zu-Ethernet-Konverter, der von der Wii "ausgeliehen" wurde. Das geht an das Heim-LAN und das eingebaute Ethernet des Raspberry Pi geht an 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" herunter.
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 im Heimnetzwerk vorgenommen werden, sodass Sie danach weder das Fernsehgerät noch die Tastatur benötigen.
Es war nicht zu schwer und wirkte wie ein Champion! Hier sind die formalen Anweisungen: http://wiki.ipfire.org/en/hardware/arm/rpi
Eine letzte Sache. Wenn Sie einen USB-fähigen WLAN-Dongle verwenden, überprüfen Sie das Netzteil Ihres Raspberry Pi. Ein 700-mA-USB-Netzteil reicht möglicherweise aus, um den Raspberry Pi mit Strom zu versorgen, aber es bleibt nicht viel übrig, um das Wi-Fi mit Strom zu versorgen. Verwenden Sie entweder einen USB-Hub mit eigener Stromversorgung oder versorgen Sie den Raspberry Pi mit einem 1 bis 2 A USB-Netzteil.
Viel Glück!
quelle
(Dieser Anhang folgt meiner vorherigen Antwort , die eine Anleitung zur Konfiguration Ihres Pi als Internet-Gateway Ihres LANs war.)
Ich bin nicht damit zufrieden, meine gesamte Internetnutzung zu überwachen, sondern habe ein Tool geschrieben, das die Internetnutzung jedes Geräts in meinem LAN überwacht. Auf diese Weise kann ich die momentane Nutzung in einem Konsolenfenster anzeigen und Diagramme zur historischen Nutzung erstellen, um zu sehen, 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 die Konsolenausgabe:
Die erste Spalte zeigt an, wie viele Geräte übertragen, was normalerweise das Hochladen ins Internet bedeutet. Die Ausnahme bildet der ADSL-Router selbst (home.gateway im obigen Beispiel), der die vom ISP empfangenen Daten an das Gerät sendet, das sie angefordert hat (dh herunterlädt). Natürlich überträgt es auch Uploads ins Internet, aber es verwendet dazu 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- (Sende-) Nummern auf den Upload und die RX- (Empfangs-) Nummern auf den Download. Die dritte Spalte ist die MAC-Adresse des Geräts (ohne die üblichen Trennzeichen ":" oder "-"). In der vierten Spalte wird der für den Menschen lesbare Name des Geräts angezeigt, sofern dieser bekannt ist.
Diagramme werden durch Ausführen generiert
./index.py
, das von einem Webserver wielighttpd
(mitindex.py
derindex-file.names
Konfigurationseinstellung in hinzugefügt) aufgerufen werden soll/etc/lighttpd/lighttpd.conf
. Sie können es einfach manuell ausführen, und es werden einige Bilder generiert und HTML in STDOUT gedruckt. Sie möchten das also in eine Datei umleiten, die Sie in einem Browser öffnen können:Dann öffne index.html in deinem bevorzugten Browser.
Installationsvoraussetzungen (alle können mit installiert werden
apt-get install
):tcpdump
- Befehlszeilen-Tools zum Erfassen und Beschreiben des Netzwerkverkehrsrrdtool
- Round Robin Database Tool, zeichnet Zeitreihendaten auf und stellt sie grafisch darrrdcached
- Round Robin Database Caching Daemon, ein Dienst, der den Overhead beim gleichzeitigen Arbeiten mit mehreren RRD-Dateien verringert.pypy-upstream
(eine schnelle Implementierung der Programmiersprache Python)python rhodes.py
(pypy
Dies ist eine alternative Implementierung der Programmiersprache Python, die die Just-In-Time-Kompilierung (JIT) ausführt, sodass bei langen Skripten weniger CPU-Zyklen erforderlich sind und mehr Arbeitsspeicher erforderlich ist.)Hinweis zur Verwendung : Für das von diesem Skript verwendete Tool 'tcpdump' sind Root-Berechtigungen erforderlich, um auf unformatierten Netzwerkverkehr zugreifen zu können. Dies wird durch Starten
sudo tcpdump
des Skripts erreicht, sodass Sie möglicherweise aufgefordert werden, Ihr Kennwort einzugeben. Persönlich habe ich eine NOPASSWD-Regel hinzugefügt,/etc/sudoers
sodass ich nie dazu aufgefordert werde.quelle