web-dev-qa-db-fra.com

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

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

Ainsi, il y a 2 couches de Nat. Pourquoi n'ont-ils pas de sous-réseau à la place. Cela permettrait un routage facile.

Je sens plusieurs couches de NAT peut causer des pertes de performances. Pourriez-vous m'aider à comparer les deux stratégies de conception.

Mise à jour :

@Jon encore plus d'informations

En discussion avec un ami, nous avons compris que le sous-réseau provoquerait le problème suivant. Les demandes d'ARP d'un ordinateur inondraient l'ensemble du réseau de l'organisation. Si le routeur ne transmet pas ces demandes, le PC dans un département ne sera pas en mesure de se connecter au PC dans d'autres départements que de toute façon ne peut être effectué si elles sont derrière différents NAT. Avec un sniffer de paquet, nous avons vu qu'il existe un grand nombre de demandes ARP car la plupart des ordinateurs du département ont le partage de fichiers sur Windows activé.

Comment résoudre ce problème?

De plus, si deux ordinateurs sont derrière différents NATS, il n'ya aucun moyen de se connecter à l'autre.

19
Rohit Banga

Le seul problème réel avec la natinier multicouche est qu'il rend votre topologie de réseau déroutant. Si vous utilisez plusieurs couches de NAT=== Ensuite, vous lancez le routage symétrique entre tous les hôtes de l'organisation et vous rencontrez également le potentiel de chevauchement des espaces d'adresse privée à l'intérieur de votre réseau. Imaginez si vous avez utilisé un plage d'adresses dans votre n + 1 NAT Couche utilisée dans le N NAT COUCHE. Ces réseaux ne pourraient jamais rouler les uns des autres, mais Les hôtes de la couche N + 1 pourraient avoir la même adresse que la couche N, rendre l'identité du serveur déroutant.

Si j'étais étendu la topologie d'un grand réseau, je n'utiliserais que 10. * ou 172.16-24. * Adresses pour les hôtes sur l'un de nos sous-réseaux. Ensuite, si un département ou un individu voulait doubler NAT, ils pourraient (en utilisant le réseau 192.168 * * Network) avec la compréhension qu'ils sont responsables du réseau derrière leur NAT =. Je serais aussi plus incliné pour créer plus de sous-réseaux que de laisser l'un de ces réseaux Double Nat'D deviennent trop gros.

6
jdizzle

