Pourquoi est-ce une mauvaise idée d'utiliser plusieurs couches NAT ou est-ce?

19

Le réseau informatique d'une organisation possède un NAT avec une plage d'adresses IP 192.168 / 16. Il existe un département avec un serveur qui a une adresse IP 192.168.xy et ce serveur gère les hôtes de ce département avec un autre NAT avec la plage d'adresses IP 172.16 / 16.

Il y a donc 2 couches de NAT. Pourquoi n'ont-ils pas de sous-réseaux à la place. Cela permettrait un routage facile.

Je pense que plusieurs couches de NAT peuvent entraîner des pertes de performances. Pourriez-vous s'il vous plaît m'aider à comparer les deux stratégies de conception.

Mise à jour:

@Jon Quelques informations supplémentaires

Lors d'une discussion avec un ami, nous avons réalisé que le sous-réseau entraînerait le problème suivant. Les demandes ARP d'un ordinateur inonderaient l'ensemble du réseau de l'organisation. Si le routeur ne transmet pas ces demandes, les PC d'un département ne pourront pas se connecter aux PC d'autres départements, ce qui ne peut de toute façon pas être fait s'ils se trouvent derrière des NAT différents. Avec un renifleur de paquets, nous avons vu qu'il existe un grand nombre de demandes ARP car la plupart des ordinateurs du département ont activé le partage de fichiers sur Windows.

Comment résoudre ce problème?

De plus, si deux ordinateurs se trouvent derrière des NAT différents, il n'y a aucun moyen pour eux de se connecter l'un à l'autre.

Rohit Banga
la source
Veuillez modifier votre question en: "Pourquoi est-ce une mauvaise idée d'utiliser plusieurs couches NAT?"
2
Un autre devoir de devoirs ...
Jon Rhoades
1
NON. c'est un problème pratique. Je mentionne toujours les devoirs.
Rohit Banga
3
@Jon (et ses électeurs), il n'y a aucun problème à poser des questions sur les devoirs ici. C'est un sujet qui a été discuté des dizaines de fois sur meta.stackoverflow.com - bien que personnellement, je ne vois rien dans la question qui pointe vers HW.
Mark Henderson
@ Farseeker - toute la question est abstraite. Il ne semble pas être en mesure de changer quoi que ce soit, il veut que nous "comparions les 2 stratégies de conception" sans objectif clair - ça sent juste que les devoirs ne sont pas un problème du monde réel. Bien sûr, je suis plus qu'heureux d'accepter que je me trompe et que quelqu'un a cette configuration folle - dans ce cas, demandez-lui pourquoi il doit avoir une bonne raison.
Jon Rhoades

Réponses:

6

Le seul vrai problème avec le NATing multicouche est que cela rend la topologie de votre réseau confuse. Si vous utilisez plusieurs couches de NAT, vous supprimez le routage symétrique entre tous les hôtes de l'organisation et vous risquez également de chevaucher des espaces d'adressage privés à l'intérieur de votre réseau. Imaginez si vous avez utilisé une plage d'adresses dans votre couche NAT n + 1 qui était utilisée dans la couche NAT n. Ces réseaux ne pourraient jamais être acheminés les uns aux autres, mais les hôtes de la couche n + 1 pourraient avoir la même adresse que la couche n, ce qui rend l'identité du serveur déroutante.

Si je présentais la topologie d'un grand réseau, je n'utiliserais que des adresses 10. * ou 172.16-24. * Pour les hôtes sur l'un de nos sous-réseaux. Ensuite, si un service ou une personne souhaite doubler le NAT, il peut (en utilisant le réseau 192.168. *), Étant entendu qu'il est responsable du réseau derrière son hôte NAT. Je serais également plus enclin à créer plus de sous-réseaux qu'à laisser l'un de ces réseaux double NAT devenir trop gros.

jdizzle
la source
9

