31 дек. 2009 г.

С Новым 2010 Годом!

Пусть Новый год Вам принесет
Со снегом - смех,
С морозом - бодрость,
В делах успех,
А в духе - твердость.
Пусть все заветное свершится
И, пересилив даль дорог,
Надежда в дверь к Вам постучится
И тихо ступит на порог.
А вслед за ней войдет удача
С бокалом праздничным в руке,
Вбегут, ребячась и играя,
Сюрприз и шутка налегке.
Я от души Вам пожелаю
Любви и радостных хлопот.
Пусть Вас ничем не огорчает
2010-й год!

27 дек. 2009 г.

Как создавался легендарный трек The Prodigy - Smack My Bitch Up

Совсем недавно наткнулся на Youtuboвское видео, в котором наш соотечественник (Jim Pavloff) умудрился в Ableton разложить по семплам хит всех времен и народов Smack My Bitch Up коллектива The Prodigy. Кто то говорит, что он знал какие семплы использовались, кто то говорит, что он гений... Я считаю, что это, просто, достойное обращение с программным обеспечением и, конечно, талант...

23 дек. 2009 г.

Увеличение предельного размера вложения в Zimbra

По умолчанию в почтовой системе Zimbra установлен лимит на обработку сообщений размером до 10 Мб. Если у Вас, так сказать, "не пролазит" письмо, то значение установленное по умолчанию можно изменить. Для этого необходимо, находясь под пользователем zimbra, выполнить команду:

zmprov mcf zimbraMtaMaxMessageSize xxxxxxxx

Где xxxxxxxx - новый предельный размер в байтах.
Для расчета рекомендую использовать замечательный калькулятор.

22 дек. 2009 г.

Переход на летнее и зимнее время в маршрутизаторах Cisco

Для того чтобы заставить маршрутизатор Cisco автоматически переходить на зимнее и летнее время, необходимо, в режиме глобального конфигурирования, выполнить следующую команду:

router(config)# clock summer-time UA recurring last Sun Mar 1:00 last Sun Oct 1:00

Этой командой мы говорим маршрутизатору, что для временной зоны UA, переход на летнее время происходит в час ночи последнего воскресенья марта, а на зимнее - в час ночи последнего воскресенья октября

Обновление xen-tools в Vyatta VC5 после обновления Citrix Xenserver 5.5 Update 1

После выхода обновления update1 для Citrix XenServer 5.5 все виртуальные машины в один голос сообщили, что их xen-tools is outdated. Соответственно была предпринята попытка обновить гостевые утилиты. Операционные системы использующиеся у меня: Microsoft Windows Server 2003, Debian Lenny, Vyatta VC5. С Windows платформой никаких вопросов при обновлении не возникло, с Debian тоже, кроме того, что пришлось руками в GRUB вернуть назад ядро 2.6.29-xs5.5.0.14 вместо 2.6.29-xs5.5.0.15, которое утилиты установили самостоятельно. Заменить ядро назад пришлось в связи с его ошибками при загрузке. Пришла очередь Vyatta... Хоть этот дистрибутив базируется на Debian, скрипту установки не удалось распознать версию ОС и он отказался работать. Поэтому пришлось победить эту бяку таким способом:

sudo mount /dev/xvdd /mnt
sudo dpkg -i /mnt/Linux/xe-guest-utilities_5.5.0-464_i386.deb
reboot


После перезагрузки, XenCenter больше не жаловался на устаревшие xen-tools.

29 нояб. 2009 г.

Snapshot`ы в Citrix XenServer 5.5

Итак... В Citrix XenServer присутствует одна интересная фича - создание Snapshot`ов. Snapshot - это мнгновенный снимок состояния работающей виртуальной машины. В принципе данный функционал присутствует во всех серьезных системах виртуализации, что не могло обойти сторойной и Citrix. Но как оказалось совсем недавно (лично для меня это стало открытием), с созданием снепшотов у ксен сервера есть серьезные проблемы. А именно после создания снимка - на сетевом хранилище отбирается количество гигагбайт равное размеру существующей виртуальной машины, для которой делается снепшот. Вроде бы все хорошо, но беда в том, что после удаления снепшота размер свободного места на хранилище не увеличивается!!! А проведение снепшотов - единственный нормальный штатный способ резервного копирования виртуальных машин без их остановки. Вернуть обратно свободное место мне удалось только при помощи экспорта виртуальных машин, а потом разрушения iSCSI хранилища, пересозданием его и возвратом машин при помощи импорта. Вот такая вот open source ложка дегтя в бочке меда... Немного погуглив я наткнулся на статью на форуме Цитрикса, о том что это не баг, а именно так и должно работать... Вобщем пока непонятно как исправить такую ситуацию. Будем надеятся, что в следующих версиях этот мега правильный алгоритм работы будет переработан, потому как уж очень дорого обходится каждый новый терабайт на сетевом хранилище...

20 нояб. 2009 г.

Linksys WRT54G2

Посчастливилось заиметь данный девайс. Впечатление - позитивное. Настройки просты и, самое главное, понятны... Чего нельзя сказать о многих устройствах великой и ужасной Cisco и ее подразделений... Итог: Отличное решение для дома. Относительно недорого и со вкусом...

Настройка DHCP на базе маршрутизатора Vyatta

Пришло время отказаться от Windows 2003 DHCP Service... Выбор однозначно пал на Vyatta. Немного погуглив и потренеровавшись у меня вышла вполне пристойная замена. Подробнее.

5 сент. 2009 г.

Citrix Virtualizations Conference

3 сентября 2009 года в Киеве, Украина, прошла ежегодная конференция Citrix Virtualizations Conference, участником которой мне посчастливилось стать. В самом начале прошла презентация блейд решений, партнера Citrix компании HP. Также в программу мероприятия вошли следующие вопросы:

1. Виртуализация серверов на базе Citrix XenServer;
2. Система управления виртуальной инфраструктурой Citrix XenServer Essentials;
3. Виртуализация и доставка приложений при помощи XenApp 5 FP2;
4. Решение по информатизации небольших офисов на базе Citrix Branch Repeater;
5. Доставка виртуальных рабочих столов (VDI) при помощи технологии Citrix XenDesktop 3;
6. Представление гипервизора для Десктопов Citrix XenClient


Если с пунктов 2 по 5 все, в принципе, понятно, а если не понятно - можно почитать на официальном сайте компании Citrix, а также сайте сообщества Citrix, то пункты 1 и 6 меня особенно заинтересовали. И хочу поделиться с Вами, чем именно. Как все, наверное, заметили, сейчас становится, довольно, популярным управление виртуальной инфраструктурой через веб интерфейс. Этого функционала Citrix XenServer на данный момент лишен. Управление пулом серверов, а также отдельными серверами происходит при помощи приложения Citrix XenCenter, установленного в ОС Windows. В следующей версии, по словам сотрудников компании Citrix, этот функционал должен быть реализован. То есть теперь администратор, так сказать, сможет быть отвязан от версии ОС для управления своими виртуальными серверами, нужен будет только браузер. Также, по словам тех же сотрудников, в следующей версии Citrix XenServer, должна быть добавлена поддержка, горячо любимой мной, ОС FreeBSD в качестве гостевой системы. Это означает, что где то через полгода будет возможность делать живую миграцию ОС FreeBSD установленной в качестве виртуального сервера. Далее по пункту 6. На конференции, компания Citrix представила, так сказать, прототип клиентского гипервизора. Что собой представляет эта штука… Собственно Bare-Metal гипервизор Xen или гипервизор 1 уровня (устанавливающийся на «голое» железо), с возможностью быстрого переключения между виртуальными машинами при помощи «горячих» клавиш. Соответственно возникает вопрос о быстроте и качестве работы данного решения…