Les problèmes de multi-niveaux NAT sont essentiellement les mêmes que pour une couche unique NAT mais composé. Telle que:

  1. La latence due à un travail supplémentaire effectué dans une vie de paquets (bien que cela soit peu susceptible d'être significatif dans la plupart des cas)

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

  3. Entrant le transfert de port de connexion entrant, si vous avez besoin de connexions entrantes, c'est plus FAF pour configurer et entretenir.

  4. Nombre limité de ports. NAT Fonctionne en traduisant des adresses source sur des ports différents, donc par exemple:

    • la machine 1 parle à un serveur Web externe à l'aide du port 1024 car sa source est traduite en NAT sur, dites, Port 10000.
    • la même machine fait deux demandes à cela, ou un autre serveur Web simultanément (non inhabituel) à l'aide du port de source 1025 (deux connexions simultanées doivent avoir des ports source différents). Le NAT BOX traduit ceci sur "ME SUR SOURCE PORT 10001"
    • une autre machine parle de la machine effectue trois connexions à des serveurs externes. Bien, le NAT BOX les traduit à "ME sur les ports 10002, 10003 et 10004"
    • lorsque les paquets sont revenus sous la forme des machines externes, le NAT BOX sait que les objets destinés à lui-même sur Port 10000 sont vraiment supposés aller à la machine 1 sur le port 1024, et ainsi de suite pour l'autre actif Connexions.

    Tout cela est fin et dandy 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 gagnent de nombreuses connexions (applications P2P comme celles qui implémentent le protocole BitTorrent peuvent créer nombre connexions simultanées) . Il n'y a que 65536 ports dans le protocole IP, moins les 1024 réservés. Tandis que 60 000 risquent de ressembler à beaucoup, il peut être utilisé rapidement, alors le NAT Boîte doit décider quels anciens mappages peuvent être supprimés, ce qui n'est généralement pas aussi simple que "goutte le plus ancien". Cela peut Résultat dans des bugs étranges (connexions aléatoires tombant pour des raisons difficiles à diagnostiquer des raisons) ou la machine ne pouvant tout simplement pas effectuer de nouvelles connexions pendant un moment.

  5. charge sur le NAT Boîte (ES). Si vous utilisez de petites boîtes de puissance faible (hors-la-étage NAT Soutenir les routeurs par exemple, plutôt qu'un PC complet avec un processeur chunky) pour faire votre NAT Le travail de traduction supplémentaire (comparé à la simple transmission de paquets conformément à une table de routage de base) pourrait ralentir les transferts à travers eux. Pour l'accès à Internet, ce n'est pas Susceptible d'être un problème (votre connexion nette sera le goulot d'étranglement), mais comme vous vous niez entre les segments de réseau locaux, cela pourrait devenir assez visible.

9
David Spillett

La perte/vitesse de performance est réellement basse à la qualité du routeur que vous utilisez.

En ce qui concerne la bonne/mauvaise idée, je suis contre le moment où il est possible de simplement utiliser le routage, cependant, cela dépend vraiment de l'environnement et de ce que vous essayez d'accomplir.

Si les machines n'ont jamais besoin d'exécuter quelques éléments partagés sur des ports standard, vous pouvez entrer dans le périphérique de routeur/nat-donneur et définir une règle pour permettre ce que vous voulez (1). Toutefois, si vous allez faire beaucoup d'appareil aux tâches de l'appareil, il sera beaucoup plus facile d'avoir une route appropriée avec chaque machine ayant sa propre adresse IP unique (2).

(1) Par exemple, une machine à une autre - une machine a un serveur Web et que vous souhaitez le partager aux autres - vous définiriez une règle dans le routeur sur 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 à http: //router.ip et peut accéder.

(2) Si toutefois chaque ordinateur disposera d'un serveur Web ou que vous allez utiliser beaucoup de services, vous allez avoir un cauchemar à la mise en place de toutes les règles (mais ce n'est pas impossible).

Quant à votre scénario - Si un département utilise 192.168.xx et les autres 192.168.YX, je passerais à travers les appareils et s'il n'y a pas de chevauchement, il peut simplement être possible de modifier le sous-réseau de/24 à/16 (ou l'autre sens), puis remplacer les routeurs avec des commutateurs/ou similaires et n'ont aucune perte de services.

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


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

La comparaison est une conduite durs 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 des règles/itinéraires entrants.

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

Si vous avez un routeur d'autre part avec NAT, il faudra l'IP extérieure 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. Port 80 à une machine ... Cela fonctionne très bien pour les connexions sortantes (règles de pare-feu permettant), mais peut être un cauchemar pour configurer des règles entrantes si vous hébergez de nombreux services ... et si vous faites quelque chose qui nécessite 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.

6
William Hilsum

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

5
Vatine

Le plus gros problème avec NAT est quand il y a un logiciel de réseau obsolète faisant la traduction, ce qui fait de nombreuses applications blessées (FTP, VoIP, etc.). Les pare-feu modernes/passerelles ont des traductions (Fixups in Cisco-Termes) Wich le rend beaucoup plus facile.

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

4
pauska

Il suffit de mettre à niveau votre réseau et vos clients vers IPv6, alors pas besoin d'utiliser NAT jamais.

2
The Unix Janitor

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

Les routeurs cassent des domaines de diffusion - les routeurs ne transmettent 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 avez besoin d'accéder à une action Windows de l'extérieur d'un sous-réseau, vous pouvez l'accéder directement à l'aide de son adresse IP ou si vous avez un DNS ou WINS Server Setup par HostName.

Avec NAT:

Si votre NAT est-il du type PAT et non pas un mappage d'un à un, vous auriez besoin de configurer le transfert de port pour cela pour travailler - ce serait mauvais.

Comme cela a été discuté, ad naséum, NAT est en général une mauvaise chose car il enfreint la fonctionnalité de réseau, nous n'utilisons que parce que nous devons. Rouler sur IPv6.

* Bien sûr, les transitaires/relais/aides existent

1
Jon Rhoades