Я работаю над средой 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 в браузере, чтобы он открывал веб-страницу локального устройства. Является ли это возможным? Если да, то как?
Проведенные мной исследования:
Я использую 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. У вас есть две проблемы:
Если необходимо прямое соединение между двумя устройствами, вам остается только надеяться на разрешение широковещательных имен, подобное тому, что предоставляет SAMBA / NetBIOS. Однако это не работает в подсетях (без особой боли и страданий) и, конечно же, не работает в общедоступных сетях, таких как Yon Grande Internet.
На этом этапе я считаю, что вам нужно серьезно подумать:
Вы используете совершенно неправильный подход. Вы хотите, чтобы каждое устройство разрешало имена по-разному - весь смысл DNS не в том, чтобы разные устройства разрешали имена по отдельности. Вам либо нужен другой DNS-сервер для каждого устройства, что означает настройку локального DNS-сервера для каждой машины, либо ... разумный ответ, просто используйте файл hosts для самой системы, что было бы проще.