Автор Тема: Solaris в качестве сервера локальной сети  (Прочитано 29438 раз)

Оффлайн AlexA

  • Новичок
  • *
  • Сообщений: 12
  • Репутация: +115/-0
    • Просмотр профиля
Solaris в качестве сервера локальной сети
« : Октябрь 24, 2008, 12:36:20 am »
Как бы ни удивителен этот вопрос, но ... это возможно? Постараюсь конкретизировать - mc (!!!), httpd, ftp, nfs, ntpd, samba и иже с ними, но БЕЗ Х-ов!!! При этом - посчитать, порезать, ограничить (а вот с этим у IPF - проблема) трафик.
« Последнее редактирование: Декабрь 23, 2008, 12:42:35 am от AlexA »

Оффлайн keremet

  • Global Moderator
  • ROOT
  • *****
  • Сообщений: 463
  • Репутация: +237/-0
    • Просмотр профиля
    • OpenSolaris
Re: Solaris в качестве сервера локальной сети
« Ответ #1 : Октябрь 27, 2008, 04:34:16 pm »
mc, httpd, ftp, nfs без Х-ов - все это под Solaris возможно, сам настраивал. ntpd, samba - скорее всего тоже реально. Подсчет трафика можно организовать через скрипты DTrace (начиная с OpenSolaris build 93). Если интересно, могу поделиться примерами этих скриптов. Про "порезать, ограничить" я не в курсе, должна быть такая возможность.

Оффлайн Tico Solaris

  • Новичок
  • *
  • Сообщений: 12
  • Репутация: +118/-0
    • Просмотр профиля
Re: Solaris в качестве сервера локальной сети
« Ответ #2 : Октябрь 27, 2008, 08:20:21 pm »
mc, httpd, ftp, nfs без Х-ов - все это под Solaris возможно, сам настраивал. ntpd, samba - скорее всего тоже реально. Подсчет трафика можно организовать через скрипты DTrace (начиная с OpenSolaris build 93). Если интересно, могу поделиться примерами этих скриптов. Про "порезать, ограничить" я не в курсе, должна быть такая возможность.

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

А можно мне тоже скрипты?
Про "порезать" и "ограничить" - надо подумать. Интересная задачка!

Оффлайн AlexA

  • Новичок
  • *
  • Сообщений: 12
  • Репутация: +115/-0
    • Просмотр профиля
Re: Solaris в качестве сервера локальной сети
« Ответ #3 : Октябрь 28, 2008, 12:00:28 am »
Если интересно, могу поделиться примерами этих скриптов. Про "порезать, ограничить" я не в курсе, должна быть такая возможность.
А вот с этого момента пожалуйста поподробнее!!!  :o ... Очень даже интересует!!!
Поставил неваду билд 98. Попытка отказаться от Х-ов ... не очень хорошая затея. Многое собрано с библиотеками Х-ов (прямо или косвенно). МС не поставился - потребовал какую-то гноме-либу. Пришлось ввалить на винт все гамузом. Теперь ВОПРОСЫ!
1. в пингвине (когда-то) в каком-то инит-филесе можно было ручками прибить Х-ы - поменять 5 на 3. Как сие сделать в соляре?
2. Как я понял, основное управление сервисами идет через svcs. svcs -a показывает челую кучу процессов ... Причем ничего связанное со стартом Х-ов. Как их прибить?
3. Где можно нарыть русскую доку по svcadm?
4. DTrace это нечто похожее на фришный нетграф? Работает в области ядра и практически не жрет ресурсов?
... пока хватит  :)
Пасиб
« Последнее редактирование: Октябрь 28, 2008, 12:08:34 am от AlexA »

Оффлайн keremet

  • Global Moderator
  • ROOT
  • *****
  • Сообщений: 463
  • Репутация: +237/-0
    • Просмотр профиля
    • OpenSolaris
Re: Solaris в качестве сервера локальной сети
« Ответ #4 : Октябрь 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 работает. Не знаю, будет ли он работать в следующих версиях.

Оффлайн keremet

  • Global Moderator
  • ROOT
  • *****
  • Сообщений: 463
  • Репутация: +237/-0
    • Просмотр профиля
    • OpenSolaris
Re: Solaris в качестве сервера локальной сети
« Ответ #5 : Октябрь 29, 2008, 12:00:44 pm »
В Solaris по умолчанию для графического входа пользователя запущена служба svc:/application/graphical-login/cde-login:default
Прибить иксы в Solaris можно командой svcadm disable cde-login:default.
Русскоязычное описание команд управления службами можно поискать на sunhelp.ru. Если ничего не найдете, сообщите мне и я напишу небольшую статью по ним.

Оффлайн AlexA

  • Новичок
  • *
  • Сообщений: 12
  • Репутация: +115/-0
    • Просмотр профиля
Re: Solaris в качестве сервера локальной сети
« Ответ #6 : Октябрь 30, 2008, 12:04:33 am »

"Существует программа для организации туннеля, в котором трафик жмется и шифруется..."
А по какому протоколу организуется туннель? А есть скрипт по подсчету трафика проходящего через интерфейс?
Есть ли аналог mpd5 из фреебсд?

Оффлайн AlexA

  • Новичок
  • *
  • Сообщений: 12
  • Репутация: +115/-0
    • Просмотр профиля
