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
# 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

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)"
... 
21:01:49.232778 IP6 (flowlabel 0xc8a82, hlim 64, next-header UDP (17) payload 
length: 56) fddc:7e00:e001:ee00:fa75:a4ff:fef3:42b4.59484 > fddc:7e0
0:e001:ee00::1.53: [bad udp cksum 0x7528 -> 0x9b42!] 25832+ [1au] AAAA? 
packages.ubuntu.com. ar: . OPT UDPsize=512 (48)                           
21:01:49.232862 IP6 (flowlabel 0x9137e, hlim 64, next-header UDP (17) payload 
length: 56) fddc:7e00:e001:ee00:fa75:a4ff:fef3:42b4.43177 > fddc:7e0
0:e001:ee00::1.53: [bad udp cksum 0x7528 -> 0x5114!] 61129+ [1au] AAAA? 
packages.ubuntu.com. ar: . OPT UDPsize=512 (48)                           
21:01:49.319885 IP6 (flowlabel 0x5decb, hlim 63, next-header UDP (17) payload 
length: 84) fddc:7e00:e001:ee00::1.53 > fddc:7e00:e001:ee00:fa75:a4f
f:fef3:42b4.43177: [udp sum ok] 61129 q: AAAA? packages.ubuntu.com. 1/0/1 
packages.ubuntu.com. [10m] AAAA 2a01:7e00:e001:ee64::5bbd:5e25 ar: . OPT
 UDPsize=1232 (76)                                                              
                                                                  
21:01:49.319920 IP6 (flowlabel 0x45773, hlim 63, next-header UDP (17) payload 
length: 84) fddc:7e00:e001:ee00::1.53 > fddc:7e00:e001:ee00:fa75:a4f
f:fef3:42b4.59484: [udp sum ok] 25832 q: AAAA? packages.ubuntu.com. 1/0/1 
packages.ubuntu.com. [10m] AAAA 2a01:7e00:e001:ee64::5bbd:5e25 ar: . OPT
 UDPsize=1232 (76)

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1940908

Title:
  resolved: closes listening socket too rapidly and sends Destination
  port unreachable

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1940908/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to