[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Соотнесение процесса и поля QoS



On вторник, 17 сентября 2019 г. 14:33:39 MSK, Dmitry Alexandrov wrote:
Но входящих коннектов с SOCKS не будет, а для битторрента это было бы хорошо.
Стоп. Это разные задачи, и к ним разные решения. Для битторента — это значит для сервера; а раз для сервера — значит вопрос «чем заменить попользовательский контроль доступа» неактуален, ведь он все равно по-хорошему будет запускаться от своего пользователя, а возможно и в своем пространстве сетевых имен, как т. Мельников предлагает.

Пока что сервер не нужен, только в перспективе, для начала хочу только браузер.


Попробую изучить cgroup-ы, а это свойство есть и в v1, и в v2?
Нет, это в первых.  А в Дебиан уже по-умолчанию вторые завезли?

Да, есть и первые, и вторые.
Чтобы systemd использовал и монтировал вторые, надо добавить аргумент ядру:
systemd.unified_cgroup_hierarchy=1



Тогда там само-то по себе все еще удобнее: возиться вручную с цифирью (а classid это число), если надо много разных классов создавать, уже не надо, можно буквами писать.

Но есть и одно большое но: Систем-д. Он предъявляет монопольное право на распоряжение к-группами. Оно и на первые предъявлял, просто net_cls от него был свободен. А ко вторым, как вы знаете, все контроллеры слили в один, так что вот так по-простому: ...уже не сделаешь. Надо какой-то огород городить, чтобы при логине создавалось по своему ‘inet’у на каждого пользователя, причем вместе с отдельными правилами для Нетфильтра (хотя по делу они нафиг и не нужны).


Я предполагаю делать так:
$ systemd-run --user --scope --unit=inet.scope my_program

При этом запускается my_program, и она засовывается в новую c-группу inet.scope, которая является подгруппой user@1000.service. И даже не нужны рут-права, и файлы от этой группы в /sys/fs/ тоже принадлежат пользователю.

Далее я бы хотел добавить примерно такое правило в nftables:
# nft add rule filter output meta cgroup <...> ip dscp set <...>

Но не пойму, как определить числовой идентификатор группы, который тут требуется. systemd-cgls его не сообщает, а и в /sys/fs/cgroup тоже его нет.


Reply to: