DNS riêng hoạt động trong VPC nhưng không qua VPN
Một tên riêng phân giải được trong EC2 nhưng không qua VPN là vấn đề đường đi của resolver. Đọc hình dạng lỗi trước khi sửa bản ghi vùng.
Một tên riêng phân giải được từ phiên bản EC2 nhưng không phân giải được từ laptop kết nối qua VPN, và vùng trông đúng trong bảng điều khiển. Phản xạ đầu tiên là sửa bản ghi, điều gần như không bao giờ là vấn đề. Bản ghi đang trả lời ai đó; nó chỉ không trả lời laptop của bạn. Điều khác biệt giữa hai bên gọi là resolver nào họ hỏi và resolver đó có đường đi được hỗ trợ vào chế độ xem DNS của VPC hay không.
Tôi bắt đầu bằng việc chứng minh bản ghi tồn tại, rồi dành phần còn lại cho đường đi của truy vấn. Đó là hai hệ thống riêng biệt và chúng hỏng theo những hình dạng khác nhau.
Đọc hình dạng lỗi trước khi thay đổi bất cứ điều gì
Ba kết quả nghĩa là ba điều khác nhau, và một truy vấn phân biệt chúng: chạy dig cho tên đó với resolver mà máy khách thực sự dùng.
| 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 |
Hết thời gian là một phát biểu về mạng. NXDOMAIN là phát biểu về chế độ xem DNS. Một câu trả lời công khai là phát biểu về chính sách. Sửa bản ghi vùng khi đang hết thời gian là ném đi bằng chứng hữu ích duy nhất của vụ việc.
Vì sao địa chỉ cộng hai của VPC không phải resolver từ xa
Địa chỉ CIDR cộng hai là dịch vụ cục bộ cho các tài nguyên bên trong VPC. AWS ghi rõ rằng việc chuyển tiếp truy vấn từ mạng tại chỗ, hoặc từ máy chủ DNS của VPC khác, trực tiếp đến địa chỉ đó là không được hỗ trợ và có thể cho kết quả không ổn định.
Điều đó không có nghĩa là một thử nghiệm không bao giờ có vẻ chạy được. Nó có nghĩa là hành vi không phải hợp đồng mà bạn có thể đặt vào kịch bản hỗ trợ. Hướng được hỗ trợ là một Resolver endpoint vào: một cặp địa chỉ bên trong VPC của bạn, tiếp cận được từ mạng bạn kiểm soát, chấp nhận truy vấn đến từ ngoài AWS.
Xây đường đi theo thứ tự mà nó hỏng gọn gàng
Phải có ba chặng, và mỗi chặng có cách hỏng riêng.
VPN client -> approved DNS forwarder
forwarder -> forwarding rule for internal.example
forwarding rule -> Resolver inbound endpoint addressesBộ chuyển tiếp cần một tuyến đến các địa chỉ endpoint qua VPN, và đường về cũng phải hoạt động. Với DNS thông thường trên cổng 53, endpoint trả lời qua UDP và TCP, nên cả hai giao thức phải được cho phép và cả hai phải sống sót qua bất kỳ kiểm tra trạng thái nào ở giữa.
Sau đó kiểm tra chế độ xem DNS riêng. Vùng lưu trữ riêng chỉ hiển thị với các VPC mà nó được liên kết, hoặc qua một thỏa thuận chia sẻ có chủ đích. Một endpoint tiếp cận được không tự nó làm mọi vùng riêng phân giải được trong ngữ cảnh phân giải của nó.
Một endpoint ra phục vụ hướng ngược lại và sẽ không trả lời truy vấn đi vào từ laptop của bạn.
Xác minh từ cả hai đầu
Truy vấn từ máy khách tới bộ chuyển tiếp, rồi từ bộ chuyển tiếp tới endpoint. Nếu máy khách hỏng trong khi bộ chuyển tiếp thành công, khoảng hở nằm giữa hai bên đó.
Nếu cả hai đều hỏng, hãy xem chính sách bảo mật trên endpoint và địa chỉ nguồn mà nó thực sự thấy. Một bộ chuyển tiếp sau NAT trình ra địa chỉ NAT thay vì địa chỉ VPN của laptop, và chỉ riêng khác biệt đó đủ để truy vấn bị bỏ. Nếu cả hai thành công nhưng ứng dụng vẫn hỏng, ứng dụng có thể đang dùng resolver khác với cái bạn đã kiểm tra.
Giữ không gian tên công khai và riêng tách biệt một cách có chủ đích. Split DNS là chính sách bạn cấu hình, không phải tác dụng phụ của việc một lần tra cứu tình cờ trả về dữ liệu.
Những gì tôi sẽ không làm
Tôi sẽ không thêm một quy tắc NAT làm một lần tra cứu chạy được rồi gọi đó là thiết kế.
Tôi sẽ không trỏ mọi máy khách từ xa vào địa chỉ cộng hai chỉ vì một lần kiểm tra đã trả về một bản ghi. Và tôi sẽ không mở rộng chính sách bảo mật của endpoint ra toàn bộ nhóm VPN khi chỉ một bộ chuyển tiếp cần truy cập. Nếu tổ chức đã chạy một bộ chuyển tiếp được phê duyệt bên trong VPC, hãy đọc thiết kế đó trước, vì endpoint thứ hai bạn thêm là cái mà không ai ghi lại.