Поиск

Тоже Админ

Опыт — это имя, которое мы даём своим ошибкам

Автор

vitlito

Домашний роутер на Linux (Linux Home Router)

Этот гайд я хотел написать очень давно. В свое время много искал в инетах, находил кусками по разным аспектам создания домашнего роутера на Linux, но вот полноценного гайда от и до так и не нашел.

Актуальность

В настоящее время скорости подключения предоставляемые провайдерами выросли на порядки и с другой стороны прибавилось различных устройств дома, которые потребляют этот интернет: если например четверо жителей в квартире, у каждого телефон, у папы еще и планшет и у дочки планшет и еще есть пару настольных компьютеров или ноутбуков, то это уже 8 устройств потребляющих интернет. Кроме этого еще и тип потребляемого контента изменился, от страниц HTML все больше переходит к прослушиванию музыки, просмотру видео, или же загрузки видео. Одним слово скорость и обьемы передачи данных выросли значительно. Все это накладывает определенные требования на роутеры. Обычные общедоступные роутерытипа D-Link, TP-Link, ASUS и т.п., купленные 2-3 года назад уже захлёбываются от пропускаемого через них трафика. Их мощности уже не позволяют обрабатывать такой поток, они просто не рассчитаны на него. Все это  выражается в разного рода задержках, потере пакетов, ухудшении качества видео, потере кадров, глюках в играх и тому подобных проблем. Роутеры нового поколения уже рассчитаны на подобный трафик, но стоят денег и немалых. От 10 до 30 тысяч рублей. Но ведь есть же другой путь. У многих еще валяются в кладовке забытые старые компы, где-то еще в разобраных корпусах, а если не валяются, то в изобилии полно преложений на том же Авито о продаже по цене около 1 тыс. рублей. А ведь из этого компа можно собрать роутер на операционной системе Linux, и работать он будет на порядок быстрее самого быстрого роутера, даже тот же Pentium 4. В настройке нет ничего сложного, и любой человек с минимальными знанимями в области информационных технологий, который отличает IP адрес от MAC адреса сможет настроить себе роутер на LINUX, за час, два и забыть обо всех проблемах с инетом навсегда, при этом не тратя безумных денег. Вот об этом и будет наш гайд.

Железо

Подойдет практически ЛЮБОЙ компьютер. Главное требование — наличие 2-х сетевых карт. Одна может быть встроенная, вторую можно купить за 100-250 рублей и вставить в PCI (PCI-E) слот. Не рекомендую использовать USB-сетевые карты, хотя это и возможно, но в этом гайде я тонкости работы с USB картами описыать не буду.
В нашем гайде мы будет использовать Linux дистрибутив Centos 7, который имеет минимальные рекомендуемые системные требования:

Память: 1ГБ на логический ЦПУ (ядро процессора)
Диск: 20 ГБ

Одно замечание. Обычно роутеры стоят в квартире: в коридоре или в комнате и шум от работающих вентиляторов (а компьютере их как минимум 2) может здорово раздражать. Если комьютер старый, то рекомендую заменить вентиляторы. Разберите блок питания, надо открутить всего 4 болта, и почистить или поменять (открутить еще 4 винта и скрутить 2 проводка)  вентилятор на блоке питания. Тоже сделать с вентилятором на процессоре. На работу самого роутера это никак не повлияет.

Допущения

В своем гайде я предпологаю, что провайдер предоставляет вам подключение по читому Ethernet, без всяких PPOE и других VPN технологий и аутентификация абонента происходит по MAC адресу. Т.е. на внешнем интерфейсе роутера должен быть определенный MAC адрес, чтобы работал интеренет. Никаких паролей не требуется. Сейчас так подключено 90% всех пользователей интернета в России.

Загрузка образа и создание загрузочной флешки

Образ загружаем с официального сайта, загружаем минимальную конфигурацию:
http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso

Загружаем устанавливаем и запускаем программу записи образов дисков на флешку, вставляем флешку — все информация на флешке будет перезаписана.

https://sourceforge.net/projects/win32diskimager/

