Routage entre plusieurs sous-réseaux

10

Disons que je veux créer un réseau interne avec 4 sous-réseaux. Il n'y a ni routeur ni commutateur central. J'ai un "sous-réseau de gestion" disponible pour relier les passerelles sur les quatre sous-réseaux (192.168.0.0/24). Le diagramme général ressemblerait à ceci:

10.0.1.0/24 <-> 10.0.2.0/24 <-> 10.0.3.0/24 <-> 10.0.4.0/24

En d'autres termes, je configure une seule boîte Linux sur chaque sous-réseau avec 2 interfaces, une 10.0.x.1 et une 192.168.0.x. Ceux-ci fonctionnent comme des périphériques de passerelle pour chaque sous-réseau. Il y aura plusieurs hôtes pour chaque sous-réseau 10.x / 24. Les autres hôtes n'auront qu'une seule interface disponible en 10.0.xx

Je veux que chaque hôte puisse cingler l'autre hôte sur n'importe quel autre sous-réseau. Ma question est d'abord: est-ce possible. Et deuxièmement, si c'est le cas, j'ai besoin d'aide pour configurer iptables et / ou les routes. J'ai expérimenté cela, mais je ne peux trouver qu'une solution qui permette les pings dans une direction (les paquets icmp ne sont qu'un exemple, j'aimerais finalement des capacités réseau complètes entre les hôtes, par exemple ssh, telnet, ftp, etc.) .

ligne grise
la source

Réponses:

8

Ok, donc vous avez cinq réseaux 10.0.1.0/24, 10.0.2.0/24, 10.0.3.0/24, 10.0.4.0/24et 192.168.0.0/24, et quatre boîtes de routage entre eux. Disons que les boîtes de routage ont des adresses 10.0.1.1/192.168.0.1, 10.0.2.1/192.168.0.2, 10.0.3.1/192.168.0.3et 10.0.4.1/192.168.0.4.

Vous devrez ajouter des routes statiques aux autres 10.0.x.0/24réseaux sur chaque boîtier de routeur, avec des commandes comme celle-ci (EDITÉ!):

# on the 10.0.1.1 box
ip route add 10.0.2.0/24 via 192.168.0.2
ip route add 10.0.3.0/24 via 192.168.0.3
ip route add 10.0.4.0/24 via 192.168.0.4

et les itinéraires correspondants sur les autres boîtiers de routeur. Dans les zones de non-routage avec une seule interface, définissez la route par défaut sur laquelle pointer 10.0.x.1. Bien sûr, vous devrez également ajouter les adresses statiques et les masques de réseau sur toutes les interfaces.

Notez également que Linux ne fonctionne pas comme un routeur par défaut, vous devrez activer le transfert de paquets avec:

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

Les ipcommandes ci-dessus ne rendent pas les paramètres persistants, la façon de procéder dépend de la distribution.

Comme je l'ai dit, je n'ai pas testé cela et j'ai peut-être oublié quelque chose.

Johan Myréen
la source
Merci pour l'aide ici. Ce que vous avez conseillé fonctionne lorsque je lance une commande ping vers un routeur (10.0.1.1 à 10.0.2.1), mais pas lorsque je lance une commande ping sur un hôte différent. Par exemple, la commande ping de 10.0.1.1 à 10.0.2.2 n'entraîne aucun routage vers l'hôte 10.0.2.2. Souhaitez-vous suggérer de faire une manipulation iptables d'une manière ou d'une autre? J'expérimente cela depuis quelques jours mais en vain.
grise
Les techniques de routage standard devraient être suffisantes. Voici une liste de contrôle: 1. toutes les adresses doivent être configurées sur les hôtes (par exemple ip addr add 10.0.2.2/24 dev eth0), 2. les routes doivent être configurées sur les quatre boîtes de routeur comme ci-dessus, 3. la route par défaut sur les boîtes sans routeur doivent être configurées pour pointer vers la boîte de routage sur le réseau (par exemple, route ip ajouter par défaut via 10.0.1.1), 4. cat / proc / sys / net / ipv4 / ip_forward sur les quatre boîtes de routeur doivent imprimer "1".
Johan Myréen
J'ai corrigé une erreur dans les commandes ip route ci-dessus. J'ai également testé cette configuration, mais uniquement avec quatre machines: deux boîtes de routage et deux hôtes sur les côtés 10.0.x.0. Ça marche!
Johan Myréen
Johan, merci pour votre contribution supplémentaire. Cette configuration fonctionne. Il s'avère que l'image Linux que j'utilisais avait des règles iptables par défaut qui posaient problème. Merci de m'avoir aidé dans mon apprentissage à ce sujet.
grise