Руководство LISa
Руководство LISa
След.

Руководство LISa

Alexander Neundorf

Перевод на русский: Олег Баталов
Издание 0.01.00 (2001-07-07)

LISa предназначена для показа «сетевого окружения», работает только поверх протокола TCP/IP и не зависит от SMB и других служб.

Это руководство описывает Информационный сервер LAN (LISa) и Ограниченный информационный сервер (resLISa)


Глава 1. Введение
Введение
Пред.
След.

Глава 1. Введение

LISa предназначена для показа «сетевого окружения», работает только поверх протокола TCP/IP и не зависит от SMB и других служб.

Она полностью независима от KDE/Qt™.

Список работающих серверов предоставляется через порт 7741 протокола TCP.

LISa поддерживает два способа поиска компьютеров в сети:

  1. Вы указываете LISa диапазон адресов IP, тогда LISa посылает эхо-запрос ICMP по всем указанным адресам IP, и ожидает ответов.

  2. Вы можете указать LISa выполнить команду nmblookup с опцией "*". Это утилита командной строки, поставляемая вместе с пакетом Samba. nmblookup "*" посылает широковещательные запросы в доступные сети, и все компьютеры, на которых работает сервер SMB, отвечают на этот запрос.

Пред.
След.
Начало


Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

Глава 2. Как это работает
Как это работает
Пред.
След.

Глава 2. Как это работает

В конфигурационном файле вы указываете диапазон IP-адресов, которые сервис LISa должен проверять на работоспособность.

В самом простом случае это может быть адрес/маска вашей сети, тогда LISa будет сканировать каждый возможный адрес в вашей сети, чтобы проверить его работоспособность.

Сервера проверяются с использованием эхо-запросов ICMP. Чтобы иметь возможность посылать и принимать эхо-запросы ICMP программа должны открыть так называемый «raw-сокет». Для этого необходимы привилегии пользователя root. Этот сокет открывается при запуске программы, после успешного открытия сокета привилегии root будут немедленно понижены (смотрите файлы main.cpp и strictmain.cpp).

Если вы настроили LISa на использование команды nmblookup, будет выполнен popen("nmblookup \"*\"") и проанализированы его результаты.

Так как запросы ICMP и широковещательные запросы генерируют некоторый сетевой трафик, существует возможность завести более одного работающего сервера а сети и они будут сотрудничать друг с другом. Перед отправкой запросов (либо использованием команды nmblookup), посылается широковещательный запрос на порт 7741.

Если кто-то ответил на этот широковещательный запрос, список работающих серверов будет получен через порт 7741 протокола TCP с этого сервера и эхо-запросы (либо команда nmblookup) выполнятся не будет.

Если никто не ответил, сервер, который послал широковещательный запрос, начинает посылать эхо-запросы (либо выполнить программу nmblookup) и откроет сокет, который принимает широковещательные запросы. Если сервер получил ответ на свой широковещательный запрос, он не открывает сокет. Так что обычно только один сервер открывает сокет и только он фактически проверяет доступность других серверов (либо выполняет nmblookup).

Другими словами, сервера ленивы, они действуют по принципу: «Я сделаю что-то только если никто этого ещё не сделал».

Есть и другая возможность уменьшения сетевого трафика.

Если вы настроили интервал обновления LISa каждые 10 минут, то вы не обращаетесь к серверу слишком часто. Если никто не обращался к серверу за предыдущий период обновления, сервер обновит (самостоятельно или от того, что кто-то выполнит обновление вручную) и удвоит свой интервал обновления. i.e. следующее обновление произойдёт через 20 минут.

Такое происходит 4 раза, так что если никто долго не обращался к серверу с периодом обновления 10 минут, его интервал обновления увеличится до 160 минут (три часа). Теперь, если кто-либо обращается к серверу, он получит устаревший список (обновлённый 160 минут назад). При запросе к серверу он восстановит значение интервала в первоначальные i.e. 10 минут и немедленно начнёт обновление, если последнее обновление было раньше 10 минут назад. Это означает, что вы получаете устаревший список и можете попробовать через несколько секунд получить последние данные.

