Quelqu'un at-il utilisé leur Raspberry Pi comme périphérique de routage?
Je souhaite principalement l'utiliser pour surveiller mon réseau. Ce serait bien d'avoir une entrée et une sortie pour Ethernet, mais ce n'est pas le cas. Je me demande donc s'il est très efficace de surveiller le réseau avec l'entrée Ethernet. puis en utilisant un dongle USB comme routeur Wi-Fi. Quelqu'un at-il fait quelque chose comme ça? Cela ralentit-il beaucoup Internet?
Réponses:
J'utilise mon modèle B en tant que routeur avec gestion du trafic, en utilisant uniquement le port Ethernet fourni. Voici un rapide et sale comment:
Configurez votre Pi avec une configuration réseau statique de sorte qu'il ne soit pas influencé par les modifications DHCP suggérées ci-dessous. Voici le contenu de mon
/etc/network/interfaces
comme référence:Modifiez maintenant les paramètres DHCP de votre réseau afin que la passerelle / routeur par défaut soit votre Pi. Cela signifie probablement que vous devez modifier les paramètres de votre boîte de routeur ADSL existante. Dans mon exemple ci-dessus, l'adresse IP de mon Pi est
192.168.1.1
.Lorsque vos appareils se reconnecteront ensuite au réseau, ils se verront dire que votre Pi est leur passerelle vers Internet et que tout le trafic lié à Internet leur sera envoyé. Votre Pi va à son tour relayer tout ce trafic vers votre routeur habituel. Vous devrez peut-être déconnecter puis reconnecter vos appareils pour que ces modifications prennent effet.
Vous pouvez maintenant créer ou installer un outil pour effectuer votre surveillance, tel que vnstat .
Mise en forme du trafic
En ce qui concerne le profilage du trafic, voici un autre guide rapide qui utilisera ma propre variante personnelle de WonderShaper .
Pour que cela soit utile, vous devez connaître la rapidité de votre connexion Internet. Vous pouvez généralement le trouver à partir de l'interface Web de votre routeur (d'origine), mais à défaut, vous pouvez obtenir une estimation à l'aide d'un test de vitesse .
sudo apt-get install iptables
wget https://raw.github.com/meermanr/adsl/master/wondershaper/wondershaper
sudo ./wondershaper eth0
affichera l’état actuel de la gestion du trafic. Évidemment, le statut attendu est qu'il n'y a pas de mise en forme, ce qui signifie qu'il n'y a qu'une seule règle en vigueur, appeléepfifo_fast
:eth0
correspond au nom de la carte réseau câblée sur un modèle B. Voirifconfig
les noms des interfaces sur votre système)sudo ./wondershaper eth0 3000 370
, où:3000
est la vitesse de ma liaison internet en kbit . Donc 3Mbit == 3000kbit370
est la vitesse de la liaison montante de ma connexion Internet, en kbit encore.sudo ./wondershaper eth0
devrait maintenant montrer beaucoup plus de sortie:Votre trafic réseau est en train de façonner votre trafic réseau sortant et votre trafic entrant est légèrement réduit afin de garantir que le Pi, et non votre zone de routage d'origine, contrôle le trafic.
Pour désactiver la mise en forme, lancez simplement
sudo ./wondershaper eth0 clear
. Vous pouvez modifier les taux de liaison montante et de liaison descendante sans compensation préalable, mais cela ne fait pas de mal.Mise à jour: vous devez également désactiver la transmission des redirections ICMP , car tout le trafic doit traverser le Pi pour que la mise en forme se produise. Il s'avère que le noyau Linux est suffisamment intelligent pour comprendre que les clients de votre réseau domestique pourraient communiquer directement avec le boîtier ADSL, plutôt que de faire rebondir le trafic via le Pi, et le leur dit à chaque occasion. Les clients envoient ensuite leur trafic directement à votre boîte ADSL, et le Pi n’a aucune chance de le façonner. Désactivez-le à la volée comme suit (perdu au prochain redémarrage):
Mettez à jour les éléments suivants pour définir cela au démarrage:
/etc/sysctl.conf
(Merci à https://unix.stackexchange.com/a/58081/22537 pour cette astuce)
Vous pouvez également être intéressé par mes notes personnelles sur la configuration d’une passerelle Linux: http://www.robmeerman.co.uk/unix/gateway
la source
wondershaper
suggestion: la limite est-elle par client ou globalement?Avec un peu d’arrière-plan de réseau, la première chose qui me vient à l’esprit est de l’utiliser comme boîte Snort, sans avoir à vous soucier de la présence d’une seule interface. Vous devez configurer votre commutateur / routeur pour transférer tout le trafic vers le Pi, mais également pour le transférer sur le périphérique final. Cela s'appelle un moniteur Switchport, mais votre appareil peut ne pas le prendre en charge. Vous aurez peut-être besoin d'un commutateur géré pour le faire. Snort analyserait alors le trafic et en rendrait compte. Plus d'informations sur Snort http://www.snort.org/
La bonne chose à propos de ce type de configuration est que votre Pi est assis sur le côté en train de regarder tout ce qui se passe via le commutateur, plutôt que de rester en ligne avec les données. Si vous avez un problème logiciel de cette façon, le trafic peut toujours circuler, mais ne pas être surveillé. Avec ce que vous décrivez avec deux interfaces, votre programme se bloque, votre réseau se bloque.
Cela n'utilise pas le pi en tant que routeur, mais vous permet de surveiller et de générer des rapports sur le trafic en transit sur votre réseau.
la source
J'ai utilisé le Raspberry Pi pour le routage, et cela a bien fonctionné. Comme vous le dites, vous avez besoin d'au moins une interface réseau supplémentaire, car le Raspberry Pi ne dispose que d'un seul port Ethernet. Vous pouvez ajouter une autre interface connectée au port USB. J'ai utilisé un modem GSM et une clé Wi-Fi.
Choses à noter:
Voici mon billet de blog sur le routage et un autre sur la configuration d'un point d'accès Wi-Fi . Ce guide m'a aidé à configurer le routage. Le routage n’est pas très spécifique au Raspberry Pi; tout ce qui fonctionne sous Linux en général devrait être possible. Les détails dépendent un peu de la distribution que vous utilisez.
la source
J'utilise le Raspberry Pi comme routeur depuis environ un mois maintenant, sans aucun problème. J'ai un véritable port d'accès Wi-Fi commercial, pas un routeur Wi-Fi domestique, donc je l'ai utilisé. J'ai également un convertisseur USB-à-Ethernet qui a été "emprunté" à la Wii. Cela va au réseau local domestique, et Ethernet intégré du Raspberry Pi va au WAN / Internet.
Obtenez une copie de IPFire pour le Raspberry Pi. Vous voulez la version ARM, sans console série et la dernière version stable. Cliquez sur l'onglet ARM. Téléchargez le "Image pour l'architecture armv5tel".
Commencez. Branchez un téléviseur HDMI et un clavier. Répondez aux premières questions. Le reste de la configuration peut être effectué à partir d'un navigateur sur le réseau domestique. Vous n'aurez plus besoin du téléviseur ni du clavier par la suite.
Ce n'était pas trop difficile et fonctionnait comme un champion! Voici les instructions formelles: http://wiki.ipfire.org/en/hardware/arm/rpi
Une dernière chose. Si vous envisagez d’utiliser un dongle Wi-Fi alimenté par USB, vérifiez l’alimentation de votre Raspberry Pi. Une alimentation USB 700 mA peut suffire à alimenter le Raspberry Pi, mais cela ne laisse pas grand chose d’alimenter le Wi-Fi. Utilisez un concentrateur USB alimenté ou alimentez le Raspberry Pi avec une alimentation USB de 1 à 2 A.
Bonne chance!
la source
(Cet addendum fait suite à ma réponse précédente , qui était un guide sur la configuration de votre Pi en tant que passerelle Internet de votre réseau local.)
Non content de surveiller mon utilisation globale d’ Internet, j’ai écrit un outil qui surveille l’utilisation d’Internet de chaque périphérique de mon réseau local. Cela me permet de voir l’utilisation instantanée dans une fenêtre de console et de générer des graphiques d’utilisation historique afin de voir ce qui s’est passé la nuit.
Rhodes , un outil de surveillance de l'utilisation réseau en temps réel et historique des périphériques LAN (basé sur l'adresse MAC): https://github.com/meermanr/adsl/tree/master/rhodes
Exemple de sortie de la console:
La première colonne indique la quantité d'appareils en cours de transmission, ce qui signifie généralement un téléchargement sur Internet. L'exception à cette règle est le routeur ADSL lui-même (home.gateway dans l'exemple ci-dessus), qui transmet les données reçues du fournisseur de services Internet (ISP) à l'appareil qui les a demandées (c'est-à-dire les téléchargements). Bien sûr, il transmet également les téléchargements vers Internet, mais il le fait à l'aide de son modem ADSL, qui n'est pas sur le réseau local et donc invisible pour cet outil.
L'autre exception serait le Raspberry Pi ("Flux" ci-dessus) lui-même, qui transmet bien sûr toutes les données qu'il gère, dans les deux sens.
Mais à part ces exceptions, les numéros TX (transmission) font référence au téléchargement et les numéros RX (réception) à télécharger. La troisième colonne est l'adresse MAC du périphérique (sans les séparateurs habituels ":" ou "-"). La quatrième colonne indique le nom du périphérique, s'il est connu, du nom lisible par l'homme.
Les graphiques sont générés en cours d'exécution
./index.py
, ce qui est appelé à être appelé à partir d'un serveur Web commelighttpd
(avecindex.py
ajouté auindex-file.names
paramètre de configuration dans/etc/lighttpd/lighttpd.conf
). Vous pouvez simplement l'exécuter manuellement, il générera des images et imprimera du HTML sur STDOUT. Donc, vous voudriez rediriger cela vers un fichier que vous pourrez ouvrir dans un navigateur:Ensuite, ouvrez index.html dans votre navigateur préféré.
Conditions d'installation requises (toutes peuvent être installées avec
apt-get install
):tcpdump
- Outils de ligne de commande pour capturer et décrire le trafic réseaurrdtool
- Outil de base de données Round Robin, enregistrements et graphiques de données chronologiquesrrdcached
- Démon de mise en cache Caching de base de données Round Robin, service qui réduit les frais généraux lorsque vous travaillez simultanément avec plusieurs fichiers RRD.pypy-upstream
(une implémentation rapide du langage de programmation Python)python rhodes.py
(pypy
est une implémentation alternative du langage de programmation Python qui effectue la compilation Just-In-Time (JIT), afin que les scripts à exécution longue utilisent moins de cycles de processeur au prix de plus de mémoire)Note d'utilisation : L'outil 'tcpdump' utilisé par ce script nécessite des privilèges root pour accéder au trafic réseau brut. Pour ce
sudo tcpdump
faire, lancez-le au démarrage du script. Il vous sera donc peut-être demandé de saisir votre mot de passe. Personnellement, j'ai ajouté une règle NOPASSWD afin/etc/sudoers
que je ne sois jamais invité.la source