2 votes

Acheminer le trafic de l'Internet vers le bon serveur interne (sur la base du nom d'hôte).

J'ai deux serveurs sur mon réseau local, que je veux rendre accessibles à l'Internet.

Je veux que tout le trafic server1.example.com pour être acheminé vers 10.0.0.1 et tout le trafic vers server2.example.com pour être acheminé vers 10.0.0.2

Si nécessaire, je peux mettre en place un troisième serveur pour exécuter un proxy ou tout ce qui est nécessaire. Je préférerais une solution Mac/Linux.

La plupart des autres solutions que j'ai vues n'offrent que des services spécifiques. Je veux que tout le trafic soit proxyé.

Comment puis-je router sur la base du nom d'hôte ?

3voto

Malheureusement, il n'y a pas de noms d'hôtes dans le routage IP, seulement des adresses IP. L'en-tête IP ne contient que les adresses IP source et destination, pas les noms d'hôtes.

Vous ne pouvez donc pas proxyer tout le trafic sur la base des noms, simplement parce que les paquets IP ne contiennent pas de noms de domaine.

Cependant, certains protocoles, comme HTTP 1.1, comportent des noms de domaine. Vous pouvez donc configurer un proxy HTTP inverse, examiner les demandes HTTP et les transmettre à vos serveurs internes en fonction des noms de domaine/URL contenus dans ces demandes.

Il existe une grande variété de mandataires inversés HTTP. Fondamentalement, la plupart des serveurs HTTP, comme Apache, peuvent être configurés comme un proxy inverse. Voici un exemple d'une telle configuration :

https://httpd.apache.org/docs/2.4/howto/reverse_proxy.html

2voto

Attie Points 18031

Comme l'a dit @Andriy, en utilisant uniquement l'IP, ce n'est pas possible.

Lorsque votre ordinateur se connecte à server1.example.com il s'agit en fait d'une adresse IP, par exemple : 123.123.123.123 .

Une fois qu'il a l'adresse IP, il tente de se connecter au port correspondant de l'hôte. 123.123.123.123 . À ce stade, il n'existe pas de concept de nom d'hôte ou DNS.


Si vous voulez y parvenir, vous avez deux possibilités :

  • Différenciez les services en utilisant des adresses IP publiques différentes.
  • Différenciez les services en utilisant des ports différents.

Vous avez déjà déclaré que " je ne veux pas qu'il soit spécifique au protocole "Mais (par exemple) si vous utilisiez HTTP(S), ce serait possible.

Cela n'est possible que parce que HTTP inclut des informations supplémentaires dans ses en-têtes, après s'être connecté à l'hôte à l'adresse suivante 123.123.123.123 il est écrit " S'il vous plaît, faites comme si je parlais à server1.example.com ".

Il est trivial de se connecter à 123.123.123.123 et dire " S'il vous plaît, faites comme si je parlais à someotherhost.example.com "même si cet hôte ne fait pas l'objet d'une publicité. La suite donnée à cette demande dépend de votre configuration.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X