Имеется Emacs-46.1 с настроенным Gnus'ом, который вытягивает с gmail письма по IMAP. В целом все работает, прочитанные письма не отображаются в группе INBOX, но иногда наблюдаю следующее: gnus вытягивает _все_ письма (а это тысячи), в том числе и прочитанные, и INBOX раздувается.
Тоже самое иногда происходит если проверять письма вручную, наживая «/ N».
Я что-то делаю не так, или это известный баг. Что делать?
1) на обоих VM включена маршрутизация, на всякий случай отключен rp_filter
2) на обоих VM установлены соответствующие маршруты
3) на всех VM прописаны IP адреса на интерфейсах
4) создаем и поднимаем bridge девайс на хосте, интерфейсы tap1
and tap2 добавлены в bridge, на tap1/tap2/bridge IP адреса не прописаны (не уверен нужно ли??)
Но по каким-то причинам не работает, пинг не ходит с VM1 eth1->tap1->br->tap2->eth0 (хотя вижу пакеты на tap1 and bridge девайсе, но не на tap2.) или наоборот с VM2.
Нужно скомпилить линукс под Ubuntu 16.04.4 LTS для PowerPC big-endian архитектуры. Понятно, что нужен соответствующий тулчейн. 'apt-cache search' выдал кое-что. Вопрос — стоит ли пользоваться тем, что есть в портах, или лучше взять тулчейн от DENX например, http://www.denx.de/wiki/ELDK-5/WebHome ?
|--------------------------------------------------|
-------+ enp0s1 192.168.2.0/24192.168.3.0/24 enp0s2 +-----
|--------------------------------------------------|
% ip neigh add 192.168.3.111 lladdr 00:11:22:33:44:55 dev enp0s2 nud permanent
% ip neigh sh
...
192.168.3.111 dev enp0s2 lladdr 00:11:22:33:44:55 PERMANENT
% ip route show
...
192.168.3.0/24 dev enp0s2 proto kernel scope link src 192.168.3.2
В моем ядерном модуле мне нужно получить neighbour entry для 192.168.3.111 :
Читаю про bpf kprobes, вроде как этот механизм позволяет перехватывать системные вызовы, ну и наверное любые другие функции. А вот можно ли с помощью kprobe полностью подменить функцию и, например, сразу возвращать ошибку?
Может быть я не туда смотрю и kprobe не позволяет это делать? Тогда какие есть другие варианты (мне хотелось бы сделать это средствами ebpf)?
Вопрос по правилам сабмита патчей в net подсистему ядра. Там имеется две ветки, net-next.git и net.git, последняя обычно для баг фиксов, а первая вроде как для новых фитч.
Если ошибочно отправил баг-фикс в net-next, то должен ли я отправлять новую версию патча, то есть [PATCH v2 net] ... или это должно выглядеть как [RESEND PATCH net.git ... ] ?
Я пытался найти объяснения в Documentation/process/submitting-patches.rst но там ничего про эту ситуацию не сказано.
Меня интересует, сохраняется ли какая-то namespace spcific мета-информация в skb при перемещении пакета из одного неймспейса в другой? Подозреваю, что ядро это подчищает, но вот где конкретно в ядре это посмотреть?
Подскажите как правильно запускать wmii из ~/.xinitrc? Если просто запускать как «exec wmii», то похоже что конфиг-скрипт /etc/X11/wmii/wmiirc при этом не применяется. При этом «exec wmii -r ...» не помогает.
По умолчанию, то есть xinitrc не трогаем, wmii запускается успешно, в процессах видно «/bin/dash -f /etc/X11/wmii/wmiirc».
Однако я не нашел в коде, где именно хранится аллоцированный ID, то есть нигде в 'struct net' nsid не сохраняют явным образом. В таком случае, где его хранят?
Для network namespace'ов имеется структура 'struct pernet_operations', таким образом другие модули могут получать события при создании/удалении сетевых контейнеров. Есть ли аналогичные структуры для PID/Mount и пр. неймспейсов?
Вот имеется системные вызовы unshare(2) и clone(2), с их помощью можно создать неймспейс(ы). А есть ли какой-то механизм событий создания неймспейсов, то есть чтобы ядро посылало event (как например делается при создании интерфейса или IP маршрута, iproute2/ip может такие события мониторить).
Беглый просмотр ядреного кода unshare() ничего такого не выявил. Погуглил, но там в основном все методы - это сканирование /proc и /var/run/netns.
Приветствую, какие механизмы (API) предоставляет linux для мониторинга событий на файловых системах? Меня интересует, как можно отлавливать создание soft-links или монтирование к ФС ?
где PID это pid моего запущенного процесса. Вот здесь вопрос — данный процесс по-прежнему виден в списке процессов на хосте, то есть там где init_ns. Так и должно быть, насколько я понимаю?
% sudo unshare --mount=/tmp/mnt1 /bin/bash
unshare: mount /proc/1178/ns/mnt on /tmp/mnt1 failed: Not a directory
То есть как я понимаю, после успешного выполнения команды я буду в новом mount namespace'е с запущенным bash, и все примонтированные файловые системы будут изолированы от хоста.
Директория /tmp/mnt1 присутствует.
Возвращаемая ошибка -ENOTDIR, man говорит следующее:
ENOTDIR
target, or a prefix of source, is not a directory.
Полез смотреть код в util-linux-2.31/sys-utils/unshare.c :
% uname -r
4.15.0-rc8+
% ip netns add ns1
% ip netns exec ns1 mount
Я предполагал что в списке доступных в контейнер ФС будут те же, что и на хосте, однако отсутсвует debugfs (а она мне как раз нужна). В чем причина, так задумано? Если да, то почему? Погуглил, но ничего путного не нашлось.
Насколько я понимаю, sk_buff поддерживает возможность помещать данные линейно, а также странично, то есть нелинейно. «Страничность» определяется структурой skb_shared_info, которая помещается сразу после skb. Вопрос — гарантирует ли ядро минимальное количество байт, которые могут быть размещены в линейной области?
Скомпилировал примеры из ядра в tools/testing/selftests/bpf и попробовал загрузить:
% tc filter add dev enp0s1 ingress bpf object-file ./net-next.git/tools/testing/selftests/bpf/sockmap_parse_prog.o section sk_skb1 verbose
Program section 'sk_skb1' not found in ELF file!
Error fetching program/map!
llvm и clang версии 3.8, iproute2 последний из git.