Но как видно на ролике, Windows работает со всеми эффектами и функционалом. Публичная бета версия Citrix XenClient ожидается в конце октября – начале ноября 2009 года, а сам релиз продукта в конце марта – начале апреля 2010 года. Данная технология, вероятно, может стать основой для серверной технологии доставки виртуальных рабочих столов (VDI) Citrix XenDesktop в будущем.

4 сент. 2009 г.

Настройка VPN на базе маршрутизатора Vyatta

Как получить доступ из интернета во внутреннюю сеть компании? Способов немеряно! Один из них VPN. С технологией определились - осталось выбрать инструмент для реализации... Я для решения этой задачи выбрал программный маршрутизатор Vyatta. Подробнее...

31 авг. 2009 г.

Настройка DNS сервера на FreeBSD

Довольно часто возникает вопрос о внедрении своего ДНС сервера, который мог бы не только обслуживать запросы внешних пользователей к приобретенным ДНС именам, но и обслуживать запросы пользователей в локальной сети. Такая задача относительно просто решается средствами ОС FreeBSD. Подробнее...

30 авг. 2009 г.

DocuWiki

Все, товарищи... Настал тот час. Я начал писать свои технические напоминалки в DocuWiki

28 авг. 2009 г.

Настройка SSH в Cisco

Задача:

Настроить SSH в Cisco. Сделать SSH средой по умолчанию для терминальных линий.

Решение:

1. cisco> enable
2. cisco# clock set 17:10:00 28 Aug 2009
3. cisco# configure terminal
4. cisco(config)# ip domain name test.dom
5. cisco(config)# crypto key generate rsa
6. cisco(config)# service password-encryption
7. cisco(config)# username user privilege 15 password 7 Pa$$w0rd
8. cisco(config)# aaa new-model
9. cisco(config)# line vty 0 4
10. cisco(config-line)# transport input ssh
11. cisco(config-line)# logging synchronous
12. cisco(config-line)# exec-timeout 60 0
13. cisco(config-line)# exit
14. cisco(config)# exit
15. cisco# copy running-config startup-config


Пояснение:

1. Входим в привилегированный режим
2. Устанавливаем точное время для генерации ключа
3. Входим в режим конфигурирования
4. Указываем имя домена (необходимо для генерации ключа)
5. Генерируем RSA ключ (необходимо будет выбрать размер ключа)
6. Активируем шифрование паролей в конфигурационном файле
7. Заводим пользователя с именем user, паролем Pa$$w0rd и уровнем привилегий 15
8. Активируем протокол ААА. (до активации ААА в системе обязательно должен быть заведен хотя бы один пользователь)
9. Входим в режим конфигурирования терминальных линий с 0 по 4
10. Указываем средой доступа через сеть по умолчанию SSH
11. Активируем автоматическое поднятие строки после ответа системы на проделанные изменения
12. Указываем время таймаута до автоматического закрытия SSH сессии в 60 минут
13. Выходим из режима конфигурирования терминальных линий
14. Выходим из режима конфигурирования
15. Сохраняем конфигурационный файл в энергонезависимую память

11 авг. 2009 г.

IPv4 счетчик: Версия 2

Первая версия публикации о IPv4 счетчике, созданного компанией iNetCore была посвящена тому, что я его нашел. А вторая тому, что завершил его перевод на русский и украинский языки.

10 авг. 2009 г.

Стрельбы завершены. Личный состав не пострадал.


Наконец то мне удалось протестировать, так сказать, в бою оружие вверенное мне по увольнению из части. Очки не считал но по бутылкам попадал. Докладываю, МР-654К работает без сбоев, заряда баллона хватает, приблизительно, на 50-60 выстрелов.

8 авг. 2009 г.

С праздником, связисты!

Поздравляю всех военных связистов Украины с профессиональным праздником. Пришлось немного зацепить эту тему поэтому считаю что тоже в "теме". Тоесть меня тоже с праздником.

Немного истории:

День войск связи ежегодно отмечается в Украине 8 августа согласно Указу Президента № 154/2000 от 1 февраля 2000 года. Военная связь — это неотъемлемая составляющая управления Вооруженными Силами, его техническая основа.

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

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

В конце Великой Отечественной войны почти каждый десятый воин был связистом. На сегодня около двенадцати процентов от общей численности Вооруженных Сил — это специалисты войск связи, и роль войск связи в достижении постоянной боевой готовности Вооруженных Сил выросла еще больше.

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

7 авг. 2009 г.

Восстановление разделов дисков при переустановке OpenFiler 2.3

Если Вам пришлось переустановить OpenFiler, а Вы не успели, или забыли, сделать бекап после разбивки дисковых накопителей на разделы то на помощь может придти вот такой скрипт

Делаем так в консоли:

openfiler# cd /root
openfiler# wget http://plastilin.org.ua/files/upload/remake_vol_info
openfiler# chmod 700 remake_vol_info
openfiler# ./remake_vol_info


После этого должны подключится все разделы.

Заставляем дружить Citrix XenServer 5.5 и Openfiler 2.3

Если Вы используете в своей работе программное обеспечение виртуализации Citrix XenServer, то не использовать бесплатную функцию XenMotion для "живой" миграции виртуальных машин с одного хостового сервера на другой - просто, так сказать, грешно. Итак для реализации этой функции потребуются 2 вещи:

1. Хостовые сервера под управлением Citrix XenServer - 2 шт.
2. Общее сетевое хранилише для пула серверов Citrix XenServer (SAN, NFS, FC) - 1 шт.

Если с первым пунктом все, в принципе, понятно, то со вторым придется немного подумать о реализации.
Вариантов может быть два. Либо аппаратное ХД, либо программное ХД. Аппаратные хранилища не всегда оправдывают свою цену, поэтому я решил остановить свой выбор на программной реализации, а именно openfiler 2.3. На странице закачки можно выбрать необходимую версию под свою платформу. Установка достаточно проста. Если все делать согласно инструкции то трудностей возникнуть не должно. После установки, рекомендую сразу же обновить OpenFiler через веб интерфейс, а после разметки дисков сохранить бекап, так как, в последствии, если придется переустановить хранилище оно не увидит уже созданные разделы на дисках.

А теперь о нюансах.

При использовании OpenFiler через iSCSI как общее сетевое хранилище для Citrix XenServer, возникает проблема с "отваливанием" хранилища и не восстановлением с ним связи, в случае перезагрузки хранилища. При этом в самом хранилище нельзя сделать unmap созданному для Citrix LUN.

Лечится эта беда следующим образом:

1. Заходим с консоли хранилища и вводим команду:

openfiler# chkconfig aoe off

Данной командой мы отключаем сервис ATA Over Ethernet, который перехватывает на себя управление шарингом дисков по сети и iSCSI сервис уже не может начать управление.

2. Комментируем в редакторе vi или nano, входящих в состав дистрибутива OpenFiler, для версии 2.3, строки 333-337 в файле /etc/rc.sysinit

# if [ -x /sbin/lvm.static ]; then
# if /sbin/lvm.static vgscan --mknodes --ignorelockingfailure > /dev/null 2>&1 ; then
# action $"Setting up Logical Volume Management:" /sbin/lvm.static vgchange -a y --ignorelockingfailure
# fi
# fi


3. Перезагружаемся

openfiler# reboot

После перезагрузки хранилища, оно снова станет доступным для Citrix XenServer и можно начинать создавать виртуальные машины.

П.С.

