vitus_wagner: My photo 2005 (Default)
У кошки коньюктивит, а у Алькора сдохла micro-SD, которая там вместо винта.
По этому поводу бедной кошке промывали глаза хлоргексидином в семь утра (пока я не ушел на работу),
а почта для доменов wagner.pp.ru и spacians.net срочно переехала с Алькора на Денеб.

Вот долго я упирался, не хотел держать почту на хостинговой площадке, наконец все-таки был вынужден это сделать.

[livejournal.com profile] slobin, проверь, все ли твои почтовые адреса продолжают работать как раньше. По идее, я не должен был ничего сломать, но вдруг...
vitus_wagner: My photo 2005 (Default)
Тут благодаря идее [livejournal.com profile] yurikhan написал себе шелловский скриптик, который рисует на экране морду свитча с горящими (или не горящими) лампочками линков. Вот так:

vitus@alcor$ ./switchface 
+----------------------+
| (o)   (O) (o) (O) ( )|
+----------------------+


Чтобы не надо было идти в коридор, открывать шкаф, и залезать на стул, чтобы увидеть физические лампочки.

Большая буква O - это 1000baseT, маленькая o - 100baseT. Факт наличия full-duplex решил пока не отображать.

А вот и сам скриптик )
vitus_wagner: My photo 2005 (Default)
Задумался тут над фантастическим сюжетом - вот взять и отправить лежащую у меня на столе Banana PI в прошлое. Во времена моей собственной молодости. То ли в 1986 год, когда я учился на первым курсе и основным моим вычислительным прибором был калькулятор МК-52, то ли в 1991, когда я университет уже закончил, и купил себе МС-1502. Можно ли было бы эффективно использовать машинку такой мощности 25-30 лет назад (причем не вообще в принципе, а конкретно в домашних/экспедиционных условиях позднего СССР/раннего пост-СССР).

Ну USB-клавиатуру пришлось бы прикладывать к машинке. Как и блок питания. Впрочем блок питания тогда никого бы не удивил - у микрокалькулятора был примерно такой же.

Композитный видеовыход у Banana Pi первой серии есть. Значит, подключить ее к тогдашнему телевизору было примерно столь же легко, как ту же МС-1502. Конечно, качество картинки у тогдашних телевизоров не то, что у современных, но...

Вопрос в основном в обмене данными с внешним миром. Если на дворе 1986 год, то все совсем плохо. По-моему, единственное, что может реально пригодиться, это цеплять кассетный магнитофон к линейному выходу аудиокарты и синтезировать записи в формате, совместимом с БК-0010, Электроника Д3-28, TRS-80 Model 100 и т.д.. Ну то есть можно спаять переходник с JTag на RS-232 или Стык-2 и подключать тогдашние терминалы. Но это уже не дома.

В 1991 году уже попроще - вокруг полно дискет, матричных принтеров с центрониксом и т.д. Соответственно, если в передаваемое в прошлое комплект положить USB-флоппи и переходник с USB на центроникс, то вполне в тогдашнюю инфраструктуру можно включиться. Для витой пары и RJ-45 еще рано. Нам тогда и тонкий коаксиал-то казался чудом техники.

А так представьте себе - в те времена на столе (или даже в кармане) 32-битная машинка с гигом оперативной памяти и 32Гб постоянной, с современным Linux, а еще если постараться можно на эту память впихнуть ну не миррор флибусты, а хотя бы что-то типа библиотеки Траума. Гигабайт этак 10 всяких хороших книг. Можно из принципа для предотвращения анахронизмов вычистить все, написанное после года куда мы забрасываем, все равно будет крайне полезная подборка.
vitus_wagner: My photo 2005 (Default)
Провел сегодня сравнение по производительности Banana PI M2 и Banana PI R1.
В смысле собрал на обоих в pbuilder пакеты Postgres.

Параметры следующие:

ПараметрM2R1
lscpu
Architecture: armv7l
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 1
Model name: ARMv7 Processor rev 3 (v7l)
CPU max MHz: 1008.0000
CPU min MHz: 480.0000
Architecture: armv7l
Byte Order: Little Endian
CPU(s): 2
On-line CPU(s) list: 0,1
Thread(s) per core: 1
Core(s) per socket: 2
Socket(s): 1
CPU max MHz: 1008.0000
CPU min MHz: 60.0000
ДискMicro SD UHS-1 16GbSt500lm012 Seagate 500Gb 5400Rpm Sata-300 2.5Inch 8Mb Cache

Timing cached reads (hdparm>
782 MB in 2.00 seconds = 390.54 MB/sec834 MB in 2.00 seconds = 416.78 MB/sec
Timing buffered disk reads (hdparm) 60 MB in 3.06 seconds = 19.60 MB/secTiming buffered disk reads: 300 MB in 3.01 seconds = 99.70 MB/sec
Сборка Postgres в pbuilder
real55m57.805s55m49.479s
user56m10.250s72m10.810s
sys4m0.110s7m50.450s


Судя по разнице в user и sys time, процессоры у M2 не только в большем количестве, но и более быстрые. Но, увы слабая "дисковая" подсистема не дает воспользоваться этим преимуществом. В результате wall clock time у обоих систем получается одинаковым.

Надо бы попробовать подмонтировать к M2 сетевой диск по NFS и пособираться на нем.
Езернет там номинально гигабитный. Может оказаться и быстрее MicroSD-шки.
(в момент данного теста М2 была вообще подключена к сети через WiFi, но это не играет роли, так как все Build-Dependencies уже лежали в кэше).
vitus_wagner: My photo 2005 (Default)
Выставил Banana PI R1 на должность входного роутера, перетащив туда торренты и кое-какие файловые архивы. Надо еще бэкапилку ЖЖ туда перетащить и следилку за обновлениями на самиздате.

Wi-Fi там не порадовал. То есть добиться более-менее устойчивого покрытия квартиры этим вайфаем не удалось. Пришлось возвернуть на место Dlink 650 и использовать ее в качестве тупой точки доступа без функций роутера. Она, правда, в отличие от Dir 300 не умеет переключаться средствами встроенного фирмваре в режим, когда все ethernet-порты в общем бридже с wlan0.

Поднял (пока в режиме клиента) WiFi на Banana Pi M2. Оказалось, что в образ bananian для нее недоложили один из двух файлов firmware - бинарник положили. а текстовый конфиг - нет. Когда я нашел файлик со страшным именем brcmfmac43362-sdio.txt в бананиановском же git и подложил в /lib/firmware/brcm, все заработало (ну то есть hostapd еще не проверял, а wpa-supplicant заработал).

В процессе переноса архива бардовской песни на alcor обнаружил, что в этом архиве отсутствует mp3-файл "Притяженье звездного пространства". Решил, что это бардак и надо пофиксить. Заодно раздобыл еще штук пять ранее отстутствовавших у меня песен Визбора.
Включая абсолютно невизборовскую "Ну что вам рассказать про Сахалин", но в его исполнении.
vitus_wagner: My photo 2005 (Default)
Тут на совершенно технический пост с подробностями конфигурирования свитча вдруг куча народу стала задавать вопрос "а зачем эта железяка вообще".

Поэтому я решил написать, что я хочу получить от Banana PI R1. Я уже скоро год как эксплуатирую просто Banana PI в качестве домашнего почтового сервера. 16GB SD для этого вполне достаточно.

Постепенно туда еще и DNS с DHCP уехали. Потому что как я сменил точку доступа с DD-WRT-шной на имеющую родную DLink-овскую прошивку, гибкости стало не хватать.

В результате у меня сейчас в стенном шкафу в коридоре живут два устройства, требующиеся для функционирования сети. И еще некоторые полезные сервисы, которым было бы полезно быть онлайн 24*7 по-прежднему остаются на десктопе. Торрентокачалка например.

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

То есть

1. Почта
2. Какой-то контент, который хочется сделать доступным извне
3. Торрентокачалка

И тут выясняется, что существует устройство, которое позволяет все это, одновременно являясь свитчом и точкой доступа Wi-Fi. И потребляет при этом менее 3 ампер от 5v блока питания.

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

Возможно, в будущем удастся извлечь и какую-то пользу из разъема GPIO который там есть. Вроде управления дверным замком.

Еще интересная мысль за оффлоадить в тамошний GPU криптографические операции, выполняемые OpenVPN. В общем там процессор и так неплохо OpenVPN тянет, во всяком случае на общение со следующим почтовым хопом хватает. Но GPU-же простаивает.

В общем основная цель использования свитча на этой машинке - не иметь для свитча отдельной железки с отдельным блоком питания. Опять же можно к Wi-Fi нормальную радиус-аутентификацию прикрутить. А то PSK меня как-то раздражает. Все-таки когда у каждой железяки отдельная пассфраза, которую можно запретитить не переконфигурируя все остальные железяки - это удобно.

То есть это в первую очередь домашний сервер, по совместительству выполняющий функции точки доступа и свитча, а не точка доступа в которую удалось вкрутить некоторые серверные функции.

На самом деле у меня идея более амбициозная - иметь в трех домах три бананы (из них только одна со свитчом, остальным и Wi-Fi хватит - на дачах устройства без поддержи wifi не бывают) и увязать их посредством openvpn с сервером на VDS на хостинге в единую сеть. Чтобы можно было из деревни послать документ на печать на сетевой принтер в московской квартире.
vitus_wagner: My photo 2005 (Default)
Banana PI R1 обладает всем необходимым железом для того, чтобы сделать из нее точку доступа - пятипортовый гигабитный свитч, который можно программным способом поделить на WAN и LAN, и Wi-Fi адаптер, который можно перевести в режим инфраструктурной точки доступа.

К сожалению, это добро крайне хреново документировано, а сделано местами несколько нелогично.

Начнем с конфигурирования свитча. Это более-менее настоящий свитч с поддержкой vlan-ов. У него есть пять портов (пронумерованных от 0 4) торчащих наружу и шестой (под номером 8) соедениенный с собственно SoC.

Если смотреть со стороны портов, порты слева направо расположены в следующем порядке:

2 1 0 4 | 3

Причем порт 3 это тот, разъем которого расположен в отдельном корпусе. То есть WAN-порт.

При включении питания эта конструкция стартует в режиме когда все порты объединены в тупой cвитч, который просто передает все пакеты насквозь. Обычно это не то, что нам надо.

Стандартная конфигурация выглядит так - четыре LAN-порта и WiFi объединены в общую сеть, а WAN-порт - отдельно и пакеты в него попадают только через файрволл в ядре операционки, выполняющейся на SoC роутера.

Поэтому надо организовать два VLAN-а. Один будет включать третий порт и 8й как транковый, а второй - порты 0 1 2 4 и 8-й как транковый. А в Linux-е поднять два vlan-овских интерфейса, один из которых будет внешним, а второй - включен в бридж вместе с Wi-Fi.

Управляется свитч утилитой swconfig. Синтаксис у нее довольно странный, но данная задача решается прямолинейно. Более того в образе bananian linux уже лежит готовый скрипт /etc/network/ifpre-up.d/swconfig, в котором написаны все нужные команды, и надо только закоментарить команду exit в начале скрипта.

# Reset switch, counter and enable vlan mode
device=eth0
swconfig dev $device set reset 1
swconfig dev $device set reset_mib 1
swconfig dev $device set enable_vlan 1
# configure vlans
swconfig dev $device vlan 101 set ports "3 8t"
swconfig dev $device vlan 102 set ports "2 1 0 4 8t"
# activate new config
swconfig dev $device set apply 1




Сконфигурировать vlan-интерфейсы можно разными способами - и специфически- дебиановским через /etc/network/interfaces, и "вручную" через утилиту vconfig, и через стандартную утилиту ip.

По конфигурированию vlan-ов в Linux-е есть куда больше литературы, в том числе и внятной, чем по конфигурированию этого свитча.

Что касается включения Wi-fi в режим точки доступа, то начав рыться на этот предмет в сети я обнаружил инструкции перекомпилировать ядро, скомпилирвоать патченный hostapd и еще кучу подобного рода советов. Все эти советы устарели как минимум на год. Разработчиками bananian Linux все необходимое уже сделано. Ядро там содержит работоспособный драйвер этого wifi-чипа, а в репозитории есть отдельный пакет hostapd-rtl,который надо поставить вместо стандартного дебиановсколго hostapd. Он, кстати, принесет с собой и готовый к употреблению конфиг.

Так что если бы это было чуточку получше документировано, то и возиться выяснением вопрсоов бы не пришлось.
vitus_wagner: My photo 2005 (Default)
Тут совершенно неожиданно для самого себя сапгрейдил alcor на jessie. Запустил там bananian-update, а он мне и говорит английским по бэкграунду, мол, у нас тут следующие релизы теперь на базe jessie, а не сказать ли тебе dist-upgrade. Ну я и сказал. Заодно научился апгрейтить wheezy на jessie так чтобы и духу от systemd не было. Благо alcor это безмониторный сервер, на нем нет необходимости запускать программы, зависящие от антиюниксовых по идеологии подсистем.

И еще пофиксил там конфигурацию prayer. А то там по умолчанию предлагается сохранять юзерские настройки в папку .prayer, а Dovecot почему-то не горит желанием такое создавтать. С его точки зрения . - разделитель директорий, равноправный с /.

И default_domain у меня был неправильно прописан. Откуда это взялось, уже не выяснишь. А из-за этого неправильно формировался From в отправляемых письмах, если без сохраненных настроек. В общем, в prayer web mail есть ТРИ способа правильно задать адрес From и ни один у меня не работал. Теперь работают все.
vitus_wagner: My photo 2005 (Default)
К сожалению, затея сделать точку доступа из ничего не выгорела.
Ну то есть, к счастью, что banana PI не выгорела а просто отрубилась от перегрузки примерно через полчаса после того, как я воткнул туда этот вайфайный донгл.

А какой был уровень сигнала! Когда я стоял с телефоном рядом с точкой доступа, которая в коридоре, уровень сингала от этого донгла и от самой точки был почти одинаковым.


Но в результате оно упало и после выдергивания не подняло сеть (но это сам дурак, внимательнее смотреть надо, что туда пишешь). Пришлось раскручивать корпус, доставать SD-карту, втыкать ее в ноутбук и редактировать /etc/network/interfaces. (это было проще чем подключать клавитуру и HDMI-монитор, которые бы для начала пришлось долго отключать от десктопа, лазая под столом).
vitus_wagner: My photo 2005 (Default)
Вчера я, наконец, нашел время и доделал последний штрих к конфигурации почтового сервера на Banana Pi.

Так я вообще-то уже две недели им пользуюсь, но до сих пор у пользователей не было возможности самостоятельно, без обращения к системному администратору, то есть мне, менять свои пароли. Теперь есть. Заодно разобрался в некоторых, еще не во всех, тонкостях взаимодействия Prayer Web mail с managesieve.

На мой взгляд, получилось вполне self-contained решение.

Конечно некоторые могут сказать, что почта должна использовать общесетевую базу пользователей, например из ldap, но эти некоторые пускай сами настраивают.

Собственно, новой для меня задачей в этой истории было сделать так, чтобы почтовые пользователи не должны были быть системными пользователям. Если заводить всех почтовых польозователей как системных, то prayer-accountd из дистрибутива задачу управления паролями и finger information решает из коробки.

Но мне интересно было решить задачу с виртуальными пользователями, авторизационная информация по которым хранится в базе данных (sqlite). Поэтому пришлось нарисовать свой собственный accountd. Благо протокол accountd крайне простой.

Получилось решение, которое

1. Хранит архивы почты у меня на столе, а не где-то в облаке
2. Позволяет доступ по IMAP и отправку почты из любой точки земного шара
3. Позволяет доступ через web-интерфейс, если вдруг по каким-то причинам нет возможности использовать нормальный эргономичный почтовый клинент
4. Осуществляет server-side фильтрацию почты, например раскладывает списки рассылки в отдельные папки. Правила фильтрации настраиваются через стандартный протокол managesieve, к которому есть и отдельные клиенты и плагины к почтовым клиентам, либо через веб-интерфейс.
5. Имеет обучаемый пользователями байесовский спамфильтр, причем общий для всех пользователей.
Обучение сводится к тому что проскочивший фильтры спам надо складывать в папку "спам", а весь не спам куда-то перекладывать из INBOX-а. Можно - в "Корзину".
Кстати, спама почему-то стало ощутимо меньше. Возможно потому что я поменял исторически сложившиеся настройки spamassassin-а на дистрибутивные.
6. Пользователи могут менять пароли (через веб-интерфейс к почте).
7. Потребляет меньше 5 ватт электричества

Технические подробности )