Это приведёт к повышению частоты обновления для серверов, которые не пингуют (либо используют nmblookup) другие сервера, поскольку к ним обычно обращается только один пользователь. И меньший эффект будет достигнут на серверах, которые выполняют пинги (либо используют nmblookup), так как к ним обращаются все другие.

При этом варианте возможна ситуация, когда в сети работают множество серверов и в ней сохраняется небольшой трафик. Для пользователя не важно, какие сервера работают в сети (i.e. сервер имён, файловый сервер либо другой), в которой используется LISa. Он всегда может запустить LISa локально и LISa определит, что он один, совершенно прозрачно для пользователя.

Первый клиент LISa входил в ioslave для KDE 2, так что пользователь может ввести lan://localhost/ либо lan:/ для использования результатов LISa на своём компьютере.

Если есть компьютер, работающий постоянно, и пользователь знает, что на нём выполняется LISa, он может воспользоваться им явно (через ioslave lan://the_server_name/).

Если вы не хотите, чтобы ваш сервис LISa принимал участие в широковещательных рассылках, но всегда выполнял пингование непосредственно, укажите ему опцией командной строки --port либо -p использовать другой порт. Это не рекомендуется!

Если вы пошлёте сервису LISa сигнал SIGHUP, он перезагрузит свои параметры из файла конфигурации. Если вы пошлёте сервису LISa сигнал SIGUSR1, он выведет некоторую информацию о статусе на стандартный вывод.

Данные, предоставляемые через сокет, имею простой формат:<десятичный адрес ip в сетевом порядке следования байтов>< один пробел 0x20><полное имя компьютера><завершающий '\0'><новая строка '\n'< и последняя строка0 succeeded<'\n'>

Например,

17302538 some_host.whatever.de
18285834 linux.whatever.de
17827082 nameserver.whatever.de
0 succeeded

Это должно обеспечить лёгкость разбора.

Если в вашей сети существуют строгие правила по защите информации, некоторые люди могут посчитать пинги потенциальной атакой. Если столкнётесь с этим, используйте ограниченную версию сервиса, resLISa.

Пред.
След.
Начало


Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

Глава 3. resLISa
resLISa
Пред.
След.

Глава 3. resLISa

Если в вашей сети очень строгие правила безопасности, вы не хотите иметь открытый порт, или по другой причине вы можете использовать resLISa.

При использовании resLISa вы не можете проверять сети целиком и диапазоны адресов, вы можете указать в файле конфигурации до 64 компьютеров с их именами. Они будут проверены. Вы всё ещё можете использовать nmblookup.

resLISa предоставляет информацию только через unix-сокет, i.e. не через сеть. Имя сокета будет /tmp/resLisa-ВашеИмяПользователя, так что resLISa может безопасно выполняться на компьютере с большим количеством пользователей.

Установка прав root на resLISa не должно вызвать проблем безопасности, так как они будут сразу понижены после запуска (смотрите файл strictmain.cpp). Эти права необходимы только при создания низкоуровневого сокета для отправки эхо-запросов ICMP.

Сервис также не будет посылать и принимать широковещательные пакеты. Первый клиент этого сервиса - ioslave для KDE 2 (например, введите rlan:/ в Konqueror).

Пред.
След.
Начало


Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

Глава 4. Файл конфигурации
Файл конфигурации
Пред.
След.

Глава 4. Файл конфигурации

Теперь пример файла конфигурации:

PingAddresses = 192.168.100.0/255.255.255.0;192.168.100.10-192.168.199.19;192.168.200.1;192-192.168-168.100-199.0-9;
PingNames = bb_mail;
AllowedAddresses = 192.168.0.0/255.255.0.0
BroadcastNetwork = 192.168.100.0/255.255.255.0
SearchUsingNmblookup = 1                # использовать nmblookup
FirstWait = 30                          # 30 сотых секунды
SecondWait = -1                         # только одна попытка
#SecondWait = 60                        # пробовать дважды, и ожидать во второй раз 0.6 секунды
UpdatePeriod = 300                      # период обновления, секунд
DeliverUnnamedHosts = 0                 # не показывать компьютеры без имени
MaxPingsAtOnce = 256                    # посылать до 256 эхо-запросов ICMP за один раз

PingAddresses

Это вероятно самый важный параметр.

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

Есть четыре возможных способа указания адресов:

адрес сети/маска сети

192.168.100.0/255.255.255.0, i.e. адрес IP и назначенная маска сети.

Это не должно быть адресом сети и маской сети вашей машины. Например, если ваш адрес 10.0.0.0/255.0.0.0, вы могли бы указать 10.1.2.0/255.255.255.0, если вы интересуетесь этими адресами. Комбинация адрес IP и сетевая маска должны быть разделены косой чертой «/» и это не должен быть реальный адрес. Он может быть адресом компьютера в сети, i.e. 10.12.34.67/255.0.0.0 тоже самое что и 10.0.0.0/255.0.0.0 .

диапазон адресов IP

Например: 192.168.100.10-192.168.199.19

Начальный адрес IP и конечный адрес IP.

Адреса должны быть разделены «-».

В этом примере мы указываем 199-100+1=100, 100*256=25.600, 25.600+(19-10+1)=25.590 адресов

Адрес IP, представленный диапазоном в каждом четырёх десятичных номеров

Адрес IP, представленный четырьмя десятичными числами, и вы можете указать диапазон для каждого из них: 192-192.169-171.100-199.0-9

В этом примере будут проверены все адреса IP с первым номером 192, вторым в диапазоне от 168 до 168, третьим от 100 до 199, и последним от 0 до 9. Это -- 1*1*100*10=1.000 адресов.

Такое указание диапазона используется в очень редких случаях. Здесь мы указали диапазоны для каждого из четырёх чисел, всегда разделяемые символом «-».

Одиночные адреса IP или имена компьютеров

Адреса IP либо имена компьютеров, которыми вы наиболее часто интересуетесь.

Оставить этот параметр пустым тоже будет корректным.

PingNames
PingNames

PingNames

Здесь вы можете дополнительно указать компьютеры для проверки по их именам. Имена должны быть разделены точкой с запятой.

Оставить этот параметр пустым тоже будет корректным.



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

AllowedAddresses
AllowedAddresses

AllowedAddresses

Это очень важный параметр. LISa будет пинговать адреса, принимать запросы и отвечать на широковещательные пакеты с адресов, которые указаны в этой строке. Вы можете добавить до 32 адресов/масок сетей либо одиночные адреса. Разделяйте их ; и не помещайте пробелы между адресами!

Например, 192.168.0.0/255.255.0.0;192.169.0.0

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



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

BroadcastNetwork
BroadcastNetwork

BroadcastNetwork

Этот параметр содержит только один адрес/маску сети. По нему будут посылаться широковещательные запросы. Обычно это должно быть вашим адресом/маской, например, 192.168.0.0/255.255.0.0



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

SearchUsingNmblookup
SearchUsingNmblookup

SearchUsingNmblookup

Здесь вы можете указать 0 или 1. При использовании 1 LISa выполнит программу nmblookup "*" и проанализирует её вывод. Это создаёт меньше трафика, чем при использовании пингов, но вы получите только список компьютеров, на который выполняется сервис SMB (компьютеры с Windows® или с запущенным сервисом samba).

Если вы установите этот параметр и укажите адреса IP для пингов, сперва будет выполнена команда nmblookup, затем пинги. При этом будут пропингованы адреса, которые не проверила программа nmblookup. Это немного уменьшает сетевой трафик.



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

FirstWait
FirstWait

FirstWait

Когда LISa выполняет пинг, i.e. когда посылаются эхо-запросы ICMP, отправляется сразу пакет запросов, и ответы будут ожидаться в течении указанного количества сотых секунды. Обычно значение от 5 до 50 должны быть оптимальными, максимальное - 99 (0.99 секунды, очень длительный интервал). Попробуйте сделать это значение как можно более маленьким, при котором все компьютеры в сети определяются.



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

SecondWait
SecondWait

SecondWait

После того, как LISa пошлёт эхо-запрос в первый раз, может случиться, что некоторые компьютеры не были найдены. Улучшить результаты LISa может, пропинговав их второй раз. Будут проверены только те компьютеры, которые не ответили при первом опросе. Если первый опрос даёт хорошие результаты, вы можете отключить повторную проверку установкой значения SecondWait в -1.

Хорошая идея -- сделать это значение немного большим, чем для FirstWait. Компьютеры, которые не были найдены в первый раз, вероятно, используют медленные линии связи или расположены дальше, и им необходимо больше времени для ответа. Обычно значения от 5 до 50 должны быть оптимальными, либо установите -1 для отмены повторного сканирования. Максимальное значение - 99 (0.99 секунды, очень продолжительный интервал).



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

UpdatePeriod
UpdatePeriod

UpdatePeriod

Интервал, через который LISa будет производить обновление. По истечению этого времени LISa снова пошлёт пинги, использует nmblookup либо запросить список у другого сервера LISa, который фактически выполняет пинги.

Допустимое значение в диапазоне от 20 до 1800 секунд (полчаса). Если ваша сеть велика, не устанавливайте небольшой интервал (чтобы сохранить невысокую загрузку сети). Значения от 300 до 900 секунд (5 и 15 минут) -- наиболее хороший вариант.

Имейте ввиду, что период обновления удваивается до 4 раз, если никто не обращается к серверу, пока не достигнет 16-кратного значения. Он будет сброшен до указанного здесь значения, если кто-то обратиться к серверу.



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

DeliverUnnamedHosts
DeliverUnnamedHosts

DeliverUnnamedHosts

Если был получен ответ на эхо-запрос с адреса IP, для которого LISa не смог определить имя, он будет послан через порт, если вы установите этот параметр в 1.

Я действительно не уверен, является ли это полезной возможностью, но в вашей сети возможно существуют устройства без назначенного имени и они не должны быть показаны. Если вы хотите оставить их в секрете, установите значение этого параметра в 0 ;-) Если не уверены, также используйте 0.



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

