Я только начал новую работу, и у нас есть интрасеть с нашим собственным доменом верхнего уровня, например .abc. Таким образом, если я хочу войти на наш «сайт электронных пособий», я просто открою веб-браузер и перейду на worklink.abc и войдите оттуда.
Как разработчику, который слишком мало знает о DNS и ИТ-системах, мне любопытно, как это работает и что мне нужно сделать, чтобы добиться чего-то подобного дома.
Меня зовут Адам, и я хотел бы иметь домашнюю интрасеть, в которой, возможно, все домены заканчивались .adm суффикс. Таким образом, я мог разрабатывать внутренние веб-приложения Java для сопоставления страниц вроде http://mydomain.adm?foo=bar
и т.д. Я совершенно уверен, что это приведет меня в новый мир DNS-серверов и конфигураций, но это меня не пугает.
Может ли кто-нибудь из вас, «системные ребята», дать плохому Java-разработчику высокоуровневое, непрофессиональное представление о том, как я могу это сделать? На данный момент я даже не знаю, с чего начать. Если вы дадите мне достойный список возможностей для работы, я смогу изучить детали оттуда. Заранее спасибо!
Как сказал Дэн, вы можете использовать свою систему /etc/hosts
файл, чтобы выполнить то, что вы хотите. Это не означает «создание TLD» каким-либо значимым образом, поскольку на самом деле это не имеет ничего общего с DNS. /etc/hosts
(... обычно ...) ссылается ваша система перед он проверяет DNS. В hosts
файл просто сопоставляет имена с адресами и ничего не знает о доменах. Итак, если вы вставите это /etc/hosts
:
127.0.0.1 localhost apple.com
А потом сделайте так:
curl http://apple.com/
curl
попытаюсь подключиться к 127.0.0.1
. Но если вы сделаете это:
curl http://www.apple.com/
Ваша система (... возможно ...) будет ссылаться на DNS, потому что www.apple.com
не был найден в hosts
файл. Поскольку в большинстве программ используются средства разрешения имен систем (контролируемые /etc/nsswitch.conf
), это будет работать практически для всего. Все просто, но есть недостатки:
hosts
регулярно обновляйте информацию обо всех из них.hosts
файл. Так что нет MX
или SRV
записи, нет CNAME
записи и так далее.Следующее простое решение - использовать dnsmasq, который представляет собой очень изящный инструмент, который предоставляет службы DNS, DHCP и TFTP - другими словами, практически все, что вам нужно для небольшой сети. С помощью dnsmasq
, ты можешь:
dnsmasq
довольно хорошо документирован, но если после просмотра документации у вас возникнут конкретные вопросы, возвращайтесь, и я посмотрю, что я могу сделать.
Вот действительно короткий пример ... если вы запустите это:
dnsmasq -C /dev/null --local=/localnet/ -s localnet -E
В -C /dev/null
чтобы убедиться, что мы начинаем с «пустой» конфигурации, поскольку я не знаю, что может быть в вашем локальном /etc/dnsmasq.conf
. Будет ли эта командная строка, dnsmasq
внесет любые записи в ваш /etc/hosts
файл, доступный через DNS в домене "localnet". Так, например, если бы в моем hosts
файл:
10.10.10.10 fluff
10.10.10.11 nutella
Я мог бы сделать это в системе, настроенной на использование моего dnsmasq
экземпляр для DNS:
$ host fluff.localnet
fluff.localnet has address 10.10.10.10
И я тоже могу использовать неполные имена:
$ host nutella
nutella has address 10.10.10.11
Вы можете получить удовольствие от dnsmasq
, и этого, вероятно, более чем достаточно для домашней сети. Если вам нужно обслуживать большее количество людей - и предоставлять избыточную службу DNS, внутренние / внешние представления, списки управления доступом и т. Д. - тогда вы бы посмотрели на что-то вроде BIND, но это не обязательно для того, что вы делаете (или для того, что я делаю, в этом отношении - я использую dnsmasq
дома).