LINUX.ORG.RU

Сообщения suuaq

 

systemd-timesyncd зачем открыт порт

Кто разрешил? Зачем NTP-клиенту открытый порт? Где конфига?

# netstat -tulpen | grep systemd
udp    0    0    0.0.0.0:34487    0.0.0.0:*    105    41286    4448/systemd-timesy

 , , ,

suuaq
()

Не работает virtualenv

$ virtualenv bar
Running virtualenv with interpreter /usr/bin/python2
New python executable in bar/bin/python2
Also creating executable in bar/bin/python
Installing setuptools, pip...
  Complete output from command /home/user/foo/bar/bin/python2 -c "import sys, pip; sys...d\"] + sys.argv[1:]))" setuptools pip:
  Ignoring indexes: https://pypi.python.org/simple/
Downloading/unpacking setuptools
Cleaning up...
Exception:
Traceback (most recent call last):
  File "/usr/share/python-wheels/pip-1.5.6-py2.py3-none-any.whl/pip/basecommand.py", line 122, in main
    status = self.run(options, args)
  File "/usr/share/python-wheels/pip-1.5.6-py2.py3-none-any.whl/pip/commands/install.py", line 290, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
  File "/usr/share/python-wheels/pip-1.5.6-py2.py3-none-any.whl/pip/req.py", line 1178, in prepare_files
    url = finder.find_requirement(req_to_install, upgrade=self.upgrade)
  File "/usr/share/python-wheels/pip-1.5.6-py2.py3-none-any.whl/pip/index.py", line 292, in find_requirement
    elif is_prerelease(version) and not (self.allow_all_prereleases or req.prereleases):
  File "/usr/share/python-wheels/pip-1.5.6-py2.py3-none-any.whl/pip/util.py", line 739, in is_prerelease
    return any([any([y in set(["a", "b", "c", "rc", "dev"]) for y in x]) for x in parsed])
TypeError: 'int' object is not iterable

Storing debug log for failure in /home/user/.pip/pip.log
----------------------------------------
...Installing setuptools, pip...done.
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/virtualenv.py", line 2378, in <module>
    main()
  File "/usr/lib/python3/dist-packages/virtualenv.py", line 830, in main
    symlink=options.symlink)
  File "/usr/lib/python3/dist-packages/virtualenv.py", line 1032, in create_environment
    install_wheel(to_install, py_executable, search_dirs)
  File "/usr/lib/python3/dist-packages/virtualenv.py", line 975, in install_wheel
    'PIP_NO_INDEX': '1'
  File "/usr/lib/python3/dist-packages/virtualenv.py", line 917, in call_subprocess
    % (cmd_desc, proc.returncode))
OSError: Command /home/user/foo/bar/bin/python2 -c "import sys, pip; sys...d\"] + sys.argv[1:]))" setuptools pip failed with error code 2
$ cat ~/.pip/pip.log 
------------------------------------------------------------
-c run on Thu May 21 11:21:45 2015
Ignoring indexes: https://pypi.python.org/simple/
Downloading/unpacking setuptools
  URLs to search for versions for setuptools:
  Skipping link . (from -f); not a file
  Skipping link /usr/lib/python3/dist-packages (from -f); not a file
  Skipping link /usr/share/python-wheels/ (from -f); not a file
  Skipping link file:///home/user/foo/bar; not a file
  Skipping link file:///usr/lib/python3/dist-packages/virtualenv-1.11.6.egg-info; unknown archive format: .egg-info
  Skipping link file:///usr/lib/python3/dist-packages/virtualenv.py; unknown archive format: .py
  Skipping link file:///usr/lib/python3/dist-packages/pkg_resources.py; unknown archive format: .py
  Skipping link file:///usr/lib/python3/dist-packages/__pycache__; not a file
  Skipping link file:///usr/lib/python3/dist-packages/debconf.py; unknown archive format: .py
  Skipping link file:///usr/share/python-wheels/chardet-2.3.0-py2.py3-none-any.whl; wrong project name (not setuptools)
  Skipping link file:///usr/share/python-wheels/urllib3-1.10.4-py2.py3-none-any.whl; wrong project name (not setuptools)
  Skipping link file:///usr/share/python-wheels/pip.dependencies; unknown archive format: .dependencies
  Skipping link file:///usr/share/python-wheels/six-1.9.0-py2.py3-none-any.whl; wrong project name (not setuptools)
  Skipping link file:///usr/share/python-wheels/distlib-0.2.0-py2.py3-none-any.whl; wrong project name (not setuptools)
  Skipping link file:///usr/share/python-wheels/requests-2.4.3-py2.py3-none-any.whl; wrong project name (not setuptools)
  Skipping link file:///usr/share/python-wheels/pip-1.5.6-py2.py3-none-any.whl; wrong project name (not setuptools)
  Found link file:///usr/share/python-wheels/setuptools-5.5.1-py2.py3-none-any.whl, version: 5.5.1
  Skipping link file:///usr/share/python-wheels/colorama-0.3.3-py2.py3-none-any.whl; wrong project name (not setuptools)
  Skipping link file:///usr/share/python-wheels/html5lib-0.999-py2.py3-none-any.whl; wrong project name (not setuptools)
  Local files found: /usr/share/python-wheels/setuptools-5.5.1-py2.py3-none-any.whl