Альтернативы. Можно же использовать всеми любимый FreeNAS, ведь он тоже позволяет делать iSCSI target..., скажет кто то... Можно но FreeNAS, не делает LUN, а как раз их и требует Citrix XenServer. Также можно использовать как общее хранилище NFS, но для меня iSCSI более унифицированный, хотя по всем показателям NFS меньше грузит систему и практически не проигрывает в скорости iSCSI.

3 авг. 2009 г.

Настройка OSPF между маршрутизаторами Cisco

Задача:

Настроить динамическое обновление маршрутов между двумя маршрутизаторами при помощи OSPF на базе маршрутизаторов Cisco. Маршрутизатор №1 при OSPF анонсирует маршрутизатору №2 маршрут по умолчанию (0.0.0.0/0) и принимает по OSPF от маршрутизатора №2 все маршруты из сети 192.168.0.0/24. Маршрутизатор №2 соответственно наоборот.

Дано:

Маршрутизатор №1

Интерфейс в внешнюю сеть (FastEthernet0/0) - 10.10.10.2/32
Интерфейс к маршрутизатору №2 (FastEthernet0/1) - 192.168.0.1/32

Маршрутизатор №2

Интерфейсы к внутренним ресурсам (FastEthernet0/0) - 192.168.0.4/29
Интерфейс к маршрутизатору №1 (FastEthernet0/1) - 192.168.0.2/32

Решение:

1. На маршрутизаторе №1 проводим следующие настройки:

1. router#configure terminal
2. router(config)#interface FastEthernet0/0
3. router(config-if)#no shutdown
4. router(config-if)#description --==EXTERNAL==--
5. router(config-if)#ip address 10.10.10.2 255.255.255.252
6. router(config-if)#exit
7. router(config)#interface FastEthernet0/1
8. router(config-if)#no shutdown
9. router(config-if)#description --==TO ROUTER 2==--
10. router(config-if)#ip address 192.168.0.1 255.255.255.252
11. router(config-if)#ip ospf message-digest-key 1 md5 Pa$$w0rd
12. router(config-if)#ip ospf network point-to-point
13. router(config-if)#exit
14. router(config)#ip routing
15. router(config)#ip cef
16. router(config)#ip route 0.0.0.0 0.0.0.0 FastEthernet 0/0
17. router(config)#router ospf 1
18. router(config-router)#router-id 192.168.0.1
19. router(config-router)#log-adjacency-changes detail
20. router(config-router)#passive-interface default
21. router(config-router)#no passive-interface FastEthernet0/1
22. router(config-router)#network 192.168.0.0 0.0.0.3 area 0.0.0.0
23. router(config-router)#default-information originate always
24. router(config-router)#exit
25. router(config)#exit
26. router#copy running-config startup-config


где:

1. Входим в режим конфигурирования маршрутизатора
2. Входим режим конфигурирования интерфейса в внешнюю сеть
3. Включаем интерфейс
4. Назначаем описание интерфейса
5. Назначаем IP адрес и маску подсети
6. Выходим из режима конфигурирования интерфейса в внешнюю сеть
7. Входим режим конфигурирования интерфейса к маршрутизатору №2
8. Включаем интерфейс
9. Назначаем описание интерфейса
10. Назначаем IP адрес и маску подсети
11. Назначаем ключ аутентификации OSPF на данном интерфейсе (Ключи на обоих сторонах должны быть одинаковы)
12. Так как планируется построение OSPF только между 2 маршрутизаторами, явно указываем среду передачи
13. Выходим из режима конфигурирования внешнего интерфейса
14. Включаем маршрутизацию между интерфейсами
15. Включаем режим Cisco Express Forwarding (При включенном режиме уменьшается нагрузка на процессор маршрутизатора)
16. Устанавливаем маршрут по умолчанию. (Без него не будет работать)
17. Входим в режим конфигурирования протокола OSPF с номером 1
18. Назначаем идентификатор маршрутизатора
19. Включаем журналирование протокола и выставляем его уровень
20. Включаем принудительное подавление OSPF обновлений на всех интерфейсах
21. Разрешаем обмен OSPF обновлениями через интерфейс FastEthernet0/1
22. Анонсируем по OSPF сеть 192.168.0.0/32 в области 0 (BACKBONE) (Будут проаносированы все подсети попадающие под маску /32)
23. Включаем постоянную генерацию маршрута по умолчанию
24. Выходим из режима конфигурирования протокола OSPF
25. Выходим из режима конфигурирования маршрутизатора
26. Сохраняем конфигурацию в энергонезависимую память

2. На маршрутизаторе №2 проводим следующие настройки:

1. router#configure terminal
2. router(config)#interface FastEthernet0/0
3. router(config-if)#no shutdown
4. router(config-if)#description --==CLIENTS==--
5. router(config-if)#ip address 192.168.0.4 255.255.255.252
6. router(config-if)#exit
7. router(config)#interface FastEthernet0/1
8. router(config-if)#no shutdown
9. router(config-if)#description --==TO ROUTER 1==--
10. router(config-if)#ip address 192.168.0.2 255.255.255.252
11. router(config-if)#ip ospf message-digest-key 1 md5 Pa$$w0rd
12. router(config-if)#ip ospf network point-to-point
13. router(config-if)#exit
14. router(config)#ip routing
15. router(config)#ip cef
16. router(config)#router ospf 1
17. router(config-router)#router-id 192.168.0.2
18. router(config-router)#log-adjacency-changes detail
19. router(config-router)#passive-interface default
20. router(config-router)#no passive-interface FastEthernet0/1
21. router(config-router)#network 192.168.0.0 0.0.0.255 area 0.0.0.0
22. router(config-router)#exit
23. router(config)#exit
24. router#copy running-config startup-config


где:

1. Входим в режим конфигурирования маршрутизатора
2. Входим режим конфигурирования интерфейса к внутренним ресурсам
3. Включаем интерфейс
4. Назначаем описание интерфейса
5. Назначаем IP адрес и маску подсети
6. Выходим из режима конфигурирования интерфейса к внутренним ресурсам
7. Входим режим конфигурирования интерфейса к маршрутизатору №1
8. Включаем интерфейс
9. Назначаем описание интерфейса
10. Назначаем IP адрес и маску подсети
11. Назначаем ключ аутентификации OSPF на данном интерфейсе (Ключи на обоих сторонах должны быть одинаковы)
12. Так как планируется построение OSPF только между 2 маршрутизаторами, явно указываем среду передачи
13. Выходим из режима конфигурирования внешнего интерфейса
14. Включаем маршрутизацию между интерфейсами
15. Включаем режим Cisco Express Forwarding (При включенном режиме уменьшается нагрузка на процессор маршрутизатора)
16. Входим в режим конфигурирования протокола OSPF с номером 1
17. Назначаем идентификатор маршрутизатора
18. Включаем журналирование протокола и выставляем его уровень
19. Включаем принудительное подавление OSPF обновлений на всех интерфейсах
20. Разрешаем обмен OSPF обновлениями через интерфейс FastEthernet0/1
21. Анонсируем по OSPF сеть 192.168.0.0/24 в области 0 (BACKBONE) (Будут проаносированы все подсети попадающие под маску /24)
22. Выходим из режима конфигурирования протокола OSPF
23. Выходим из режима конфигурирования маршрутизатора
24. Сохраняем конфигурацию в энергонезависимую память

Примечание:

Управление процессом OSPF происходит при помощи следующих команд:

1. router#clear ip ospf process
2. router#show ip ospf
3. router#show ip ospf neighbor
4. router#show ip route ospf


Где:

1. Перезапуск OSPF процесса
2. Просмотр информации о состоянии OSPF процесса
3. Просмотр информации о OSPF соседях
4. Просмотр маршрутов полученных по OSPF

Настройка NAT и шейпера на FreeBSD

Задача:

