CIDR ของไคลเอนต์ AWS Client VPN ซ้อนทับช่วง VPC ไม่ได้
AWS กำหนดพูล Client VPN ตอนสร้าง และการซ้อนทับตัดสินจากช่วง ไม่ใช่ที่อยู่ที่ยังไม่ใช้ ห้าข้อตรวจก่อนสร้าง
ปลายทาง AWS Client VPN แจกจ่ายที่อยู่ไคลเอนต์จากพูลที่คุณเลือก และ AWS ตรวจสอบพูลนั้นเทียบกับเครือข่ายปลายทางก่อนสร้างปลายทาง การตรวจสอบไม่ใช่ว่าซับเน็ตดูว่างหรือไม่ แต่คือพูลซ้อนทับช่วง VPC หรือไม่ และคำตอบก็เหมือนกันไม่ว่าวันนี้จะมีอินสแตนซ์ EC2 ใช้ที่อยู่เหล่านั้นหรือไม่ การซ้อนทับเป็นคำถามเรื่องช่วง ไม่ใช่เรื่องการจัดสรร
ทำห้าข้อตรวจตามลำดับ หยุดที่ข้อแรกที่ล้มเหลว เพราะขั้นตอนหลังจากนั้นไม่สามารถแก้ไขการตัดสินใจก่อนหน้าได้
การซ้อนทับคือการทดสอบช่วง ไม่ใช่การทดสอบที่อยู่ว่าง
เริ่มจาก CIDR ของ VPC ไม่ใช่จากซับเน็ตที่คุณจะเชื่อมต่อ พูล 172.20.0.0/22 อยู่ภายใน VPC 172.20.0.0/16 และถูกปฏิเสธแม้ไม่มีซับเน็ตใดครอบครอง เพราะการซ้อนทับเป็นคุณสมบัติของช่วง ไม่ใช่ของการจัดสรรปัจจุบัน จากนั้นเพิ่มปลายทางที่ปลายทางเส้นทางไปถึง: VPC แบบเพียร์ ทรานซิตเกตเวย์ และช่วงภายในองค์กรผ่านการเชื่อมต่อแบบไซต์ทูไซต์ ช่วงใดก็ตามที่ไคลเอนต์อาจต้องเข้าถึงอยู่ในรายการ
รวบรวมจากบัญชี ไม่ใช่จากความจำ: aws ec2 describe-vpcs --query "Vpcs[].CidrBlock" พร้อมรายการตารางเส้นทางของซับเน็ตที่คุณจะเชื่อมต่อ
ขนาดพูลถูกกำหนดก่อนสร้าง
AWS ยอมรับพูลไคลเอนต์ IPv4 ระหว่าง /22 ถึง /12 บน Client VPN ขนาด /24 เล็กเกินไป /8 อยู่นอกช่วงที่เอกสารระบุไว้ และทั้งสองข้อผิดพลาดมาจากการกำหนดขนาดพูลเหมือนซับเน็ตเวิร์กโหลด กำหนดตามจำนวนไคลเอนต์พร้อมกันที่คาดไว้บวกเผื่อ แล้วปัดเป็นพรีฟิกซ์ที่อนุญาต
ตรวจสอบการคำนวณก่อนพิมพ์ลงคอนโซล เพราะพรีฟิกซ์ที่พิมพ์ผิดเปลี่ยนขนาดพูลโดยไม่มีคำเตือนใด ๆ:
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')))"คำสั่งนั้นพิมพ์จำนวนที่อยู่ ความยาวพรีฟิกซ์ และว่าตัวเลือกชนกับช่วง VPC หรือไม่ ซึ่งเร็วกว่าการคิดเรื่องเน็ตมาสก์ตอนท้ายหน้าต่างเปลี่ยนแปลง
ตัวแก้ชื่อมีบทบาทที่อยู่ของตัวเอง
ตัวแก้ชื่อของ VPC ตอบที่ที่อยู่ฐานของช่วง VPC บวกสอง ซึ่งไม่จำเป็นต้องอยู่ในซับเน็ตที่คุณเชื่อมต่อ การสันนิษฐานว่าตัวแก้ชื่อต้องอยู่ในพูลไคลเอนต์ หรือการสร้างซับเน็ตรอบที่อยู่นั้น เพิ่มออบเจ็กต์โดยไม่เปลี่ยนอะไร สิ่งที่สำคัญคือปลายทางมีค่าตั้ง DNS ที่ไคลเอนต์ใช้ได้ และตัวแก้ชื่อเข้าถึงได้จากอุโมงค์
บันทึกตัวแก้ชื่อ พูลไคลเอนต์ และซับเน็ตที่เชื่อมต่อเป็นสามรายการแยกกันในแผนที่อยู่ ทั้งสามล้มเหลวอย่างอิสระ และการที่รายการหนึ่งถูกต้องไม่ได้บอกอะไรเกี่ยวกับอีกสองรายการ
สี่ฟิลด์ที่คุณผูกมัดตอนสร้าง
CIDR IPv4 ของไคลเอนต์ถูกกำหนดตอนสร้าง การเปลี่ยนเซิร์ฟเวอร์ DNS การเพิ่มการเชื่อมโยง การสลับกลุ่มความปลอดภัย การแก้ไขกฎการอนุญาต หรือการเปลี่ยนเส้นทาง split-tunnel ล้วนเป็นการแก้ไขปกติ และไม่มีข้อใดเปลี่ยนชื่อพูล ความไม่สมมาตรนี้คือเหตุผลที่เรื่องนี้ควรได้รับการทบทวน: การตั้งค่าที่ถูกคือสิ่งที่คุณจะอยากเปลี่ยนภายหลัง และสิ่งที่แพงคือสิ่งที่คุณผูกมัดเป็นอันดับแรก อ่านคำอธิบายปลายทางก่อนวางแผนหน้าต่างเปลี่ยนแปลง
ตรวจสอบปลายทางที่ติดตั้งไว้ก่อนสันนิษฐานว่าต้องสร้างใหม่ aws ec2 describe-client-vpn-endpoints คืนพูล DNS แฟล็ก split-tunnel และการเชื่อมโยงในคำตอบเดียว ซึ่งมักเพียงพอที่จะตัดการสร้างใหม่ทิ้ง
เปลี่ยนปลายทางแทนการปะ
ปลายทางใหม่คือปลายทางใหม่ ไม่ใช่การย้าย เซสชันที่มีอยู่ไม่ย้ายไป โปรไฟล์ไคลเอนต์ชี้ไปที่ชื่ออื่น และทุกการตั้งค่าที่คุณถือเป็นเรื่องปกติต้องสร้างใหม่: ใบรับรองเซิร์ฟเวอร์ การพิสูจน์ตัวตน การเชื่อมโยง เส้นทาง กลุ่มการอนุญาต การบันทึก ตรวจสอบด้วยไคลเอนต์หนึ่งตัวกับบริการส่วนตัวที่จำเป็นและกับปลายทางที่ต้องถูกปฏิเสธ แล้วขยายการเข้าถึง สิ่งใดที่ข้ามไปจะกลายเป็นตั๋วสนับสนุนภายหลัง
เปิดปลายทางเดิมไว้จนกว่าการตรวจสอบนั้นจะผ่าน และคงเส้นทางบริหารที่ไม่ขึ้นกับตัวใหม่
ขอบเขตหนึ่งที่ควรระบุ: เรื่องนี้ครอบคลุมพูลไคลเอนต์ IPv4 การตั้งค่าทราฟฟิก dual-stack และ IPv6 บน Client VPN เป็นไปตามโมเดลที่อยู่ของตัวเอง ดังนั้นอย่าคัดลอกรายการนี้โดยไม่อ่านเอกสารของโหมดนั้น