Verified it solves the issue even in the face of a 1000ms delay being imposed by the router using:
## example traffic control to slow down UDP port 53 traffic from a specific upstream DNS server being forwarded by router for egress from the LOCAL bridge device.
# tc qdisc add dev LOCAL root handle 1:0 prio
# tc qdisc add dev LOCAL parent 1:2 handle 10: netem delay 1000ms
# tc filter add dev LOCAL protocol ipv6 parent 1: prio 1 u32 match ip6 src fddc:7e00:e001:ee00::1/64 match ip6 sport 53 0xffff flowid 10:1
# tc filter add dev LOCAL protocol ipv6 parent 1: prio 1 u32 match ip6 dst fddc:7e00:e001:ee00::1/64 match ip6 dport 53 0xffff flowid 10:1
## prio[rity] creates 3 bands (classes :1 :2 :3) by default. Interactive/immediate packets (UDP 53 DNS) should have Type Of Service (TOS 0x1000) set in the IP packet header by the resolvers. Default priomap puts those packets in the 2nd band (:2 for Interactive/Minimise delay). The netem delay qdisc is attached to $parent:2 with handle 10: (major:minor - minor defaults to 0). u32 (unsigned 32-bit) filters that match the UDP port 53 traffic direct it to the handle of the netem qdisc (flowid 10:1 - :1 being the first leaf) where a 300ms delay is imposed.
I've cherry-picked the upstream patches and built the package in my bug-fixes PPA:
https:/ /launchpad. net/~tj/ +archive/ ubuntu/ bugfixes
Verified it solves the issue even in the face of a 1000ms delay being imposed by the router using:
## example traffic control to slow down UDP port 53 traffic from a specific upstream DNS server being forwarded by router for egress from the LOCAL bridge device.
# tc qdisc add dev LOCAL root handle 1:0 prio e001:ee00: :1/64 match ip6 sport 53 0xffff flowid 10:1 e001:ee00: :1/64 match ip6 dport 53 0xffff flowid 10:1
# tc qdisc add dev LOCAL parent 1:2 handle 10: netem delay 1000ms
# tc filter add dev LOCAL protocol ipv6 parent 1: prio 1 u32 match ip6 src fddc:7e00:
# tc filter add dev LOCAL protocol ipv6 parent 1: prio 1 u32 match ip6 dst fddc:7e00:
tc -s qdisc ls dev LOCAL
qdisc prio 1: root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
Sent 4643351 bytes 7676 pkt (dropped 0, overlimits 0 requeues 0)
backlog 138b 1p requeues 0
qdisc netem 10: parent 1:2 limit 1000 delay 1s
Sent 2682417 bytes 3245 pkt (dropped 0, overlimits 0 requeues 0)
backlog 138b 1p requeues 0
## prio[rity] creates 3 bands (classes :1 :2 :3) by default. Interactive/ immediate packets (UDP 53 DNS) should have Type Of Service (TOS 0x1000) set in the IP packet header by the resolvers. Default priomap puts those packets in the 2nd band (:2 for Interactive/ Minimise delay). The netem delay qdisc is attached to $parent:2 with handle 10: (major:minor - minor defaults to 0). u32 (unsigned 32-bit) filters that match the UDP port 53 traffic direct it to the handle of the netem qdisc (flowid 10:1 - :1 being the first leaf) where a 300ms delay is imposed.
# tcpdump -vvvni enp2s0 "(ip6 and port 53) or (icmp6[icmp6type] = 1 and icmp6[icmp6code] = 4)" e001:ee00: fa75:a4ff: fef3:42b4. 59484 > fddc:7e0 ubuntu. com. ar: . OPT UDPsize=512 (48) e001:ee00: fa75:a4ff: fef3:42b4. 43177 > fddc:7e0 ubuntu. com. ar: . OPT UDPsize=512 (48) e001:ee00: :1.53 > fddc:7e00: e001:ee00: fa75:a4f ubuntu. com. 1/0/1 packages. ubuntu. com. [10m] AAAA 2a01:7e00: e001:ee64: :5bbd:5e25 ar: . OPT e001:ee00: :1.53 > fddc:7e00: e001:ee00: fa75:a4f ubuntu. com. 1/0/1 packages. ubuntu. com. [10m] AAAA 2a01:7e00: e001:ee64: :5bbd:5e25 ar: . OPT
...
21:01:49.232778 IP6 (flowlabel 0xc8a82, hlim 64, next-header UDP (17) payload length: 56) fddc:7e00:
0:e001:ee00::1.53: [bad udp cksum 0x7528 -> 0x9b42!] 25832+ [1au] AAAA? packages.
21:01:49.232862 IP6 (flowlabel 0x9137e, hlim 64, next-header UDP (17) payload length: 56) fddc:7e00:
0:e001:ee00::1.53: [bad udp cksum 0x7528 -> 0x5114!] 61129+ [1au] AAAA? packages.
21:01:49.319885 IP6 (flowlabel 0x5decb, hlim 63, next-header UDP (17) payload length: 84) fddc:7e00:
f:fef3:42b4.43177: [udp sum ok] 61129 q: AAAA? packages.
UDPsize=1232 (76)
21:01:49.319920 IP6 (flowlabel 0x45773, hlim 63, next-header UDP (17) payload length: 84) fddc:7e00:
f:fef3:42b4.59484: [udp sum ok] 25832 q: AAAA? packages.
UDPsize=1232 (76)