Настроить NAT для локальной сети используя FreeBSD и ограничить скорость доступа при помощи шейпера на аплоад 10 мегабит в секунду, на даунлоад 1 мегабит в секунду.

Дано:

Внутренний интерфейс de0 (192.168.0.1/24)
Внешний интерфейс de1 (10.10.10.2/32)

Решение:

1. Пересобираем ядро с такими опциями:

1. options IPFIREWALL
2. options IPFIREWALL_VERBOSE
3. options IPFIREWALL_VERBOSE_LIMIT=10
4. options IPFIREWALL_DEFAULT_TO_ACCEPT
5. options IPDIVERT
6. options DUMMYNET
7. options HZ=1000


где:

1. Активируем Firewall при загрузке
2. Включаем возможность журналирования
3. Ограничиваем журналирование до 10 записей в секунду
4. По умолчанию разрешаем прохождение любого трафика, тоесть ничего не блокируем
5. Включаем демон NAT
6. Включаем демон шейпера
7. Устанавливаем таймер точности работы для шейпера (Начинает интенсивнее использоваться процессор)

2. Дописываем в файл /etc/rc.conf следующие строки:

1. ifconfig_de0="inet 192.168.0.1 netmask 255.255.255.0 up media 100baseTX mediaopt full-duplex"
2. ifconfig_de1="inet 10.10.10.2 netmask 255.255.255.252 up media 100baseTX mediaopt full-duplex"
3. defaultrouter="10.10.10.1"
4. gateway_enable="YES"
5. firewall_enable="YES"
6. firewall_type="firewall"
7. firewall_quiet="YES"
8. firewall_logging="YES"
9. firewall_script="/usr/local/etc/rc.firewall"
10. natd_enable="YES"
11. natd_flags="-f /etc/natd.conf"


где:

1. Конфигурируем внутренний интерфейс
2. Конфигурируем внешний интерфейс
3. Указываем шлюз по умолчанию
4. Активируем режим пересылки пакетов между интерфейсами
5. Активируем Firewall
6. Указываем тип Firewall (Идентификатор. Мы используем свои настройки, поэтому выбираем название отличное от стандартных типовых - OPEN, CLIENT, SIMPLE, CLOSED, UNKNOWN)
7. Активируем "тихий" режим Firewall (при загрузке/перезагрузке правил не будут выдаваться предупредительные сообщения)
7. Активируем режим журналирования
8. Указываем путь к файлу для загрузки правил Firewall
10. Активируем демон natd
11. Указываем путь к файлу для загрузки опций natd

3. Создаем скрипт /usr/local/etc/rc.firewall и добавляем в него следующие строки:

1. #!/bin/sh
2. ipfw -f flush
3. ipfw -f pipe flush
4. ipfw add 100 allow ip from any to any via lo0
5. ipfw add 200 deny ip from any to 127.0.0.0/8
6. ipfw add 300 deny ip from 127.0.0.1/8 to any
7. ipfw add 400 divert natd all from any to any via de1
8. ipfw add 500 pipe 500 ip from 192.168.0.0/24 to any via de0
9. ipfw add 600 pipe 600 ip from any to 192.168.0.0/24 via de1
10. ipfw pipe 500 config bw 1024Kbit
11. ipfw pipe 600 config bw 10240Kbit
12. ipfw add 65535 allow ip from any to any


где:

1. Указываем интерпретатор в начале скрипта
2. Очищаем правила Firewall
3. Очищаем пайпы (трубы) шейпера
4. Добавляем разрешающее правило 100 для прохода всего трафика через лупбек
5. Добавляем запрещающее правило 200 для доступа к сети 127.0.0.0/8
6. Добавляем запрещающее правило 300 для доступа из сети 127.0.0.0/8
7. Добавляем разрешающее правило 400 для запуска NAT через интерфейс de1
8. Добавляем правило 500, добавляющее пайп 500 от сети 192.168.0.0/24 через интерфейс de0
9. Добавляем правило 600, добавляющее пайп 600 к сети 192.168.0.0/24 через интерфейс de1
10. Конфигурируем пайп соответствующий номеру 500. Устанавливаем скорость 1 мегабит
11. Конфигурируем пайп соответствующий номеру 600. Устанавливаем скорость 10 мегабит.

3. Создаем файл /etc/natd.conf, описывающий настройки демона natd

1. use_sockets yes
2. same_ports yes
3. unregistered_only yes
4. interface de1


где:

1. Выделять для NAT соединений сокеты. Используется больше ресурсов, но уменьшается вероятность некорректной трансляции
2. Пытаться сохранять тот же номер порта если данные для исходящих соединений изменились, полезно для протокола RPC
3. Транслировать только "серые" адреса, читать RFC 1918
4. Указываем имя исходящего NAT интерфейса, полезно в случае если на внешнем интерфейсе IP изменяется динамически.

4. Управляем IPFW при помощи команд

1. freebsd# /etc/rc.d/ipfw start
2. freebsd# ipfw list
3. freebsd# ipfw show
4. freebsd# ipfw pipe list
5. freebsd# ipfw -f flush
6. freebsd# ipfw -f pipe flush


где:

1. Стартуем IPFW. Также доступны опции restart, stop, status
2. Просмотр правил IPFW
3. Просмотр правил IPFW с счетчиками трафика
4. Просмотр пайпов
5. Очистка в тихом режиме правил IPFW
6. Очистка в тихом режиме пайпов

2 авг. 2009 г.

Тестирование FreeBSD 7.2 AMD64 под Citrix XenServer 5.5.0-15119t

Задача:

Провести тестирование производительности виртуального сервера под управлением FreeBSD 7.2 AMD64 на базе хостовой платформы Citrix XenServer 5.5.0-15119t при помощи утилиты unixbench 4.1. А также проверить пропускную способность сети помощи утилиты iperf 2.0.4

Дано:

CPU: Intel Xeon E5310 4 x 1,6 Ghz
RAM: 5000 Mb
HDD: 40 Gb
LAN: Realtek 8139C+ 10/100BaseTX



Результаты:

Производительность: 177,9

Пропускная способность на аплоад: 239 Мегабит в секунду

Пропускная способность на даунлоад: 337 Мегабит в секунду

Примечания:









1. В целом система корректно установилась, распознала всю отведенную ей память и виртуальные процессоры. Но при всем положительном присутствует один недостаток, так как для FreeBSD недоступны XenServer Tools, машине невозможно сделать Suspend, Reboot или Shutdown. Доступны только опции Force Reboot и Force Shutdown. Вероятнее всего что не будет доступна опция LiveMigration.

2. Система на "ральном железе" показала результаты:
- Общая производительность: 409, 6
- Пропускная способность на аплоад: 937 Мегабит в секунду
- Пропускная способность на даунлоад: 583 Мегабита в секунду

3. Виртуализированная система под управлением Hyper-V показала результаты:
- Общая производительность: 144, 6
- Пропускная способность на аплоад: 46, 22 Мегабита в секунду
- Пропускная способность на даунлоад: 47, 27 Мегабита в секунду

1 авг. 2009 г.

Настройка NAT и шейпера на маршрутизаторе Cisco

Задача:

Настроить NAT для локальной сети 192.168.0.0/24 на новом маршрутизаторе и обрезать скорость на даунлоад 10 Мегабит на аплоад 1 Мегабит.

Дано:

Внутренний интерфейс (FastEthernet 0/0) - 192.168.0.1/24
Внешний интерфейс (FastEthernet 0/1) - 10.10.10.2/32

Решение:

