OpenSolaris, OpenIndiana, Nexenta Forum

OpenSolaris, OpenIndiana, Nexenta Troubleshooting => Сеть, сетевые сервисы, сетевой софт => Тема начата: AlexA от Октябрь 24, 2008, 12:36:20 am

Название: Solaris в качестве сервера локальной сети
Отправлено: AlexA от Октябрь 24, 2008, 12:36:20 am
Как бы ни удивителен этот вопрос, но ... это возможно? Постараюсь конкретизировать - mc (!!!), httpd, ftp, nfs, ntpd, samba и иже с ними, но БЕЗ Х-ов!!! При этом - посчитать, порезать, ограничить (а вот с этим у IPF - проблема) трафик.
Название: Re: Solaris в качестве сервера локальной сети
Отправлено: keremet от Октябрь 27, 2008, 04:34:16 pm
mc, httpd, ftp, nfs без Х-ов - все это под Solaris возможно, сам настраивал. ntpd, samba - скорее всего тоже реально. Подсчет трафика можно организовать через скрипты DTrace (начиная с OpenSolaris build 93). Если интересно, могу поделиться примерами этих скриптов. Про "порезать, ограничить" я не в курсе, должна быть такая возможность.
Название: Re: Solaris в качестве сервера локальной сети
Отправлено: Tico Solaris от Октябрь 27, 2008, 08:20:21 pm
mc, httpd, ftp, nfs без Х-ов - все это под Solaris возможно, сам настраивал. ntpd, samba - скорее всего тоже реально. Подсчет трафика можно организовать через скрипты DTrace (начиная с OpenSolaris build 93). Если интересно, могу поделиться примерами этих скриптов. Про "порезать, ограничить" я не в курсе, должна быть такая возможность.

Возможно ВСЕ из перечисленного. ntpd, samba - работает тоже прекрасно.

А можно мне тоже скрипты?
Про "порезать" и "ограничить" - надо подумать. Интересная задачка!
Название: Re: Solaris в качестве сервера локальной сети
Отправлено: AlexA от Октябрь 28, 2008, 12:00:28 am
Если интересно, могу поделиться примерами этих скриптов. Про "порезать, ограничить" я не в курсе, должна быть такая возможность.
А вот с этого момента пожалуйста поподробнее!!!  :o ... Очень даже интересует!!!
Поставил неваду билд 98. Попытка отказаться от Х-ов ... не очень хорошая затея. Многое собрано с библиотеками Х-ов (прямо или косвенно). МС не поставился - потребовал какую-то гноме-либу. Пришлось ввалить на винт все гамузом. Теперь ВОПРОСЫ!
1. в пингвине (когда-то) в каком-то инит-филесе можно было ручками прибить Х-ы - поменять 5 на 3. Как сие сделать в соляре?
2. Как я понял, основное управление сервисами идет через svcs. svcs -a показывает челую кучу процессов ... Причем ничего связанное со стартом Х-ов. Как их прибить?
3. Где можно нарыть русскую доку по svcadm?
4. DTrace это нечто похожее на фришный нетграф? Работает в области ядра и практически не жрет ресурсов?
... пока хватит  :)
Пасиб
Название: Re: Solaris в качестве сервера локальной сети
Отправлено: keremet от Октябрь 29, 2008, 11:19:55 am
DTrace действительно работает в области ядра и практически не жрет ресурсов. Это что-то наподобие интеловского VTune, встроенное в операционную систему. Он позволяет отслеживать события операционной системы и перехватывать параметры этих событий.

Существует программа для организации туннеля, в котором трафик жмется и шифруется. Требуется померять, сколько данных вошло в туннель, в какое количество трафика они превратились при передаче по сети и то же самое - в обратную сторону. Эти 4 числа выдаются на стандарный вывод каждые 20 минут.

192.168.1.2 - IP точки туннеля на машине, где запущен скрипт
10.0.10.32  - IP машины, где запущен скрипт
10.0.10.33  - IP машины, где находится вторая точка туннеля
11111 - это TCP-порт, по которому передаются данные, завернутые в туннель

#!/usr/sbin/dtrace -s

#pragma D option quiet
#pragma D option switchrate=10hz

dtrace:::BEGIN
{
   tun0in=0;
   tun0out=0;
   bge0in=0;
   bge0out=0;
}

profile:::tick-20min{
        printf("%d\t%d\t%d\t%d\t\n",
                tun0in,tun0out,bge0in,bge0out);
   tun0in=0;
        tun0out=0;
        bge0in=0;
        bge0out=0;
}

