IP riêng của Cloud SQL qua VPN: tuyến đường không ai xuất
IP riêng của Cloud SQL hoạt động từ một mạng kết nối qua VPN, nhưng chỉ khi cả tiền tố máy khách và dải dịch vụ cùng đi qua hai ranh giới định tuyến.
Nhiều nhóm tin rằng IP riêng của Cloud SQL chỉ hoạt động từ bên trong VPC, và niềm tin đó tồn tại vì sự cố trông giống như lỗi cơ sở dữ liệu. Google tài liệu hóa việc truy cập từ các mạng được kết nối qua Cloud VPN hoặc Cloud Interconnect. Những mạng đó không cần một tính năng cơ sở dữ liệu đặc biệt, mà cần hai lần trao đổi tuyến đường dễ bị bỏ dở nửa chừng. Đường hầm dựng lên, các phiên bản tính toán trả lời, và kết nối cơ sở dữ liệu hết thời gian — đúng là sự kết hợp khiến người ta đi nhầm bảng điều khiển.
Lầm tưởng: IP riêng nghĩa là riêng đối với VPC
Truy cập dịch vụ riêng là một kết nối ngang hàng VPC giữa mạng của bạn và mạng của nhà sản xuất do Google sở hữu. Dải được cấp cho dịch vụ nằm ở phía nhà sản xuất, và địa chỉ phiên bản nằm bên trong dải đó. Chính kết nối ngang hàng này khiến một cơ sở dữ liệu trong dự án của bạn có thể nằm trên địa chỉ mà VPC của bạn định tuyến tới dù không có mạng con rõ ràng nào của bạn chứa nó.
Vì là kết nối ngang hàng, nó cũng có hành vi của kết nối ngang hàng, kể cả phần mà các tuyến tùy chỉnh không tự động đi qua.
Lầm tưởng: một đường hầm hoạt động mang theo tuyến đường của cơ sở dữ liệu
Hai dải phải sống sót qua chặng đường. Thứ nhất là tiền tố máy khách: mạng tại chỗ của bạn phải được Cloud Router biết đến với các tiền tố cụ thể, vì tuyến mặc định không thể cung cấp phần nhập mà mạng nhà sản xuất cần cho đường quay về. Thứ hai là dải dịch vụ được cấp, mà phía bên ngoài phải học để các gói tin của nó tới cơ sở dữ liệu có nơi để đi. Đây là những tuyến khác nhau được duy trì ở những ranh giới khác nhau, và sửa tuyến này để tuyến kia vẫn hỏng.
Về phía Google, điều đó nghĩa là bật Export custom routes trên các kết nối ngang hàng liên quan và thêm dải dịch vụ được cấp vào các tuyến được Cloud Router quảng bá cho đường hầm.
Giữ lại những quảng bá đã có. Việc thêm dải dịch vụ không nên xóa các tuyến VPC mà cùng phiên BGP đang mang cho lưu lượng khác, và một tập quảng bá bị thay thế toàn bộ là sự cố thứ hai ẩn sau sự cố thứ nhất. Cũng hãy kiểm tra các tuyến hiệu lực trên thiết bị bên ngoài, vì việc tới được cổng VPN hay mạng con khác chỉ chứng minh khả năng truyền tải.
Lầm tưởng: Cloud SQL Auth Proxy giải quyết vấn đề mạng
The Auth Proxy cung cấp xác thực được hỗ trợ và truyền tải mã hóa giữa ứng dụng của bạn và phiên bản. Nó không tạo ra tuyến đường. Một proxy khởi chạy trên máy chủ không có đường tới mạng riêng sẽ thất bại y như một kết nối trực tiếp, và nhật ký của nó sẽ kém hữu ích hơn về nguyên nhân. Chuyển proxy sang máy chủ có kết nối thay đổi việc chặng nào của đường đi phải hoạt động, và đó là một quyết định thiết kế thực sự chứ không phải cách lách.
Điều nó không làm là cho phép một máy tính xách tay bị ngắt kết nối tới được một phiên bản chỉ riêng tư.
Lầm tưởng: Private Service Connect theo cùng các quy tắc
Private Service Connect dùng một endpoint trong mạng con của chính bạn và một cách bố trí DNS do bạn kiểm soát, nên tuyến tới đó là một tuyến thông thường tới địa chỉ bạn sở hữu. Các thiết lập xuất kết nối ngang hàng không áp dụng cho thiết kế đó, và việc sao chép thay đổi kết nối ngang hàng vào một triển khai PSC thêm rủi ro mà không thêm khả năng tiếp cận.
Cả hai đều cho bạn một địa chỉ riêng; sự giống nhau dừng ở đó.
Kiểm tra đường đi theo đúng thứ tự
Từ máy khách bên ngoài, trước hết hãy kiểm tra endpoint TCP của cơ sở dữ liệu. Bắt tay TCP hoàn tất nghĩa là định tuyến, tường lửa và trình lắng nghe đều đã sẵn sàng, và bài kiểm tra tiếp theo là một thao tác đã xác thực được phép. Việc bị từ chối xác thực lúc đó thực ra là tin tốt, vì nó chứng minh một trình lắng nghe của cơ sở dữ liệu đã trả lời. Hết thời gian ICMP hầu như không nói gì về việc truy cập cơ sở dữ liệu, vì nhiều tuyến bỏ nó đi trong khi vẫn chuyển tiếp TCP trơn tru.
Nếu các dải máy khách của bạn nằm ngoài RFC 1918, hãy xem lại các yêu cầu bổ sung về xuất tuyến và ủy quyền mạng trước khi kết luận rằng thiết kế không được hỗ trợ.
Ghi lại bốn đối tượng cùng với kết nối: tiền tố bên ngoài, dải dịch vụ được cấp, các kết nối ngang hàng liên quan và bộ định tuyến quảng bá. Bốn thứ đó giải thích toàn bộ đường đi riêng, và chúng thay thế câu chuyện rằng Cloud SQL hoặc luôn cần proxy hoặc hoàn toàn không thể tới được qua VPN.