@darii-nurgaleev I marked this invalid for systemd as the specific
problem in this case is blocking fallback to TCP DNS by walinuxagent,
but if you want to open a separate bug to track updating systemd to use
large edns0 packets even without DNSSEC, please feel free to.

** Description changed:

+ [impact]
+ 
+ on azure instances, walinuxagent blocks all (new) TCP connections to the
+ azure nameserver, which prevents fallback to TCP DNS for truncated dns
+ queries
+ 
+ [test case]
+ 
+ on an azure instance:
+ 
+ ddstreet@lp1886128:~$ systemd-resolve --status | grep Servers
+          DNS Servers: 168.63.129.16
+ ddstreet@lp1886128:~$ dig +retries=0 +timeout=1 +short +tcp @168.63.129.16 
toomany100.ddstreet.org
+ ;; connection timed out; no servers could be reached
+ ;; Connection to 168.63.129.16#53(168.63.129.16) for toomany100.ddstreet.org 
failed: timed out.
+ 
+ 
+ change the actual nameserver ip in the 'dig' command to match what resolved 
is configured with (which comes from dhcp)
+ 
+ [regression potential]
+ 
+ TBD
+ 
+ [scope]
+ 
+ TBD
+ 
+ [original description]
+ 
+ 
  Description:  Ubuntu 18.04.4 LTS
  Release:      18.04
  
  systemd-resolve --version
  
  systemd 237
  +PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP
  +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN
  -PCRE2 default-hierarchy=hybrid
  
  We met an error: on an attempt to resolve address, the following issue
  appears:
  
  ; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> 
mharder-formrec.cognitiveservices.azure.com
  ;; global options: +cmd
  ;; Got answer:
  ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 44096
  ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
  
  ;; OPT PSEUDOSECTION:
  ; EDNS: version: 0, flags:; udp: 65494
  ;; QUESTION SECTION:
  ;mharder-formrec.cognitiveservices.azure.com. IN      A
  
  ;; Query time: 231 msec
  ;; SERVER: 127.0.0.53#53(127.0.0.53)
  ;; WHEN: Tue Apr 28 20:47:14 UTC 2020
  ;; MSG SIZE  rcvd: 72
  
  Let me provide you important notes about the issue:
  1) It's not reproducing on Ubuntu 16;
  2) Bypassing systemd-resolve - everything works fine;
  3) Only the difference between systemd-resolve and END is UDP_PAYLOAD_SIZE
  
  Successful query:
  
  1135    16:27:25.964386 10.1.0.4        168.63.129.16   DNS     128
  Standard query 0xc2d4 A mharder-formrec.cognitiveservices.azure.com OPT
  
  Domain Name System (query)
-     Transaction ID: 0xc2d4
-     Flags: 0x0120 Standard query
-         0... .... .... .... = Response: Message is a query
-         .000 0... .... .... = Opcode: Standard query (0)
-         .... ..0. .... .... = Truncated: Message is not truncated
-         .... ...1 .... .... = Recursion desired: Do query recursively
-         .... .... .0.. .... = Z: reserved (0)
-         .... .... ..1. .... = AD bit: Set
-         .... .... ...0 .... = Non-authenticated data: Unacceptable
-     Questions: 1
-     Answer RRs: 0
-     Authority RRs: 0
-     Additional RRs: 1
-     Queries
-         mharder-formrec.cognitiveservices.azure.com: type A, class IN
-     Additional records
-         <Root>: type OPT
-             Name: <Root>
-             Type: OPT (41)
-             UDP payload size: 4096
-             Higher bits in extended RCODE: 0x00
-             EDNS0 version: 0
-             Z: 0x0000
-                 0... .... .... .... = DO bit: Cannot handle DNSSEC security 
RRs
-                 .000 0000 0000 0000 = Reserved: 0x0000
-             Data length: 12
-             Option: COOKIE
+     Transaction ID: 0xc2d4
+     Flags: 0x0120 Standard query
+         0... .... .... .... = Response: Message is a query
+         .000 0... .... .... = Opcode: Standard query (0)
+         .... ..0. .... .... = Truncated: Message is not truncated
+         .... ...1 .... .... = Recursion desired: Do query recursively
+         .... .... .0.. .... = Z: reserved (0)
+         .... .... ..1. .... = AD bit: Set
+         .... .... ...0 .... = Non-authenticated data: Unacceptable
+     Questions: 1
+     Answer RRs: 0
+     Authority RRs: 0
+     Additional RRs: 1
+     Queries
+         mharder-formrec.cognitiveservices.azure.com: type A, class IN
+     Additional records
+         <Root>: type OPT
+             Name: <Root>
+             Type: OPT (41)
+             UDP payload size: 4096
+             Higher bits in extended RCODE: 0x00
+             EDNS0 version: 0
+             Z: 0x0000
+                 0... .... .... .... = DO bit: Cannot handle DNSSEC security 
RRs
+                 .000 0000 0000 0000 = Reserved: 0x0000
+             Data length: 12
+             Option: COOKIE
  Unsuccessful query:
  
  1128    16:27:25.713886 10.1.0.4        168.63.129.16   DNS     116
  Standard query 0x198d A mharder-formrec.cognitiveservices.azure.com OPT
  
  Domain Name System (query)