1. router#configure terminal
2. router(config)#interface FastEthernet 0/0
3. router(config)#no shutdown
4. router(config-if)#description --==Internal==--
5. router(config-if)#ip address 192.168.0.1 255.255.255.0
6. router(config-if)#ip nat inside
7. router(config-if)#rate-limit input 1024000 192000 384000 conform-action transmit exceed-action drop
8. router(config-if)#rate-limit output 10240000 1920000 3840000 conform-action transmit exceed-action drop
9. router(config-if)#exit
10. router(config)#interface FastEthernet 0/1
11. router(config)#no shutdown
12. router(config-if)#description --==External==--
13. router(config-if)#ip address 10.10.10.2 255.255.255.252
14. router(config-if)#ip nat outside
15. router(config-if)#exit
16. router(config)#ip routing
17. router(config)#ip cef
18. router(config)#ip route 0.0.0.0 0.0.0.0 FastEthernet 0/1
19. router(config)#access-list 10 permit 192.168.0.0 0.0.0.255
20. router(config)#ip nat inside source list 10 interface FastEthernet0/0 overload
21. router(config)#exit
22. router#copy running-config startup-config


Пояснение:

1. Входим в режим конфигурирования маршрутизатора
2. Входим режим конфигурирования внутреннего интерфейса
3. Включаем интерфейс
4. Назначаем описание интерфейса
5. Назначаем IP адрес и маску подсети
6. Указываем, что это внутренний интерфейс для NAT
7. Задаем ограничение скорости на вход интерфейса (Аплоад для клиентов)
8. Задаем ограничение скорости на выход интерфейса (Даунлоад для клиентов)
9. Выходим из режима конфигурирования внешнего интерфейса
10. Входим режим конфигурирования внутреннего интерфейса
11. Включаем интерфейс
12. Назначаем описание интерфейса
13. Назначаем IP адрес и маску подсети
14. Указываем, что это внешний интерфейс для NAT
15. Выходим из режима конфигурирования внешнего интерфейса
16. Включаем маршрутизацию между интерфейсами
17. Включаем режим Cisco Express Forwarding (При включенном режиме уменьшается нагрузка на процессор маршрутизатора)
18. Устанавливаем маршрут по умолчанию. (Без него не будет работать)
19. Создаем список доступа с номер 10, в котором разрешаем подсеть 192.168.0.0 с обратной маской 0.0.0.255
20. Включаем NAT и разрешаем доступ из списка номер 10 через интерфейс FastEthernet 0/0 в режиме трансляции всех внутренних адресов в один внешний
21. Выходим из режима конфигурирования маршрутизатора
22. Сохраняем конфигурацию в энергонезависимую память

Примечания:

1. Для расчета данных по рекомендациям Cisco для ограничения скорости используются 3 числа, которые расчитываются по следующей формуле:

Число 1 = Количество бит в секунду задается пользователем
Число 2 = Число 1 / 8 * 1,5
Число 3 = Число 2 * 2


2. Информацию о работе NAT можно просмотреть командами:

router#show ip nat statistics (Общее состояние)
router#show ip nat translations (Активные NAT трансляции)

31 июл. 2009 г.

С днем СИСтемного АДМИНистратора!


Ты всегда бываешь в теме, У тебя все по системе.
Если только ты захочешь - Тыщу вирусов замочишь!
Сис-ад-мин! Сис-ад-мин! У тебя немало мыслей,
Чтоб компьютеры не висли, Провод вынешь, провод вставишь,
Все наладишь и исправишь! Все работают без страха,
Если есть администратор! Пожелаем сисадмину
Жизни радостной и длинной!»

17 июл. 2009 г.

Нормальная остановка и перезагрузка FreeBSD в Hyper-V

После установки FreeBSD в Hyper-V будет отсутствовать возможность корректно выключить или перезагрузить гостевую операционную систему. Для того чтобы вернуть эту замечательную возможность (даже для сервера под управлением FreeBSD бывает очень полезной опцией выключение или перезагрузка) необходимо:

1. Установить Windows PowerShell для работы с Hyper-V из командной строки (Пуск --- Настройка --- Панель управления --- Администрирование --- Диспетчер сервера --- Компоненты --- Добавить компоненты ---Windows PowerShell).
2. Выполняем скрипт для поиска и остановки подвисшей при перезагрузке после установки машины (Пуск --- Программы --- Windows PowerShell)

> Get-WmiObject -Namespace root\virtualization msvm_computersystem | Format-Table ElementName, ProcessId

> kill номер процесса


3. Запускаем заново машину штатными средствами Hyper-V
4. Устанавливаем в FreeBSD исходные тексты ядра
5. Модифицируем файл по пути: /usr/src/sys/dev/pci/pci.c

С отправной строки 6 000 ищем строки:

struct pci_devinfo *dinfo = device_get_ivars(child);
pcicfgregs *cfg = &dinfo->cfg;


и добавляем после них строки:

if (dinfo->cfg.vendor == 0x1011 && dinfo->cfg.device == 0x0009)if (reg >= 0x10 && reg

Сохраняем файл
6. Пересобираем ядро и перезапускаем систему.

После таких манипуляций нормальный функционал остановки/перезагрузки системы должен быть востановлен.

З.Ы. Отдельная благодарность за помощь Mamber'у

16 июл. 2009 г.

Корректное отображение содержимого файла помощи Hyper-V на русском

В стандартной поставке Hyper-V Windows 2008 Server, содержимое файла помощи отображается "кракозябрами". Для исправления данной ситуации необходимо заменить существующий файл в неправильной кодировке правильным файлом. Для этого нужно скопировать новый файл с заменой по пути Windows\Help\Mui\0419

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

7 июл. 2009 г.

Вывод логов BIND в отдельный файл в FreeBSD

Для того чтобы заставить bind выводить логи в отдельный файл необходимо:

1. Создать файл логов

freebsd# touch /var/log/named.log

2. Применить к нему права

freebsd# chown bind:bind /var/log/named.log

3. Добавить конец файла /etc/syslog.conf необходимые строки

!named
*.* /var/log/named.log

4. Перезапустить Syslog

freebsd# /etc/rc.d/syslogd restart

4 июл. 2009 г.

Скрытие иконки Opera из системного трея

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

opera:config

После этого в строке поиска настроек набрать:

Show E-mail Client

Далее нужно снять галочку и перезапустить броузер..

1 июл. 2009 г.

Синхронизация времени в FreeBSD при помощи Cron

Синронизировать время будем каждую 59 минуту часа по протоколу ntp с ресурсом ua.pool.ntp.org. Также отключим почтовые уведомления от cron. Для этого в файле /etc/crontab добавим строки:

MAILTO=/dev/null

или

MAILTO=""

*/59 * * * * root /usr/sbin/ntpdate ua.pool.ntp.org

Медленный запуск Midnight Commander в FreeBSD

Если Вы установили mc в FreeBSD и при его вызове происходит очень затяжной старт, значит возможно не до конца настроены некоторые сетевые параметры, а именно имя домена. При запуске Midnight Commander пытается разрезолвить имя машины по IP. Для устранения дефекта можно воспользоваться настройкой сетевого адаптера через Sysinstall либо самостоятельно прописать в файле /etc/resolv.conf строку:

domain dom.local

24 июн. 2009 г.

Затирание свободного места на жестком диске под управлением Windows

Для того чтобы затереть за собой высвобожденное свободное место под управлением Windows XP достаточно сделать следующее:

Пуск -> Выполнить -> cmd

Запускаем команду cipher с выбором нужного диска и параметром /w

Параметр /w позволяет удалить всю информацию в неиспользуемом дисковом пространстве на указанном томе. Если задан этот параметр, все прочие параметры игнорируются. Указанная папка может находиться в любом месте локального тома. Если это точка подключения, указывающая на другой том, то будет удалена информация в неиспользуемом пространстве этого тома.

Пример команды для затирания свободного места на диске с:\

C:\>cipher /w:с:\

16 июн. 2009 г.

Детская железная дорога в Киеве

Впервые за свою жизнь в городе-герое Киеве удалось побывать на детской железной дороге. Что Вам сказать? Супер. Понравилось очень. Все такое маленькое... Как настоящее только маленькое и всем заведуют дети. Подчиняется это чудо техники Юго-Западной железной дороге Укрзализныци. Существует, как оказалось с 1953 года. Билетики продаются как на электричку и пацаны мелкие ходят по вагонам и дыроколом прокалывают дырки - типа контроль. Поездка 10 минут, 2 станции следования, а также виадук (мост над оврагом) длиной в сто с чем то метров. Стоимость проезда в этом году была для взрослых 2 грн. 40 коп., для детей 1 грн. 80 коп. Ну уж очеееень много при современных то ценах. :-)
Добраться до этой ЖД, очень просто: станция метро Дорогожичи, а там пешочком минут 10 до улицы Тимофея Шамрыло, 4. Также можно позвонить по телефону +380 (44) 458-48-34 и уточнить все нюансы самостоятельно.

