Puncte:0

De ce api.nuget.org nu se rezolvă în devcontainer-ul meu docker-compose?

drapel ru

Rulez subsistemul Windows pentru Linux v2 cu Ubuntu 20.04. În WSL-ul meu rulez un container de dezvoltare VS Code bazat pe container-docker-din-docker-compose. Din interiorul containerului meu de dezvoltare nu pot rezolva api.nuget.org, dar peste tot funcționează bine. De asemenea, pot da ping la alte domenii din containerul meu de dezvoltare, doar acesta eșuează. Sunt aproape un începător când vine vorba de rețele, așa că caut ceva ajutor despre cum să depanez acest lucru.Am citit mult în ultima zi pentru a încerca să restrâng problema și tocmai am venit cu mai multe întrebări. Iată câteva dintre lucrurile la care m-am uitat:

  • S-au discutat multe soluții această problemă GitHub, dar niciunul nu funcționează pentru mine
  • Am încercat să interog cu diverse instrumente de linie de comandă, cum ar fi săpa, nslookup, gazdă... aici lucrurile devin cam ciudate: Când alerg dig +trace api.nuget.org din shell-ul meu WSL bash primesc asta:
$ dig +trace api.nuget.org

; <<>> DiG 9.16.1-Ubuntu <<>> +trace api.nuget.org
;; opțiuni globale: +cmd
. 165287 ÎN NS g.root-servers.net.
. 165287 ÎN NS h.root-servers.net.
. 165287 ÎN NS a.root-servers.net.
. 165287 ÎN NS i.root-servers.net.
. 165287 ÎN NS j.root-servers.net.
. 165287 ÎN NS k.root-servers.net.
. 165287 ÎN NS l.root-servers.net.
. 165287 ÎN NS m.root-servers.net.
. 165287 ÎN NS b.root-servers.net.
. 165287 ÎN NS c.root-servers.net.
. 165287 ÎN NS d.root-servers.net.
. 165287 ÎN NS e.root-servers.net.
. 165287 ÎN NS f.root-servers.net.
;; S-au primit 811 octeți de la 172.24.176.1#53(172.24.176.1) în 20 ms

org. 172800 ÎN NS a0.org.afilias-nst.info.
org. 172800 ÎN NS a2.org.afilias-nst.info.
org. 172800 ÎN NS b0.org.afilias-nst.org.
org. 172800 ÎN NS b2.org.afilias-nst.org.
org. 172800 ÎN NS c0.org.afilias-nst.info.
org. 172800 ÎN NS d0.org.afilias-nst.org.
org.                   86400 IN DS 26974 8 2 4FEDE294C53F438A158C41D39489CD78A86BEB0D8A0AEAFF14745C0D 16E1DE32
org. 86400 IN RRSIG DS 8 1 86400 20220608050000 20220526040000 47671 . DcP0H0m+uUbKqzYeO8vmGSeU4Ax1AzmdFTBvZl2PmrbkwFLoZTIP79Jn e4S4IIw9zAb2ZBwg5MOC634Q02HJW9znOMPclnT3T0OYbxQZumUZhcJK 3hw2Nf0fuYCzDgau72J8kXQU10CYgpRfY0chh21L11yaWn7m9Allwv9a fn2+FU6O6JhvHW8N+bOjVocqwLsPoUwqTSV/YtxAqKR00fAwaNhUT2lx BFdd3aZpYqNnypcYb96kVCX9eF81z53Bu8hOZDzr7p5IazzF+qFxGB1u G0Pi+WPFR5qOYu0d+7kHQ5HDnraDD7QEGX5kx5RmO7r1lKIX8DYiYAjt IPN3+w==
;; S-au primit 779 de octeți de la 192.58.128.30#53(j.root-servers.net) în 80 ms

