Temat: QoS over Nftables - reguły tylko na interfejsie WAN

Hej,
potrzebuję ustawić ograniczenia przepustowości (pobieranie/wysyłanie) dla konkretnych adresów IP w OpenWRT 22. Zainstalowałem pakiet QoS over Nftables, jednak wprowadzone reguły dotyczą wszystkich interfejsów (także LAN). Potrzeba zmiany wynika z powodu, iż chciałbym wykorzystywać pełną przepustowość wymiany danych pomiędzy urządzeniami przez Ethernet jak i WiFi bez ograniczeń w sieci lokalnej. Natomiast z uwzględnieniem ograniczeń po WAN.
Zatem czy taka zmiana jest możliwa? Niestety jestem świeży w nftables i nie mam pojęcia jak dane polecenie napisać i czy jest to w ogóle możliwe.

Na forum openwrt znalazłem kod w temacie, jednak nie wiem czy może to działać. Prosiłbym o pomoc.

Link do forum: https://forum.openwrt.org/t/qos-over-nf … ce/77623/6

Kod:

#!/usr/sbin/nft -f
#

table inet nft-qos-static {
    host ip 192.168.0.25
        chain upload {
                type filter hook prerouting priority 0; policy accept;
                saddr via **WAN** limit rate over 128 kbytes/second **drop**
                saddr via **LAN** limit rate **unlimited**
        }
        chain download {
                type filter hook postrouting priority 0; policy accept;
                daddr via **WAN** limit rate over 1344 kbytes/second **drop**
                daddr via **LAN** limit rate **unlimited**
        }
    }
}

2

Odp: QoS over Nftables - reguły tylko na interfejsie WAN

Sprawdzałeś to? Ruch w sieci lokalnej pomiędzy hostami nie przechodzi przez firewall w openwrt, bo to router nie bierze udziału w takiej transmisji. No chyba że rozdzieliłeś interfejsy i nie napisałeś wszystkiego co trzeba.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: QoS over Nftables - reguły tylko na interfejsie WAN

Powiem ogólnie tak, jestem dość w szoku, bo nie wiedziałem, że tak to działa, ale działa to idealnie smile WAN jest blokowany przez reguły nftables natomiast LAN (Ethernet + WiFi) są spięte razem (jeden interfejs) i wymieniają się danymi z pełną przepustowością. O to chodziło!

4

Odp: QoS over Nftables - reguły tylko na interfejsie WAN

Dlatego tez np. nie możesz zablokować na firewallu ruchu pomiędzy hostami w lanie, dopóki nie pobawisz się w oddzielne interfejsy/strefy firewalla itd, żeby wymusić aby cały ruch przechodził przez router. Co też średnio wygląda, bo on wtedy będzie przewalał bardzo dużo ruchu.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: QoS over Nftables - reguły tylko na interfejsie WAN

Tak, w pełni się z tym zgadzam. Niepotrzebnie zżerałoby też CPU, gdyby każdy pakiet przelatywał przez LAN. Ma to sens. Dzięki raz jeszcze!

6 (edytowany przez smereka 2023-11-28 10:05:11)

Odp: QoS over Nftables - reguły tylko na interfejsie WAN

Zainstalowałem sboie ten qos-nft

Powiedzmy, że działa ale do czasu restartu routera wówczas wygląda to tak:

root@OpenWrt_teren:~# uci show nft-qos
nft-qos.default=default
nft-qos.default.limit_enable='1'
nft-qos.default.static_unit_dl='kbytes'
nft-qos.default.static_unit_ul='kbytes'
nft-qos.default.static_rate_dl='50'
nft-qos.default.static_rate_ul='50'
nft-qos.default.limit_type='dynamic'
nft-qos.default.dynamic_cidr='192.168.3.0/24'
nft-qos.default.dynamic_bw_up='9'
nft-qos.default.dynamic_bw_down='9'
nft-qos.default.limit_mac_enable='0'
nft-qos.default.priority_enable='0'
nft-qos.default.priority_netdev='lan'
root@OpenWrt_teren:~# cat /tmp/qos.nft
#!/usr/sbin/nft -f
# Copyright (C) 2018 rosysong@rosinson.com
#

table inet nft-qos-dynamic {
}



Czemu nie odpala się po restarcie routera? Cezary coś Ci przychodzi na myśl?

7

Odp: QoS over Nftables - reguły tylko na interfejsie WAN

/etc/init.d/nft-qos enable ?

Dawno do niego nie zaglądałem, nie sprawdzałem czy jeszcze działa. Wiem że limitowanie po mac nie działa w jedną stronę, po IP działa, ale czy działa dynamicznie tego już nie pamiętam.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