Les problèmes avec le NAT à plusieurs niveaux sont essentiellement les mêmes que pour le NAT à une seule couche, mais sont aggravés. Tel que:

  1. Latence due à un travail supplémentaire effectué pendant la durée de vie d'un paquet (bien que cela ne soit probablement pas significatif dans la plupart des cas)

  2. Savoir d'où vient quelque chose. Si vous essayez de découvrir d'où proviennent certaines demandes (peut-être que votre pare-feu sortant a enregistré ce qui ressemble à une machine compromise essayant de cracher du spam ou de rechercher d'autres cibles d'infection), NAT rend ces diagnostics beaucoup plus difficiles.

  3. La redirection de port de connexion entrante, si vous avez besoin de connexions entrantes, est plus pratique à configurer et à maintenir.

  4. Nombre de ports limité. NAT fonctionne en traduisant les adresses source en lui-même sur différents ports, par exemple:

    • la machine 1 parle à un serveur Web externe en utilisant le port 1024 car sa source est traduite à l'adresse de la boîte NAT sur, disons, le port 10000.
    • la même machine fait deux requêtes à ce serveur Web ou à un autre, simultanément (ce qui n'est pas inhabituel) en utilisant le port source 1025 (deux connexions simultanées doivent avoir des ports source différents). La boîte NAT traduit cela par "moi sur le port source 10001"
    • une autre machine parle établit trois connexions avec des serveurs externes. Très bien, la boîte NAT les traduit par "moi sur les ports 10002, 10003 et 10004"
    • au fur et à mesure que les paquets reviennent sous la forme des machines externes, la boîte NAT sait que les trucs destinés à elle-même sur le port 10000 sont vraiment censés aller à la machine 1 sur le port 1024, et ainsi de suite pour les autres connexions actives.

    Tout cela est parfait jusqu'à ce que vous ayez de nombreuses connexions sortantes - c'est-à-dire un grand réseau ou un réseau plus petit avec des machines qui établissent de nombreuses connexions (les applications P2P comme celles qui implémentent le protocole bittorrent peuvent créer de nombreuses connexions simultanées). Il n'y a que 65536 ports dans le protocole IP, moins les 1024 qui sont réservés. Alors que 60 000 peut sembler beaucoup, il peut être rapidement consommé, alors la boîte NAT doit décider quels anciens mappages peuvent être supprimés, ce qui n'est généralement pas aussi simple que «supprimer le plus ancien». Cela peut entraîner des bogues étranges (des connexions aléatoires tombant pour des raisons difficiles à diagnostiquer) ou la machine ne pouvant tout simplement pas établir de nouvelles connexions pendant un certain temps.

  5. charge sur la (les) boîte (s) NAT. Si vous utilisez de petits boîtiers de faible puissance (des routeurs compatibles NAT par exemple, plutôt qu'un PC complet avec un processeur volumineux) pour effectuer votre NAT le travail de traduction supplémentaire (par rapport au simple transfert de paquets selon une table de routage de base) ) pourrait ralentir les transferts. Pour l'accès à Internet, il est peu probable que ce soit un problème (votre «connexion Internet sera le goulot d'étranglement), mais comme vous effectuez un NAT entre les segments du réseau local, cela pourrait devenir assez perceptible.

David Spillett
la source
point 4 ce problème devrait être le même pour n'importe quel nombre de couches de NAT ou non!
Rohit Banga
Certes, le point 4 est le même problème à la fois sur le NAT à niveau unique et sur le NAT à plusieurs niveaux, mais le NAT à plusieurs niveaux exacerbe le problème de déterminer quelles connexions sont mortes (l'hôte externe peut ne pas connaître autant de contexte que celui interne) et effectue des diagnostics plus difficile si les limitations de mappage de port deviennent un problème. Cela peut également rendre l'allocation de la bande passante équitable et d'autres formes de trafic plus confuses à mettre en œuvre et à surveiller (bien qu'il existe des moyens de contourner cela, simplifier la topologie de votre réseau est généralement la meilleure option).
David Spillett
6

La perte de performances / vitesse est vraiment due à la qualité du routeur que vous utilisez.

Quant à la bonne / mauvaise idée, je suis contre quand il est possible d'utiliser simplement le routage, cependant, cela dépend vraiment de l'environnement et de ce que vous essayez d'accomplir.

Si les machines n'ont besoin d'exécuter que quelques éléments partagés sur des ports standard, vous pouvez accéder au routeur / périphérique donnant naissance et définir une règle pour autoriser ce que vous voulez (1). Cependant, si vous allez faire beaucoup de tâches de périphérique à périphérique, il sera beaucoup plus facile d'avoir un itinéraire correct avec chaque machine ayant sa propre IP unique (2).

(1) Par exemple, un à plusieurs - Une machine a un serveur Web et vous souhaitez le partager avec d'autres - vous définiriez une règle dans le routeur pour le port 80 de la machine, puis toute machine du réseau extérieur (ou à l'intérieur si nat-loopback est activé) peut simplement aller sur http: //router.ip et peut y accéder.

(2) Si toutefois chaque machine va avoir un serveur Web allumé, ou si vous allez utiliser beaucoup de services, vous allez avoir un cauchemar pour mettre en place toutes les règles (mais ce n'est pas impossible).

Quant à votre scénario - Si un département utilise 192.168.xx et l'autre 192.168.yx, je passerais en revue les appareils et s'il n'y a pas de chevauchements, il peut simplement être possible de changer le sous-réseau de / 24 à / 16 (ou dans l'autre sens), puis remplacez les routeurs par des commutateurs / ou similaires et ne perdez pas de services.

Il est vraiment difficile d'aider sans en savoir plus sur votre réseau, il n'y a rien de "mal" avec le double NAT, tant qu'il est correctement configuré. Cependant, à moins que vous n'en ayez vraiment besoin ou qu'il y ait une très bonne raison à cela, j'envisagerais de migrer si vous le pouvez (opinion personnelle)


@iamrohitbanga - En réponse à vos questions (à beaucoup de commentaires).

La comparaison est difficile - Le routage fonctionne bien pour les réseaux privés où chaque machine a la possibilité d'accéder à chaque machine. Nat fonctionne bien, mais il est principalement utilisé pour les réseaux qui n'ont pas besoin de routage car vous devez généralement configurer manuellement les règles / itinéraires entrants.

Par exemple, si vous avez une connexion Internet et désactivez le NAT, configurez manuellement des itinéraires ou un mode ponté - votre machine sera directement sur Internet - tous les ports accessibles et n'importe quelle machine peut faire ce qu'elle veut.

Si vous avez un routeur d'autre part avec NAT, il prendra l'IP externe et fournira "Nat-ed?" (pas sûr de la terminologie ...) Internet - toutes les machines internes ont une adresse IP non accessible depuis Internet, mais, vous pouvez configurer des règles manuelles - par exemple le port 80 vers une machine ... Cela fonctionne très bien pour les connexions sortantes (pare-feu les règles le permettent), mais peut être un cauchemar pour configurer des règles entrantes si vous hébergez de nombreux services ... et si vous faites quoi que ce soit nécessitant des ports dynamiques (ftp, Windows AD, etc.), cela peut être un cauchemar.

J'espère que cela vous aidera, si vous voulez savoir autre chose, n'hésitez pas à demander.

William Hilsum
la source
pourriez-vous comparer les deux stratégies. le réseau est utilisé pour fournir un accès Internet aux hôtes.
Rohit Banga
@iamrohitbanga - mise à jour de la réponse
William Hilsum
5

Le principal problème avec NAT (en général et avec plusieurs couches en particulier) est qu'il peut être extrêmement difficile à dépanner.

Vatine
la source
4

Le plus gros problème avec NAT est quand il y a un logiciel réseau obsolète qui fait la traduction, ce qui fait mal à de nombreuses applications (FTP, VoIP, etc.). Les pare-feu / passerelles modernes ont des traductions (corrections en termes de Cisco), ce qui facilite beaucoup les choses.

Je ne comprends pas pourquoi votre entreprise utilise NAT entre les sous-réseaux privés. Pourquoi ne pas simplement l'acheminer?

pauska
la source
2

Mettez simplement à niveau votre réseau et vos clients vers IPV6, vous n'aurez plus jamais besoin d'utiliser NAT.

Le concierge Unix
la source
1

Pour répondre à la nouvelle deuxième partie de votre question ...

Les routeurs cassent les domaines de diffusion - les routeurs ne transfèrent pas les paquets arp, ils restent dans un sous-réseau *. Votre partage de fichiers Windows (sérieusement?) Le trafic de diffusion Netbios ne quittera pas le sous-réseau.

Avec des sous-réseaux:

Si vous devez accéder à un partage Windows depuis l'extérieur d'un sous-réseau, vous pouvez y accéder soit en utilisant directement son adresse IP, soit si vous avez une configuration de serveur DNS ou WINS par nom d'hôte.

Avec NAT:

Si votre NAT est du type PAT et donc pas un mappage un à un, vous devrez configurer la redirection de port pour que cela fonctionne - ce serait mauvais.

Comme cela a été discuté ad naseum, le NAT est en général une mauvaise chose car il rompt la fonctionnalité du réseau, nous n'utilisons que parce que nous le devons. Roulez sur IPv6.

* Bien sûr, les transmetteurs / relais / assistants de diffusion existent

Jon Rhoades
la source