Cleaning up...
Exception:
Traceback (most recent call last):
  File "/usr/share/python-wheels/pip-1.5.6-py2.py3-none-any.whl/pip/basecommand.py", line 122, in main
    status = self.run(options, args)
  File "/usr/share/python-wheels/pip-1.5.6-py2.py3-none-any.whl/pip/commands/install.py", line 290, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
  File "/usr/share/python-wheels/pip-1.5.6-py2.py3-none-any.whl/pip/req.py", line 1178, in prepare_files
    url = finder.find_requirement(req_to_install, upgrade=self.upgrade)
  File "/usr/share/python-wheels/pip-1.5.6-py2.py3-none-any.whl/pip/index.py", line 292, in find_requirement
    elif is_prerelease(version) and not (self.allow_all_prereleases or req.prereleases):
  File "/usr/share/python-wheels/pip-1.5.6-py2.py3-none-any.whl/pip/util.py", line 739, in is_prerelease
    return any([any([y in set(["a", "b", "c", "rc", "dev"]) for y in x]) for x in parsed])
TypeError: 'int' object is not iterable
$ aptitude show virtualenv | grep Version
Version: 1.11.6+ds-1
$ aptitude show python-pip | grep Version
Version: 1.5.6-5
$ aptitude show python-setuptools | grep Version
Version: 5.5.1-1

 

suuaq
()

Разница между UTC и локальной таймзоной

Делал так, на час ошибается. Но localtime() работает правильно. Почему?

#include <stdio.h>
#include <time.h>

extern long timezone;

int main(void) {
	tzset();
	printf("%ld\n", timezone);
	return 0;
}

 , , ,

suuaq
()

Читать/писать смарт-карту

Дано: Карта с AT24C512SC и картридер

$ lsusb | grep -i smart
Bus 004 Device 004: ID 08e6:34ec Gemplus Compact Smart Card Reader Writer

Хочу первое читать/писать вторым. Куда копать?

Потыкал немного:

# pcscd -f -a
00000000 commands.c:979:CmdEscape error on byte 10
16557177 commands.c:248:CmdPowerOn Card absent or mute
00000031 ifdhandler.c:1206:IFDHPowerICC() PowerUp failed
00000037 eventhandler.c:435:EHStatusHandlerThread() Error powering up card.

$ pcsc_scan 
PC/SC device scanner
V 1.4.23 (c) 2001-2011, Ludovic Rousseau <ludovic.rousseau@free.fr>
Compiled with PC/SC lite version: 1.8.11
Using reader plug'n play mechanism
Scanning present readers...
0: Gemalto GemPC Express 00 00

Mon Apr 27 00:04:47 2015
Reader 0: Gemalto GemPC Express 00 00
  Card state: Card removed, 

Mon Apr 27 00:04:59 2015
Reader 0: Gemalto GemPC Express 00 00
  Card state: Card inserted, Unresponsive card, 

 

suuaq
()

Записать образ на sdcard без кэширования

Когда через dd пишется образ в 1 гб на карту, dd отрабатывает за пару секунд. Система это всё кэширует и в /proc/meminfo можно наблюдать, как значение Dirty медленно ползёт вниз.

Как это кэширование отключить? Если бы было просто копирование файлов, то можно было бы через опции монтирования. Но тут-то ничего не монтируется.

 , ,

suuaq
()

Как узнать, является ли сетевой интерфейс тапом?

