Question:
Comment acheminer entre les sous-réseaux sur une seule interface Ethernet?
sroebuck
2013-03-07 18:46:02 UTC
view on stackexchange narkive permalink

Je voudrais configurer un Raspberry PI comme routeur entre deux sous-réseaux sur le même réseau en utilisant l'interface Ethernet intégrée standard.

Le but est de pouvoir l'utiliser pour surveiller l'utilisation du réseau (avec tshark ) dans un réseau où il n'est pas possible de relier physiquement la connexion Internet externe et le réseau local et où des commutateurs Ethernet sont utilisés, il n'est donc pas possible de surveiller simplement tout le trafic réseau à tout moment. Cette configuration reposera sur la coopération de tous les utilisateurs qui devront réaffecter leurs machines au nouveau sous-réseau afin que leur trafic soit acheminé via le PI.

Je reconnais que le Raspberry PI avec son Ethernet basé sur USB sera introduire des problèmes de latence et que ce n'est pas un scénario idéal, mais c'est une expérience à petite échelle et cela semble être le moyen le moins perturbateur de faire ce travail. Cependant, je suis ouvert à d'autres suggestions.

Jusqu'à présent:

  • J'ai installé avec succès tshark qui fonctionne bien.

  • J'ai configuré avec succès le multi-hébergement de l'appareil en ajoutant une définition supplémentaire iface pour eth0: 0 dans / etc / network / interfaces défini avec une adresse sur le sous-réseau supplémentaire.

  • J'ai installé avec succès brctl (partie du bridge-utils package).

Cependant:

Il semble que brctl pont entre les interfaces physiques et ne veut pas connaître l'interface virtuelle supplémentaire eth0:0.

Existe-t-il un moyen de configurer brctl pour ce faire , ou existe-t-il une autre manière de procéder?

Je pense que vous confondez plusieurs pensées. Je vous pointe d'abord vers le modèle OSI (http://en.wikipedia.org/wiki/OSI_model). Dans les réseaux, les ponts sont utilisés pour connecter les réseaux à la couche 2 et le routage se fait à la couche 3. En fait, pour surveiller uniquement le réseau, vous n'avez même pas besoin de mettre le RP au milieu, il vous suffit de configurer le port Ethernet dans mode promiscuité. En mode promiscuous, la carte Ethernet capturera tous les paquets et pas seulement les paquets correspondants et vous pouvez utiliser tshark ou tcpdump pour «voir» ce qui se passe dans le réseau. En fait, lorsque vous utilisez tcpdump, il met l'Ethernet en mode promiscuous.
Vous avez probablement raison sur le problème de la couche. Cependant, dans un réseau avec commutateurs, le trafic vers le Raspberry Pi est limité aux paquets qui lui sont adressés quel que soit le mode promiscuité, car le commutateur (plutôt que le concentrateur) isole le trafic pour optimiser le flux.
Il existe plusieurs solutions en fonction de la topologie de votre réseau. Si votre commutateur n'autorise pas la mise en miroir de ports, la réponse Mulaz est une solution simple.
Un répondre:
mulaz
2013-03-07 21:42:52 UTC
view on stackexchange narkive permalink

Vous n'avez pas besoin de ponts pour faire cela.

Après avoir configuré les interfaces, vous avez deux options:

  • Vous pouvez configurer le transfert directement ("routage" ), juste en l'activant:

tapez:

  echo 1 > / proc / sys / net / ipv4 / ip_forward  

(vous pouvez faire de même pour ipv6 si vous en avez besoin)

Vous avez besoin d'interfaces et d'un gw par défaut configuré.

Vous devez également ajouter une route sur vos routeurs en amont, pour le sous-réseau derrière le rPI:

  route add -net your.subnet.behind.rPI netmask your. net.mask.there gw rpi.ip.add.ress  

par exemple:

  route add -net 192.168.2.0 masque de réseau 255.255.255.0 gw 192.168. 1.100  

Si votre rPI a 192.168.1.100 et que le réseau derrière est 192.168.2.0/24

  • Si vous ne pouvez pas accéder aux routeurs en amont, vous pouvez configurez NAT:

Configurez les interfaces, activez le transfert d'ip, puis activez nat sur l'interface en amont (eth0 dans l'exemple):

  iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE  
J'ai essayé la deuxième option (je ne peux pas accéder aux routeurs en amont). J'ai bien activé le transfert IP et appliqué la commande iptables (et certaines variantes trouvées ailleurs) mais il ne semble pas passer de messages entre les sous-réseaux. Dois-je faire quelque chose pour activer nat - autre que la commande iptables elle-même? Existe-t-il un moyen raisonnablement simple de déboguer ce qui se passe? Merci beaucoup.
Pouvez-vous envoyer une requête ping aux deux sous-réseaux à partir du rPi? Définir le rPi comme passerelle par défaut sur le sous-réseau derrière lui?
Merci beaucoup - je n'avais pas réussi à changer la passerelle du paramètre d'origine.


Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...