П.С. Вот чая только не хватало как то...

10 июн. 2009 г.

Встреча выпускников

Регламент проведения встречи выпускников
39 курса ВИТИ НТУУ "КПИ" 13.06.09

11.00 - 12.00 - Сбор у КПП института.
12.00 - 14.00 - Проведение официальной части (поход по памятным местам ВИТИ НТУУ "КПИ", фотографирование, проведение встреч)
14.00 - 15.00 - Трансфер к месту проведения неофициальной части (метро Нивки)
15.00 - 15.30 - Сбор участников неофициальной части возле памятника у входа в парк отдыха Нивки
16.00 - 20.00 - Культурно-развлекательная программа
20.00 - 22.00 - Общение по интересам, завершение неофициальной части

При себе иметь фотоаппарат, видеокамеру, хорошее настроение и минимум 150 грн.
Дополнительные предложения приветствуются

2 июн. 2009 г.

Полное удаление сетевого адаптера из системы

Бывает так, что на сетевом адаптере назначен айпи адрес, а его просто выдергивают из системы под управлением Windows и подключают новый. Cистема начнет жутко ругаться, а именно "IP-адрес XXX.XXX.XXX.XXX, указанный для этого сетевого адаптера, уже назначен другому адаптеру имя адаптера" если попытаться назначить старый айпи адрес на новый сетевой адаптер. Для устранения данной проблемы, необходимо удалить сетевой адаптер-призрак из реестра.
  1. В меню Пуск выберите команду Выполнить, введите cmd.exe и нажмите клавишу ВВОД.
  2. Введите команду set devmgr_show_nonpresent_devices=1 и нажмите клавишу Enter.
  3. Затем введите start devmgmt.msc и нажмите клавишу Enter.
  4. В меню Вид выберите пункт Показать скрытые устройства.
  5. Разверните дерево сетевых адаптеров.
  6. Щелкните правой кнопкой мыши затененный сетевой адаптер и выберите пункт Удалить.

24 мая 2009 г.

Рэпер Сява














Наткнулся в инете на фотку обезьянки, под которой была подпись "Репер СЯВА", стало интересно, что же это за персонаж такой... В общем провел 5 минутное расследование и выяснилось - это обычный Пермский Ди-Джей, который запел на всем понятном "матерном" языке и соответственно стал невероятно популярен. Тема песнопения посвящена пацанчикам. Кто побудил этого деятеля на такие шоу-бизнес подвиги - неизвестно но темя Насти Кменских и Потапа - На районе - видать РАСКРЫТА. Почитать более подробно можно тут . 


Видео на песню, которая открыла Сяве дорогу в жизнь

Бесплатное интернет ТВ и радио (EarthMediaCenter)


























Наткнулся на замечательную программу. Всего 400 Кб, а есть практически все телевизионные и радио каналы Украины. И самое примечательное, то что на момент публикации все каналы работали.

18 мая 2009 г.

Интересные ноты














Вроде и ноты как ноты, а если присмотреться... ;-)

Евровидение 2009

Вот и закончился 54 песенный фестиваль Eurovision, который в этом году проходил в Москве. Долгие полвека СССР, а потом Россия пыталась выиграть этот конкурс. Но как то не везло. А вот в прошлом году Дима Билан, то ли выиграл, то ли ему стаб. фонд России помог выиграть... Но суть не в том. В этом году Евровидение признано самым ярчайшим по все показателям технической оснащенности и обслуживанию... Но молодцы, Россияне, раз в полвека можно позволить себе такие растраты. Тем более, что, я думаю, ни одна из Европейских стран не пойдет на такую показуху, как Россия. Как говорится Российский Мишка не предсказуем - может и порвать. Что с успехом и сделал. Касаясь личных впечатлений - ПОНРАВИЛОСЬ. Если наша представительница, Лобода, действительно полностью сама готовилась к Евровидению без поддержки государства, то респект ей и уважуха. 12 место при такой самостоятельности - похвально. Наша соотечественница Анастасия Приходько, тоже толково, но мне кажется, что ее выступление все таки подпортил тот видеоряд, который был на фоне. Мрачноватенько было. И в восторге от Норвежца - Белоруса. Достойно выиграл. Хотя и песня и идея не особо отличались новизной. Александр Рыбак взял публику своей искренностью, лучезарной улыбкой и добротой. Вообщем побольше таких песен и конкурсов.

10 мая 2009 г.

Установка и настройка Subversion (SVN) сервера под управлением FreeBSD

Итак, что же такое SVN, Subversion, система управления версиями? Обратимся к Википедии.
Система управления версиями (от англ. Version Control System или Revision Control System) — программное обеспечение для облегчения работы с изменяющейся информацией. Система управления версиями позволяет хранить несколько версий одного и того же документа, при необходимости, возвращаться к более ранним версиям, определять, кто и когда сделал то или иное изменение и многое другое.
Есть несколько таких систем. Мы будем использовать Subversion.

1. Установка

freebsd# cd /usr/ports/devel/subversion
freebsd# make && make install && make clean


Конфигурационное меню оставляем по умолчанию.

freebsd# rehash

2. Настройка

Создадим каталог для хранения репозитория:

freebsd# mkdir -p /home/svn/repository

Добавим группу и пользователя svn для разграничения привилегий к файлам Subversion:

freebsd# pw group add svn
freebsd# pw user add svn -g svn -s /usr/sbin/nologin -d /home/svn/repositories/


Добавим в файл /etc/rc.conf добавляем следующие строки:

# Стартуем SVN при загрузке
svnserve_enable="YES"
# Указываем путь к каталогу, где будет хранится репозиторий
svnserve_data="/home/svn/repository"
# Указываем пользователя и группу для определения привелегий доступа к файлам SVN
svnserve_user="svn"
svnserve_group="svn"

Создадим репозиторий:

freebsd# svnadmin create /home/svn/repository/

Выставим права:

freebsd# chown -R svn:svn /home/svn/

Настроим авторизированный доступ к репозиторию:

freebsd# cd /home/svn/repository/conf/
freebsd# ee svnserve.conf

Раскомментируем, изменяем строки, как показано ниже, и сохраняем файл.

anon-access = none
auth-access = write
password-db = passwd


Создаем пользователей, для доступа к SVN:

freebsd# cd /home/svn/repository/conf
freebsd# ee passwd


Добавляем нужное количество пользователей в формате логин = пароль и сохраняем:

developer = Pa$$w0rd

Стартуем SVN сервер:

freebsd# /usr/local/etc/rc.d/svnserve start

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