nuget.org. 86400 IN NS ns4-205.azure-dns.info.
nuget.org. 86400 ÎN NS ns1-205.azure-dns.com.
nuget.org. 86400 ÎN NS ns2-205.azure-dns.net.
nuget.org. 86400 ÎN NS ns3-205.azure-dns.org.
1i870vj5h429vj9pci7ar6e9gki74tr7.org. 86400 IN NSEC3 1 1 10 332539EE7F95C32A 1I87R64GAJU4O91MHKBU7I9EKBS7K8UT NS SOA RRSIG DNSKEY NSEC3PARAM
1i870vj5h429vj9pci7ar6e9gki74tr7.org. 86400 IN RRSIG NSEC3 8 2 86400 20220616154216 20220526144216 15843 org. juD6urMvH8mrHHkmAX7sFcQOs3ffqjJ2m5TppBSxCMFlSCHOEyEQT/Hg KpqL3TeoLBmvUi89Z3xSH78EQZGcWXNW5Rq2j5fIRNDMt9t2ePlSCHOEyEQT/Hg KpqL3TeoLBmvUi89Z3xSH78EQZGcWXNW5Rq2j5fIRNDMt9t2ePlSCHOEyEQT9t2ePjftSGG40JMJVJVJVJVG42MWHJVJVJVJVJVJVJVJVJVJVJVJ44
pnnnukt76t98parmvalihebtso9erf6p.org. 86400 IN NSEC3 1 1 10 332539EE7F95C32A PNNSJA6RL8J0AOQQ1NMHT3IUVLTC4CEN NS DS RRSIG
pnnnukt76t98parmvalihebtso9erf6p.org. 86400 IN RRSIG NSEC3 8 2 86400 20220615152234 20220525142234 15843 org. rjaBgwKLles40lIIDm+K3iN49tFJ5gFRMLW5WMAjzN9dMDFj/Hribwxi ZMmt6L1GOgDxwBEA9SX0TVQb9RbGztyoeEiIIMytcx4dah5QnuaSKTOg cvCh10V80/U4000000000000000000000000
;; S-au primit 697 de octeți de la 199.19.54.1#53(b0.org.afilias-nst.org) în 210 ms

api.nuget.org. 300 ÎN CNAME nugetapiprod.trafficmanager.net.
;; S-au primit 87 de octeți de la 13.107.24.205#53(ns3-205.azure-dns.org) în 50 ms

Acesta este aproape identic cu ceea ce primesc când îl rulez în containerul meu de dezvoltare:

$ dig +trace api.nuget.org

; <<>> DiG 9.16.1-Ubuntu <<>> +trace api.nuget.org
;; opțiuni globale: +cmd
. 165234 ÎN NS k.root-servers.net.
. 165234 ÎN NS l.root-servers.net.
. 165234 ÎN NS m.root-servers.net.
. 165234 ÎN NS b.root-servers.net.
. 165234 ÎN NS c.root-servers.net.
. 165234 ÎN NS d.root-servers.net.
. 165234 ÎN NS e.root-servers.net.
. 165234 ÎN NS f.root-servers.net.
. 165234 ÎN NS g.root-servers.net.
. 165234 ÎN NS h.root-servers.net.
. 165234 ÎN NS a.root-servers.net.
. 165234 ÎN NS i.root-servers.net.
. 165234 ÎN NS j.root-servers.net.
;; S-au primit 811 octeți de la 127.0.0.11#53(127.0.0.11) în 20 ms

