This is the output of tcpdump. One capture from lan (eth0) and one from wan (eth1):
tcpdump udp port 3074 -i eth0 -v -n
16:33:22.002851 IP (tos 0x0, ttl 128, id 54163, offset 0, flags [none], proto UDP (17), length 113)
192.168.1.208.3074 > 5.200.29.138.39280: UDP, length 85
16:33:22.009151 IP (tos 0x80, ttl 54, id 21501, offset 0, flags [DF], proto UDP (17), length 410)
5.200.29.138.39280 > 192.168.1.208.3074: UDP, length 382
tcpdump udp port 3074 -i eth1 -v -n
16:40:28.398588 IP (tos 0x80, ttl 127, id 51325, offset 0, flags [none], proto UDP (17), length 113)
x.x.x.x.3074 > 95.179.217.195.30010: UDP, length 85
16:40:28.399563 IP (tos 0x0, ttl 49, id 53869, offset 0, flags [DF], proto UDP (17), length 550)
95.179.217.195.30010 > x.x.x.x.3074: UDP, length 522
So it seems to be working…
This is the output of tc -s qdisc:
tc -s qdisc
qdisc noqueue 0: dev lo root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc mq 0: dev eth0 root
Sent 11705171284 bytes 11168275 pkt (dropped 0, overlimits 0 requeues 1784)
backlog 0b 0p requeues 1784
qdisc fq_codel 0: dev eth0 parent :2 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 32Mb ecn drop_batch 64
Sent 5020555951 bytes 4833737 pkt (dropped 0, overlimits 0 requeues 806)
backlog 0b 0p requeues 806
maxpacket 66616 drop_overlimit 0 new_flow_count 509 ecn_mark 0
new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :1 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 32Mb ecn drop_batch 64
Sent 6684615333 bytes 6334538 pkt (dropped 0, overlimits 0 requeues 978)
backlog 0b 0p requeues 978
maxpacket 66616 drop_overlimit 0 new_flow_count 50878 ecn_mark 0
new_flows_len 0 old_flows_len 0
qdisc cake 8028: dev eth1 root refcnt 9 bandwidth 45Mbit diffserv4 dual-srchost nat nowash ack-filter split-gso rtt 100ms noatm overhead 38 mpu 84
Sent 495579848 bytes 2287805 pkt (dropped 7617, overlimits 1172159 requeues 1082)
backlog 0b 0p requeues 1082
memory used: 246648b of 4Mb
capacity estimate: 45Mbit
min/max network layer size: 28 / 1500
min/max overhead-adjusted size: 84 / 1538
average network hdr offset: 14
Bulk Best Effort Video Voice
thresh 2812Kbit 45Mbit 22500Kbit 11250Kbit
target 6.46ms 5ms 5ms 5ms
interval 101ms 100ms 100ms 100ms
pk_delay 19us 202us 24us 101us
av_delay 7us 15us 6us 10us
sp_delay 2us 2us 3us 1us
backlog 0b 0b 0b 0b
pkts 2706 2224923 166 67627
bytes 428090 490462756 12780 5264586
way_inds 0 268659 0 2353
way_miss 37 54989 160 5258
way_cols 0 0 0 0
drops 0 47 0 0
marks 0 2 0 0
ack_drop 0 7570 0 0
sp_flows 1 3 1 1
bk_flows 0 1 0 0
un_flows 0 0 0 0
max_len 1326 52990 90 1382
quantum 300 1373 686 343
qdisc ingress ffff: dev eth1 parent ffff:fff1 ----------------
Sent 6423467586 bytes 9063907 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc noqueue 0: dev eth0.10 root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc noqueue 0: dev eth0.15 root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc noqueue 0: dev eth0.33 root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc noqueue 0: dev eth0.50 root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc noqueue 0: dev lxcbr0 root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc noqueue 0: dev eth0.44 root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc noqueue 0: dev phy0-ap0 root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc fq_codel 0: dev tun1 root refcnt 2 limit 10240p flows 1024 quantum 1500 target 5ms interval 100ms memory_limit 32Mb ecn drop_batch 64
Sent 10776 bytes 71 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
new_flows_len 0 old_flows_len 0
qdisc noqueue 0: dev docker0 root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc noqueue 0: dev br-303c81f631c5 root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc noqueue 0: dev br-dd0139594ff6 root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc noqueue 0: dev vethd5d15a1 root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc cake 8029: dev ifb4eth1 root refcnt 2 bandwidth 90Mbit diffserv4 dual-dsthost nat nowash ingress no-ack-filter split-gso rtt 100ms noatm overhead 38 mpu 84
Sent 6586528610 bytes 9062896 pkt (dropped 1011, overlimits 8569202 requeues 0)
backlog 0b 0p requeues 0
memory used: 1251072b of 4500000b
capacity estimate: 90Mbit
min/max network layer size: 46 / 1500
min/max overhead-adjusted size: 84 / 1538
average network hdr offset: 14
Bulk Best Effort Video Voice
thresh 5625Kbit 90Mbit 45Mbit 22500Kbit
target 5ms 5ms 5ms 5ms
interval 100ms 100ms 100ms 100ms
pk_delay 131us 94us 34us 51us
av_delay 11us 13us 2us 17us
sp_delay 3us 3us 2us 0us
backlog 0b 0b 0b 0b
pkts 4720 5792888 103 3266196
bytes 1999081 6383595859 9270 202291970
way_inds 0 329148 0 0
way_miss 37 69476 103 295
way_cols 0 0 0 0
drops 0 1011 0 0
marks 0 3 0 0
ack_drop 0 0 0 0
sp_flows 1 3 2 1
bk_flows 0 0 0 0
un_flows 0 0 0 0
max_len 1330 39364 90 1382
quantum 300 1514 1373 686
qdisc fq_codel 0: dev tun0 root refcnt 2 limit 10240p flows 1024 quantum 1500 target 5ms interval 100ms memory_limit 32Mb ecn drop_batch 64
Sent 6463 bytes 27 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
new_flows_len 0 old_flows_len 0
I think you don't need as many rules. My approach is just prioritizing what’s really needed and let cake do the rest of the magic. Just my opinion.