Перепись адресов в локалке или DDNS для бедных

Mar 10, 2016 23:57

Дано: N компов, подключенных к сети. Есть DHCP, но нет доступа к его настройкам. У пары компов статика, у остальных динамика.
Задача: автоматизировать сбор адресов этих компов, чтобы можно было ходить на них по ssh без необходимости предварительно дойти до них пешком.

Сразу же определяемся, что ходить будем только через одну машину. Тогда нужно, чтобы все остальные сообщали свой адрес и хостнейм. Фактически получаем ddns. Запросы на изменение адреса будем посылать по http (так всё равно есть апач, но об этом ниже). Для этого на "клиентах" создаём файл /etc/network/if-up.d/ddns и пишем там вот такой код:

#!/bin/sh

wget -O /dev/null http://192.168.xx.xx/ddns/?host=`hostname` 2> /dev/null

не забудьте дать права на исполнение. Этот скрипт будет запускаться каждый раз при поднятии интерфейса и будет сообщать "серверу" свой хостнейм (а ip адрес он и сам узнает). Мы решили, что будем ходить везде только через одну машину, поэтому можно ограничиться правкой файла hosts. Обработчик на стороне сервера можно написать на чём угодно. Недолго думая, был написан вот такой скрипт на пхп:

write
";
}
}
echo "add:
".$addr."\t".$host."\n";
fwrite($f, $addr."\t".$host."\n");
fclose($f);
?>

Остаётся только выполнить команду:

sudo chown www-data /etc/hosts
чтобы апач мог писать в файл, и можно пользоваться.

Всё это работает в локалке, так что о безопасности особо не думали (на самом деле было просто лень). При желании можно навернуть какое-нибудь шифрование и/или подпись.

апач, автоматизация, ddns, apache, http, linux

Previous post Next post
Up