![Настройте DNS с разделением горизонтов дома](https://rvso.com/image/1400029/%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D1%82%D0%B5%20DNS%20%D1%81%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC%20%D0%B3%D0%BE%D1%80%D0%B8%D0%B7%D0%BE%D0%BD%D1%82%D0%BE%D0%B2%20%D0%B4%D0%BE%D0%BC%D0%B0.png)
У меня есть несколько сервисов, настроенных на моих компьютерах дома. В настоящее время я использую небольшой скрипт, чтобы определить, нахожусь ли я дома, и если да, то использую IP-адрес локальной сети, а если нет, то использую IP-адрес WAN моего маршрутизатора для подключения к этим сервисам.
Вместо этого я бы хотел просто использовать DNS.
Это мой роутер: http://netgear.com.au/home/products/wirelessrouters/work-and-play/DGN2200.aspx
Я рассматривал возможность установки этого:http://sourceforge.net/projects/modfs/ но, судя по всему, он основан на оригинальной версии прошивки, которую мне пришлось обновить, чтобы VPN заработал.
Нужно ли мне:
- Редактировать записи файла hosts на всех моих компьютерах
- Попробуйте заставить мой маршрутизатор выполнять какие-нибудь действия с DNS (может быть, с помощью telnet?)
- установите BIND на одну из моих машин и настройте маршрутизатор так, чтобы он указывал на эту машину для DNS дома (пробовал это, но не смог найти, где это настроить)
- Отключить маршрутизатор и установить какое-нибудь программное обеспечение маршрутизатора на одной из моих машин, а затем использовать его для DNS.
- Какой-то другой вариант, который я не рассматривал
По сути я хочу следующее:
Вне сети (уже работает):
- machine1.domain.com -> {WAN IP}
- machine2.domain.com -> {WAN IP}
Внутри сети:
- machine1.domain.com -> 192.168.0.2
- machine2.domain.com -> 192.168.0.6
решение1
Из того, что вы опубликовали до сих пор, похоже, что у вас уже настроена переадресация портов, так что вы можете получить доступ к своим сервисам с любой стороны вашей сети (изнутри/снаружи). Если нет, вам нужно будет сначала настроить это.
У вас есть несколько интересных вариантов, с которыми вы можете поиграться. Некоторые немного более хакнуты, чем другие. Это звучит как забавный проект, так что давайте погрузимся:
План A: Моя первая мысль — сделать что-то относительно простое, что работает с вашим скриптом для обнаружения. У вас может быть два файла хоста, между которыми вы переключаетесь. Распространите оба на Dropbox на всех ваших машинах и сделайте так, чтобы скрипт копировал нужную версию в определенное время на ваш компьютер, чтобы перезаписать существующий файл хостов. Это сохраняет все динамичным способом, который позволяет вам использовать одни и те же имена для любой стороны вашей сети, но указывать на разные IP-адреса в зависимости от того, на какой стороне вы находитесь.
План A2: Если у вас где-то есть домен или выделенный сервер, вы можете использовать скрипт, который просто записывает/считывает данные в ftp-каталог с указанными вами учетными данными, если вы не хотите использовать что-то вроде dropbox.
План B: Если у вас есть существующий домен, вы можете заставить один из ваших серверов загружать внешний IP вашего маршрутизатора через регулярные интервалы. Таким образом, у вас будет что-то с выделенным адресом, что позволит вам всегда узнавать, какой у вас внешний домашний IP. Оттуда вы можете написать скрипт, который будет указывать на этот динамический IP как на переменную и использовать порты, которые вы сопоставили для переадресации портов.
План C: VPN + внутренний DNS. В любое время, когда вы снаружи, вы просто подключаетесь к VPN. В любое время, когда вы внутри, вы уже указываете на этот DNS, надеюсь. Мое личное мнение - Windows DNS немного проще в использовании, чем что-то вроде BIND. Он немного более графический и с управлением щелчком мыши. BIND полностью основан на тексте и может немного пугать тех, кто не знаком. Однако вам понадобится выделенный Windows Server (конечно, его можно виртуализировать), который обычно стоит денег - хотя, если у вас есть адрес электронной почты *.edu, вы можете использовать DreamSpark, чтобы получить себе копию Windows Server и поиграться с ней бесплатно. В качестве альтернативы вы можете сделать то же самое с копией CentOS и BIND (есть множество руководств по «Настройке CentOS в качестве DNS-сервера»).
решение2
OP хочет настроить DNS дома, но описание указывает на то, что реальная цель — заставить домашние машины разрешать IP дома, отличный от IP в домашней сети. Предложенное решение близко к реализации разделенного DNS, который в некоторых кругах стал несколько неодобрительным.
Я бы настоятельно рекомендовал OP поместить внутренние IP-адреса в файл hosts локальных машин. Предполагая, что машины настроены на использование порядка разрешения файлов по умолчанию, за которым следует DNS, IP-адрес в файле hosts будет исключать что-либо в DNS.
решение3
Если у вас есть статический публичный IP от вашего интернет-провайдера, то просто используйте бесплатный DNS-сервер (http://my.dot.tk/и т. д.), но если у вас динамический публичный IP от вашего провайдера, то используйте менеджер динамических DNS (http://www.noip.com/и т. д).