MaxPingsAtOnce
MaxPingsAtOnce

MaxPingsAtOnce

При отправке пингов (эхо-запросов) LISa посылает несколько пакетов как один и ожидает ответов. По умолчанию это 256 пингов за раз, обычно вам не нужно изменять это значение. Если вы установите его значение слишком большим, внутренний буфер ответов на эхо-запросы может отказаться слишком мал. Если вы сделаете его небольшим, обновление будет происходить медленней.



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

Ещё три примера файлов
Ещё три примера файлов

Ещё три примера файлов

Пример 4.1. FIXME

Вы член небольшой сети с сетевой маской в 24 бита, i.e. до 256 компьютеров:

PingAddresses = 192.168.100.0/255.255.255.0
AllowedAddresses = 192.168.100.0/255.255.255.0
BroadcastNetwork = 192.168.100.0/255.255.255.0
SearchUsingNmblookup = 0                         # не использовать nmblookup
FirstWait = 20                                   # 20 сотых секунды
SecondWait = 30                                  # 30 сотых секунды при второй попытке
UpdatePeriod = 300                               # период обновления 300 секунд
DeliverUnnamedHosts = 0                          # не публиковать компьютеры без имени

Пример 4.2. Файл конфигурации для компьютера, на котором выполняется только SMB

