la passerelle doit-elle être sur le sous-réseau?

14

Je cherchais à mettre en place une interface comme celle-ci dans / etc / network / interfaces (c'est sur debian), avec la passerelle en dehors du sous-réseau:

iface eth0 inet static
address 10.100.10.99
netmask 255.255.255.0
gateway 10.100.0.1

mais "ifup --verbose eth0" ne me donne que ce message d'erreur:

ifconfig eth0 10.100.10.99 netmask 255.255.255.0
 route add default gw 10.100.0.1  eth0
SIOCADDRT: No such process
Failed to bring up eth0

Bien sûr, changer le masque de réseau en 255.255.0.0 fonctionne très bien.

Est-ce même possible, ou y a-t-il autre chose qui pose problème? Existe-t-il un moyen d'obtenir plus d'informations sur ifup? Je vois un message sur Internet qui suggère que cela devrait fonctionner.

Kevin G.
la source

Réponses:

10

Une autre façon d'aborder cette question est: si vous ne pouvez pas atteindre votre routeur de passerelle par défaut sur un réseau local, comment envoyez-vous des paquets à travers lui? Vous devez les envoyer via un autre routeur.

Pour certains antécédents, n'oubliez pas qu'un paquet IP contient généralement les adresses source et de destination: d'où il vient et où il veut aller. Il appartient généralement aux routeurs de décider comment il y parvient.

Ainsi, lorsque vous envoyez votre paquet IP via votre routeur de passerelle par défaut hors réseau, l'une des deux choses doit se produire.

  1. Le routeur de réseau local sait comment atteindre le routeur de passerelle par défaut, et il est d'accord avec votre idée que votre paquet doit être envoyé via le routeur de passerelle par défaut pour arriver à sa destination. Dans ce cas, pourquoi ne pas simplement utiliser le routeur de réseau local comme passerelle par défaut?

  2. Le routeur du réseau local pense (par défaut) que votre paquet doit être envoyé via un autre routeur pour arriver à destination. Dans ce cas, vous devez avoir un moyen de le dire autrement. Cette capacité existe et est appelée "routage source" ... mais elle est considérée comme un risque pour la sécurité, et la plupart des routeurs sont configurés pour l'ignorer.

Enfin, d'après mon expérience, l'outil Linux iproute ( ip) ne vous permettra pas d'ajouter un itinéraire si la passerelle ne peut pas être atteinte directement via une interface réseau locale.

Quelques références de routage source:

Jander
la source
4

La passerelle par défaut doit se trouver sur le même sous-réseau que l'adresse IP de l'appareil. Il s'agit généralement de l'adresse IP du routeur du réseau auquel vous vous connectez. De la page wikipedia sur la route par défaut :

Dans les réseaux informatiques, une passerelle est un nœud (un routeur) sur un réseau TCP / IP qui sert de point d'accès à un autre réseau. Une passerelle par défaut est le nœud du réseau informatique que le logiciel réseau utilise lorsqu'une adresse IP ne correspond à aucune autre route de la table de routage. Il s'agit en fait de l'adresse IP du routeur auquel votre réseau PC est connecté.

Dans les configurations informatiques à domicile, un FAI fournit souvent un périphérique physique qui à la fois connecte le matériel local à Internet et sert de passerelle. Ces appareils comprennent des routeurs DSL et des routeurs de câbles.

Dans les systèmes organisationnels, une passerelle est un nœud qui achemine le trafic d'un poste de travail vers un autre segment de réseau. La passerelle par défaut connecte généralement les réseaux internes et le réseau extérieur (Internet). Dans une telle situation, le nœud de passerelle pourrait également agir en tant que serveur proxy et pare-feu. La passerelle est également associée à la fois à un routeur, qui utilise des en-têtes et des tables de transfert pour déterminer où les paquets sont envoyés, et à un commutateur, qui fournit le chemin réel pour le paquet entrant et sortant de la passerelle.

En d'autres termes, une passerelle par défaut fournit un point d'entrée et un point de sortie dans un réseau.

slm
la source
Mais s'il existe une route statique vers une adresse, ne pourrait-il pas s'agir de la passerelle par défaut même si elle n'est pas sur le sous-réseau? (Nous entrons dans les détails techniques ici et loin des bonnes pratiques).
kurtm
La route statique peut être une route, mais pas la passerelle par défaut (si je comprends bien).
slm
2
La route par défaut DOIT être sur le même sous-réseau. L'itinéraire par défaut est la façon dont vous récupérez tout votre trafic de votre sous-réseau vers un autre. Donc, si vous essayez d'obtenir du trafic de 10.100.10.99 à 10.100.0.1, vous avez besoin d'une "passerelle" pour passer des réseaux 10.100.10.0/24 à 10.100.0.0/24. 10.100.0.1 ne peut pas être votre passerelle par défaut car vous ne pouvez pas l'atteindre par défaut. Il peut cependant s'agir "d'une" passerelle. Et il peut même s'agir de «la» passerelle vers laquelle vous envoyez tout votre trafic (une fois que vous lui avez indiqué comment accéder à l'autre réseau).
coteyr
1
@coteyr: et pourtant j'ai ce travail. S'il existe une route statique vers l'autre sous-réseau et que la passerelle par défaut se trouve sur ce sous-réseau, je suis à la fois en mesure d'ajouter la route par défaut et de ping / établir des connexions sans problème. C'est peut-être moins efficace, mais ça marche.
siride
Je dirais: un itinéraire est la façon dont vous récupérez tout votre trafic de votre sous-réseau vers un autre. Lorsque vous spécifiez un itinéraire, vous pouvez soit spécifier un segment IP (ou un supernet - une combinaison de segments) et une passerelle pour accéder à ce segment / supernet avec, ou vous pouvez spécifier "pour tout le reste non mentionné dans la table de routage, utilisez ceci passerelle". Cette dernière est la route par défaut, et la passerelle utilisée est appelée passerelle par défaut. Lorsque vous n'avez qu'une seule carte réseau, vous n'avez presque toujours besoin que de la route par défaut; mais avec plusieurs cartes réseau, vous pouvez également avoir besoin d'autres itinéraires.
telcoM
2

J'ai le même problème à plusieurs endroits avec le service Verizon ADSL. La «passerelle par défaut» se trouve sur un sous-réseau différent. Dans notre cas, nous avons besoin d'adresses IP publiques pour utiliser un VPN site à site IPSec. Pour ce faire, nous devons placer la passerelle DSL en mode pont, de sorte que l'adresse IP publique se trouve sur notre routeur au lieu de la passerelle DSL.

La plupart des fournisseurs peuvent le faire assez facilement, mais Verizon semble avoir des difficultés. En utilisant une passerelle DSL D-Link 2750B, en la plaçant en mode pont, les techniciens de Verizon me disent d'utiliser la passerelle par défaut sur un sous-réseau séparé. Je l'ai testé à l'aide de mon ordinateur portable Windows 7 et bien que Windows donne un message d'erreur selon lequel "vous êtes un idiot et c'est une mauvaise idée - voulez-vous TOUJOURS enregistrer cette configuration? Oui / Non", il fonctionne .

Cependant, les logiciels avec des contrôles d'intégrité plus rigoureux semblent vous protéger de vous-même ...

Pourtant, je ne peux pas m'empêcher de penser qu'il doit y avoir un moyen de faire semblant ...

Stuart Smith
la source
1

C'est possible, mais comme expliqué dans l'article lié, votre machine doit déjà savoir comment se rendre à l'adresse de la passerelle. Cela signifie que vous devrez utiliser post-uppour ajouter manuellement les itinéraires au lieu degateway

iface eth0 inet static
  address 10.100.10.99
  netmask 255.255.255.0
  post-up ip route 10.100.0.0/24 via 10.100.10.x # router that can route you to the 10.100.0.0/24 network
  post-up ip route 0.0.0.0 via 10.100.0.1
jordanm
la source
2
Ces ip routecommandes échoueront si vous les essayez ... même si vous ajoutez la addcommande manquante .
Jander