ip:::send
/args[2]->ip_saddr=="192.168.1.2"/
{
   tun0in+=args[4]->ipv4_length;   
}

ip:::send
/args[2]->ip_saddr=="10.0.10.32" && args[2]->ip_daddr=="10.0.10.33" && args[4]->ipv4_protocol==6 && (unsigned int)(*(((char*)args[4]->ipv4_hdr)+22))*256+(unsigned int)(*(((char*)args[4]->ipv4_hdr)+23))==11111/
{
          bge0in+=args[4]->ipv4_length;
}

ip:::receive
/args[2]->ip_daddr=="192.168.1.2"/
{
          tun0out+=args[4]->ipv4_length;
}


ip:::receive
/args[2]->ip_daddr=="10.0.10.32" && args[2]->ip_saddr=="10.0.10.33"  && args[4]->ipv4_protocol==6 && (unsigned int)(*(((char*)args[4]->ipv4_hdr)+20))*256+(unsigned int)(*(((char*)args[4]->ipv4_hdr)+21))==11111/
{
          bge0out+=args[4]->ipv4_length;
}

Более подробное описание применения DTrace для сбора сетевой статистики http://sunhelp.ru/archives/200-DTrace_ip_Provider_budet_vkljuchen_v_Solaris_Express.html#extended

Способ определения порта - чтение TCP-заголовка. В snv_94 работает. Не знаю, будет ли он работать в следующих версиях.
Название: Re: Solaris в качестве сервера локальной сети
Отправлено: keremet от Октябрь 29, 2008, 12:00:44 pm
В Solaris по умолчанию для графического входа пользователя запущена служба svc:/application/graphical-login/cde-login:default
Прибить иксы в Solaris можно командой svcadm disable cde-login:default.
Русскоязычное описание команд управления службами можно поискать на sunhelp.ru. Если ничего не найдете, сообщите мне и я напишу небольшую статью по ним.
Название: Re: Solaris в качестве сервера локальной сети
Отправлено: AlexA от Октябрь 30, 2008, 12:04:33 am

"Существует программа для организации туннеля, в котором трафик жмется и шифруется..."
А по какому протоколу организуется туннель? А есть скрипт по подсчету трафика проходящего через интерфейс?
Есть ли аналог mpd5 из фреебсд?
Название: Re: Solaris в качестве сервера локальной сети
Отправлено: AlexA от Октябрь 30, 2008, 12:11:57 am
Цитировать
В Solaris по умолчанию для графического входа пользователя запущена служба svc:/application/graphical-login/cde-login:default
Спаcибо.
Цитировать
Прибить иксы в Solaris можно командой svcadm disable cde-login:default.
Русскоязычное описание команд управления службами можно поискать на sunhelp.ru. Если ничего не найдете, сообщите мне и я напишу небольшую статью по ним.
На санхелп.ру я не нашел. Если будет возможность предоставить русское описание команд cvsadm, и желательно какими службами она управляет, буду очень признателен.
Спасибо.
Название: Re: Solaris в качестве сервера локальной сети
Отправлено: keremet от Октябрь 30, 2008, 12:13:10 pm
А по какому протоколу организуется туннель? А есть скрипт по подсчету трафика проходящего через интерфейс?
Есть ли аналог mpd5 из фреебсд?

Туннель организуется моей программой, которую я пишу на работе, передача данных там идет по TCP. Cкрипт по подсчету трафика, проходящего через интерфейс, можно получить сокращением приведенного скрипта почти в 2 раза, так как в нем идет подсчет трафика на двух интерфейсах (туннеля tun0 и сетевой карты bge0). Ну и, конечно, надо указать нужные IP или другие параметров пакетов, размеры которых следует суммировать.