Вы интересуетесь только компьютерами с работающим сервисом SMB и в вашей сети нет маршрутизации:

AllowedAddresses = 192.168.100.0/255.255.255.0
BroadcastNetwork = 192.168.100.0/255.255.255.0
SearchUsingNmblookup = 1                # использовать nmblookup
UpdatePeriod = 300                      # период обновления 300 секунд
DeliverUnnamedHosts = 0                 # не публиковать компьютеры без имени

Пример 4.3. Файл конфигурации, использующий nmblookup и пинги

Та же самая сеть, но в ней используются пинги и nmblookup.

PingAddresses = 192.168.100.0/255.255.255.0
PingNames = bb_mail
AllowedAddresses = 192.168.0.0/255.255.0.0
BroadcastNetwork = 192.168.100.0/255.255.255.0
SearchUsingNmblookup = 1                # сначала использовать nmblookup
FirstWait = 30                          # 30 сотых секунды
SecondWait = -1                         # только одна попытка
#SecondWait = 60                        # пробовать дважды, и второй раз ожидать 0.6 секунды
UpdatePeriod = 300                      # период обновления 300 секунд
DeliverUnnamedHosts = 0                 # не публиковать компьютеры без имени
MaxPingsAtOnce = 256                    # посылать до 256 эхо-запросов ICMP за один раз