8

Odp: QoS over Nftables - reguły tylko na interfejsie WAN

No niby mam a autostarcie na zielono ale dodam to co piszesz

9

Odp: QoS over Nftables - reguły tylko na interfejsie WAN

Jak masz dynamicznie to na hotplugu na przy pobraniu adresu odpalają się skrypty. Możesz zobaczyć czy w logach jest info o wykryciu hosta, bo on coś tam wypisywał wtedy.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

10

Odp: QoS over Nftables - reguły tylko na interfejsie WAN

Dobra pomogło dodanie do lokalnego autostartu tego:

sleep 20
/etc/init.d/nft-qos restart

i śmiga

Ech ten pakiety fajne ale niedopracowane...

11 (edytowany przez wisipior 2024-11-24 21:57:11)

Odp: QoS over Nftables - reguły tylko na interfejsie WAN

Szukam sposobu na tzw. initial burst w QoS - czyli na chwilę większy limit na początku połączenia.
Znalazłem takie coś i pytanie czy to faktycznie działa w obecnej wersji nft-qos (MiFi).
Restart nft-qos nie narzeka na konfig:

config download 'm1cd6be9197eddown'
        option unit 'kbytes'
        option macaddr '1c:d6:be:91:97:ed'
        option rate '832'
        option burst '6000'      <- czy jest taka opcja ?

12

Odp: QoS over Nftables - reguły tylko na interfejsie WAN

Zrób teraz speedtesta i zobaczy czy tak działa jak chcesz.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

13 (edytowany przez wisipior 2024-11-24 22:46:50)

Odp: QoS over Nftables - reguły tylko na interfejsie WAN

Tak, działa, zmniejsza. Ale bardzo dziwne że nft list nigdy nie pokazuje tych reguł, pomimo że działa. Pokaże dopiero jeśli sam wprowadzę.

# nft list table bridge nft-qos-mac
table bridge nft-qos-mac {
        chain upload {
                type filter hook prerouting priority 0; policy accept;
        }

        chain download {
                type filter hook postrouting priority 0; policy accept;
        }
}

# nft add rule bridge nft-qos-mac download ether daddr e4:11:5b:26:62:fe limit rate 256 kbytes/second burst 1024 kbytes
# nft list table bridge nft-qos-mac
table bridge nft-qos-mac {
        chain upload {
                type filter hook prerouting priority 0; policy accept;
        }

        chain download {
                type filter hook postrouting priority 0; policy accept;
                ether daddr e4:11:5b:26:62:fe limit rate 256 kbytes/second burst 1 mbytes
        }
}

14 (edytowany przez Cezary 2024-11-25 07:49:39)

Odp: QoS over Nftables - reguły tylko na interfejsie WAN

Jest normalnie:

root@MiFi:/tmp# nft list tables
table inet nft-qos-monitor
table inet nft-qos-static
table inet fw4
root@MiFi:/tmp# nft list table inet nft-qos-static
table inet nft-qos-static {
    chain upload {
        type filter hook prerouting priority filter; policy accept;
        ip saddr 192.168.11.200 limit rate over 512 kbytes/second drop
    }

    chain download {
        type filter hook postrouting priority filter; policy accept;
        ip daddr 192.168.11.200 limit rate over 512 kbytes/second drop
    }
}
Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

15 (edytowany przez wisipior 2024-11-25 10:01:12)

Odp: QoS over Nftables - reguły tylko na interfejsie WAN

Cezary napisał/a:

Jest normalnie:

root@MiFi:/tmp# nft list tables
table inet nft-qos-monitor
table inet nft-qos-static
table inet fw4
root@MiFi:/tmp# nft list table inet nft-qos-static
table inet nft-qos-static {
    chain upload {
        type filter hook prerouting priority filter; policy accept;
        ip saddr 192.168.11.200 limit rate over 512 kbytes/second drop
    }

    chain download {
        type filter hook postrouting priority filter; policy accept;
        ip daddr 192.168.11.200 limit rate over 512 kbytes/second drop
    }
}

Może źle restartuję usługe przez /etc/init.d/nft-qos restart  . Na 3ech różnych ruterach z mifi po restarcie usługi u mnie pusto, a reguły chodzą. Jest tak zarówno dla bridge nft-qos-mac  jak  inet nft-qos-static

16

Odp: QoS over Nftables - reguły tylko na interfejsie WAN

Nie możesz źle zrestartować usługi smile

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

17

Odp: QoS over Nftables - reguły tylko na interfejsie WAN

Cezary napisał/a:

Nie możesz źle zrestartować usługi smile

Dzięki smile W sumie jak działa to nie ma problemu.