org. 172800 ÎN NS a0.org.afilias-nst.info.
org. 172800 ÎN NS a2.org.afilias-nst.info.
org. 172800 ÎN NS b0.org.afilias-nst.org.
org. 172800 ÎN NS b2.org.afilias-nst.org.
org. 172800 ÎN NS c0.org.afilias-nst.info.
org. 172800 ÎN NS d0.org.afilias-nst.org.
org. 86400 IN DS 26974 8 2 4FEDE294C53F438A158C41D39489CD78A86BEB0D8A0AEAFF14745C0D 16E1DE32
org.                   86400 IN RRSIG DS 8 1 86400 20220608050000 20220526040000 47671 . DcP0H0m+uUbKqzYeO8vmGSeU4Ax1AzmdFTBvZl2PmrbkwFLoZTIP79Jn e4S4IIw9zAb2ZBwg5MOC634Q02HJW9znOMPclnT3T0OYbxQZumUZhcJK 3hw2Nf0fuYCzDgau72J8kXQU10CYgpRfY0chh21L11yaWn7m9Allwv9a fn2+FU6O6JhvHW8N+bOjVocqwLsPoUwqTSV/YtxAqKR00fAwaNhUT2lx BFdd3aZpYqNnypcYb96kVCX9eF81z53Bu8hOZDzr7p5IazzF+qFxGB1u G0Pi+WPFR5qOYu0d+7kHQ5HDnraDD7QEGX5kx5RmO7r1lKIX8DYiYAjt IPN3+w==
;; S-au primit 779 de octeți de la 192.5.5.241#53(f.root-servers.net) în 20 ms

nuget.org. 86400 ÎN NS ns1-205.azure-dns.com.
nuget.org. 86400 IN NS ns4-205.azure-dns.info.
nuget.org. 86400 ÎN NS ns2-205.azure-dns.net.
nuget.org. 86400 ÎN NS ns3-205.azure-dns.org.
1i870vj5h429vj9pci7ar6e9gki74tr7.org. 86400 IN NSEC3 1 1 10 332539EE7F95C32A 1I87R64GAJU4O91MHKBU7I9EKBS7K8UT NS SOA RRSIG DNSKEY NSEC3PARAM
1i870vj5h429vj9pci7ar6e9gki74tr7.org. 86400 IN RRSIG NSEC3 8 2 86400 20220616154354 20220526144354 15843 org. J6jAHAorvmIVRWSZ0ew21ooNKkUhCsaMowR5qs+1uqJeCVAZEESSP9RW r7UiYCxXctu2dYIu2QRhypmvhIy4Ek3NXyOrIw3Cc8Ie3ndmG6wp+NylYCxXctu2dYIu2QRhypmvhIy4Ek3NXyOrIw3Cc8Ie3ndmG6wp+NylYCxXctu2dYIu2QRhypmvhIy4Ek3NXyOrIw3Cc8Ie3ndmG6wp+NylQZFD85KOLZP90000000000000000000000000001
pnnnukt76t98parmvalihebtso9erf6p.org. 86400 IN NSEC3 1 1 10 332539EE7F95C32A PNNSJA6RL8J0AOQQ1NMHT3IUVLTC4CEN NS DS RRSIG
pnnnukt76t98parmvalihebtso9erf6p.org. 86400 IN RRSIG NSEC3 8 2 86400 20220615152234 20220525142234 15843 org. rjaBgwKLles40lIIDm+K3iN49tFJ5gFRMLW5WMAjzN9dMDFj/Hribwxi ZMmt6L1GOgDxwBEA9SX0TVQb9RbGztyoeEiIIMytcx4dah5QnuaSKTOg cvCh10V80/U4000000000000000000000000
;; S-au primit 697 de octeți de la 199.19.56.1#53(a0.org.afilias-nst.info) în 190 ms

api.nuget.org. 300 ÎN CNAME nugetapiprod.trafficmanager.net.
;; S-au primit 87 de octeți de la 40.90.4.205#53(ns1-205.azure-dns.com) în 50 ms

Totuși, când alerg nslookup -debug api.nuget.org în WSL-ul meu primesc asta:

$ nslookup -debug api.nuget.org
Server: 172.24.176.1
Adresa: 172.24.176.1#53