Re: Solaris в качестве сервера локальной сети
« Ответ #7 : Октябрь 30, 2008, 12:11:57 am »
Цитировать
В Solaris по умолчанию для графического входа пользователя запущена служба svc:/application/graphical-login/cde-login:default
Спаcибо.
Цитировать
Прибить иксы в Solaris можно командой svcadm disable cde-login:default.
Русскоязычное описание команд управления службами можно поискать на sunhelp.ru. Если ничего не найдете, сообщите мне и я напишу небольшую статью по ним.
На санхелп.ру я не нашел. Если будет возможность предоставить русское описание команд cvsadm, и желательно какими службами она управляет, буду очень признателен.
Спасибо.

Оффлайн keremet

  • Global Moderator
  • ROOT
  • *****
  • Сообщений: 463
  • Репутация: +237/-0
    • Просмотр профиля
    • OpenSolaris
Re: Solaris в качестве сервера локальной сети
« Ответ #8 : Октябрь 30, 2008, 12:13:10 pm »
А по какому протоколу организуется туннель? А есть скрипт по подсчету трафика проходящего через интерфейс?
Есть ли аналог mpd5 из фреебсд?

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

mpd5 - это PPP-сервер?

Оффлайн AlexA

  • Новичок
  • *
  • Сообщений: 12
  • Репутация: +115/-0
    • Просмотр профиля
Re: Solaris в качестве сервера локальной сети
« Ответ #9 : Октябрь 30, 2008, 09:54:10 pm »
Цитировать
Туннель организуется моей программой, которую я пишу на работе, передача данных там идет по TCP.
А можно ли подключиться к серверу виндузным клиентом?
Цитировать
Cкрипт по подсчету трафика, проходящего через интерфейс, можно получить сокращением приведенного скрипта почти в 2 раза, так как в нем идет подсчет трафика на двух интерфейсах ...
скрипт считает байтики через физический (сетевая карточке) или виртуальный (rtls0 - tun0) и-фейсы?
Цитировать
mpd5 - это PPP-сервер?
Да (клиент - сервер) и очень классно работает. Корректно закрывает зависшие сессии, автоматом создает новые виртуальные интерфейсы (ng0-ngX) и корректно их убирает ... на других XXXbsd - poptop далеко "отстает" (в свое время натрепали нервы звонками из-за пропажи инета). Может быть одновременно и клиентом и сервером. Ща стоит клиентом с АДСЛ - получаю инет и PPPoE сервером отдаю в "народ" (уже забыли мой номер телефона). Фрирадиус плюс "мистер MYSQул" с базами пользователей. Плюс апач, самба, купс, нфс, нтп, фтп, днс и дхсп, ро, цс ... так - чуть - чуть  ;). Хочется все это водрузить на солярке  :D.

Оффлайн keremet

  • Global Moderator
  • ROOT
  • *****
  • Сообщений: 463
  • Репутация: +237/-0
    • Просмотр профиля
    • OpenSolaris
Re: Solaris в качестве сервера локальной сети
« Ответ #10 : Октябрь 31, 2008, 11:35:51 am »
А можно ли подключиться к серверу виндузным клиентом?
скрипт считает байтики через физический (сетевая карточке) или виртуальный (rtls0 - tun0) и-фейсы?
Да, имеется клиентская часть, портированная на Windows. Посчет идет на сетевом уровне OSI (виртуальные интерфейсы).

В Solaris у меня скомпилировался клиент rp-pppoe-3.8 (правда пришлось внести небольшие изменения в исходный код). Используя его, я настроил выход в сеть Dom.ru. После компиляции среди исполняемых файлов оказался pppoe-server. Может быть он подойдет. Еще можно поискать инфу на docs.sun.com.

Оффлайн AlexA

  • Новичок
  • *
  • Сообщений: 12
  • Репутация: +115/-0
    • Просмотр профиля
Re: Solaris в качестве сервера локальной сети
« Ответ #11 : Ноябрь 02, 2008, 12:35:59 am »
Цитировать
Да, имеется клиентская часть, портированная на Windows. Посчет идет на сетевом уровне OSI (виртуальные интерфейсы).
А можно линк на клиента?
Цитировать
В Solaris у меня скомпилировался клиент rp-pppoe-3.8 (правда пришлось внести небольшие изменения в исходный код).
... можно и рррое-3.8?
Спасибо

Оффлайн keremet

  • Global Moderator
  • ROOT
  • *****
  • Сообщений: 463
  • Репутация: +237/-0
    • Просмотр профиля
    • OpenSolaris
Re: Solaris в качестве сервера локальной сети
« Ответ #12 : Ноябрь 05, 2008, 03:16:10 pm »
Клиент является нашей закрытой разработкой. Я не могу его предоставить. А вот ссылка на rp-pppoe-3.8 http://perm.citydom.ru/bill/rp-pppoe-3.8.tar.gz При компиляции под Solaris там надо в исходнике у одной функции, которую не найдет линковщик, убрать спецификатор static.

Оффлайн AlexA

  • Новичок
  • *
  • Сообщений: 12
  • Репутация: +115/-0
    • Просмотр профиля
Re: Solaris в качестве сервера локальной сети
« Ответ #13 : Ноябрь 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 ОПЕНБСД под солярку?
Спасибо.

Оффлайн AlexA

  • Новичок
  • *
  • Сообщений: 12
  • Репутация: +115/-0
    • Просмотр профиля
Re: Solaris в качестве сервера локальной сети
« Ответ #14 : Ноябрь 07, 2008, 01:43:11 pm »
Где под неваду - сборка 101 можно взять компилер?
Спасибо