Как дать cname любому устройству?
Я работаю в среде Linux и C языка. Я не могу использовать Python, Perl,PHP и Apache. Что мне нужно, так это то, что я хочу дать одно и то же имя хоста каждому устройству, подключенному к сети. Я знаю, что мы не можем дать одинаковые имена хостов всем устройствам. Но можно ли это сделать через cnmae?
Например:
Есть 3 устройства, подключенных в локальной сети Device-A,Device-B и Device-C. IP-адрес будет 192.168.0.4,192.168.0.5 и 192.168.0.6. Каждое устройство содержит один httpd-сервер, с которого я могу получить доступ к веб-страницам этого устройства на моем ПК. Допустим, если я наберу 192.168.0.4 в браузере, он откроет веб-страницу этого устройства. Теперь мой компьютер напрямую подключен к одному устройству. И я напишу device.local в браузере, чтобы он открывал веб-страницу локального устройства. Является ли это возможным? Если да, то как?
Исследование, которое я сделал:
- Я использовал dnsmasq, но он не запускается. Я только что включил имя в файле dnsmasq.conf. Это дает мне следующую ошибку: dnsmasq: плохой параметр в строке 529 /etc/dnsmasq.conf
Я использую avahi для ноль конф сети. В этом есть авахи-демон. Таким образом, я могу дать имя хоста каждому устройству. Но это дает имя как device.local,device-2.local и device-3.local. После этого я также перешел по этой ссылке, но у меня она не сработала.
http://www.mail-archive.com/avahi@lists.freedesktop.org/msg01907.html
Заранее спасибо. Для меня действительно важно решить эту проблему.
2 ответа
Вы можете использовать Round Robin DNS, чтобы одна запись DNS выдавала один IP-адрес в пуле из нескольких IP-адресов. Так что запрос для device.local
ответим с 192.168.0.4
, а затем следующий запрос для device.local
будет дан ответ с 192.168.0.5
и т. д., пока пул адресов не будет завершен. После того, как пул адресов был выдан последовательно, DNS-сервер вернется в начало списка IP-адресов и снова выдаст их в том же порядке. По сути, это балансировка нагрузки бедного человека.
CNAME
запись не то, что вы ищете. Прекратите использовать их - вы хотите использовать A
записи и круговой прием.
Допустим, я подключил 1-й ноутбук к устройству A, а 2-й ноутбук к устройству B. В браузере обоих ноутбуков пишу device.local. Затем на первом ноутбуке должна отображаться веб-страница устройства-А, а на втором - веб-страница устройства-B. Является ли это возможным?
Теперь это другой сценарий. В первом сценарии, о котором я говорил выше, все устройства (устройство A, устройство B, устройство C и любые ПК / ноутбуки, которые хотят получить к ним доступ) находятся в одной сети или, по крайней мере, имеют четкий маршрут к устройствам A, B и C.
Если вы напрямую подключаете ноутбук к DeviceA, но не можете подключиться к устройству B или C. У вас есть две проблемы:
- У вас нет доступа к DNS-серверу, на котором размещены циклические записи. Ваша единственная возможность - разместить службу DNS-сервера на своем ноутбуке или использовать файл gulp hosts.
- Если вы размещаете на своем ноутбуке службу Round Robin DNS, у вас есть лишь небольшая вероятность получить правильный IP-адрес. Если IP-адрес DeviceC следующий в очереди циклического перебора, но вы подключены только к DeviceA, то вам не повезло.
Если необходимо прямое соединение между двумя устройствами, можно надеяться, что разрешение имен вещания будет таким же, как в SAMBA / NetBIOS. Однако это не работает в подсетях (без большой боли и страданий) и, конечно, не работает в общедоступных сетях, таких как Yon Grande Internet.
На данный момент, я считаю, вам нужно серьезно рассмотреть:
- Что вы пытаетесь создать
- Почему вы пытаетесь спроектировать это так
- Назначение и ограничения протоколов и стандартов. (А именно DNS и разрешение имен в общем)
Вы используете совершенно неправильный подход. Вы хотите, чтобы каждое устройство разрешало имена по-разному - весь смысл DNS не в том, чтобы разные устройства разрешали имена по отдельности. Вы либо захотите другой DNS-сервер для каждого устройства, что означает, что локальный DNS-сервер настроен для каждой машины, либо... разумный ответ, просто используйте файл hosts для самой системы, что было бы проще.