------------
    ÎNTREBĂRI:
        api.nuget.org, tip = A, clasă = IN
    RĂSPUNSURI:
    -> api.nuget.org
        nume canonic = nugetapiprod.trafficmanager.net.
        ttl = 0
    -> nugetapiprod.trafficmanager.net
        nume canonic = apiprod-mscdn.azureedge.net.
        ttl = 0
    -> apiprod-mscdn.azureedge.net
        nume canonic = apiprod-mscdn.afd.azureedge.net.
        ttl = 0
    -> apiprod-mscdn.afd.azureedge.net
        nume canonic = star-azureedge-prod.trafficmanager.net.
        ttl = 0
    -> star-azureedge-prod.trafficmanager.net
        nume canonic = dual.part-0043.t-0009.t-msedge.net.
        ttl = 0
    -> dual.part-0043.t-0009.t-msedge.net
        nume canonic = part-0043.t-0009.t-msedge.net.
        ttl = 0
    -> part-0043.t-0009.t-msedge.net
        adresa de internet = 13.107.213.71
        ttl = 0
    -> part-0043.t-0009.t-msedge.net
        adresa de internet = 13.107.246.71
        ttl = 0
    ÎNREGISTRĂRI DE AUTORITATE:
    ÎNREGISTRĂRI SUPLIMENTARE:
------------
Răspuns neautorizat:
api.nuget.org nume canonic = nugetapiprod.trafficmanager.net.
nugetapiprod.trafficmanager.net nume canonic = apiprod-mscdn.azureedge.net.
apiprod-mscdn.azureedge.net nume canonic = apiprod-mscdn.afd.azureedge.net.
apiprod-mscdn.afd.azureedge.net nume canonic = star-azureedge-prod.trafficmanager.net.
star-azureedge-prod.trafficmanager.net nume canonic = dual.part-0043.t-0009.t-msedge.net.
dual.part-0043.t-0009.t-msedge.net nume canonic = part-0043.t-0009.t-msedge.net.
Nume: part-0043.t-0009.t-msedge.net
Adresa: 13.107.213.71
Nume: part-0043.t-0009.t-msedge.net
Adresa: 13.107.246.71
------------
    ÎNTREBĂRI:
        part-0043.t-0009.t-msedge.net, tip = AAAA, clasa = IN
    RĂSPUNSURI:
    -> part-0043.t-0009.t-msedge.net
        are adresa AAAA 2620:1ec:46::71
        ttl = 0
    -> part-0043.t-0009.t-msedge.net
        are adresa AAAA 2620:1ec:bdf::71
        ttl = 0
    ÎNREGISTRĂRI DE AUTORITATE:
    ÎNREGISTRĂRI SUPLIMENTARE:
------------
Nume: part-0043.t-0009.t-msedge.net
Adresa: 2620:1ec:46::71
Nume: part-0043.t-0009.t-msedge.net
Adresa: 2620:1ec:bdf::71

Întrucât acest lucru este ceea ce obțin din interiorul containerului de dezvoltare:

$ nslookup -debug api.nuget.org
Server: 127.0.0.11
Adresa: 127.0.0.11#53

------------
    ÎNTREBĂRI:
        api.nuget.org, tip = A, clasă = IN
    RĂSPUNSURI:
    ÎNREGISTRĂRI DE AUTORITATE:
    ÎNREGISTRĂRI SUPLIMENTARE:
------------
Răspuns neautorizat:
------------
    ÎNTREBĂRI:
        api.nuget.org, tip = AAAA, clasă = IN
    RĂSPUNSURI:
    ÎNREGISTRĂRI DE AUTORITATE:
    ÎNREGISTRĂRI SUPLIMENTARE:
------------
*** Nu găsesc api.nuget.org: Niciun răspuns
  • Singura diferență în /etc/nsswitch.conf între WSL-ul meu și containerul meu de dezvoltare este systemd intrări, dar arată astfel:
$ cat /etc/nsswitch.conf
# /etc/nsswitch.conf
#
# Exemplu de configurare a funcționalității GNU Name Service Switch.
# Dacă aveți instalate pachetele `glibc-doc-reference' și `info', încercați:
# `info libc "Name Service Switch"' pentru informații despre acest fișier.

