Nama peribadi diselesaikan daripada instans EC2 tetapi tidak daripada komputer riba yang disambungkan melalui VPN, dan zon kelihatan betul dalam konsol. Naluri pertama ialah mengedit rekod, yang hampir tidak pernah menjadi masalah. Rekod itu menjawab seseorang; cuma ia tidak menjawab komputer riba anda. Perbezaan antara kedua pemanggil ialah resolver mana yang mereka tanya dan sama ada resolver itu mempunyai laluan yang disokong ke paparan DNS VPC.

Saya mula dengan membuktikan rekod itu wujud, kemudian menghabiskan masa selebihnya pada laluan pertanyaan. Kedua-duanya sistem berasingan dan gagal dalam bentuk berbeza.

Baca bentuk kegagalan sebelum mengubah apa-apa

Tiga hasil bermaksud tiga perkara berbeza, dan satu pertanyaan membezakannya: jalankan dig untuk nama itu terhadap resolver yang benar-benar digunakan klien.

What you seeWhat it usually meansFirst thing to check
SERVFAIL, or a timeout after several secondsNo path to the resolver, or the resolver cannot reach AWSRoute to the endpoint and the security policy on port 53
NXDOMAIN from a resolver that did answerThe resolver replied, but the zone is not in its viewZone association or the forwarding rule for that namespace
A public address for an internal nameSplit DNS is not in effect for this clientWhich resolver the client is configured to use

Tamat masa ialah pernyataan tentang rangkaian. NXDOMAIN ialah pernyataan tentang paparan DNS. Jawapan awam ialah pernyataan tentang dasar. Mengedit rekod zon semasa tamat masa membuang satu-satunya bukti berguna dalam kes ini.

Mengapa alamat tambah-dua VPC bukan resolver jauh

Alamat CIDR tambah-dua ialah perkhidmatan setempat untuk sumber dalam VPC. AWS mendokumenkan bahawa memajukan pertanyaan daripada rangkaian di premis, atau daripada pelayan DNS VPC lain, terus ke alamat itu tidak disokong dan boleh menghasilkan keputusan tidak stabil.

Itu tidak bermakna eksperimen tidak pernah kelihatan berjaya. Itu bermakna tingkah laku itu bukan kontrak yang boleh anda letakkan dalam skrip sokongan. Arah yang disokong ialah Resolver endpoint masuk: sepasang alamat dalam VPC anda, boleh dicapai daripada rangkaian yang anda kawal, yang menerima pertanyaan datang dari luar AWS.

Bina laluan mengikut urutan yang gagal dengan bersih

Mesti ada tiga lompatan, dan setiap satu mempunyai cara gagalnya sendiri.

VPN client -> approved DNS forwarder
forwarder -> forwarding rule for internal.example
forwarding rule -> Resolver inbound endpoint addresses

Penghantar perlu laluan ke alamat endpoint melalui VPN, dan laluan balik juga mesti berfungsi. Untuk DNS konvensional pada port 53 endpoint menjawab melalui UDP dan TCP, jadi kedua-dua protokol mesti dibenarkan dan kedua-duanya mesti bertahan melalui apa-apa pemeriksaan stateful di tengah.

Kemudian semak paparan DNS secara berasingan. Zon dihoskan peribadi hanya kelihatan kepada VPC yang dikaitkan dengannya, atau melalui pengaturan perkongsian yang disengajakan. Endpoint yang boleh dicapai tidak dengan sendirinya menjadikan setiap zon peribadi boleh diselesaikan dalam konteks penyelesaiannya.

Endpoint keluar melayani arah bertentangan dan tidak akan menjawab pertanyaan yang masuk daripada komputer riba anda.

Sahkan dari kedua-dua hujung

Tanya daripada klien terhadap penghantar, kemudian daripada penghantar terhadap endpoint. Jika klien gagal sementara penghantar berjaya, jurangnya antara kedua-duanya.

Jika kedua-duanya gagal, lihat dasar keselamatan pada endpoint dan alamat sumber yang benar-benar dilihatnya. Penghantar di belakang NAT menunjukkan alamat NAT dan bukan alamat VPN komputer riba, dan perbezaan itu sahaja cukup untuk menggugurkan pertanyaan. Jika kedua-duanya berjaya tetapi aplikasi masih gagal, aplikasi mungkin menggunakan resolver berbeza daripada yang anda uji.

Pisahkan ruang nama awam dan peribadi dengan sengaja. Split DNS ialah dasar yang anda konfigurasikan, bukan kesan sampingan satu carian yang kebetulan mengembalikan data.

Apa yang saya tidak akan lakukan

Saya tidak akan menambah peraturan NAT yang menjadikan satu carian berjaya lalu memanggilnya reka bentuk.

Saya tidak akan menghalakan setiap klien jauh ke alamat tambah-dua hanya kerana satu ujian pernah mengembalikan rekod. Dan saya tidak akan meluaskan dasar keselamatan endpoint kepada seluruh kumpulan VPN apabila satu penghantar memerlukan akses. Jika organisasi sudah menjalankan penghantar yang diluluskan dalam VPC, baca reka bentuk itu dahulu, kerana endpoint kedua yang anda tambah ialah yang tiada siapa mendokumenkannya.

Artikel berkaitan