เมื่อ IKEv2 คืน TS_UNACCEPTABLE ให้เทียบซับเน็ตจริง
การปฏิเสธตัวเลือกคือความไม่ลงรอยเรื่องการครอบคลุมระหว่างสองฝ่าย สลับป้ายโลคอลกับรีโมต แล้วเทียบช่วงที่แน่นอนซึ่งแต่ละฝ่ายเสนอ
อ่าน TS_UNACCEPTABLE ว่าเป็นความไม่ลงรอยเรื่องขอบเขตการครอบคลุม ไม่ใช่โปรไฟล์ที่เสียหาย เกตเวย์กำลังบอกว่าทั้งสองฝ่ายตกลงกันไม่ได้ว่าอุโมงค์นี้จะพาแอดเดรสใดได้บ้าง IKE SA อาจตั้งขึ้นแล้วในตอนนั้น จึงเป็นเหตุให้ไคลเอนต์ดูเหมือนเชื่อมต่ออยู่โดยไม่มี SA ลูกอยู่ข้างหลัง เมื่อวางกรอบเช่นนี้ งานก็กลายเป็นกลไก จดพรีฟิกซ์ที่ตั้งใจไว้ของทั้งสองฝ่าย เปรียบเทียบในทิศทางเดียว แล้วแคบลงจนกว่าจะตัดกัน
จดคู่ที่ตั้งใจไว้ก่อน
ก่อนแตะการตั้งค่า ให้ไล่สี่ค่า คือช่วงต้นทางของผู้เริ่ม ช่วงปลายทางของผู้นั้น และคู่เดียวกันเมื่อมองจากฝ่ายผู้ตอบ บันทึกตระกูลแอดเดรสของแต่ละค่าด้วย ช่วง IPv4 กับช่วง IPv6 เป็นชนิดตัวเลือกที่ต่างกัน และไม่มีอันใดพับใส่เพย์โหลดของอีกอันได้
เพิ่มข้อจำกัดโปรโตคอลหรือพอร์ตใดที่นโยบายมีอยู่ กฎที่อนุญาตเฉพาะ TCP 445 ไปยังเซิร์ฟเวอร์ไฟล์ อธิบายชุดที่แคบกว่าซับเน็ตที่มันอยู่ ถ้าละไว้จากบันทึกของคุณ ผลการเจรจาจะดูไม่สอดคล้องด้วยเหตุที่คุณมองไม่เห็น
สลับป้ายก่อนเปรียบเทียบ
โลคอลกับรีโมตเป็นป้ายแบบสัมพัทธ์ พรีฟิกซ์โลคอลของไคลเอนต์คือช่วงรีโมตของเกตเวย์ และช่วงโลคอลของเกตเวย์คือช่วงรีโมตของไคลเอนต์ ภาพหน้าจอจากสองปลายจึงไม่มีวันตรงกัน และการเทียบแบบตรงตัวคือวิธีมาตรฐานที่จะเสียเวลาบ่ายหนึ่ง
ผู้ตอบอาจแคบข้อเสนอลงเป็นสับเซตที่ยอมรับได้แทนที่จะปฏิเสธ ผลลัพธ์นั้นแย่กว่าความล้มเหลวสะอาด ๆ เพราะมันทำงานได้ครึ่งเดียว ขอ 10.0.0.0/16 ขณะที่นโยบายอนุญาต 10.0.5.0/24 แล้วคุณอาจจบด้วย SA ลูกที่ครอบคลุมเพียง /24 นั้น มีโฮสต์เดียวตอบ ส่วนที่เหลือตกอยู่นอก และไม่มีอะไรในไคลเอนต์บอกเรื่องนี้ อ่านตัวเลือกที่ยอมรับ ไม่ใช่ตัวเลือกที่ขอ ก่อนสรุปว่าการเจรจาสำเร็จ
โปรไฟล์ road warrior ที่ขอเส้นทางเริ่มต้นมาลงที่นี่ตลอด เกตเวย์ที่สร้างสำหรับการเข้าถึงแบบแยกจะแคบข้อเสนอทั้งช่วงลงเหลือซับเน็ตของตัวเอง และไคลเอนต์ต้องยอมรับผลที่แคบลงหรือล้มเหลวอย่างชัดเจน
อ่านการปฏิเสธจากความพยายามครั้งเดียว
เก็บล็อกทั้งสองจากความพยายามเชื่อมต่อเดียวกัน โปรไฟล์ที่บันทึกไว้แสดงสิ่งที่คุณตั้งค่า ไม่ใช่สิ่งที่ถูกเสนอ และบน strongSwan คำสั่ง swanctl --log พิมพ์การแจ้งเตือนที่ได้รับพร้อมตัวเลือกที่มันพามา
จากนั้นตรวจดูว่าติดตั้งอะไรจริง swanctl --list-sas แสดงตัวเลือกของ SA ลูก และ ip xfrm policy แสดงช่วงเดียวกันเป็นรายการนโยบายของเคอร์เนล SA ลูกในรายการนั้นที่มีตัวเลือกซึ่งคุณไม่ได้ตั้งใจคือเหตุการณ์แคบลง ถ้าไม่มี SA ลูกและมี TS_UNACCEPTABLE ในล็อก นั่นคือการปฏิเสธ
ระหว่างที่อยู่ตรงนั้น ให้แยกเพื่อนบ้านใกล้เคียงออก INVALID_SELECTORS บ่นเรื่องตัวเลือกภายใน SA ลูกที่ตั้งไว้แล้ว ส่วน INTERNAL_ADDRESS_FAILURE หมายความว่าผู้ตอบจัดสรรแอดเดรสเสมือนไม่ได้ ซึ่งเป็นปัญหาสระ ไม่ใช่ปัญหาการครอบคลุม
ตรวจดูว่าอะไรทำให้ชุดหดลงอย่างเงียบ ๆ
สามสิ่งทำให้ชุดตัวเลือกหดลงโดยไม่บอกอะไร นโยบายของผู้ตอบคือสิ่งแรก ผ่านรายการซับเน็ต กฎกลุ่ม หรือการอนุญาตรายผู้ใช้ที่ลดข้อเสนอลงเป็นสับเซต ตระกูลแอดเดรสคือสิ่งที่สอง ไคลเอนต์สองสแตกมักเสนอ IPv6 ควบคู่กับ IPv4 และได้รับการปฏิเสธสำหรับช่วงที่เกตเวย์ไม่เคยตั้งค่า
ข้อจำกัดโปรโตคอลและพอร์ตคือสิ่งที่สาม ที่ที่นโยบายอนุญาตเฉพาะ TCP 445 นั้น SA ลูกอาจขึ้นได้ขณะที่ ICMP และ UDP ยังอยู่นอก และผู้ใช้รายงานว่าอุโมงค์เสียทั้งที่อนุญาตไว้เพียงโปรโตคอลเดียว
การขยายแอดเดรสอย่างเดียวจึงแก้ไขนโยบายที่จำกัดพอร์ตไม่ได้ และนี่คือกรณีที่มีแนวโน้มจะรอดจากการแก้ปัญหาสามรอบโดยไม่เปลี่ยน
พิสูจน์การครอบคลุมด้วยทราฟฟิกที่เหมาะ
หลังจาก SA ลูกติดตั้งแล้ว ส่งคำขอหนึ่งรายการที่ตกอยู่ในช่วงที่ยอมรับแน่นอน ดูที่ตัวนับไม่ใช่ไอคอนสถานะ ip -s xfrm state และตัวนับหลัง ip xfrm policy จะเพิ่มขึ้นเมื่อแพ็กเก็ตถูกจับคู่และป้องกัน จำนวนไบต์ที่ยังเป็นศูนย์หลังทราฟฟิกจริงหมายความว่าเคอร์เนลไม่เคยเลือกนโยบายนั้น
ศูนย์นั้นเป็นปัญหาการกำหนดเส้นทางหรือลำดับนโยบาย ไม่ใช่ปัญหาการเข้ารหัส มันยังดูเหมือนการปฏิเสธตัวเลือกจากมุมของผู้ใช้ทุกประการ จึงคุ้มค่าที่จะเก็บตัวนับก่อนเปิดโปรไฟล์ใหม่ ตัวนับที่ขึ้นทางเดียวชี้ไปที่เส้นทางขากลับแทน
ปิดท้ายด้วยการเขียนคู่ที่ยอมรับลงในตั๋ว ข้างช่วงที่ขอไว้แต่แรก คงการเลือกให้แคบเท่าข้อกำหนด เพราะการลบข้อผิดพลาดด้วยการแทนช่วงส่วนตัวด้วยทุกแอดเดรสให้สิทธิ์เข้าถึงมากกว่าที่อนุมัติสำหรับบัญชี