passwd: fișiere systemd
grup: fișiere systemd
umbră: fișiere
gshadow: fișiere

gazde: fișiere dns
rețele: fișiere

protocoale: fișiere db
servicii: fișiere db
eteri: fișiere db
rpc: fișiere db

netgroup: nis
  • Aceasta este /etc/hosts pe WSL-ul meu:
$ cat /etc/hosts
# Acest fișier a fost generat automat de WSL. Pentru a opri generarea automată a acestui fișier, adăugați următoarea intrare în /etc/wsl.conf:
# [rețea]
# generateHosts = false
127.0.0.1 localhost
127.0.1.1 <EXPULGAT - nume computer>

74.121.<EXPURGAT> <EXPURGAT - server corporativ>
192.168.0.170 host.docker.intern
192.168.0.170 gateway.docker.intern
127.0.0.1 kubernetes.docker.intern

# Următoarele linii sunt de dorit pentru gazdele capabile IPv6
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

iar acesta este al meu /etc/hosts în containerul meu de dezvoltare:

$ cat /etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.19.0.2 1376e18baa2d
  • Acesta este al meu /etc/resolv.conf pe WSL-ul meu:
$ cat /etc/resolv.conf
# Acest fișier a fost generat automat de WSL. Pentru a opri generarea automată a acestui fișier, adăugați următoarea intrare în /etc/wsl.conf:
# [rețea]
# generateResolvConf = false
serverul de nume 172.24.176.1

iar acesta este al meu /etc/resolv.conf pe containerul meu de dezvoltare:

$ cat /etc/resolv.conf 
serverul de nume 127.0.0.11
opțiuni ndots:0
  • După cum am menționat, pot rezolva alte domenii, cum ar fi google.com, pe containerul meu de dezvoltare:
$ dig +trace google.com

; <<>> DiG 9.16.1-Ubuntu <<>> +trace google.com
;; opțiuni globale: +cmd
. 164561 ÎN NS d.root-servers.net.
. 164561 ÎN NS e.root-servers.net.
. 164561 ÎN NS f.root-servers.net.
. 164561 ÎN NS g.root-servers.net.
. 164561 ÎN NS h.root-servers.net.
. 164561 ÎN NS a.root-servers.net.
. 164561 ÎN NS i.root-servers.net.
. 164561 ÎN NS j.root-servers.net.
. 164561 ÎN NS k.root-servers.net.
. 164561 ÎN NS l.root-servers.net.
. 164561 ÎN NS m.root-servers.net.
. 164561 ÎN NS b.root-servers.net.
. 164561 ÎN NS c.root-servers.net.
;; S-au primit 811 octeți de la 127.0.0.11#53(127.0.0.11) în 20 ms

com. 172800 ÎN NS l.gtld-servers.net.
com. 172800 ÎN NS b.gtld-servers.net.
com. 172800 ÎN NS c.gtld-servers.net.
com. 172800 ÎN NS d.gtld-servers.net.
com. 172800 ÎN NS e.gtld-servers.net.
com. 172800 ÎN NS f.gtld-servers.net.
com. 172800 ÎN NS g.gtld-servers.net.
com. 172800 ÎN NS a.gtld-servers.net.
com. 172800 ÎN NS h.gtld-servers.net.
com. 172800 ÎN NS i.gtld-servers.net.
com. 172800 ÎN NS j.gtld-servers.net.
com. 172800 ÎN NS k.gtld-servers.net.
com. 172800 ÎN NS m.gtld-servers.net.
com. 86400 IN DS 30909 8 2 E2D3C916F6DEEAC73294E8268FB5885044A833FC5459588F4A9184CF C41A5766
com. 86400 IN RRSIG DS 8 1 86400 20220608050000 20220526040000 47671 . U/z96yxHnZx3nwEda11jaJom4DJC7fOBt4zsn8fC5ep60RfzAwMj1q8Y 4E4jRlSI28vFuiamNG2uuMAPO/lEUUYuHtYtNsHXnzBKcaDDVK1B3wCA VzEKAQwfh9knPSaD9vCRFfi7nGJWALJbKO3488gz1uBywWu7YQPDDfPp FB/whBsl7/yQihidbbNTbCfQ/oAd88bAq1eFt9tGSL6Wyf0jwp1aeWMd DuM+HcLjyR/7rtBa4YCKob3XniEn+NoavFuikKFJU1Nie1V83ZRU1Xcs OevXYQgT53P857tldjpEM/Lyp70+XgFMJXLoPCe0MfsMqoabiuIiDxyQ vUA5Mg==
;; S-au primit 1170 de octeți de la 192.203.230.10#53(e.root-servers.net) în 20 ms

