GCP Cloud VPN: kiểm tra gateway, tunnel và firewall theo đúng thứ tự
Một tunnel báo trạng thái đã thiết lập trong khi mọi phép thử đều hết thời gian thường thiếu một quy tắc firewall của VPC. Hãy kiểm tra gateway, bộ chọn và kiểu định tuyến theo thứ tự đó.
Bảng điều khiển hiển thị một tunnel xanh, giám sát tại chỗ vẫn không tới được một phiên bản nào, và dựng lại tunnel có vẻ là cách sửa hiển nhiên. Hiếm khi đúng như vậy. Một tunnel đã thiết lập chỉ chứng minh rằng hai gateway đã hoàn tất trao đổi IKE. Nó không nói gì về việc một gói tin có từng được phép đi vào VPC của bạn hay không.
Bốn quyết định nằm giữa biểu tượng xanh đó và một phản hồi, và chúng thất bại theo một thứ tự có thể đoán trước. Hãy xử lý từ thứ rẻ nhất.
Ba đối tượng, và chỉ một trong số đó mã hóa
Một gateway VPN sở hữu địa chỉ bên ngoài mà peer của bạn mã hóa tới. Trong bảng điều khiển, bạn không bao giờ tạo nó bằng tay: chọn hoặc đặt trước một địa chỉ trong biểu mẫu kết nối và gateway xuất hiện cùng với nó. Một gateway HA chiếm hai địa chỉ trên hai giao diện, điều này quan trọng ở bước kiểm tra hạn mức sau này.
Tunnel là sự ghép cặp giữa gateway đó và peer. Nó mang bí mật chia sẻ và các bộ chọn lưu lượng mà nó hứa bảo vệ. Chính trong những bộ chọn đó, phần lớn các lỗi âm thầm bắt đầu. Một tunnel có bộ chọn cục bộ bao phủ 10.0.0.0/24 sẽ không chuyển 10.0.1.0/24, dù trạng thái trông khỏe đến đâu.
Đầu xa giữ danh sách riêng của nó, thường được gọi là miền mã hóa, và phần cứng kết thúc so sánh nó với danh sách của bạn. Không bên nào thương lượng một bộ chọn mà nó chưa từng được cấp.
Kiểu định tuyến quyết định điều gì đến được bảng định tuyến
Cloud VPN cung cấp ba dạng định tuyến và chúng không trộn lẫn sạch sẽ. Định tuyến dựa trên chính sách giữ các cặp bộ chọn tĩnh, định tuyến dựa trên tuyến đường chờ bạn tự thêm tuyến tĩnh, và định tuyến động quảng bá tiền tố qua một Cloud Router trên BGP. Hãy chọn một cách có chủ đích.
Một tunnel động với các tuyến tĩnh viết tay bên cạnh tạo ra bảng định tuyến trống rỗng mỗi khi phiên BGP dao động.
Động là dạng duy nhất cho phép các tiền tố được bảo vệ thay đổi mà không dựng lại tunnel, và nó kéo Cloud Router vào tập đối tượng bạn phải xác minh. Bộ chọn tĩnh vẫn dùng được khi peer là một firewall phần cứng không nói được BGP. Khi đó cả hai đầu cần cùng dải địa chỉ, và mục cụ thể hơn phải thắng ở cả hai bên. Một cặp lệch nhau một subnet sẽ thiết lập rồi chỉ chở một nửa lưu lượng của bạn.
Sự từ chối ngầm nằm sau tunnel
Lưu lượng vào được đánh giá dựa trên một sự từ chối ngầm ở mức ưu tiên thấp nhất, và quy tắc đó không quan tâm gói tin đến đã được mã hóa. Cho tới khi một quy tắc firewall nêu tên dải tại chỗ và cổng đang dùng, gói tin bị giải mã, kiểm tra và bị bỏ. Nhật ký VPN vẫn sạch suốt thời gian, vì tunnel đã làm đúng những gì nó hứa.
Thay vào đó, hãy đọc nhật ký từ chối của firewall khi tunnel hoạt động mà phép thử hết thời gian, rồi thu hẹp quy tắc vào dải nguồn và các cổng bạn cần:
gcloud compute firewall-rules create allow-from-dc \
--network=vpn-vpc \
--direction=INGRESS \
--source-ranges=192.168.10.0/24 \
--allow=tcp:22,tcp:5432,icmpChỉ một chiều hoạt động là một manh mối về firewall
Lưu lượng ra hành xử khác, vì quy tắc cho phép ngầm để các phiên bản gửi đi bất cứ đâu. Một trung tâm dữ liệu không tới được VM thường nằm sau một đường ra hoạt động hoàn hảo theo chiều ngược lại. Sự bất đối xứng đó tách một thiếu sót firewall khỏi lỗi định tuyến, vì lỗi định tuyến phá cả hai chiều cùng lúc. Hãy thử chiều ngược lại trước khi sửa thêm một quy tắc.
Tạo địa chỉ cũng là một thao tác hạn mức. Một dự án gần giới hạn địa chỉ bên ngoài đang dùng sẽ từ chối kết nối với lỗi đọc như lỗi phân quyền.
Bộ chọn, hạn mức, rồi bốn bước kiểm tra
Các tunnel tạo trong bảng điều khiển đôi khi trả về một bộ chọn lưu lượng từ xa rỗng từ gcloud compute vpn-tunnels describe trong khi các tuyến được sinh ra vẫn chở lưu lượng đúng. Hãy so sánh những gì API ghi nhận với các dải bạn thực sự bảo vệ trước khi kết luận tunnel sai. Tạo nó qua API hoặc SDK giữ bộ chọn rõ ràng.
Hạn mức là điểm dễ bỏ sót khác. Hãy yêu cầu tăng trước cửa sổ bảo trì chứ không phải trong đó, và kiểm tra số địa chỉ trong cùng dự án với gateway.
Làm việc từ ngoài vào trong: trạng thái peer, cả hai danh sách bộ chọn, một tuyến cho mỗi phía, quy tắc vào cho dải nguồn và cổng, rồi bắt gói tin. Ghi địa chỉ gateway, cả hai danh sách bộ chọn và kiểu định tuyến vào phiếu thay đổi khi tunnel còn mới, vì kỹ sư tiếp theo thêm subnet sẽ cần cả ba.