Таким образом, единственное действие, которое требует захода на эту коробочку по ssh (не считая установки апдейтов и смены сертификатов), это заведение новых пользователей. Все остальное делается самими пользователями либо через почтовый клиент, либо через web-интерфейс.
vitus_wagner: My photo 2005 (Default)
Вот такой у меня теперь сервер. На нем лежит спичечная коробка для масштаба.

(тот ствол, который там сзади - ребенкова игрушка).

В корпусе предусмотрено место под диск, но диск я туда пока подключать не стал.

SNIproxy

Jun. 12th, 2015 05:54 pm
vitus_wagner: My photo 2005 (Default)
Нашел тут замечательный инстурмент SNIProxy

Позволяет решить задачу раскидывания https-траффика по машинам (в том числе виртуальным), сидящим за однм внешним IP. Причем полноценного такого раскидыванрия. когда каждый сервер имеет собственные ключи и хранит их у себя, может сам проверять клиентские сертификаты etc.

Под Bananian собралось, тестирвоать еще не тестировал, потому что для тестирования нужно иметь хотя бы два https-ных сервера, в локальной сети. А у меня в ЭТОЙ сети нет ни одного.

Хотя, конечно, такую штуку надо держать на роутере, а не на одном из серверов внутри сети. Но собирать ее под dd-wrt или openwrt мне ломы.
vitus_wagner: My photo 2005 (Default)
Вчера наконец собрался поиграться с Banana PI.

