Назад | Перейти на главную страницу

nftables: установить метку пакета из необработанной полезной нагрузки

Я пытаюсь установить поле метки пакета в 32-битное поле в заголовке (уровень 5), используя nft add rule inet filter output udp dport 31337 meta mark set @th,96,32. (Я вытаскиваю второе двойное слово в заголовке уровня 5, но поскольку извлечение начинается со смещения заголовка уровня 4, я добавляю 64 бита, чтобы получить полезную нагрузку UDP.)

Однако я получаю Error: datatype mismatch: expected packet mark, expression has type integer. В integer тип в nftables имеет переменную длину; в mark тип - это специализация integer тип длиной ровно 32 бита. Я не могу понять, как преобразовать или иным образом убедить nftables, что с типом все в порядке.

Есть идеи?

Потому что я использую nftables 0.9.0 и эта ошибка не был исправлен до 0.9.1.