DNS privat berfungsi di VPC tetapi tidak melalui VPN
Nama privat yang terurai di dalam EC2 tetapi tidak melalui VPN adalah masalah jalur resolver. Baca bentuk kegagalannya sebelum mengubah catatan zona.
Nama privat terurai dari instans EC2 tetapi tidak dari laptop yang terhubung melalui VPN, dan zona terlihat benar di konsol. Naluri pertama adalah mengedit catatan, yang hampir tidak pernah menjadi masalah. Catatan itu menjawab seseorang; hanya saja tidak menjawab laptop Anda. Yang berbeda antara kedua pemanggil adalah resolver mana yang mereka tanyakan dan apakah resolver itu punya jalur yang didukung ke tampilan DNS VPC.
Saya mulai dengan membuktikan catatan itu ada, lalu menghabiskan sisa waktu pada jalur kueri. Keduanya sistem terpisah dan gagal dengan bentuk berbeda.
Baca bentuk kegagalan sebelum mengubah apa pun
Tiga hasil berarti tiga hal berbeda, dan satu kueri membedakannya: jalankan dig untuk nama itu terhadap resolver yang benar-benar dipakai klien.
| What you see | What it usually means | First thing to check |
|---|---|---|
| SERVFAIL, or a timeout after several seconds | No path to the resolver, or the resolver cannot reach AWS | Route to the endpoint and the security policy on port 53 |
| NXDOMAIN from a resolver that did answer | The resolver replied, but the zone is not in its view | Zone association or the forwarding rule for that namespace |
| A public address for an internal name | Split DNS is not in effect for this client | Which resolver the client is configured to use |
Batas waktu adalah pernyataan tentang jaringan. NXDOMAIN adalah pernyataan tentang tampilan DNS. Jawaban publik adalah pernyataan tentang kebijakan. Mengedit catatan zona saat ada batas waktu membuang satu-satunya bukti berguna dalam kasus ini.
Mengapa alamat plus-dua VPC bukan resolver jarak jauh
Alamat CIDR plus-dua adalah layanan lokal untuk sumber daya di dalam VPC. AWS mendokumentasikan bahwa meneruskan kueri dari jaringan lokal, atau dari server DNS VPC lain, langsung ke alamat itu tidak didukung dan dapat menghasilkan hasil yang tidak stabil.
Itu tidak berarti sebuah eksperimen tidak pernah tampak berhasil. Itu berarti perilakunya bukan kontrak yang bisa Anda taruh dalam skrip dukungan. Arah yang didukung adalah Resolver endpoint masuk: sepasang alamat di dalam VPC Anda, dapat dijangkau dari jaringan yang Anda kendalikan, yang menerima kueri datang dari luar AWS.
Bangun jalurnya dalam urutan yang gagal dengan bersih
Harus ada tiga lompatan, dan masing-masing punya cara gagalnya sendiri.
VPN client -> approved DNS forwarder
forwarder -> forwarding rule for internal.example
forwarding rule -> Resolver inbound endpoint addressesPenerus membutuhkan rute ke alamat endpoint melalui VPN, dan jalur balik juga harus berfungsi. Untuk DNS konvensional pada porta 53 endpoint menjawab melalui UDP dan TCP, jadi kedua protokol harus diizinkan dan keduanya harus bertahan melewati pemeriksaan stateful apa pun di tengah.
Lalu periksa tampilan DNS secara terpisah. Zona yang dihosting privat hanya terlihat oleh VPC yang terkait dengannya, atau melalui pengaturan berbagi yang disengaja. Endpoint yang dapat dijangkau tidak dengan sendirinya membuat setiap zona privat dapat diuraikan dalam konteks resolusinya.
Endpoint keluar melayani arah sebaliknya dan tidak akan menjawab kueri yang masuk dari laptop Anda.
Verifikasi dari kedua ujung
Kueri dari klien terhadap penerus, lalu dari penerus terhadap endpoint. Jika klien gagal sementara penerus berhasil, celahnya ada di antara keduanya.
Jika keduanya gagal, lihat kebijakan keamanan pada endpoint dan alamat sumber yang benar-benar dilihatnya. Penerus di belakang NAT menampilkan alamat NAT alih-alih alamat VPN laptop, dan perbedaan itu saja cukup untuk menjatuhkan kueri. Jika keduanya berhasil tetapi aplikasi tetap gagal, aplikasi mungkin memakai resolver berbeda dari yang Anda uji.
Pisahkan ruang nama publik dan privat dengan sengaja. Split DNS adalah kebijakan yang Anda konfigurasikan, bukan efek samping dari satu pencarian yang kebetulan mengembalikan data.
Apa yang tidak akan saya lakukan
Saya tidak akan menambahkan aturan NAT yang membuat satu pencarian berhasil lalu menyebutnya desain.
Saya tidak akan mengarahkan setiap klien jarak jauh ke alamat plus-dua hanya karena satu pengujian pernah mengembalikan catatan. Dan saya tidak akan memperluas kebijakan keamanan endpoint ke seluruh kumpulan VPN ketika satu penerus membutuhkan akses. Jika organisasi sudah menjalankan penerus yang disetujui di dalam VPC, baca desain itu dulu, karena endpoint kedua yang Anda tambahkan adalah yang tidak didokumentasikan siapa pun.