Pull to refresh
67
-2
Антон Данилов @EvilMan

User

Send message

А будет в обозримом будущем что-нибудь из свежей литературы по Rust? Например, второе издание The rust programming language.

Сейчас вроде это ratatype

Это разные программы. "Соло на клавиатуре" и сейчас живёт и здравствует. Переехало в вэб.

В openwrt используется своя система инициализации и управления сервисами - procd

UPD: ни через tc, ни через netdev / ingress хук невозможно заблокировать получение датаграм на сокеты af_packet / pf_packet, т.к. клонирование происходит вот здесь (при условии, что у нас в системе есть фильтры, которые отбирают данные датаграммы; если таких фильтров нет, то и клонирования не происходит - т.н. ленивое поведение), а обработка tc qdisc ingress происходит чуть дальше по коду, и только после происходит обработка через netdev / ingress хук. Так что, похоже, XDP является одним из немногих оставшихся вариантов дропнуть подобный трафик, т.к. выполнение XDP программы происходит чуть раньше, чем происходит клонирование датаграммы.

Пунтим вопрос обратно на мозг: как так iptables пакет считает в статистику, но не может дропнуть? Или может?

На стековерфлоу есть ответ на вопрос, почему счётчики правил для отбрасывания пакетов инкрементируются (и эти пакеты на самом деле дропаются), а dhcp клиент продолжает работать без проблем.

Да, причём именно в egress направлении замечательно фильтруется. Вешаем любую classfull дисциплину и навешиваем несложный фильтр. Например:

~/# tc q add dev <iface> root handle 1: prio
~/# tc f add dev <iface> parent 1: protocol ip prio 1 flower ip_src 0.0.0.0/32 ip_dst 255.255.255.255 ip_protocol udp src_port 68 dst_port 67 action drop 

Но нужно дополнительно исследовать поведение, когда на сокете выставлена опция PACKET_QDISC_BYPASS. Тут я навскидку не скажу - надо читать код ядра.

Для ядер, начиная с 5.16 доступен дополнительный способ вместо tc - там добавлен хук netdev/egress, который можно использовать из nftables.

~/# nft -i
nft> flush ruleset
nft> add table netdev t
nft> add chain netdev t egress_chain { type filter hook egress device <iface> priority 0; }
nft> add rule netdev t egress_chain ip saddr 0.0.0.0/32 ip daddr 255.255.255.255/32 meta l4proto udp udp sport 68 udp dport 67 counter drop

А вот в направлении ingress фильтрация через tc / nftables обламывается, потому что клонирование пакета происходит раньше, чем эти инструменты вступают в работу. Это можно увидеть на прекрасной диаграмме из вики (на ней есть неточности, так что не верьте всему и перепроверяйте всегда).

В том переводе есть фатальный недостаток. И не хватает частей.

Crate - это так в rust называются библиотечные модули, иногда их называют пакетами. Trait - это что-то вроде интерфейса - набор методов, которые реализованы для конкретного типа данных. В русскоязычной литературе встречается термины "характеристика" и "типаж".

Судя по всему, даже используя алфавит из кодпоинтов Юникода всё равно получаем огроменные символьные классы (и, соответственно, гигантские автоматы). При этом теряется универсальность и ещё, наверное, пришлось бы часть движков делать в двух экземплярах - один экземпляр для алфавита на основе байт, а второй - для алфавита из Юникодных кодпоинтов.

https://vas3k.blog/blog/quantum_computing/ - как мне кажется, вот тут неплохое введение в тему Квантовых вычислений для начала формирования бэкграунда.

На первом курсе тоже делал нечто подобное. Для построения обратной польской нотации из инфиксной нотации использовал Алгоритм Сортировочной Станции (Shunting Yard Algorithm) от Дейкстры.

После в отделе светокопии кальки пропускались через барабан специальной светокопировальной машины — на выходе получался рулон, который далее закреплялся на краю огромного стола и специальными ножницами вручную разрезался на отдельные чертежи. Так получался другой тип документа — «синька» (такое название он получил благодаря синеватому оттенку кальки).

Насколько мне известно, слово "синька" (англ. blueprint) закрепилось за копиями чертежей, сделанных по технологии цианотипии. Эти копии изготавливались конктактным методом, имели синий фон (те участки, которые подвергались засвету) и белые линии (там, где засвета не было). Но позже цианотипия была вытеснена диазотипией, где копии уже имели светлый фон и тёмные линии, но термин "синька" так и "прилип".

Лучше, конечно же, make -j <N> bindeb-pkg - сгенерит бинарный пакет с ядром, пакет отладочных символов, пакет с заголовками, и пакет libc-dev. И где <N> - кол-во параллельных потоков, чтобы было быстрее.

Наконец-таки она вышла на русском. Как говорится: "Джва года ждал".

А есть информация о примерных сроках выпуска отдельной книги по BPF от того же автора?

Очередная бесполезная статья про мифические закладки, которые без ведома производителей/проектировщиков недруги могут внедрить (в альтернативной реальности мировоззрения автора статьи и некоторых других упоротых товарищей)

Даже если они и были, то это не совсем то, о чём ведётся речь в статье и в контексте обсуждения.

По мнению безопасников, бэкдоры в микросхемах — это «не проблема, которую можно решить, а скорее условие, в котором мы существуем».

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

Тогда вам будет интересно ещё ознакомиться с лабником (Цифровой синтез: Практический курс), чтобы прокачать не только теорию.

1
23 ...

Information

Rating
Does not participate
Location
Тула, Тульская обл., Россия
Registered
Activity

Specialization

System Administration, Network Engineer
Lead