-     Transaction ID: 0x198d
-     Flags: 0x0100 Standard query
-         0... .... .... .... = Response: Message is a query
-         .000 0... .... .... = Opcode: Standard query (0)
-         .... ..0. .... .... = Truncated: Message is not truncated
-         .... ...1 .... .... = Recursion desired: Do query recursively
-         .... .... .0.. .... = Z: reserved (0)
-         .... .... ...0 .... = Non-authenticated data: Unacceptable
-     Questions: 1
-     Answer RRs: 0
-     Authority RRs: 0
-     Additional RRs: 1
-     Queries
-         mharder-formrec.cognitiveservices.azure.com: type A, class IN
-     Additional records
-         <Root>: type OPT
-             Name: <Root>
-             Type: OPT (41)
-             UDP payload size: 512
-             Higher bits in extended RCODE: 0x00
-             EDNS0 version: 0
-             Z: 0x0000
-                 0... .... .... .... = DO bit: Cannot handle DNSSEC security 
RRs
-                 .000 0000 0000 0000 = Reserved: 0x0000
-             Data length: 0
+     Transaction ID: 0x198d
+     Flags: 0x0100 Standard query
+         0... .... .... .... = Response: Message is a query
+         .000 0... .... .... = Opcode: Standard query (0)
+         .... ..0. .... .... = Truncated: Message is not truncated
+         .... ...1 .... .... = Recursion desired: Do query recursively
+         .... .... .0.. .... = Z: reserved (0)
+         .... .... ...0 .... = Non-authenticated data: Unacceptable
+     Questions: 1
+     Answer RRs: 0
+     Authority RRs: 0
+     Additional RRs: 1
+     Queries
+         mharder-formrec.cognitiveservices.azure.com: type A, class IN
+     Additional records
+         <Root>: type OPT
+             Name: <Root>
+             Type: OPT (41)
+             UDP payload size: 512
+             Higher bits in extended RCODE: 0x00
+             EDNS0 version: 0
+             Z: 0x0000
+                 0... .... .... .... = DO bit: Cannot handle DNSSEC security 
RRs
+                 .000 0000 0000 0000 = Reserved: 0x0000
+             Data length: 0
  Notable difference:
  
  Success:
-             UDP payload size: 4096
+             UDP payload size: 4096
  
  Failure:
-             UDP payload size: 512
+             UDP payload size: 512
  And notable differences in the responses:
  
  Success:
-     Flags: 0x8180 Standard query response, No error
-         .... ..0. .... .... = Truncated: Message is not truncated
+     Flags: 0x8180 Standard query response, No error
+         .... ..0. .... .... = Truncated: Message is not truncated
  
  Failure:
-     Flags: 0x8380 Standard query response, No error
-         .... ..1. .... .... = Truncated: Message is truncated
+     Flags: 0x8380 Standard query response, No error
+         .... ..1. .... .... = Truncated: Message is truncated
  
  Interestingly, systemd-resolved is setting the maximum payload size to 512 
regardless of whether EDNS0 is configured and regardless of what is sent to it 
for the payload size.
  I tried to found a way to change UDP_PAYLOAD_SIZE,but it seems it is only 
possible to change it only with direct code modifications.

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

Title:
  walinuxagent blocks DNS fallback to TCP

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

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

Reply via email to