P.S. Для тех кто разрабатывает веб проекты и хранит репозиторий на том же сервере где находится веб сервер, для удобства, можно сделать автоматическую публикацию текущего состояния разрабатываемого проекта на веб сервере после утверждения изменений в SVN клиенте. Для этого необходимо сделать следущее:

freebsd# cp /home/svn/repository/hooks/post-commit.tmpl /home/svn/repository/hooks/post-commit
freebsd# chmod 755 /home/svn/repository/hooks/post-commit
freebsd# ee /home/svn/repository/hooks/post-commit

Привести содержимое файла к следующему виду.

#!/bin/sh
/usr/local/bin/svn up '/usr/local/www/nginx/vhosts/plastilin.org.ua/html' --username 'developer' --password 'Pa$$w0rd'


Находясь в корневой директории веб сервера (/usr/local/www/nginx/vhosts/plastilin.org.ua/html) создать рабочую копию проекта, выполнив команду:

freebsd# /usr/local/bin/svn co file:///home/svn/repository --username 'developer' --password 'Pa$$w0rd'

Перейти в корневую директорию веб сервера. Далее в каталог repository и все содержимое перенести на уровень выше, тоесть в папку /html. Удалить каталог /repository в корневой директории веб сервера.


Теперь после проведения коммита последняя версия проекта будет публиковаться на веб сервере.

9 мая 2009 г.

С Днем Победы!



















Что же такое Родина? На мой взгляд - это то, за то что можно положить жизнь, не жалея об этом, как в свое время делали наши Деды и Прадеды. Теперь их осталось совсем чуть-чуть. В основном на современных шествиях ветеранов идут уже не фронтовики, а дети войны. А мы и про них совсем забываем. Плохо... Приятно, что в этом году в Киеве хоть немного внимания уделили тем, кто отвоевывал нашу землю и поднимал ее из руин после войны. С праздником, дорогие фронтовики и ветераны.

7 мая 2009 г.

Проект "Качели"
















Вот таким, приблизительно, образом все делается в нашей стране... да и не только в нашей...

18 апр. 2009 г.

Новый путь для знакомств



Вот таким образом кому то кажется мы будем знакомиться в ближайшем будущем, либо обмениваться контактами.

13 апр. 2009 г.

Ошибка 0x80072EE2 при установке Google Chrome

Не мог установить Google Chrome. Выдавалась ошибка 0x80072EE2. Работаю через прокси. Удалось устранить через снятие галочки в пункте "Отключение автоматического определения параметров" прокси сервера. Мне кажется та же самая причина в ошибке установки плагина видео чата к Google Talk.

Как отключить:

Internet Explorer -> Сервис -> Свойства обозревателя -> Подключения -> Настройка сети -> Автоматическое определение параметров

9 апр. 2009 г.

Polling в FreeBSD

Теория:


- Режим прерывания (IRQ):

По умолчанию сетевой интерфейс работает в режиме прерывания (IRQ). Выглядит это примерно так:

1. Интерфейс отправляет или получает пакет.
2. Интерфейс генерирует прерывание (IRQ) в ответ на это событие.
3. ЦП останавливает свою текущую деятельность, чтобы обработать прерывание.
4. После обработки прерывания сгенерированого интерфейсом ЦП продолжает свою работу.

Такой вариант обработки пакетов сетевым интерфейсом подходит для низкой активности сети (до 10 тысяч пакетов в секунду). При увеличении количества пакетов для обработки интерфейсом начнется их отбрасывание, в связи с тем что сам интерфейс не будет успевать генерировать прерывания или ЦП не будет успевать обрабатывать их...

Вывод: Система неуправляема. Плюс низкая пропускная способность.


- Режим опроса (Polling):

Итак что же такое поллинг (polling)... Поллинг в FreeBSD это режим опроса системой сетевого интерфейса с определенной частотой на наличие на нем сетевых пакетов. Работает это приблизительно таким образом:

Система отключает на сетевом интерфейсе прерывания (IRQ), а вместо этого сама опрашивает сетевой интерфейс на наличие в его буфере сетевых пакетов. И если такие присутствуют - она их обрабатывает. Выглядит это примерно так:

1. Сетевой интерфейс работает в режиме прерываний.
2. При приеме/отправке пакета, сетевой интерфейс регистрирует себя в poll списке и отключает прерывания.
3. Через определенные таймауты система опрашивает интерфейс на предмет новых пакетов.

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

Есть один момент, на который нужно обратить внимание. Не все сетевые адаптеры поддерживают режим поллинга список можно просмотреть на странице мануала к поллингу


Настройка:


1. Пересобираем ядро с опциями:


options DEVICE_POLLING (включение режима опроса)
options HZ=1000 (таймер проверки 1000 равен пропускной способности 100 Мбитной сети подробнее. Тоесть если скорость больше 100 мегабит нужно выставить большее значение)


2. Включаем поддержку поллинга на интерфейсе


В старых версиях поллинг включается через файл /etc/sysctl.conf
нужно добавить строку

kern.polling.enable=1

В новых версиях включается через Ifconfig

freebsd# ifconfig em0 polling

Для автозагрузки поллинга в файле /etc/rc.conf прописываем:

ifconfig_em0="polling"

также не забываем добавить в этой строке сетевые параметры типа IP адрес, маска подсети и тд.