1 — нажимаем на кнопку с папкой, выбираем загруженный образ. По умолчанию программа показывает только файлы с расширением .img поэтому выбираем показать все файлы *.*
2 — выбираем флекшу для записи
3 — нажимаем записать. Процесс записи начнется и в результате у вас будет загрузочная флешка.

Установка Centos 7

Зайдите в БИОС и установите загрузку с флешки с Centos.

Не хочу останавливаться подробно на установке, есть достаточно подробное описание с картинками на русском языке: https://sysadmin-note.ru/ustanovka-centos-7/

Там все просто, нам подойдут настройки по умолчанию, как раз как описано.

Подключение в существующую сеть

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

Нам надо закачать необходимые пакеты, поэтому подключите компьютер к существующей сети ВНЕШНИМ интерфейсом. Предпологаю, что у вас есть доступ в интернет и IP адреса выдаются существующим роутером.

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

ip a

она покажет сетевые интерфейсы и их настройки:

[user1@router ~]$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:50:db:00:70:5e brd ff:ff:ff:ff:ff:ff
inet 192.168.33.1/24 brd 192.168.33.255 scope global noprefixroute enp1s0
valid_lft forever preferred_lft forever
3: enp2s0: <BROADCAST,MULTICAST,DOWN,LOWER_DOWN> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether f4:6d:04:3e:5e:9e brd ff:ff:ff:ff:ff:ff
valid_lft 26366sec preferred_lft 26366sec

Что же мы здесь видим? lo  — внутренний интерфейс, присутствует по умочанию нам особенно не интересен, enp1s0 и enp2s0 это и есть наши сетевые карты причем одна в состоянии UP с настроенным внутренним IP адресом — это та, которую мы подключили в нашу сетку (будущий внешний интерфейс), а вторая в состоянии DOWN это будущий внутренний интерфейс, к которому не подключен кабель.

Если это так то можете пропустить следущий шаг. Если вы видите интерфейс в состоянии UP  но inet адреса на нем нет, надо будет его настроить.

Предварительная настройка интерфейса

Заходим под пользователем root. Даем команду nmtui, открывается меню настройки интерфейсов. Вибираем Edit Connection, нажимает Enter.

В списке интерфейсов вибираем нужный нам интерфейс, нажимаем Enter

Перемещение по пунктам меню осуществляеся с помощью клавиши Tab. Переходим на пункт Show напротив IPv4 CONFIGURATION, нажимаем Enter.

Выставляем или убеждаемся, что настойки выставлены  IPv4 CONFIGURATION — Automatic, Automatically connect — X ( с помощью клавиши пробел), Available for all users — X. Перемещаемся на ОК и нажимаем Enter.

Опять попадаем в меню выбора интрефейсов нажимаем Back, попадаем в главное меню, стрелочкой вниз доходим до Quit, нажимаем Enter. Выходим из программы.

Инициируем сетевые интерфейсы, чтобы применились настройки, даем команду

service network restart

Снова даем команду ip a убеждаемся что ip адрес получен.

 

Powershell Hash Tables: Нахождение числа уникальных элементов в массиве.

Нахождение числа уникальных элементов в массиве (по другому нахождение числа вхождений) является тривиальной задачей для программистов. Но только я не программист, а системный админ, и хорошей алгоритмической подготовкой похвастаться не могу. Поэтому пришлось «идти» с самого начала. Весь код примеров приведен на Powershell.

Задача: Есть одномерный массив повторяющихся элементов, нужно найти сколько раз каждый элемент содержится в массиве.

Решаем задачу «в лоб»: Создаём временный массив уникальных значений. В цикле перебираем исходный массив, для каждого элемента проверяем есть ли соответствующий элемент в массиве уникальных значений, если нет — добавляем со значением повторений 1, если есть — увеличиваем значение. Выводим результаты.

Листинг скрипта:

#исходный массив

$InputArray = @(«Apple», «Orange», «Blackberry», «Cranberry»,»Orange»,»Apple»,»Orange»,»Apple»,»Blackberry», «Orange», «Blackberry»,»Apple»,»Orange»)

# два массива уникальных значений: один содержит имя, второй содержит число вхождений соответствующего ему элемента из первого массива, т.е. если $_items[1] = «Apple», то $_counts[1] = сколько раз встречается слово «Apple» в исходном массиве.
[string[]]$_items = @()
[int[]]$_counts = @()

