Linux Debian - QoS Dscp con v18

infosoluzioni

Bronze Partner
Registrato
29 Aprile 2020
Messaggi
6
Ciao a tutti.

Con la v16 (Debian 9), per taggare i pacchetti di rete in uscita dal centralino con DSCP, abbiamo "sempre" seguito la guida di questo link:


apt-get install iptables-persistent

iptables -t mangle -A OUTPUT -p udp -j DSCP --set-dscp 46
iptables -t mangle -A OUTPUT -p tcp -j DSCP --set-dscp 46

iptables-save >/etc/iptables/rules.v4

Ma ora con Debian 10, iptables è stato sostituito da nft !!! qualche anima buona (di sistemista linux) che sappia indicare i nuovi comandi ?
 
Ciao, se hai fatto un aggiornamento, le regole di iptables, in teoria, sono state convertite in regole di nftables. Con questo comando:

Codice:
nft list ruleset

dovresti visualizzare le regole su nftables. Fidati che nessuno, nemmeno i sistemisti, adorano nft. Dove è possibile, si torna a iptables.
Su Debian 10 c'è ancora la versione legacy di iptables, è deprecata ma si può usare. Personalmente però cerco sempre di non modificare nulla su un'installazione 3CX
 
  • Like
Reactions: infosoluzioni
Ciao, se hai fatto un aggiornamento, le regole di iptables, in teoria, sono state convertite in regole di nftables. Con questo comando:

Codice:
nft list ruleset

dovresti visualizzare le regole su nftables. Fidati che nessuno, nemmeno i sistemisti, adorano nft. Dove è possibile, si torna a iptables.
Su Debian 10 c'è ancora la versione legacy di iptables, è deprecata ma si può usare. Personalmente però cerco sempre di non modificare nulla su un'installazione 3CX

Grazie, si, ho visto anche io che:
- in caso di aggiornamento viene tutto upgradato automaticamente (visto dal "...list" e dal file /etc/nft.conf).
- ci sono comandi per tornare ad iptables con Debian 10, ma appunto preferirei lasciare nft visto che "nasce" con questa

(ed in questo primo caso non mi azzardo neanche a fare troppe prove per tornare ad iptables, visto che sono su un raspberry e non una vm, non vorrei dover correre fisicamente dal cliente per reinstallare il tutto)

Chiedevo per nuova installazione creata con v18.

A questo punto, possibilmente, qualcuno sa o riesce a capire che comandi da dare con nft ?
 
Ultima modifica:
  • Like
Reactions: infosoluzioni
in ToS, 46 corrisponde a 0xb8


provalo in un ambiente di test e non sul 3cx in produzione:

Codice:
nft add table ip mangle
nft add rule ip mangle PREROUTING tcp counter ip dscp set 0xb8
nft add rule ip mangle PREROUTING udp counter ip dscp set 0xb8

Ho capito.... altrimenti penso sia buono quello che ora mi ritrovo, a proposito di DSCP, sul file /etc/nftables.conf di un'installazione V16 aggiornata alla V18, dove avevo dato i relativi comandi Dscp per iptables (e quindi poi aggiornati automaticamente per nft quando fatto upgrade).

Su questa installazione mi ritrovo il file /etc/nftables.conf in questo modo (con v18):
...
add rule ip filter INPUT tcp ...
add rule ip filter INPUT ip ...
add table ip mangle
add chain ip mangle PREROUTING { type filter hook prerouting priority 0; }
add chain ip mangle INPUT { type filter hook input priority 0; }
add chain ip mangle FORWARD { type filter hook forward priority 0; }
add chain ip mangle OUTPUT { type filter hook output priority 0; }
add chain ip mangle POSTROUTING { type filter hook postrouting priority 0; }

add rule ip mangle OUTPUT ip protocol udp counter ip dscp set 0x2e
add rule ip mangle OUTPUT ip protocol tcp counter ip dscp set 0x2e

# Completed on Sun Aug 29 01:59:23 2021
# Translated by ip6tables-restore-translate v1.6.0 on Sun Aug 29 01:59:23 2021
add table ip6 filter
...

Quindi su nuova installazione v18, direi di lanciare i comandi:

nft add table ip mangle
nft add rule ip mangle OUTPUT ip protocol udp counter ip dscp set 0x2e
nft add rule ip mangle OUTPUT ip protocol tcp counter ip dscp set 0x2e

(con eventuale sudo prima se non sono root)

Secondo te ok ? oppure dopo
nft add table ip mangle
secondo te occorre lanciare anche i 5 "nft add chain ip ..." che ho messo in corsivo ?

Grazie tanto
 
Ultima modifica:
controlla nella nuova installazione cosa c'è nel file /etc/nftables.conf. Dovrebbe essere così:

Codice:
#!/usr/sbin/nft -f

flush ruleset

table inet filter {
        chain input {
                type filter hook input priority 0;
        }
        chain forward {
                type filter hook forward priority 0;
        }
        chain output {
                type filter hook output priority 0;
        }
}

devi aggiungere sotto

Codice:
table ip mangle {
     chain PREROUTING {
           type filter hook prerouting priority 0;
     }
     chain INPUT {
           type filter hook input priority 0;
     }
     chain FORWARD {
           type filter hook forward priority 0;
     }
     chain OUTPUT {
           type filter hook output priority 0;
           ip protocol udp counter ip dscp set 0x2e;
           ip protocol tcp counter ip dscp set 0x2e;
     }
     chain POSTROUTING {
           type filter hook postrouting priority 0;
     }
}

Come ToS devi mettere 0x2e, prima ho sbagliato io
 
  • Like
Reactions: infosoluzioni
controlla nella nuova installazione cosa c'è nel file /etc/nftables.conf. Dovrebbe essere così:

Codice:
#!/usr/sbin/nft -f

flush ruleset

table inet filter {
        chain input {
                type filter hook input priority 0;
        }
        chain forward {
                type filter hook forward priority 0;
        }
        chain output {
                type filter hook output priority 0;
        }
}

devi aggiungere sotto

Codice:
table ip mangle {
     chain PREROUTING {
           type filter hook prerouting priority 0;
     }
     chain INPUT {
           type filter hook input priority 0;
     }
     chain FORWARD {
           type filter hook forward priority 0;
     }
     chain OUTPUT {
           type filter hook output priority 0;
           ip protocol udp counter ip dscp set 0x2e;
           ip protocol tcp counter ip dscp set 0x2e;
     }
     chain POSTROUTING {
           type filter hook postrouting priority 0;
     }
}

Come ToS devi mettere 0x2e, prima ho sbagliato io

No il files in una versione v16 con i comandi Dscp, aggiornato a V18, ora è come ti ho scritto prima, e cioè

...
add rule ip filter INPUT tcp ...
add rule ip filter INPUT ip ...
add table ip mangle
add chain ip mangle PREROUTING { type filter hook prerouting priority 0; }
add chain ip mangle INPUT { type filter hook input priority 0; }
add chain ip mangle FORWARD { type filter hook forward priority 0; }
add chain ip mangle OUTPUT { type filter hook output priority 0; }
add chain ip mangle POSTROUTING { type filter hook postrouting priority 0; }

add rule ip mangle OUTPUT ip protocol udp counter ip dscp set 0x2e
add rule ip mangle OUTPUT ip protocol tcp counter ip dscp set 0x2e

# Completed on Sun Aug 29 01:59:23 2021
# Translated by ip6tables-restore-translate v1.6.0 on Sun Aug 29 01:59:23 2021
add table ip6 filter
...
 
  • Like
Reactions: Giuseppe.IA
allora è già ok :D
 
controlla nella nuova installazione cosa c'è nel file /etc/nftables.conf. Dovrebbe essere così:

Codice:
#!/usr/sbin/nft -f

flush ruleset

table inet filter {
        chain input {
                type filter hook input priority 0;
        }
        chain forward {
                type filter hook forward priority 0;
        }
        chain output {
                type filter hook output priority 0;
        }
}

devi aggiungere sotto

Codice:
table ip mangle {
     chain PREROUTING {
           type filter hook prerouting priority 0;
     }
     chain INPUT {
           type filter hook input priority 0;
     }
     chain FORWARD {
           type filter hook forward priority 0;
     }
     chain OUTPUT {
           type filter hook output priority 0;
           ip protocol udp counter ip dscp set 0x2e;
           ip protocol tcp counter ip dscp set 0x2e;
     }
     chain POSTROUTING {
           type filter hook postrouting priority 0;
     }
}

Come ToS devi mettere 0x2e, prima ho sbagliato io


Tutto ok, risolto.

Come avevi detto bastava aggiungere al file /etc/nftables.conf quello che avevi detto e cioè:

table ip mangle { chain PREROUTING { type filter hook prerouting priority 0; } chain INPUT { type filter hook input priority 0; } chain FORWARD { type filter hook forward priority 0; } chain OUTPUT { type filter hook output priority 0; ip protocol udp counter ip dscp set 0x2e; ip protocol tcp counter ip dscp set 0x2e; } chain POSTROUTING { type filter hook postrouting priority 0; } }



Riavviare, e tutto ok.

Grazie
 
  • Like
Reactions: Giuseppe.IA

Inizia con 3CX – Admin

Forum statistics

Discussioni
44.659
Messaggi
233.415
Membri
78.445
Ultimo Iscritto
NordNico