mpd5 - это PPP-сервер?
Название: Re: Solaris в качестве сервера локальной сети
Отправлено: AlexA от Октябрь 30, 2008, 09:54:10 pm
Цитировать
Туннель организуется моей программой, которую я пишу на работе, передача данных там идет по TCP.
А можно ли подключиться к серверу виндузным клиентом?
Цитировать
Cкрипт по подсчету трафика, проходящего через интерфейс, можно получить сокращением приведенного скрипта почти в 2 раза, так как в нем идет подсчет трафика на двух интерфейсах ...
скрипт считает байтики через физический (сетевая карточке) или виртуальный (rtls0 - tun0) и-фейсы?
Цитировать
mpd5 - это PPP-сервер?
Да (клиент - сервер) и очень классно работает. Корректно закрывает зависшие сессии, автоматом создает новые виртуальные интерфейсы (ng0-ngX) и корректно их убирает ... на других XXXbsd - poptop далеко "отстает" (в свое время натрепали нервы звонками из-за пропажи инета). Может быть одновременно и клиентом и сервером. Ща стоит клиентом с АДСЛ - получаю инет и PPPoE сервером отдаю в "народ" (уже забыли мой номер телефона). Фрирадиус плюс "мистер MYSQул" с базами пользователей. Плюс апач, самба, купс, нфс, нтп, фтп, днс и дхсп, ро, цс ... так - чуть - чуть  ;). Хочется все это водрузить на солярке  :D.
Название: Re: Solaris в качестве сервера локальной сети
Отправлено: keremet от Октябрь 31, 2008, 11:35:51 am
А можно ли подключиться к серверу виндузным клиентом?
скрипт считает байтики через физический (сетевая карточке) или виртуальный (rtls0 - tun0) и-фейсы?
Да, имеется клиентская часть, портированная на Windows. Посчет идет на сетевом уровне OSI (виртуальные интерфейсы).

В Solaris у меня скомпилировался клиент rp-pppoe-3.8 (правда пришлось внести небольшие изменения в исходный код). Используя его, я настроил выход в сеть Dom.ru. После компиляции среди исполняемых файлов оказался pppoe-server. Может быть он подойдет. Еще можно поискать инфу на docs.sun.com.
Название: Re: Solaris в качестве сервера локальной сети
Отправлено: AlexA от Ноябрь 02, 2008, 12:35:59 am
Цитировать
Да, имеется клиентская часть, портированная на Windows. Посчет идет на сетевом уровне OSI (виртуальные интерфейсы).
А можно линк на клиента?
Цитировать
В Solaris у меня скомпилировался клиент rp-pppoe-3.8 (правда пришлось внести небольшие изменения в исходный код).
... можно и рррое-3.8?
Спасибо
Название: Re: Solaris в качестве сервера локальной сети
Отправлено: keremet от Ноябрь 05, 2008, 03:16:10 pm
Клиент является нашей закрытой разработкой. Я не могу его предоставить. А вот ссылка на rp-pppoe-3.8 http://perm.citydom.ru/bill/rp-pppoe-3.8.tar.gz При компиляции под Solaris там надо в исходнике у одной функции, которую не найдет линковщик, убрать спецификатор static.
Название: Re: Solaris в качестве сервера локальной сети
Отправлено: AlexA от Ноябрь 07, 2008, 01:51:41 am
Цитировать
Клиент является нашей закрытой разработкой. Я не могу его предоставить.
Понимаю.
Цитировать
А вот ссылка на rp-pppoe-3.8 http://perm.citydom.ru/bill/rp-pppoe-3.8.tar.gz При компиляции под Solaris там надо в исходнике у одной функции, которую не найдет линковщик, убрать спецификатор static.
Сделаем ... знать бы на сколько он стабилен. Попробуем - будем знать  :)
А как бы ... построить шейпер? IPF пожалуй единственный из фильтров не имеющий этой возможности.
Есть ли вариации PF ОПЕНБСД под солярку?
Спасибо.
Название: Re: Solaris в качестве сервера локальной сети
Отправлено: AlexA от Ноябрь 07, 2008, 01:43:11 pm
Где под неваду - сборка 101 можно взять компилер?
Спасибо
Название: Re: Solaris в качестве сервера локальной сети
Отправлено: keremet от Ноябрь 10, 2008, 10:59:12 am
Где под неваду - сборка 101 можно взять компилер?
В каталоге /usr/sfw/bin/ находятся всякие GNUшные программы, в том числе gcc и gmake. Можно установить Sun Studio, но для сборки rp-pppoe-3.8 будет достаточно gcc.
Название: Re: Solaris в качестве сервера локальной сети
Отправлено: keremet от Декабрь 05, 2008, 03:26:35 pm
Где можно нарыть русскую доку по svcadm?
Вот одна из глав хороших русскоязычных учебных курсов по Solaris 10: http://www.intuit.ru/department/os/sysadmsolaris10/13/
наверняка пригодятся заметки про svcs http://solaris.reys.net/categories/7-SMF
Название: Re: Solaris в качестве сервера локальной сети
Отправлено: AlexA от Декабрь 12, 2008, 03:13:05 am
to keremet: Ссылки очень действенные и полезные. Спасибо.