CIDR của máy khách AWS Client VPN không được chồng lấn với dải VPC
AWS cố định pool Client VPN ngay khi tạo, và việc chồng lấn do dải quyết định, không do địa chỉ chưa dùng. Năm kiểm tra trước khi xây dựng.
Một endpoint AWS Client VPN cấp địa chỉ máy khách từ pool mà bạn chọn, và AWS kiểm tra pool đó với mạng đích trước khi tạo endpoint. Việc kiểm tra không phải là subnet có trông trống hay không. Mà là pool có chồng lấn với dải VPC hay không, và câu trả lời giống nhau dù hôm nay có một instance EC2 dùng những địa chỉ đó hay không. Chồng lấn là câu hỏi về dải, không phải về cấp phát.
Đi qua năm kiểm tra theo thứ tự. Dừng ở kiểm tra đầu tiên thất bại, vì không bước nào sau đó sửa được một quyết định trước đó.
Chồng lấn là phép thử dải, không phải phép thử địa chỉ trống
Bắt đầu từ CIDR của VPC, không phải từ subnet bạn định liên kết. Một pool 172.20.0.0/22 nằm trong VPC 172.20.0.0/16 và bị từ chối ngay cả khi không subnet nào chiếm nó, vì chồng lấn là thuộc tính của các dải chứ không phải của việc cấp phát hiện tại. Sau đó thêm các đích mà endpoint định tuyến tới: VPC ngang hàng, transit gateway và các dải tại chỗ qua kết nối site-to-site. Bất kỳ dải nào máy khách có thể cần tới đều thuộc danh sách.
Thu thập chúng từ tài khoản thay vì từ trí nhớ: aws ec2 describe-vpcs --query "Vpcs[].CidrBlock", cùng với các mục bảng định tuyến cho subnet bạn định liên kết.
Kích thước pool được quyết định trước khi xây dựng
AWS chấp nhận pool máy khách IPv4 trong khoảng /22 đến /12 trên Client VPN. /24 là quá nhỏ, /8 nằm ngoài dải được ghi trong tài liệu, và cả hai lỗi đều đến từ việc định cỡ pool như một subnet khối lượng công việc. Hãy định cỡ theo số máy khách đồng thời dự kiến cộng dự phòng, rồi làm tròn đến một tiền tố được phép.
Kiểm tra phép tính trước khi gõ vào bảng điều khiển, vì một tiền tố gõ sai sẽ thay đổi kích thước pool mà không có cảnh báo nào:
python3 -c "import ipaddress; p=ipaddress.ip_network('172.16.0.0/22'); print(p.num_addresses, p.prefixlen, p.overlaps(ipaddress.ip_network('172.20.0.0/16')))"Lệnh đó in ra số địa chỉ, độ dài tiền tố và việc ứng viên có va chạm với dải VPC hay không, nhanh hơn so với suy nghĩ về mặt nạ mạng vào cuối cửa sổ thay đổi.
Resolver có vai trò địa chỉ riêng
Resolver của VPC trả lời tại địa chỉ cơ sở của dải VPC cộng hai, không nhất thiết nằm trong subnet bạn đã liên kết. Giả định rằng resolver phải sống trong pool máy khách, hoặc xây một subnet quanh địa chỉ đó, sẽ thêm đối tượng mà không thay đổi gì. Điều quan trọng là endpoint mang một thiết lập DNS mà máy khách có thể áp dụng và resolver có thể truy cập từ đường hầm.
Ghi lại resolver, pool máy khách và subnet đã liên kết thành ba mục riêng trong kế hoạch địa chỉ. Chúng hỏng độc lập, và việc một mục đúng không nói gì về hai mục còn lại.
Bốn trường bạn cam kết khi tạo
CIDR IPv4 của máy khách là cố định khi tạo. Đổi máy chủ DNS, thêm liên kết, thay nhóm bảo mật, sửa quy tắc ủy quyền hay thay đổi tuyến split-tunnel đều là những chỉnh sửa thông thường, và không có chỉnh sửa nào đổi tên pool. Sự bất đối xứng đó là lý do việc này đáng được xem xét: những thiết lập rẻ là thứ bạn sẽ muốn đổi sau, còn cái đắt là thứ bạn cam kết trước. Đọc mô tả endpoint trước khi lập kế hoạch cho cửa sổ thay đổi.
Kiểm tra endpoint đã triển khai trước khi giả định phải xây lại. aws ec2 describe-client-vpn-endpoints trả về pool, DNS, cờ split-tunnel và các liên kết trong một phản hồi duy nhất, thường đủ để loại trừ việc xây lại.
Thay endpoint thay vì vá nó
Một endpoint mới là một endpoint mới, không phải di trú. Các phiên hiện có không chuyển sang đó, hồ sơ máy khách trỏ tới tên khác, và mọi thiết lập bạn coi là đương nhiên đều phải tạo lại: chứng chỉ máy chủ, xác thực, liên kết, tuyến, nhóm ủy quyền, ghi log. Hãy kiểm chứng bằng một máy khách với một dịch vụ riêng tư bắt buộc và với một đích phải bị từ chối, rồi mở rộng quyền truy cập. Bất cứ điều gì bạn bỏ qua sẽ thành phiếu hỗ trợ về sau.
Giữ endpoint cũ hoạt động cho đến khi kiểm chứng đó qua, và giữ một đường quản trị không phụ thuộc vào cái mới.
Một ranh giới đáng nêu: phần này bao gồm pool máy khách IPv4. Các thiết lập lưu lượng dual-stack và IPv6 trên Client VPN theo mô hình địa chỉ riêng, nên đừng sao chép danh sách này mà không đọc tài liệu cho chế độ đó.