Для этого надо было собрать в одном месте USB-шную клавиатуру, какой-нибудь дисплей с HDMI входом и нормальную сеть. Последнее привело к тому, что развлекаться этим на работе было крайне неинтересно.

В общем пришлось дождаться пока отец уедет в деревню, оторвать клавиатуру от его машинки (остальные все в доме PS/2) и поюзать его телевизор в качестве дисплея.

Выяснилось, что ставить vanilla jessie из образов вот отсюда - это для настоящих героев, умеющих цепляться к GPIO и имеющх в хозяйстве USB-RS232, - оно там serial console хочет.

Поэтому для начала взял Bananian у которого в sources.list сплошной wheezy, зато ядро 3.4. Можно еще попробовать вот эти образы. Хотя в общем, непонятно зачем. Можно и bananian до jessie сапгрейдить.

И bananian, и они имеют четкие инструкции как пересадить систему на SATA-диск.

Но у меня почему-то прикрутить жесткий диск не получилось. Вернее, несмотря на помощь [livejournal.com profile] 3a_5648 не получилось снять с разъема на котором написано SATA Power достаточно питания, чтобы раскрутить диск. Наверное, этим не в час ночи надо заниматься.

Попытался сдизайнить максимально компактный корпус (на предмет согнуть его из жести). Если делать так, чтобы влезал диск, получается примерно 70x30x127мм, при том что разъем аналогового видео и аудио торчит за пределы этих габаритов, а кабелю данных SATA потребуется Г-образный
разъем по крайней мере со стороны платы. (блин, где берут SATA кабели длиной не более 10 см?),
а разъемы питания и HDMI оказывается утоплены очень глубоко в корпус.

Так что вот думаю, а может отказаться от идеи SATA, так и жить на SD? Современные SD вроде довольно живучие. Без диска габариты получаются 65x20x115. Нет, разница не настолько велика, пожалуй, надо все-таки делать корпус под диск. А питание для диска снять прямо с того USB-шнурка, которым питание подается.

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

May 2025

S M T W T F S
    1 2 3
4 56 7 8 9 10
11 12 131415 1617
1819202122 2324
25262728293031

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 24th, 2025 01:02 pm
Powered by Dreamwidth Studios