Есть сервер с KVM и виртуальными машинами. Под каждую виртуальную машину создаётся интерфейс vnetN. Мне интересно, используется ли для них TAP-драйвер или там что-то другое. Как это можно проверить? Спасибо.

 ,

suuaq
()

Настройка bonding

 Alpha                 Beta
+-----+   +------+   +------+
|1Gb/s|---|      |   |      |
|     |   |switch|---|10Gb/s|
|1Gb/s|---|      |   |      |
+-----+   +------+   +------+

Дано два сервера с рутовым доступом, альфа и бета. В альфе две сетевые карты по 1 Gb/s. В бете одна сетевая карта на 10 Gb/s. Между ними тупой свитч, настроек нет, 802.3ad не поддерживает. Есть ССЗБ, который хочет максимизировать скорость передачи между альфой и бетой через этот самый свитч, но в этих ваших сетях ничего не понимает.

Настроил на альфе bonding в модусе balance-rr. Вот что выдаёт iperf.

$ iperf -c 10.0.0.2 -r
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
------------------------------------------------------------
Client connecting to 10.0.0.2, TCP port 5001
TCP window size:  144 KByte (default)
------------------------------------------------------------
[  5] local 10.0.0.1 port 60091 connected with 10.0.0.2 port 5001
[ ID] Interval       Transfer     Bandwidth
[  5]  0.0-10.0 sec  1.79 GBytes  1.53 Gbits/sec
[  4] local 10.0.0.1 port 5001 connected with 10.0.0.2 port 33331
[  4]  0.0-10.0 sec  1.94 GBytes  1.66 Gbits/sec
$ iperf -c 10.0.0.2 -r -u
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size:  208 KByte (default)
------------------------------------------------------------
------------------------------------------------------------
Client connecting to 10.0.0.2, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size:  208 KByte (default)
------------------------------------------------------------
[  4] local 10.0.0.1 port 56492 connected with 10.0.0.2 port 5001
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec  1.25 MBytes  1.05 Mbits/sec
[  4] Sent 893 datagrams
[  4] Server Report:
[  4]  0.0-10.0 sec  1.25 MBytes  1.05 Mbits/sec   0.029 ms    0/  893 (0%)
[  3] local 10.0.0.1 port 5001 connected with 10.0.0.2 port 60428
[  3]  0.0-10.0 sec  1.25 MBytes  1.05 Mbits/sec   0.011 ms    0/  893 (0%)

В манах написано, что в balance-rr сетевые карты при отправке пакетов друг друга сменяют. Я ожидал, что скорость передачи данных возрастёт, но скорость приёма останется 1 Gb/s. Видимо я чего-то не понимаю?

Во вторых, скорость по udp не сильно-то возрасла. Почему, как исправить?

В третьих, а как это сделать правильно?

Зы: Результаты iperf возпроизводятся.

 

suuaq
()

А как так OpenVPN использует TLS и UDP разом...

...если TLS на TCP базируется? В этой вашей википедии написано, что это вообще невозможно.

 , ,

suuaq
()

Странный расклад скоростей в openvpn по tcp/udp

OpenVPN, тоннель по tcp.

$ iperf -c 10.11.12.2 -r -m
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
------------------------------------------------------------
Client connecting to 10.11.12.2, TCP port 5001
TCP window size: 22.6 KByte (default)
------------------------------------------------------------
[  5] local 10.8.12.6 port 55646 connected with 10.11.12.2 port 5001
[ ID] Interval       Transfer     Bandwidth
[  5]  0.0-10.0 sec  74.1 MBytes  62.0 Mbits/sec
[  5] MSS size 1354 bytes (MTU 1394 bytes, unknown interface)
[  4] local 10.8.12.6 port 5001 connected with 10.11.12.2 port 40690
[  4]  0.0-10.1 sec   122 MBytes   102 Mbits/sec
[  4] MSS size 1354 bytes (MTU 1394 bytes, unknown interface)

OpenVPN, тоннель по udp.

$ iperf -c 10.11.12.2 -r -m
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
------------------------------------------------------------
Client connecting to 10.11.12.2, TCP port 5001
TCP window size: 22.6 KByte (default)
------------------------------------------------------------
[  5] local 10.8.8.14 port 37677 connected with 10.11.12.2 port 5001
[ ID] Interval       Transfer     Bandwidth
[  5]  0.0-10.0 sec  60.2 MBytes  50.4 Mbits/sec
[  5] MSS size 1356 bytes (MTU 1396 bytes, unknown interface)
[  4] local 10.8.8.14 port 5001 connected with 10.11.12.2 port 58590
[  4]  0.0-10.1 sec  60.8 MBytes  50.3 Mbits/sec
[  4] MSS size 1356 bytes (MTU 1396 bytes, unknown interface)