#главный цикл: перебираем элементы входного массива

for ($i = 0; $i -le ($InputArray.Count-1); $i++) {

#переменная $flag будет означать, что элемент исходного массива уже есть во временном массиве уникальных значений, пока считаем, что нет

$flag = $false

# второй цикл: сравниваем текущий элемент исходного массива со всеми элементами массива уникальных значений
for ($j = 0; $j -le ($_items.Count-1); $j++) {

# если элемент уже есть, увеличиваем счетчик вхождений на единицу и выставляем флаг
if ($InputArray[$i] -eq $_items[$j]){$_counts[$j] += 1; $flag = $true}
}

# если нет, то добавляем текущее значение исходного массива в массив уникальных значений $_items и соответственно добавляем новый элемент в массив числа вхождений, добавляемый элемент равен 1.
if (!$flag) {$_items += $InputArray[$i]; $_counts += 1}
}

# выводим результаты из массивов уникальных значений: имя и число вхождений используя оператор форматирования.
for ($z =0; $z -le ($_items.Count-1); $z++) {
«{0, -11} {1,0}» -f $_items[$z],$_counts[$z]
}

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

Однако есть более изящное решение с помощью hash tables, (что это такое читать здесь) намек на которое я нашел на одном из сайтов по программированию. Оно показывает «силу и мощь» этого типа массивов, которую я не понимал раньше.

Вот листинг скрипта:

# тот же исходный массив

$InputArray = @(«Apple», «Orange», «Blackberry», «Cranberry»,»Orange»,»Apple»,»Orange»,»Apple»,»Blackberry», «Orange», «Blackberry»,»Apple»,»Orange»)

# создаем пустую таблицу hash table, в которой Name (ключ) будет самим элементов, а Value (значение) числом вхождений
$hash = @{}

# главный цикл перебора значений исходного массива
foreach ($i in $InputArray) {

# если hash table содержит ключ равный текущему значению исходного массива
if ($hash.ContainsKey($i)) {
# добавляем к значению (Value), соответствующему этому ключу единицу
[int]$hash.$i += 1
#если такого элемента нет
} else {

# добавляем его в hash table со значением 1
$hash.Add($i,»1″)
}
}

#выводим результат
$hash

Удобство hash tables заключается в наличии встроенных методов манипулирования и поиска элементов в массиве, делающих нашу жизнь гораздо проще. В нашем случае мы использовали методы ContainsKey и Add. Посмотрите насколько упростилась программа. Даже вывод результатов делается одной командой.

Для чего все это спросите Вы? Однажды пришлось проанализировать лог NGINX длиной порядка 200000 строк и выяснить как часто и с каких адресов запрашиваются rss фиды, индикатором служило слово «rss» в URL запроса. Лог примерно вот такого вида:

185.58.220.17 — — [05/Jul/2015:23:30:34 +0300] «GET /images2/2010/07/object181758/machiya.jpg HTTP/1.1» 200 11282 -:/opt/site/production/static/images2/2010/07/object181758/machiya01.jpg 0.000 img.site.ru «-» «-»
185.58.220.17 — — [05/Jul/2015:23:30:34 +0300] «GET /letters/2013/04/216603.html HTTP/1.1» 200 57741 127.0.0.1:80:/usr/local/etc/nginx/html/letters/2013/04/216603.html 0.348 reports.site.ru «-» «Mozilla/5.0 (compatible; SsedmsmdrushBot/0.98~bl; +http://www.ssedmsdrush.com/bot.html)»
185.58.220.17 — — [05/Jul/2015:23:30:34 +0300] «GET /letters/2013/11/223387.html HTTP/1.1» 200 55577 127.0.0.1:80:/usr/local/etc/nginx/html/letters/2013/11/223387.html 0.288 reports.site.ru «http://www.yandex.ru/clck/jsredir?from=www.yandex.ru%3Bsearch%2F%3Bweb%3B%3B&text=&etext=740.rruxeQMxXnGDCFkLOmpovZSLWSOcMbXBGch8ezg5E8LcDr7M_DkeP5p8RglYjAX36N40Ts1y8qPuN-it2oIUVQ.e56688d81f4274395af3710a1ea30dc931d45d75&uuid=&state=PEtFfuTeVD5kpHnK9lio9daDl0Ow0EQqBnwXqr2CGSTlhSDEzIy2U7BBTY65_y93zO-4qmoEKd5DN1w5_BtxXw&data=UlNrNmk5WktYejR0eWJFYk1Ldmtxay1TQmo2RnY2UE1raExwYThnYVg3TS13U2RyaUlxVzYyYWxHWHdZYk5XMldocXJndzBYZFhpUzRwcW1PVTk3WElvb2E4WTNKc19jRHNXMF9ISnMzQ2JRd0NKS1pTMlNfQWo5MzZGTHdlcndHeV9BSjlnRWoxODBRX3Vidzc1NVFn&b64e=2&sign=51589da1206acaf7697e434c6b039c8f&keyno=0&cst=AiuY0DBWFJ7IXge4WdYJQSaYtyyri96FAIuf-UMAH5buUw_Rs6mbTZdxm79dh8mK99ywIHrr1UV_mQBNwaEnOKNhF0N34tYxyBz2xJtKA8iYJXpp1fS4Jvi8aHl4Z44SAM3Jg7vQCKWOmRig9lZXi-4gGOLeFXL5I0x_blQSb1wWJGKy08FVcmJv_FyzO5QCQYobfwJSu-GYQAT-Bw48_A&ref=x632n4e4fcnc707jsJDC5Elgs_CqGrBcokCPSVNnxK3wD7bc9A9w8TctU497VDfTjUEiUpshwNuuwpmu-Mx5sJgVsArIMkU_0sYUMW8btDKE8OKy9jd6PMVRwoAxI4M-luVtkiBtwS1MriX4IjQJ-duu2llwzL1DaYUS8AhGDU1AvNetWK8w3dDkrznsAyFTl9wcf8T1Ce4PpS9ZTfWrjmhXmAkDiWYRf-VC0eMO65o&l10n=ru&cts=1436128226138&mc=4.969413651789076&#187; «Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.125 Safari/537.36 OPR/30.0.1835.88»

Вот для подобных анализов логов и нужно использовать подход с использованием hash tables.

Таким образом хочу отметить, что hash tables  — это очень мощный и универсальный механизм в Powershell и других языках программирования.

 

 

Powershell: Вывести список всех часовых поясов (time zones), определенных в Windows

При подготовке образа в Windows System Manager необходимо настроить часовой пояс. В Windows часовые пояса определены по их ID, но это не цифровой ID, а буквенный. Чтобы посмотреть все возможные часовые пояса, определнные в Windows можно использовать команду Powershell: [System.TimeZoneInfo]::GetSystemTimeZones() Команда выведет список часовых поясов в виде: Id : Vladivostok Standard Time DisplayName : (UTC+10:00) Vladivostok, Magadan (RTZ 9) StandardName : Russia TZ 9 Standard Time DaylightName : Russia TZ 9 Daylight Time BaseUtcOffset : 10:00:00 SupportsDaylightSavingTime : True и да, это будут обьекты а не просто текст. Казалось бы зачем смотреть чавые пояса, на конкретной машине, они определены раз и на всегда и не меняются. Ничуть не бывало. Дело в том, что они МЕНЯЮТСЯ. Вспомните например чехарду с отменой перевода на зимнее время в России в последние годы. Из-за бестолковых чиновников, разработчикам приходится выпускать патчи, которые меняют свойства заранее определенных часовых поясов. И если у вас установлены последние патчи, то вы получите самую свежую информацию из самой ОС. Просмотреть список часовых поясов можно и на сайте Microsoft, перейдя по этой ссылке.

Windows 7: Сброс счётчика активации (rearm count)

Иногда в силу различных причин у Windows слетает активация. Лицензионный статус такой системы становится  «Non-genuine». Причины могут быть различные: установка нескольких новых устройств, иногда просто виртуалльных, установка некоторых программ, драйверов, завершение пробного периода. В этом случае Windows делает обои рабочего стола черными и показывает пугающую надпись типа «Ваша копия Windows не является подлинной»,  «Возможно вы стали жертвой подделки…» и тому подобное. В таком случае можно начать заново  пробный период Initial Grace Period. Такая процедура называется rearm. Выполняется она с помощью команды slmgr.vbs /rearm отданой из командной строки в превилегированном режиме (с правами администратора). Сбросить пробный период можно всего три раза, после каждого специалный счетчик уменьшается на еденицу. В конечном итоге может возникнуть ситуация когда rearm count равен нулю, а лицензионный статус все еще «Non-genuine» или ошибка какая-нибудь. В таком состоянии её нельзя подключить к KMS серверу, сменить ключ активации  и т.п.

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

Проблема в том, что это куст реестра защищен от изменения/удаления и сделать это можно только из режима восстановления Windows, когда реестр отключен.

Чтобы сбросить счетчик rearm count сделайте следующее:

Создайте в корне системного диска bat файл reset-rearm.bat следующего содержания:

reg load HKLM\MY_SYSTEM "%~dp0Windows\System32\config\system"
reg delete HKLM\MY_SYSTEM\WPA /f
reg unload HKLM\MY_SYSTEM

Перезагрузите компьютер и нажмите клавишу F8.
1

Выбирете "Устранение неполадок копьютера", далее - раскладку клавиатуры, введите пароль локального администратора и вы попадёте в экран командной строки. Текущим путём будет "X:\Windows\system32".
Перейдите в корень системного диска (для Windows 7 это будет диск D) командой "D:", можете проверить наличие файла reset-rearm.bat в корне командой dir.
Запустите файл reset-rearm.bat.
Перезагрузитесь в обычном режиме.

Windows  сообщит вам, что ключ активации не обнаружен.
Для того чтобы ввести ключ заново откройте командную строку в режиме администратора и выполните команду
slmgr.vbs /ipk XXXXX-XXXXX-XXXXX-XXXXX-XXXXX, где вместо иксов введите ваш ключ активации или открытый KMS ключ для соответсвующей операционной системы: 
Windows 7 Professional   FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4
Windows 7 Enterprise   33PXH-7Y6KF-2VJC9-XBBR8-HVTHH
Windows Server 2008 R2 Standard   YC6KT-GKW9T-YTKYR-T4X34-R7VHC
Windows Server 2008 R2 Enterprise   489J6-VHDMP-X63PK-3K798-CPX3Y
Windows Server 2008 R2 Datacenter   4YFP-3QFB3-KQT8W-PMXWJ-7M648

После этого лицензионный статус вашей ОС станет "Initial grace period" с количеством сброса счетчика равным 4.

slmgr-rearm-count-4

Данная статья основана на блоге Дэниела Митчела  http://www.daniel-mitchell.com/blog/reset-windows-7-rearm-count/

Некоторые полезные ссылки:

https://technet.microsoft.com/en-us/library/ff793403.aspx

http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/percent.mspx?mfr=true

iPad: нет звука в некоторых приложениях

Суть проблемы заключается в том, что внезапно пропадает звук в некоторых приложениях (играх), при этом музыка воспроизводится и звук видео (и на YouTube) тоже. Проблема заключается в неправильной обработке функционала переключателя Mute (Выключение звука), что находится с правой стороны устройства.

20141205_115112

Проблема может возникнуть, когда изменяют функцию этого переключателя на «Блокировка ориентации». Другими словами этот перключатель уже не отвечает за выключение звука, но некоторые программы все равно воспринимают нижнее положение переключателя как Mute, и  не выводят звук.

Как вылечить данную проблему? Идем в настройки, далее Общие.

20141205_115048

В свойствах этого переключателя выставляем исходное значение: «Выключение звука». Перезагружаем девайс. Ставим переключатель в верхнее положение — «Есть звук». Проверяем, что звук появился. После этого опять заходим в настройки и возвращаем выбранное значение этого переключателя обратно в «Блокировка ориентации».

Данный глюк наблюдался на iPad2 c iOS 7.

Windows и время: настройка службы W32Time.

Для управлением службой времени в Windows используется команда win32tm.exe.

Посмотреть текущие настройки службы времени (выполнять из консоли с правами администратора):

w32tm /query /configuration

Screenshot_1

Посмотреть текущее состояние службы времени можно командой:

w32tm /query /status

Screenshot_2

 

Чтобы понять, что это нам там Windows  выводит на экран, нужно разобраться как Windows работает со временем. Служба времени зависит от того является ли компьютер частью централизовано администрируемого домена или нет.

Возможные две ситуации:

  • компьютер (сервер) входит в состав рабочей группы, т.е. это домашний компьютер или компьютер в небольшом офисе;
  • компьютер (сервер) входит в состав домена Active Directory.

Компьютер входит в состав рабочей группы.

В этом случае централизованного управления компьютером нет, он сам заботиться о синхронизации времени. На нем вывод команды
w32tm /query /configuration будет следующим.

time1

Обратите внимание на параметры:
SpecialPollInterval — интервал синхронизации в секундах, 604800 секунд — это неделя, т.е. синхронизация будет проводиться раз в неделю.
Type — 
определяет источник синхронизации времени. Возможные значени параметра Type:
          NoSync. Служба времени вообще не синхронизируется ни с чем.
          NTP. Служба времени синхронизируется с серверами указынными в параметре NtpServer. Типично для домашних компьютеров. Как на скриншоте вверху.
          NT5DS. Служба времени синхронизируется используя доменную иерархию (только для компьютеров — членов домена Active Directory). Как на самом первом скриншоте.
          AllSync. Служба времени использует все возможные механизмы для синхронизации.
NtpServer — указывает сервреры, с которым может синхроинизировать время компьютер.

Как можно видеть, по умолчанию интервал синхронизации 1 неделя, сервер time.windows.com, значение Type NTP.

Компьютер входит в состав домена Active Directory.

Домен AD —  иерархичная централизованная структура. Время на всех компьютерах в домене синхронизируется с контроллерами домена, а те в свою очередь синхронизируются с одним контроллером,  выполняющим FSMO роль PDC-Emulator. Синхронизация времени происходит раз в 1 час.

Как узнать какой контроллер — PDC-Emulator? Простейший способ — это выполнить команду из командной строки:

netdom /query fsmo

Windows_Server_2008_R2_SP1_How_to_Sync_Time_to_External_Time_Source_1

и вот на нем то и надо настраивать синхнонизацию времени в внешним источников времени, которым является какой либо NTP сервер.

Делается это из командной строки с адмнистративными правами следующим образом (один из способов):

  1. Останавливаем службу времени W32Time:  C:\>net stop w32time
  2. Конфигурируем внешние источники синхронизации:
    C:\> w32tm /config /syncfromflags:manual /manualpeerlist:”0.ru.pool.ntp.org, 1.ru.pool.ntp.org, 2.ru.pool.ntp.org
  3. Делаем PDC-Emulator надежным источником для клиентов: C:\>w32tm /config /reliable:yes
  4. Запускаем службу времени w32time : C:\>net start w32time
  5. Служба должна начать синхронизироваться. Можно проверить как применились настройки уже знакомой командой: C:\>w32tm /query /configuration
  6. Проверяем Event Viewer на наличие ошибок, относящихся к службе времени.

На остальных компьютерах домена вывод команды C:\>w32tm /query /configuration будет следующим:

Screenshot_1

Если вы по какой-то причине поменяли конфигурацию службы времени на доменном компьютере, то чтобы вернуть настройки по-умолчанию выполните команду:
w32tm /config /syncfromflags:domhier  /update

Иногда при переносе роли PDC-Emulator на другой контроллер домена, старый продолжает считает считать себя сервером времени для всего домена, что может стать причиной ошибок в Системном логе, например таких:
«The time provider NtpClient was unable to find a domain controller to use as a time source. NtpClient will try again in 15 minutes.»
и других веселых глюков. «Успокоить» его можно такой-же командой с небольшим дополнением:

w32tm /config /syncfromflags:domhier /reliable:no /update

 

Несколько комментариев:

  1. В примере настройки контроллера домена мы останавливали службу времени, меняли настройки, потом запускали опять. Можно этого не делать, а использовать ключ /update, который принуждает службу времени считать конфигурацию заново.
  2. Для работы протокола NTP необходимо открыть порт UDP 123 на вход и на выход, на файерволе сервера и внешнем файерволе.
  3. Существует еще одна старая команда конфигурации времени net time, оставленная для совместимости, с меньшим количеством опций, которую все еще можно использовать.

Дружим ESXi 5.5 и RAID контроллер ADAPTEC ASR-6405

С поддержкой VMWare сетевых контроллеров Realtek, ESXi сервер шагает в массы малых и средних офисов, так как его можно установить на обычное несерверное железо (обычную материнскую плату и процессор) и получить все преимущества виртуализации почти за бесплатно. Однако с контроллерами хранилищ данных (контроллерами жестких дисков) встроенных в чипсеты на обычных платах дело обстоит куда хуже — официально они не поддерживаются. Я имею в виду софтовые контроллеры например Intel IHCR10. Кроме того они в принципе обеспечивают недостаточную производительность для нескольких виртуальных машин, поэтому обычно в такие «сервера» устанавливаются разные недорогие (7000 -15000 тыс. рублей) хардварные контроллеры обычно Adaptec, LSI или Intel. Таким образом типичным решением для SOHO виртуализации является топовая материнка, Core i7 процессор, 16-32 Гб оперативы и дискретный RAID контроллер.

Была задача виртуализировать инфраструктуру небольшой фирмы. В качестве RAID  контроллера был выбран контроллер ADAPTEC ASR-6405. Проверил на сайте vmware, что контроллер совместим с ESXi.  На сайте VMWare в VMware Compatibility Guide мы видим, что такой контроллер поддерживается аж с версии 4.

vmware-site

Однако здесь ждали первые грабельки. Если контроллер поддерживается это совсем не значит, что драйвера этого устройства включены в стандартную сборку. При попытке установки ESXi 5.5 Update1  на сервер с контроллером ADAPTEC ASR-6405 операционная система с сожалением сообщила что дисков не находит. На сайте adaptec тоже указано, что контроллер поддерживается ESXi 5.X, но уже честно сообщаяется, что нужно создать «custom boot image». После некоторых поисков нахожу инструкцию по установке драйвера контроллера в операционной системе VMware ESXi5.x.

Чтобы создать специальный образ для своего контроллера, в этой инструкции ADAPTEC рекомендует скачать кучу софта, и среди прочего VMware ESXi5.x Standard Software Depot («ESXi Offline Bundle»). Вот тут то ожидали еще одни грабли. Этот самый «бандл» доступен только для владельцев полной подписки VMWare, купивших лицензию vSphere. Для владельцев же бесплатной лицензии ESXi, коих наверно большинство этот программный продукт НЕДОСТУПЕН.

Хочется отдельно матом сердечно поблагодарить и компанию VMware и ADAPTEC, за такое сотрудничество и за такое душевное отношение к своим пользователям.

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

  1. Качаем установочный образ ESXi с сайта VMWare. Это файл с таким или похожим именем: VMware-VMvisor-Installer-5.5.0.update01-1623387.x86_64.iso
  2. Качаем драйвера для адаптера с сайта ADAPTEC. Ссылка на страницу контроллера.  Файл с именем: aacraid_vmware_drivers_1.2.1-40301_cert.tgz
  3. Качаем утилиту ESXi-Customizer-v2.7.2 отсюда: http://www.v-front.de/p/esxi-customizer.html.
  4. Архиватором напр. 7-zip распаковываем папку с драйверами контроллера. В ней будут такое содержимое:
    drivers
    Открываем папку с соотвествующей верисей ESXi сервера, в моем случае это была папка vsphere_esxi_5.5
    в ней будет файл с расширением .vib
    drivers2
    он то нам и понадобится на следующем шаге.
  5. Запускаем ESXi-Customizer. Указываем путь к образу ESXi, указваем путь к vib файлу, указваем путь к новому образу. Жмем кнопку RUN.
    ESXi-customizer1
  6. Соглашаемся с предупреждением о том что файлы внутри дистрибутива будут переписаны. И получаем готовый образ, в котором интегрированы драйвера нашего контроллера.Таким образом можно интегрировать драйвера вобще любых контроллеров ADAPTEC.

Готовый образ, изготовленный мною, 100% рабочий можно скачать здесь.

Блог на WordPress.com. Тема: Baskerville, автор: Anders Noren.

Вверх ↑