3

У меня есть роутер, с которым я играю, и мне любопытно, могу ли я дать собственное URL-имя IP-адресу роутера, чтобы люди в моем доме могли набрать http://www.my-fancy-url.com а не http://aaa.bbb.ccc.ddd - не только на ПК, но и на мобильных устройствах.

Я слышал, что могу сделать это, если я сделаю свой собственный DNS-сервер и каким-либо образом установлю его по умолчанию при подключении к маршрутизатору, или скажу людям настроить DNS вручную (что все же лучше, чем заставлять людей вводить 123.456.789). каждый раз, когда они хотят посетить).

Я попытался прочитать о том, как работает протокол DNS, чтобы попытаться реализовать его в Node или Java, но мне кажется, что протокол слишком сложен, чтобы обернуться.

Я также слышал, что OpenDNS - это вариант, но я хочу этого избежать.

Существуют ли более простые варианты создания простого DNS-сервера, который может обработать один конкретный запрос, прежде чем передать его 8.8.8.8 (или нигде, поскольку этот маршрутизатор на самом деле не подключен к Интернету).

3 ответа3

1

Я лично использую powerDNS, чтобы делать подобные вещи в своей сети.

Он работает на компьютере под управлением Linux (Debian), который работает все время и на серверах в качестве DNS-сервера моей локальной сети, а также на других функциях (например, файловый сервер). Затем на моем маршрутизаторе я настроил правило брандмауэра, которое разрешало исходящий трафик DNS с моего компьютера с DNS-сервером, но перенаправлял весь другой исходящий трафик DNS на мой компьютер с DNS-сервером.

Установленный мной экземпляр powerdns будет пересылать любые запросы, для которых у него нет официальной записи. Это позволяет мне создавать доменные имена или переопределять общедоступные настройки DNS и указывать их на хосты в моей собственной сети.

Я полагаю, что подобная установка также возможна, если у вас есть сервер Windows в вашей сети.


Предполагая, что IP-адрес вашего маршрутизатора находится в частном диапазоне IP-адресов (см. Https://en.wikipedia.org/wiki/Private_network), и у вас есть имя публичного домена, альтернативным решением будет настроить поддомен и иметь A точка записи на ваш роутер ip.

например router.mydomain.com с записью A, указывающей на 123.456.789.1

Это приведет к тому, что любой хост с правильно настроенным DNS, который был подключен к вашей сети, будет направлен к маршрутизатору при входе на router.mydomain.com, в то время как, если они находятся за пределами вашей сети, они, вероятно, ничего не увидят или, возможно, увидят свой роутер.

1

Если вы собираетесь запустить службу DNS, вы также можете убрать службу DHCP от маршрутизатора. Таким образом, ручная настройка на стороне клиента не требуется.

Я рекомендую использовать Dnsmasq, комплексное решение для сетей SOHO. Он предоставляет как DHCP, так и DNS сервисы и очень прост в настройке. Он требует очень мало ресурсов, поэтому вы можете запустить его на Raspberry Pi или на вашем роутере (с заменой прошивки, такой как OpenWrt).

Для Dnsmasq требуется либо Linux, * BSD или OS X.

Необходимые (дополнительные) параметры конфигурации выглядят примерно так:

# Set DHCP range:
dhcp-range=lan,192.168.2.100,192.168.2.199,255.255.255.0,24h
# Set router IP:
dhcp-option=lan,3,192.168.2.1
# Set upstream DNS:
server=8.8.8.8
server=8.8.4.4
# Don't load DNS from /etc/resolv.conf
no-resolv
# Create router DNS name:
address=/my-router.example.com/192.168.2.1
1

Если у вас есть сеть и вы хотите, чтобы те, кто подключен к сети, автоматически конфигурировались, вы, вероятно, захотите настроить DHCP, который назначает IP-адреса клиентам. Помимо простого назначения IP-адресов, протокол DHCP также может передавать информацию о том, какие DNS-серверы использовать.

Таким образом, у вас, вероятно, есть компьютер X в вашей сети, где есть ваш сайт. На этом компьютере у вас также будет запущен DHCP и DNS. Поскольку все они используют разные порты, это не проблема. Возврат DHCP (в дополнение к аренде IP-адресов) и IP-адрес сервера имен компьютера X. DNS-сервер должен возвращать IP-адрес маршрутизатора при запросе его имени и перенаправлять все остальные IP-адреса серверам имен, полученным от вашего провайдера.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .