LINUX.ORG.RU

Ответ на: комментарий от Serge10

Хочу уменьшить кол-во правил tc. Возможно ли с помощью nftables: маркировка поля ToS входящего и исходящего трафика интерфейса. присваивать классификатор, чтобы потом этот классификатор уже отлавливать в tc.

ta_da ()
Ответ на: комментарий от Anoxemian

С помощью tc получилось устанавливать значение ToS. Маркируется входящий и исходящий трафик интерфейса:

tc filter add dev «имя_инт» parent 1:0 pref 11 protocol ip u32 match ip sport 5000 0xffff action pedit munge ip dsfield set 18 retain 0xfc pipe csum ip

А с помощью nftables не получилось, не ставит:

table ip raw {

chain prerouting {
    type filter hook prerouting priority -300; 
    iifname «имя_инт» tcp sport {5000} ip dscp set af21
    oifname «имя_инт» tcp dport {5000} ip dscp set af21 
} 

}

ta_da ()
Ответ на: комментарий от ta_da

Попробовал у себя

table ip raw {

chain prerouting {
    type filter hook prerouting priority -300;
    ip daddr 8.8.8.8 tcp dport {5000} counter ip dscp set cs3
} 
}

без правила выхлоп tcpdump

ethertype IPv4 (0x0800), length 74: (tos 0x48, ttl 63, id 56911, offset 0, flags [DF], proto TCP (6), length 60)

с правилом

ethertype IPv4 (0x0800), length 74: (tos 0x60, ttl 63, id 35912, offset 0, flags [DF], proto TCP (6), length 60)
Bloody ()
Ответ на: комментарий от Bloody

изменил hook с prerouting на output и заработало.

table ip raw {

chain prerouting {

type filter hook output priority -300;

ip daddr 8.8.8.8 tcp dport {5000} counter ip dscp set cs3

}

}

Эта схема актуальна для nftables или только для iptables ?

https://en.wikipedia.org/wiki/Netfilter#/media/File:Netfilter-packet-flow.svg

Внизу схемы написано: Flow of network packets through Netfilter with legacy iptables packet filtering

ta_da ()