Назад | Перейти на главную страницу

как дать 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 в браузере, чтобы он открывал веб-страницу локального устройства. Является ли это возможным? Если да, то как?

Проведенные мной исследования:

  1. Я использовал dnsmasq, но он не запускается. Я только что включил cname в файле dnsmasq.conf. Это дает мне следующую ошибку: dnsmasq: плохой параметр в строке 529 /etc/dnsmasq.conf
  2. Я использую avahi для работы в сети без конфигурирования. В этом авахи-демон есть. Так что я могу дать имя хоста каждому устройству. Но он дает такие имена, как device.local, device-2.local и device-3.local. После этого я тоже перешел по этой ссылке, но у меня это не сработало.

    http://www.mail-archive.com/avahi@lists.freedesktop.org/msg01907.html

Заранее спасибо. Для меня действительно важно решить эту проблему.

Ты можешь использовать Циклический DNS чтобы одна запись DNS выдавала один IP-адрес в пуле из нескольких IP-адресов. Итак, запрос для device.local ответит 192.168.0.4, а затем следующий запрос для device.local будет дан ответ 192.168.0.5 и т.д., пока пул адресов не будет закончен. После того, как пул адресов будет предоставлен последовательно, DNS-сервер снова начнет с верхней части списка IP-адресов и снова выдаст их в том же порядке. По сути, это балансировка нагрузки для бедняков.

А CNAME запись - это не то, что вы ищете. Прекратите их использовать - вы хотите использовать A рекорды и круговой перебор.

Допустим, я подключил свой 1-й ноутбук к устройству A, а второй - к устройству B. В браузере обоих ноутбуков пишу device.local. Затем на первом ноутбуке он должен показать мне веб-страницу устройства-A, а на втором ноутбуке он должен показать мне веб-страницу устройства-B. Является ли это возможным?

Теперь это другой сценарий. В первом сценарии, о котором я говорил выше, все устройства (deviceA, deviceB, deviceC и любые ПК / ноутбуки, которые хотят получить к ним доступ) все находятся в одной сети или, по крайней мере, имеют четкий маршрут к deviceA, B и C.

Если вы напрямую подключаете ноутбук к устройству A, но не можете подключиться к устройству B или C. У вас есть две проблемы:

  1. У вас нет доступа к DNS-серверу, на котором размещены записи циклического перебора. Ваш единственный вариант - разместить на самом ноутбуке какую-либо службу DNS-сервера или использовать глоток файл hosts.
  2. Если вы размещаете на своем ноутбуке циклическую службу DNS, у вас есть лишь небольшая часть шансов получить правильный IP-адрес. Если IP-адрес DeviceC стоит следующим в очереди циклического перебора, но вы подключены только к DeviceA, то вам не повезло.

Если необходимо прямое соединение между двумя устройствами, вам остается только надеяться на разрешение широковещательных имен, подобное тому, что предоставляет SAMBA / NetBIOS. Однако это не работает в подсетях (без особой боли и страданий) и, конечно же, не работает в общедоступных сетях, таких как Yon Grande Internet.

На этом этапе я считаю, что вам нужно серьезно подумать:

  1. Что вы пытаетесь спроектировать
  2. Почему вы пытаетесь так спроектировать
  3. Назначение и ограничения используемых протоколов и стандартов. (А именно DNS и разрешение имен в целом)

Вы используете совершенно неправильный подход. Вы хотите, чтобы каждое устройство разрешало имена по-разному - весь смысл DNS не в том, чтобы разные устройства разрешали имена по отдельности. Вам либо нужен другой DNS-сервер для каждого устройства, что означает настройку локального DNS-сервера для каждой машины, либо ... разумный ответ, просто используйте файл hosts для самой системы, что было бы проще.