Re: Traffic shaping at 10~300mbps at a 10Gbps link
"Ethy H. Brito" <[email protected]> Mon, 14 Jun 2021 13:13:26 -0300
| Newsgroups | gmane.linux.network.routing |
|---|---|
| Organization | InterNexo Ltda. |
| Message-ID | <20210614131326.1fbff0a4@babalu> |
On Sat, 12 Jun 2021 14:24:21 +0300 Anatoly Muliarski <[email protected]> wrote: > HTB does not work correctly on high speed links. > Try to use HFSC. I've read some reports about problem of CPU consumption using HFSC+SFQ. What qdisc do you use associated with each leaf (users) HFSC classes? Does HFSC inner classes need associated queue disciplines? Cheers Ethy =20 >=20 > 2021-06-10 1:13 GMT+03:00, Ethy H. Brito <[email protected]>: > > On Wed, 9 Jun 2021 21:57:30 +0200 > > Adam Niescierowicz <[email protected]> wrote: > > =20 > >> W dniu 09.06.2021 o 21:30, Ethy H. Brito pisze: =20 > >> > On Wed, 9 Jun 2021 21:11:03 +0200 > >> > Adam Niescierowicz <[email protected]> wrote: > >> > =20 > >> >> How you make filters, it's one level or multilevel based? =20 > >> > Multi level. > >> > > >> > First test IPv4, IPv6 or Other Protocols. > >> > Then test for two cidr "/19" and one /20 blocks we use. > >> > Then for every /24 block inside the selected cidr block. > >> > > >> > I can send some fragments of each "test" block, if you want. > >> > =20 > >> Please send it will be easier. > >> > >> We have 5+ Gbps at peak, 12core cpu and it's working. We don't use ipv6 > >> on this router, but we use PPPoE. > >> > >> > >> What's kernel version?, our is old 4.17. =20 > > > > # lsb_release -a > > No LSB modules are available. > > Distributor ID: Ubuntu > > Description: Ubuntu 20.04.2 LTS > > Release: 20.04 > > Codename: focal > > > > # tc -V > > tc utility, iproute2-ss200127 > > > > # uname -a > > Linux quiron 5.4.0-66-generic #74-Ubuntu SMP Wed Jan 27 22:54:38 UTC 20= 21 > > x86_64 x86_64 x86_64 GNU/Linux > > > > > > Here we go. > > > > eth0 is the internal interface (send packets to users - download) > > The rules are inserted in the order bellow. There are no inversions. > > > > Just a very few lines were copied here. > > I can send a WeTransfer link for those who may need the full script fil= e. > > > > ---------------------------8<------------------------------------ > > > > /sbin/tc filter add dev eth0 parent 1:0 prio 1 protocol ipv6 u32 > > > > /sbin/tc filter add dev eth0 parent 1:0 prio 2 protocol ip u32 > > > > # Some service networks > > /sbin/tc filter add dev eth0 protocol ipv4 parent 1: pref 2 \ > > u32 match ip dst 100.64.254.0/24 \ > > flowid 1:fffe > > /sbin/tc filter add dev eth0 protocol ipv6 parent 1: pref 1 \ > > u32 match ip6 dst fe80::/10 \ > > flowid 1:fffe > > > > # > > /sbin/tc filter add dev eth0 parent 1:0 prio 99 handle 1: u32 divisor 4 > > > > /sbin/tc filter add dev eth0 parent 1:0 prio 99 handle 10: u32 divisor = 256 > > > > /sbin/tc filter add dev eth0 parent 1:0 protocol ipv6 prio 1 u32 ht 1: = match > > ip6 dst 2001:12c4:a10:e000::/51 hashkey mask 0x0000ff00 at 28 link 10: > > > > /sbin/tc filter add dev eth0 parent 1:0 prio 99 handle 100: u32 divisor= 256 > > > > /sbin/tc filter add dev eth0 parent 1:0 protocol ipv6 prio 1 u32 ht 10:= e0: > > match ip6 dst 2001:12c4:a10:e000::/56 hashkey mask 0x000000ff at 28 link > > 100: > > > > ... links 101 (2001:12c4:a10:e100::/56), 102 (2001:12c4:a10:e200::/56) = ... > > up to > > > > /sbin/tc filter add dev eth0 parent 1:0 protocol ipv6 prio 1 u32 ht 10:= ff: > > match ip6 dst 2001:12c4:a10:ff00::/56 hashkey mask 0x000000ff at 28 link > > 11f: > > > > /sbin/tc filter add dev eth0 parent 1:0 prio 99 handle 11: u32 divisor = 256 > > > > /sbin/tc filter add dev eth0 parent 1:0 protocol ipv6 prio 1 u32 ht 1: = match > > ip6 dst 2001:12c4:6440::/51 hashkey mask 0x0000ff00 at 28 link 11: > > > > > > /sbin/tc filter add dev eth0 parent 1:0 prio 99 handle 120: u32 divisor= 256 > > /sbin/tc filter add dev eth0 parent 1:0 protocol ipv6 prio 1 u32 ht 11:= 00: > > match ip6 dst 2001:12c4:6440:000::/56 hashkey mask 0x000000ff at 28 link > > 120: > > > > ... same here up to link 13f (2001:12c4:6440:1f00::/56): > > More IPv6 filters like these follows to others CIDRs. > > > > Now for IPv4 /24 blocks. > > > > /sbin/tc filter add dev eth0 parent 1:0 prio 99 handle 2: u32 divisor 4 > > > > # Hash Table para 256 Blocos /24 de endere=C3=A7os IP para o macro bloco > > 10.16.224.0/19 > > > > /sbin/tc filter add dev eth0 parent 1:0 prio 99 handle 13: u32 divisor = 256 > > > > /sbin/tc filter add dev eth0 parent 1:0 protocol ip prio 2 u32 ht 2: ma= tch > > ip dst 10.16.224.0/19 hashkey mask 0x0000ff00 at 16 link 13: > > > > /sbin/tc filter add dev eth0 parent 1:0 prio 99 handle 150: u32 divisor= 256 > > /sbin/tc filter add dev eth0 parent 1:0 protocol ip prio 2 u32 ht 13:e0: > > match ip dst 10.16.224.0/24 hashkey mask 0x000000ff at 16 link 150: > > > > ... link 151 (10.16.225.0/24), 153 (10.16.226.0/24) ... up to > > > > /sbin/tc filter add dev eth0 parent 1:0 prio 99 handle 16f: u32 divisor= 256 > > /sbin/tc filter add dev eth0 parent 1:0 protocol ip prio 2 u32 ht 13:ff: > > match ip dst 10.16.255.0/24 hashkey mask 0x000000ff at 16 link 16f: > > > > Other CIDRs blocks for 100.64.0/19 follows like... > > /sbin/tc filter add dev eth0 parent 1:0 prio 99 handle 14: u32 divisor = 256 > > /sbin/tc filter add dev eth0 parent 1:0 protocol ip prio 2 u32 ht 2: ma= tch > > ip dst 100.64.0.0/19 hashkey mask 0x0000ff00 at 16 link 14: > > > > /sbin/tc filter add dev eth0 parent 1:0 prio 99 handle 170: u32 divisor= 256 > > /sbin/tc filter add dev eth0 parent 1:0 protocol ip prio 2 u32 ht 14:00: > > match ip dst 100.64.0.0/24 hashkey mask 0x000000ff at 16 link 170: > > > > up to link 19f: > > > > And finally: > > > > /sbin/tc filter add dev eth0 parent 1:0 handle ::2 prio 1 protocol ipv6= u32 > > match u32 0 0 link 1: > > > > /sbin/tc filter add dev eth0 parent 1:0 handle ::2 prio 2 protocol ip u= 32 > > match u32 0 0 link 2: > > > > /sbin/tc filter add dev eth0 parent 1:0 prio 3 protocol arp u32 match = u32 0 > > 0 classid 1:fffe > > > > # Rede "default" para endere=C3=A7os IPV6 n=C3=A3o Classificados anteri= ormente > > /sbin/tc filter add dev eth0 parent 1:0 prio 1 handle ::ffe protocol ip= v6 > > u32 match u32 0 0 classid 1:fffc > > > > Thanks for your time. > > > > Cheers > > > > Ethy > > =20 >=20 >=20 > --=20 > Best regards > Anatoly Muliarski --=20 Ethy H. Brito /"\ InterNexo Ltda. \ / CAMPANHA DA FITA ASCII - CONTRA MAIL HTML +55 (12) 3797-6860 X ASCII RIBBON CAMPAIGN - AGAINST HTML MAIL S.J.Campos - Brasil / \=20 =20 PGP key: http://www.inexo.com.br/~ethy/0xC3F222A0.asc