Пример 4.4. Файл конфигурации для resLISa

И теперь файл конфигурации для resLISa. В resLISa PingAddresses и BroadcastNetwork не используется.

PingNames = bb_mail;some_host;some_other_host
AllowedAddresses = 192.168.0.0/255.255.0.0
SearchUsingNmblookup = 1                # использовать nmblookup
FirstWait = 30                          # 30 сотых секунды
SecondWait = -1                         # только одна попыткаn#SecondWait = 60                        # пробовать дважды, и второй раз ожидать 0.6 секунды
UpdatePeriod = 300                      # период обновления 300 секунд
DeliverUnnamedHosts = 1                 # публиковать компьютеры без имени
MaxPingsAtOnce = 256                    # посылать до 256 эхо-запросов ICMP за один раз


Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

Пред.
След.
Начало


Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

Глава 5. Опции командной строки и дополнительные параметры
Опции командной строки и дополнительные параметры
Пред.
След.

Глава 5. Опции командной строки и дополнительные параметры

Поддерживаются следующие опции командной строки:

-v, --version

Показать номер версии

-h, --help

Показать описание всех опций командной строки

-u, --unix

Сначала искать настройки в $HOME/.lisarc, затем в /etc/lisarc. Это поведение по умолчанию.

-k, --kde1

Сначала искать настройки в $HOME/.kde/share/config/lisarc, затем $KDEDIR/share/config/lisarc.

-K, --kde2

Искать файл настроек lisarc в каждом каталоге, возвращённом программой kde-config --path config

-c, --config=ФАЙЛ

Использовать ФАЙЛ, а не другой файл конфигурации.

-p, --port НОМЕР_ПОРТА

Запустить сервер на указанном порту. Если вы это используете, сервис LISa не сможет сотрудничать с другими серверами LISa в сети. Эта опция для resLISa недоступна.

Если вы пошлёте LISa или resLISa сигнал Hangup, они заново загрузят свои файлы конфигурации (killall -HUP lisa).

Если вы посылаете LISa или resLISa сигнал User1, они выводят на стандартный вывод терминала некоторую информацию о состоянии (killall -USR1 lisa). Вы ничего не увидите, если закрыли консоль, с который была запущена LISa/resLISa.

Пред.
След.
Начало


Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

Глава 6. Авторы и лицензия
Авторы и лицензия
Пред.
След.

Глава 6. Авторы и лицензия

Авторское право на LISa и resLISa 2000, 2001, Alexander Neundorf

Перевод на русский: Олег Баталов

Alexander Neundorf

Этот документ распространяется на условиях GNU Free Documentation License.

Программа распространяется на условиях лицензии GNU General Public License.

Пред.
След.
Начало


Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

Приложение A. Установка
Установка
Пред.

Приложение A. Установка

Для LISa и resLISa необходима библиотека libstdc++ (используется только string-class), они не требуют ни установленного Qt™ ни KDE.

Чтобы собрать и установить LISa, введите следующие команды в каталоге дистрибутива LISa:

% ./configure
% make
% make install

Поскольку LISa использует autoconf и automake, у вас не должно возникнуть никаких проблем. Если же у вас возникли ошибки, сообщите о них в списки рассылки KDE.

Другие зависимости

И resLISa и LISa открывает так называемый «низкоуровневый (raw) сокет» для отправки и приёма эхо-запросов ICMP. Для этого необходимы привилегии пользователя root.

LISa запускает сервис на порту 7741 протокола TCP и должна запускаться с правами пользователя root при старте системы. Как достичь этого, зависит от вашей ОС.

Сервис resLISa предназначен для выполнения под правами любого пользователя и не требует активного использования сети. У сервиса должен быть установлен флаг setuid root.

Если вы используете ioslave rlan в KDE 2, сервис resLISa будет запущен автоматически.

LISa использует файл настроек lisarc, resLISa - reslisarc. Если вы хотите настроить их с помощью KControl, вы должны использовать опцию командной строки -K.

Более подробную информацию о расположении файлов конфигурации читайте в главе Глава 5, Опции командной строки и дополнительные параметры.

Пред.
Начало


Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

След.
 


Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team