Внезапно по tcp обратное соединение в два раза быстрее. Почему?

 ,

suuaq
()

Есть ли осциллографы с линуксом

На работе есть с оффтопиком десятилетней давности внутри. Возник вопрос, есть ли аналог с линуксом. Пруфлинки приветствуются. Спасибо.

 , ,

suuaq
()

Поясните по сетевым интерфейсам

Каша в голове, да. Я прав или где-то ошибаюсь?

Значит такая модель. Есть 4 сетевых интерфейса: eth0, wlan0, tun0, tap0. Для каждого есть драйвер и какая-то плата, либо юзерспейсное приложение.

Открываем мы значит лор в браузере, http-запрос (прикладной уровень) упаковывается в ip-пакет (сетевой уровень). Согласно нашим таблицам маршруторизации ip-пакет пойдёт по одному из сетевых интерфейсов. При этом различий в ip-пакете не будет. Значит для сетевых интерфейсов есть какая-то общая функция типа send_data(interface, data).

Дальше начинаются различия.

В eth0 ip-пакет по идее должен быть упакован в ethernet-frame. Это происходит в драйвере или уже на плате? А может бывает по разному?

В wlan0 ip-пакет будет упакован во что-то похожее на ethernet-frame, но другое, так как wifi и ethernet отличаются на канальном и физическом уровнях.

В tap0 ip-пакет будет упакован драйвером в ethernet-frame и передан в юзерспейсное приложение.

В tun0 ip-пакет никуда не будет упакован, а будет сразу передан драйвером в юзерспейсное приложение.

Так или не так?

 ,

suuaq
()

Столлман на 31c3

Кто не в курсе, chaos computer congress идёт уже третий день. В 10:30 по utc Столлман в первом зале собирается опять втирать про свободу. Ну и интересные темы там тоже бывают.

http://streaming.media.ccc.de/

 , ,

suuaq
()

REST, JAX-RS, аутентификация, ржавый топор

Есть glassfish 4.1. Надо запилить REST API с опциональной аутентификацией.

Согласно этому ихнему REST имя/пароль посылается с каждым запросом. Ну или не посылается, опционально же.

Использоваться будет жабоскриптом из браузера.

Хотел имя/пароль упаковать в JSON и посылать в теле запроса, но сервер его игнорирует нафиг, если запрос не POST.

Хотел сделать через basic authentication, но понятия не имею как запилить аутентификацию опционально - если хедер «Authorization» есть и аутентификация не прошла, надо выдать ошибку, если хедера нет, значит анонимус.

Как?

 ,

suuaq
()

Объективно замерить качество VNC

Есть виртуальные машины с VNC-серверами. К ним коннектятся юзеры и там работают. Юзеры могут субъективно определить качество соединения: «нормально» или «лагает».

Нужно более объективное определение.

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

Как бы это попроще сделать? Спасибо.

 ,

suuaq
()

Отказоустойчивые шлюзы

Теоретическая задача.

Дано: Сеть с кучей линуксовых машин, три провода в интернеты. Надо использовать три машины в качестве натирующих маршруторизаторов в интернеты, балансировано и отказоустойчиво.

Нашёл http://xgu.ru/wiki/Отказоустойчивая_маршрутизация с зоопарком полупроприетарных протоколов.

Пока курю найденое, но может кто посоветует, как оно правильно делается?

suuaq
()

Диаграммы в латехе

Этот ваш TikZ так умеет? Или что ещё есть? Спасибо.

                          --------------------
                          |                  |
                          |-----        -----|
-----------------    -----|abcd| foobar |text|
|               |    |    |-----        -----|
|-----     -----|    |    |                  |
|text|     |abcd|-----    --------------------
|-----     -----|          
|      foo\n    |
|      bar      |
|-----     -----|
|text|     |efgh|-----    -------------------- 
|-----     -----|    |    |                  |
|               |    |    |-----        -----|
-----------------    -----|efgh| foobar |text|
                          |-----        -----|
                          |                  |
                          --------------------

 