3. Тюнингуем параметры polling`a


Все настройки производятся в файле /etc/sysctl.conf

kern.polling.user_frac - определяет использование процессорного времени между ядром и пользовательскими процессами. Чем меньше значение, тем меньше времени будет уделено пользовательским процессам и больше ядру. Стоит заметить, что если у одного из уровней задач (пользовательский) не имеет достаточно работы, то остатки процессорного времени переходят другому (ядру), так что процессорное время не теряется. По умолчанию, значение этой переменной - 50. Меньшее значение стоит выставлять на маршрутизаторах. Допустимый предел значений от 1 до 99.
kern.polling.handlers - определяет количество устройств, которые могут быть зарегистрированы как polling.
kern.polling.burst - максимальное количество пакетов, которое может быть обработано с одного устройства за каждый проход. Это значение подстраивается ядром, основываясь на текучем уровне загрузки, мощности процессора, потока трафика и т.д.
kern.polling.burst_max - определяет верхнюю границу kern.polling.burst.
kern.polling.reg_frac - в процессе опроса не проверяется состояние регистров на ошибки, текущее состояние связи и.т.д., это значение указывает, как часто (каждые reg_frac / HZ секунд) проводить подобные проверки. Значение по умолчанию - 20.
kern.polling.idle_poll - определяет, использовать ли опрос устройств в свободное время. Нет причин отключать его, разве что для проведения тестов или при возникновении ошибок. По умолчанию включено.
intr_queue_maxlen - очередь для входящих пакетов (аналогична backlog под Linux). Изменяется при помощи sysctl: net.inet.ip.intr_queue_maxlen. Значение по умолчанию = 50, что очень мало.
intr_queue_drops - статистика по работе intr_queue_maxlen, отображает количество отброшенных пакетов из очереди. Посмотреть её можно через sysctl: net.inet.ip.intr_queue_drops.
net.inet.tcp.rfc1323 - контролирует работу временной марки и масштабируемого окна. (0 - выключено, 1 - включено)
kern.ipc.maxsockbuf - максимальный размер TCP буфера.
net.inet.tcp.recvspace - размер TCP буфера для приема. Влияет на размер "скользящего окна".
net.inet.tcp.sendspace - размер TCP буфера для отправки. Влияет на размер "окна переполнения".

Например:

net.inet.ip.intr_queue_maxlen=5000
kern.ipc.maxsockbuf=8388608
net.inet.tcp.sendspace=3217968
net.inet.tcp.recvspace=3217968
net.inet.tcp.rfc1323=1


Много информации было почерпнуто отсюда. За что автору спасибо.

8 апр. 2009 г.

Симулятор американских горок

Вслед за симулятором Советских игровых автоматов, я нарыл симулятор Американских горок. Вау. Жаль только не шатает и не дергает как в реальной кабинке... а так монитор побольше - и супер.




5 апр. 2009 г.

Советские игровые автоматы

Искал в сети где можно покататься на автодроме, может помнит кто-то электромашинки с крюками, на шел в Киеве в парке Нивки (пр. Победы, 82, (044)456-92-46, (044)456-43-31). А параллельно наткнулся на очень интересную штуку - симулятор старых советских игровых автоматов. Ностальгия, блин...


Сайт разработчика

3 апр. 2009 г.

Отключение вывода информации ядра при загрузке FreeBSD

Для того чтобы отключить вывод информации, которую выдает ядро системы FreeBSD при загрузке системы нужно:

1. В файле /etc/ttys находим строку

ttyd0 "/usr/libexec/getty std.9600" dialup off secure

изменяем на

ttyd0 "/usr/libexec/getty std.9600" vt100 on secure

2. В файле /boot/loader.conf добавляем следующую строку

console="comconsole"

3. Перезагружаемся и видим только старт загрузчика...

Береги себя

Серия видео о вреде... Без комментариев, стоит задуматься, пожалуй.


Алкоголь


Курение

2 апр. 2009 г.

Вывод Syslog на 7 консоль FreeBSD

Для того чтобы логи не сыпались на нулевую консоль, можно перевести журналирование на любую другую консоль, в нашем случае на 7. Для этого отключаем 7 консоль в файле /etc/ttys Находим строку:

ttyv7 "/usr/libexec/getty Pc" cons25r on secure

и изменяем значение on на off. Теперь можно перенаправить Syslog. Для этого в файле /etc/syslog.conf
находим строку:

.*err;kern.warning;auth.notice;mail.crit /dev/console

и приводим к виду:

*.*.err;kern.warning;auth.notice;mail.crit /dev/ttyv8

Перезагружаем Syslog:

freebsd# /etc/rc.d/syslogd restart

Комбинацией Alt+F8 переходим на 7 консоль и видим журнал системы

Украшение FreeBSD

1. Украшение консоли
Увеличение разрешающей способности в FreeBSD:


- Пересобрать ядро с опциями:

options VESA
options SC_PIXEL_MODE

Также можно изменить цвет шрифта по умолчанию добавив в ядро:

options SC_NORM_ATTR=(FG_GREEN|BG_BLACK)

Что означает: Зеленый шрифт на черном фоне.

- Добавить в /etc/rc.conf строку:

allscreens_flags="MODE_xxx"

Например для отображения 800х600 будет режим MODE_320

Режим отображения можно выбрать просмотрев варианты командой:

freebsd# vidcontrol -i mode

Изменение стандартного курсора на мигающий:

- Добавить в /etc/rc.conf строку:

allscreens_flags="-с destructive"

Изменение цвета шрифта и фона:

- Добавить в /etc/rc.conf строку:

allscreens_flags="lightgreen black"

Так будет выглядеть светлозеленый на черном.
 

Примечание!
В /etc/rc.conf параметр allscreens_flags может быть только один. Тоесть для того чтобы одновременно сделать мигающий курсор, изменить разрешение экрана и изменить цвета консоли, нужно привести строку allscreens_flags к виду:

allscreens_flags="-с destructive lightgreen black MODE_320"

Где:
MODE_xxx - режим отображения
-c destructive - мигающий курсор

2. Украшение загрузки
Добавление заставки (SplashScreen) при загрузке:


В файле /boot/loader.conf добавить строки:

splash_bmp_load="YES"
bitmap_load="YES"
bitmap_name="/boot/splash.bmp"

Добавить в каталог /boot файл картинки-заставки в формате .bmp, разрешением 256 цветов и размером, который установлен в режиме отображения в параметре allscreens_flags файла /etc/rc.conf (Для более ровного отображения) Например если у Вас задан режим MODE_320, то картинка должна быть размером 800х600)

Изменение логотипа BSD при загрузке:

В файле /boot/loader.conf добавить строку:

loader_logo="beastie"

При загрузке вместо буковок BSD появится, привычный по предыдущим версиям, чертенок.

Очистка экрана от информации после загрузки:

Выполнить следующие команды:

freebsd# touch /etc/issue
freebsd# clear > /etc/issue

После загрузки будет видна только строка для авторизации.

Изменение времени отображения меню загрузки:

В файле /boot/loader.conf добавить строку:

autoboot_delay="*"

Где * - время отображения в секундах.

1 апр. 2009 г.

Обновление портов FreeBSD через прокси-сервер

После установки системы возникает потребность в обновлении коллекции портов FreeBSD. В случае если у нас директ доступ к интернету все довольно прозаично:

Если запускаем обновление впервые:

freebsd# portsnap fetch
freebsd# portsnap extract
freebsd# portsnap update

Если уже единожды запускали:

freebsd# portsnap fetch
freebsd# portsnap update


Но вот откуда ни возьмись у нас на пути повился пресловутый прокси-сервер, да еще и с авторизацией... Что же делать...? Все довольно просто

freebsd# ee /etc/csh.cshrc

Добавляем туда несколько строк:

setenv HTTP_PROXY http://usename:password@xxx.xxx.xxx.xxx:yyyy
setenv FTP_PROXY http://username:password@xxx.xxx.xxx.xxx:yyyy


Где:

xxx.xxx.xxx.xxx - IP адрес прокси-сервера
yyyy - порт прокси-сервера
username - имя пользователя
password - пароль пользователя

После этого можно пробовать запускать обновления...

31 мар. 2009 г.

Перекомпиляция ядра FreeBSD

Для проведения перекомпиляции ядра FreeBSD необходимы следующие действия:

1. Установить исходники системы. Для этого установить диск с FreeBSD и выполнить:

freebsd# mount /cdrom
freebsd# cd /cdrom/7.0-STABLE-200805/src/
freebsd# ./install.sh all


2. Для перестраховки создать отдельную директорию с будущим ядром, скопировать туда оригинал ядра и создать на него символическую ссылку для последующей компиляции.

freebsd# mkdir /root/kernel
freebsd# cd /root/kernel
freebsd# cp /usr/src/sys/i386/conf/GENERIC /root/kernel/MYKERNEL
freebsd# ln -s /root/kernel/MYKERNEL /usr/src/sys/i386/conf/MYKERNEL


3. Добавить или удалить компоненты ядра, не забыв изменить пункт ident на новое имя ядра

ident MYKERNEL

4. Собрать ядро

freebsd# cd /usr/src/
freebsd# make buildkernel KERNCONF=MYKERNEL


5. Установить ядро

freebsd# make installkernel KERNCONF=MYKERNEL

6. Перезагрузиться

freebsd# reboot

Или эту процедуру можно проделать альтернативным, на мой взгляд, более удобным способом:

Пункты 1, 2, 3 - идентичны. Поправка: Для сборки ядра нижеописанным способом, достаточно, через Sysinstall, установить только исходники самого ядра, а именно /src/sys

4. Создаем конфигурацию ядра

freebsd# cd /usr/src/sys/i386/conf/
freebsd# /usr/sbin/config MYKERNEL

5. Переходим в папку с созданой конфигурацией ядра

freebsd# cd ..
frebsd# cd /compile/MYKERNEL

6. Собираем ядро

freebsd# make cleandepend
freebsd# make depend
freebsd# make
freebsd# make install

7. Перезагружаемся

freebsd# reboot

Основной источник