google.com. 172800 ÎN NS ns2.google.com.
google.com. 172800 ÎN NS ns1.google.com.
google.com. 172800 ÎN NS ns3.google.com.
google.com. 172800 ÎN NS ns4.google.com.
CK0POJMG874LJREF7EFN8430QVIT8BSM.com.86400 IN NSEC3 1 1 0 - CK0Q2D6NI4I7EQH8NA30NS61O48UL8G5 NS SOA RRSIG DNSKEY NSEC3PARAM
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN RRSIG NSEC3 8 2 86400 20220530082513 20220523071513 37269 com. rGFmb7KWfFWLa2wdegU/hcqoDHxSKwJUkbj6DMSYfkHrwKot/T2EROZQ RF5KJtD3Ae6u7xRPIqGft5rvKOPQD40klXtYrMmMv23rCwXaHjGkdtez HLFl8//cjwFArN7MQZlUdGqDiFDHRIFP7gj9vJ/f+E9wrZs5zmsGy/We J+5hwjAyDh+GDCvNxTnJcmsRGOVJsdPmSlL7KrTiWOMRBA==
S84BKCIBC38P58340AKVNFN5KR9O59QC.com. 86400 IN NSEC3 1 1 0 - S84BUO64GQCVN69RJFUO6LVC7FSLUNJ5 NS DS RRSIG
S84BKCIBC38P58340AKVNFN5KR9O59QC.com. 86400 IN RRSIG NSEC3 8 2 86400 20220601051858 20220525040858 37269 com. hM5qmz0t0spOwBlaXh4fROrcKNjN3urcmJ3AnAA/NCMGyMJEOKS/r+LF R3Qf3hNRB6dgCN0sL3LAfH9QDMHPbLhfgsga1jBCEjP25fvjb7QW43ey yVOSeQzBaVFdV86vhalBhkANzDNXtsnaSGuWVAbsGcXjalBa3EhcXAE2 Fnlvzyu+nRavl0R6iJEjY2hV1kJxXSJ+RWOw/HVlSWvgWQ==
;; S-au primit 836 de octeți de la 192.12.94.30#53(e.gtld-servers.net) în 30 ms

google.com. 300 IN A 142.250.68.14
;; A primit 55 de octeți de la 216.239.38.10#53(ns4.google.com) în 80 ms
  • Când rulez același container de dezvoltare din Docker pentru Windows folosind driverul Hyper-V (adică nu din docker WSL), domeniul api.nuget.org se rezolvă bine. În plus, când rulez containerul de dezvoltare docker-for-docker din același depozit în docker-ul meu WSL, totul funcționează bine. În cele din urmă, (și acesta este relativ evident) dacă îmi configurez rețeaua docker-compose pentru a folosi modul de rețea „gazdă”, totul funcționează bine.

Scuze pentru postarea lungă, vreau doar să ofer cât mai multe informații posibil. Orice ajutor cu privire la ceea ce trebuie investigat în continuare ar fi foarte apreciat!

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.