suuaq
()

Перенаправлять пакеты в зависимости от входного интерфейса

Теоретическая задача.

Есть машина с четырмя сетевыми интерфейсами. Есть три сетки A, B, C.

Сеть A - 10.0.0.0/24. Сеть B - 10.0.1.0/24. Сеть C - 10.0.2.0/24.

eth0 и eth1 в сети A 10.0.0.1 и 10.0.0.2 соответственно.

eth2 в сети B 10.0.1.1.

eth3 в сети C 10.0.2.1.

Нужно натить машины из сети A в сети B и C. Пакеты приходящие на 10.0.0.1 должны идти в сеть B. Пакеты приходящие на 10.0.0.2 должны идти в сеть C.

Заморачиваюсь с iptables и несколькими таблицами маршруторизации, пока не работает.

Как?

             |--------|
             |        |
    |-eth0---|        |--------eth2----B
A---|        |   R    |
    |-eth1---|        |--------eth3----C
             |        |
             |--------|
suuaq
()

wget не спрашивает пароль клиентного сертификата

Есть сайт с аутентификацией юзера по ssl. Есть юзерский сертификат в формате pkcs12. В огнелисе работает.

Надо сделат пост-запрос из консоли. Приватный ключ должен быть зашифрованым.

Делаю так:

$ openssl pkcs12 -nokeys -clcerts -in mycert.p12 -out mycert.crt
Enter Import Password:
MAC verified OK
$ openssl pkcs12 -nocerts -in mycert.p12 -out mycert.key -nodes
Enter Import Password:
MAC verified OK
$ wget --certificate=mycert.crt --private-key=mycert.key -O- https://mysite --post-data=mydata=foobar
...
200 OK
...
<html>...Welcome...</html>
...

Ключ не зашифрован, всё работает.

Делаю так:

$ openssl pkcs12 -nocerts -in mycert.p12 -out mycert.key
Enter Import Password:
MAC verified OK
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
$ wget --certificate=mycert.crt --private-key=mycert.key -O- https://mysite --post-data=mydata=foobar
...
200 OK
...
<html>...You are not authenticated...</html>
...
Ключ зашифрован, wget не спрашивает пароль от ключа, аутентификация фейлится.

Гугл говорит, что wget таки умеет работать с шифроваными ключами.

Что я делаю не так?

suuaq
()

Проясните зоопарк виртуализаций

Развели зоопарк, я ничего не понимаю. Поправьте/дополните, спасибо.

VirtualBox - кроссплатформенная виртуализация под десктопы

KVM - Линуксозависимая виртуализация для vps. При чём тут QEMU?

OpenVZ - Линуксозависимая виртуализация для vps, использует ядро хоста.

Vagrant - Обрёртка над VirtualBox, KVM, OpenVZ. Под десктопы рубиразработчиков. Wait... KVM и OpenVZ используют не только для vps?

LXC - Линуксозависимые чего-то там контейнеры. Куда? Зачем? Чем отличаются от OpenVZ?

Docker - Обёртка над LXC.

libvirt - Обёртка над всем. Это только либа? Если да, то чем ей управлять?

 

suuaq
()

Как это запихнуть в реляционную базу данных

Есть классы, например дом, автомобиль.

У классов есть атрибуты, например площадь, количество дверей у класса дом, вес, количество дверей у класса автомобиль.

Классы и их атрибуты могут добавляться/удаляться/изменяться в зависимости от фазы луны.

Есть объекты, например дом-1 класса дом, площадь 100 м*м, количество дверей 5, автомобиль-1 класса автомобиль, вес 2 т, количество дверей 5. Объекты могут добавляться/удаляться/изменяться в зависимости от фазы луны.

Нужно искать объекты по атрибутам. Запрос «площадь 100 м*м» должен возвращать дом-1. Запрос «вес 2 т» должен возвращать автомобиль-1. Запрос «количество дверей 5» должен возвращать дом-1 и автомобиль-1.

Как это по умному запихнуть в mysql?

Думал как-то так:

classes
------------------
cid|cname

attributetypes
------------------
atid|atname|cid

objects
------------------
oid|oname|cid

attributes
------------------
aid|avalue|oid|atid

Но тут например можно добавить объекту одного класса атрибут от другого. Вообще не покидает ощущение, что я ректально лечу кариес.

 

suuaq
()

RSS подписка на новые темы