DNS Хосты за тем же IP - PullRequest
       37

DNS Хосты за тем же IP

2 голосов
/ 10 июня 2011

Недавно я купил доменное имя на www.active-domain.com Я использую его для своей домашней сети, поэтому мы говорим о NAT и динамическом IP. Поскольку мой IP-адрес является динамическим, я не могу создать делегацию для использования моего собственного DNS-сервера. активный домен действует как DNS-сервер, поэтому я могу создавать только записи: A, CNAME, URL Redirect, URL Frame и TXT.

Тем не менее, вот мой вопрос: поскольку я нахожусь за NAT, возможно ли создать несколько хостов за одним и тем же IP?

Пример:
Я хочу, чтобы srv1.mydomain.com указывал на 192.168.0.101 в моей сети.
Я хочу, чтобы srv2.mydomain.com указывал на 192.168.0.102 в моей сети.
Но со стороны оба указывают на (пример) 74.0.0.1

Короче говоря:
srv1.mydomain.com -> 74.0.0.1 -> 192.168.0.101
srv2.mydomain.com -> 74.0.0.1 -> 192.168.0.102

Спасибо.

1 Ответ

0 голосов
/ 10 июня 2011

В любом случае внешний DNS для yourhost.example.com и anotherhost.example.net будет указывать на внешний адрес брандмауэра (IN A 74.0.0.1 здесь) или на имя хоста брандмауэра (например, IN CNAME yourfirewall.example.org.).

Примечаниеоднако DNS (разрешение имени домена по IP-адресу) происходит отдельно от обработки соединения и маршрутизации.Что это означает:

  • клиентский компьютер, когда сталкивается с именем хоста DNS, попытается найти его - например, запрашивает у своего локального DNS-сервера «кто является yourhost.example.com»;DNS-сервер отвечает «74.0.0.1».
  • , что касается стека IP, это последний раз, когда используется имя хоста;с этого момента клиент работает только с адресом.
  • клиент открывает соединение с адресом и портом;однако входящие пакеты помечаются только «для компьютера по адресу 74.0.0.1», без указания «какое DNS-имя использовалось для получения этого адреса, если оно есть».

Некоторые протоколы (например,как HTTP) может использовать имя хоста в части данных пакета (с HTTP это заголовок Host:), но не каждый протокол делает это.Это следующие возможности:

  • Если у вас есть два сервера, которые будут работать на разных портах , это на самом деле не проблема: я отсылаю вас к Вопросы и ответы по переадресации портов в SuperUser .

  • Если вам нужно запустить два сервера на одном и том же порту , это становится трудным, если не невозможным: это можетвозможность обратного прокси-трафика (и отделить данные для одного сервера от данных для другого);если рассматриваемый протокол не делает этого (например, SMTP или SSH), вы в значительной степени SOL.

    • В частности, если вы намереваетесь направить трафик на два разных HTTP-сервера (оба напорт 80), вам нужно запустить какой-нибудь обратный прокси на вашем брандмауэре (74.0.0.1).С Apache самый простой конфиг может выглядеть примерно так:

<VirtualHost *:80><br> ServerName yourhost.example.com<br> ProxyPass / http://192.168.0.101/<br> ProxyPassReverse / http://192.168.0.101/<br> </VirtualHost><br> <VirtualHost *:80><br> ServerName anotherhost.example.net<br> ProxyPass / http://192.168.0.102/<br> ProxyPassReverse / http://192.168.0.102/<br> </VirtualHost>

...