Privačios Route 53 zonos pakeičia vardo atsakymą, o ne susilieja su viešu įrašu, ir tai nustebina žmones pačiu blogiausiu metu. Pridėkite vieną vidinį įrašą api.example.net vardui privačioje zonoje, skirtoje example.net, susiekite ją su VPC, ir visi kiti vardai po tuo tėviniu dabar atsakomi tik iš privačios zonos. Klientas, kuris vakar galėjo pasiekti www.example.net šiandien gauna neigiamą atsakymą. Toliau pateikta apžvalga prasideda nuo tos nepavykusios užklausos ir eina į išorę link zonos, kuri į ją atsakė.

Pradėkite nuo užklausos, o ne nuo konsolės

Atkurkite gedimą tame kliente, kuris jį pranešė, ir užrašykite tikslų vardą bei įrašo tipą. Vardas, kuris nepavyksta A tipui, vis tiek gali būti išsprendžiamas AAAA tipui, o naršyklė, kuri pakartotinai bando podėlyje laikomą vardą, slepia, kuris iš jų lūžo. Vykdykite užklausą du kartus: vieną kartą per tą resolverį, kurį klientas tikrai naudoja, ir vieną kartą su sekimu, kuris jį apeina.

dig +short api.example.net
dig www.example.net +noall +comments +authority
resolvectl query www.example.net

Antroji komanda yra svarbi. Jos būsenos eilutė ir authority skyrius įvardija zoną, kuri sukūrė atsakymą, todėl galite atskirti neigiamą atsakymą iš privačios zonos nuo laiko limito, užblokuoto prievado ar resolverio, kuris niekada negavo užklausos. resolvectl parodo, kurio viršutinio serverio buvo klausta, ir tai dažnai ne tas resolveris, kurį, jūsų manymu, nustūmė VPN.

Jei sekama užklausa grąžina viešą adresą, o įprasta ne, viešas įrašas yra sveikas ir atsako privatus rodinys. Šis vienas palyginimas nusprendžia, kuri šios pusės likusios dalies pusė jums taikoma.

Perskaitykite, kuri zona atsakė

Atsakymas, kuriame yra NXDOMAIN ir authority skyriuje yra privačios zonos SOA, yra galutinis tos zonos atsakymas, o ne nepavykusi paieška. Route 53 Resolver pasirinko privačią talpinamą zoną, nes vardas sutapo, po to nerado prašomo tipo įrašo, o dokumentuotas elgesys yra grąžinti neigiamą atsakymą, o ne perduoti klausimą viešajam DNS.

Pasirinkimas vadovaujasi specifiškumu. Kai sutampa kelios privačios vardų erdvės, laimi tiksliausia atitinkanti zona, o platesnis privatus tėvinis elementas negauna antro šanso vardui, kurio pasirinktoji vaikinė zona neturi. Peradresavimo taisyklės prideda dar vieną sluoksnį, nes konkrečiam domenui skirta Resolver taisyklė gali įveikti privačios talpinamos zonos susiejimą. Išvardykite susiejimus ir taisykles prieš darydami išvadą, kad zona tuščia.

aws route53 list-hosted-zones-by-name --dns-name example.net.
aws route53 list-resource-record-sets --hosted-zone-id Z0EXAMPLEID --query "ResourceRecordSets[?Type=='A'].[Name,ResourceRecords[0].Value]"

Abiem komandoms reikia paskyros, kuriai priklauso zona, kredencialų, o antrajai reikia zonos ID iš pirmosios. Pakeiskite jį savuoju; aukščiau esantis rezervuotas žymuo sąmoningai nėra tikras.

Kodėl laimi privati zona

Susiejimas yra tai, kas padaro zoną matomą VPC, ir to VPC resolveris ją taiko. Privati zona, nesusieta su VPC, iš kurios ateina kliento srautas, neturi jokio poveikio, o susiejimas su netinkamu VPC sukuria privatų atsakymą netinkamai populiacijai. Patikrinkite susiejimų sąrašą prieš redaguodami įrašus, nes zona gali būti teisinga ir vis tiek nematoma.

Persidengiančios vardų erdvės yra antras painiavos šaltinis. Privati zona example.net vardui ir privati zona api.example.net vardui abi atitinka API užklausą, ir atsako tikslesnė. Tai naudinga, kai norite siauros vidinės vardų erdvės, ir pavojinga, kai siauroje zonoje trūksta įrašo, kurį turi platesnė. Svarstymai apie privačias talpinamas zonas Route 53 dokumentacijoje aprašo ir kritimo žemyn elgesį, ir taisyklių pirmumą, ir verta juos perskaityti prieš pridedant antrą persidengiančią zoną.

Niekas iš to nekeičia viešos zonos. Vieši resolveriai vis dar teisingai atsako į viešus įrašus, ir todėl visiems už VPC ribų šis gedimas atrodo kaip kliento problema.

Pasirinkite vardų erdvę prieš pridėdami įrašus

Jei privačių vardų reikia tik naujai vidinių paslaugų šeimai, suteikite jai specialų privatų subdomeną ir palikite viešą tėvinį elementą ramybėje. Toks vardas kaip internal.example.net negali užgožti www.example.net, o trūkstamo įrašo poveikio spindulys apsiriboja vardais, kuriuos sugalvojote tam tikslui. Kaina ta, kad esami URL ir sertifikatai gali neatitikti naujo vardo.

Kai vieši ir privatūs naudotojai turi išlaikyti tą patį pagrindinio kompiuterio vardą, DNS su padalytu rodiniu yra palaikomas dizainas ir reikalauja, kad įrašus kiekviename rodinyje palaikytumėte aiškiai. Plati privati zona su vienu įrašu neišsaugo viešų priklausomybių po ta zona; ji pakeičia jas zona, kuri turi vieną įrašą.

Sudarykite vardų, kuriuos programa tikrai kviečia, sąrašą prieš nukreipdami klientų populiaciją į privatų rodinį. Prisijungimo mazgai, statinių išteklių mazgai, peradresavimo tikslai ir API galiniai taškai lūžta pirmieji, ir jie paprastai būna išsibarstę kelių komandų įrašuose.

Sekite resolverio kelią, tada maršrutą

Nešiojamasis kompiuteris mato privatų rodinį tik tada, kai jo užklausos pasiekia resolverį, kuris turi susiejimą. Hosts failo redagavimas VPN serveryje nieko neskelbia prisijungusiems klientams, o klientas, sukonfigūruotas su viešu resolveriu, ir toliau gaus viešus atsakymus, kol tunelis pakeltas. Patvirtinkite resolverio adresą, kurį gavo klientas, tada pakartokite užklausą iš kliento, o ne iš serverio.

Kai vardas išsprendžiamas, patikrinkite kelią iki grąžinto adreso kaip atskirą žingsnį, pavyzdžiui su ip route get prieš užklausos grąžintą adresą. Teisingas privatus atsakymas be maršruto iki adreso yra maršrutizavimo problema, o atsakymas apie trūkstamą įrašą yra DNS rodinio problema; traktuojant juos kaip vieną problemą gaunami pataisymai, kurie neišlieka. Palikite paslaugos TLS pagrindinio kompiuterio vardo ir sertifikato patikras nepakeistas, nes privatus adresas keičia, kur eina ryšys, ir nieko apie tai, kuris sertifikatas galioja.

Užbaikite įrašydami pakeitimo pastaboje zoną, susiejimą, resolverį ir vardus, kuriuos patikrinote. Tada kitas žmogus, pridėjęs įrašą, žinos, kuri vardų erdvė yra autoritetinga tai klientų populiacijai.

Susiję straipsniai