ไคลเอนต์ของคุณรายงานว่าเชื่อมต่อแล้ว ขณะที่อินเทอร์เฟซยังอยู่ และเบราว์เซอร์หมดเวลา และไม่มีข้อความใดในสามข้อนี้ที่เป็นเท็จ คำว่าเชื่อมต่อแล้วอธิบายชั้นหนึ่งซึ่งไม่เกี่ยวข้องกับหน้าที่คุณขอเลย การตัดสินว่าชั้นใดเป็นผู้รายงานต้องใช้คำขอใหม่หนึ่งรายการและมองตัวนับหนึ่งครั้งซึ่งจะพิสูจน์ว่าทราฟฟิกเคลื่อนไปแล้ว การรีสตาร์ตจะทิ้งหลักฐานนั้นและสร้างเงื่อนไขที่คุณพยายามสังเกตขึ้นมาใหม่

สามสิ่งที่แตกต่างกันซึ่งถูกเรียกว่าเชื่อมต่อแล้ว

ที่ระดับล่างสุด เชื่อมต่อแล้วอาจหมายถึงกระบวนการไคลเอนต์กำลังทำงานและถือซ็อกเก็ตไปยังเพื่อนร่วม เหนือขึ้นไปอาจหมายถึงมีอินเทอร์เฟซที่มีที่อยู่ ซึ่งอุปกรณ์ถาวรหรือรูทีนการกู้คืนสามารถสร้างได้โดยไม่มีเซสชันที่มีชีวิตอยู่ข้างหลัง ที่ระดับควบคุมอาจหมายถึงมีการเจรจาความสัมพันธ์แล้ว ซึ่งไม่ได้บอกอะไรเลยว่าแพ็กเก็ตเดียวได้ผ่านใต้มันไปหรือไม่ แต่ละอย่างอยู่รอดจากความล้มเหลวที่อย่างอื่นไม่อยู่รอด และไคลเอนต์มักแสดงสิ่งที่แข็งแกร่งที่สุดที่อ้างได้

ดังนั้นไอคอนสีเขียวและอุโมงค์ที่ตายแล้วจึงเข้ากันได้ ไม่ได้ขัดแย้งกัน พวกมันรายงานเกี่ยวกับวัตถุที่แตกต่างกัน นี่คือเหตุผลทั้งหมดที่ความล้มเหลวนี้ถูกวินิจฉัยผิดว่าเป็นบั๊กของไคลเอนต์อยู่ตลอด

ส่งคำขอที่ไม่เป็นอันตรายหนึ่งรายการไปยังปลายทางที่คุณต้องการจริงก่อนแตะแดมอน และเก็บบล็อกทราฟฟิกโดยตรงที่จำเป็นไว้ในที่ของมันขณะทำงาน การรีสตาร์ตจะลบลำดับของเหตุการณ์แล้วสร้างขึ้นใหม่ให้ใกล้พอที่จะซ่อนสาเหตุ จึงเป็นเหตุผลที่ตั๋วเดียวกันกลับมาอีกหนึ่งสัปดาห์โดยไม่มีอะไรใหม่ในนั้น คำขอหนึ่งรายการ การอ่านตัวนับหนึ่งครั้ง และทริกเกอร์ที่ทำให้เกิดความล้มเหลวคือหลักฐานขั้นต่ำ

ตัวนับใดพิสูจน์ว่าแพ็กเก็ตเคลื่อนไปแล้ว

ใน IPsec ความสัมพันธ์ IKE และความสัมพันธ์ CHILD เป็นวัตถุแยกกัน และมีเพียง child เท่านั้นที่มีตัวนับที่ตอบคำถามนี้ แสดงรายการ child ดูว่าแพ็กเก็ตเพิ่มขึ้นทั้งสองทิศทางหรือไม่ และเปรียบเทียบกับสิ่งที่แอปพลิเคชันพยายามทำ ความสัมพันธ์ที่ติดตั้งไว้ที่ศูนย์เป็นข้อค้นพบที่แตกต่างจากความสัมพันธ์ที่เพิ่มขึ้นขณะที่แอปพลิเคชันยังล้มเหลว อย่างแรกหมายถึงทราฟฟิกไม่ได้ถูกเลือก อย่างที่สองหมายถึงมันกำลังเคลื่อนที่และความผิดพลาดอยู่ไกลออกไป อ่านตัวนับสองครั้ง ห่างกันไม่กี่วินาที เพราะตัวอย่างเดียวไม่สามารถแสดงแนวโน้มได้

swanctl --list-sas
ip xfrm state list
ip -s link show dev tun0

ตัวนับศูนย์ชี้ไปที่การเลือก ได้แก่ การกำหนดเส้นทาง นโยบาย เนมสเปซที่แพ็กเก็ตออกมา หรืออินเทอร์เฟซที่ไคลเอนต์ไม่เคยผูก ตัวนับที่เพิ่มขึ้นชี้ห่างจากอุโมงค์ ดังนั้นดำเนินการต่อด้วยการส่งต่อที่ปลายไกล การแปลงชื่อ เส้นทางกลับ และบริการปลายทางตามลำดับนั้น โปรโตคอลที่ไม่มีวัตถุ child แยกต่างหากก็เปิดเผยหลักฐานเดียวกันในเงื่อนไขของตัวเอง ดังนั้นใช้สิ่งที่มันรายงานเกี่ยวกับสถานะของเพื่อนร่วมและจำนวนแพ็กเก็ตแทนการยืมคำศัพท์ของ IPsec รูปร่างของการอ่านสำคัญกว่าเครื่องมือที่สร้างมันขึ้นมา

ความผิดพลาดอยู่ที่ใดหลังจากตัวนับเคลื่อนไป

เกตเวย์ที่ตอบบนที่อยู่การจัดการของตัวเองพิสูจน์ว่าเกตเวย์ทำงาน ไม่ได้พิสูจน์ว่ามีอะไรข้างหลังให้บริการคำขอของคุณ ดังนั้นทดสอบฝั่งไกลไม่ใช่กล่องตรงกลาง การแปลงชื่อซ่อนความล้มเหลวได้ดีที่สุด เพราะรีโซลเวอร์ที่ไม่สามารถเข้าถึงได้ผ่านอุโมงค์จะหมดเวลาเหมือนการเชื่อมต่อที่ตายแล้ว การค้นหาสองครั้งแยกกรณีเหล่านั้นออกจากกัน และทั้งสองราคาถูก ถามรีโซลเวอร์ที่อุโมงค์บังคับก่อน แล้วถามรีโซลเวอร์สาธารณะสำหรับชื่อเดียวกัน

dig +short host.example
dig +short @10.20.0.1 host.example
ping -c 2 10.20.0.25

ชื่อที่แปลงได้ผ่านรีโซลเวอร์สาธารณะแต่ไม่ผ่านรีโซลเวอร์ของอุโมงค์หมายถึงเส้นทาง DNS แตก ขณะที่ชื่อที่แปลงได้ผ่านทั้งสองและยังหมดเวลาในเบราว์เซอร์ชี้ไปที่เส้นทางกลับหรือบริการ ถ้า ping ตามที่อยู่สำเร็จและแอปพลิเคชันยังปฏิเสธ เครือข่ายได้ส่งคำขอไปแล้วและบริการปฏิเสธคำขอนั้น ซึ่งเป็นขั้นตอนที่ช้ากว่ามาก

บันทึกทริกเกอร์ แล้วเปลี่ยนหนึ่งสิ่ง

บันทึกว่าอะไรเกิดก่อนความล้มเหลว ช่วงที่ไม่มีการใช้งาน การเปลี่ยนเครือข่าย การต่ออายุคีย์ แล็ปท็อปที่กลับมาทำงาน หรือระบบที่ถูกกู้คืน สิ่งเหล่านี้สร้างกลไกที่แตกต่างกัน และโดยปกติมีเพียงระบบที่ถูกกู้คืนเท่านั้นที่ซ่อมตัวเองได้ ซึ่งเป็นกรณีที่ไม่สอนอะไรคุณเลย การรีสตาร์ตจะลบลำดับของเหตุการณ์แล้วสร้างเงื่อนไขที่ใกล้พอจะซ่อนสาเหตุ เขียนทริกเกอร์ลงขณะที่ยังทำซ้ำได้

จากนั้นทำการแก้ไขหนึ่งอย่างที่มีหลักฐานรองรับและทำคำขอเดิมซ้ำพร้อมกับทริกเกอร์ที่ทำให้เกิดความล้มเหลว การไม่ใช้งานเป็นทริกเกอร์ที่ทำซ้ำได้ง่ายที่สุด จึงเป็นการยืนยันที่เร็วที่สุดว่าการแก้ไขจัดการกับกลไกไม่ใช่อาการ

สิ่งที่คุณต้องการรายงานคือหลักฐานว่าทราฟฟิกที่คุณตั้งใจจะส่งไปถึงบริการที่คุณตั้งใจจะไปถึงแล้ว ไอคอนที่เปลี่ยนเป็นสีเขียว หน้าที่แคชไว้ซึ่งโหลด และตัวนับที่เคลื่อนไหว ล้วนพิสูจน์ได้น้อยกว่าคำขอที่เสร็จสมบูรณ์หนึ่งรายการต่อปลายทางที่ตั้งใจ เก็บคำขอ การอ่านตัวนับ และทริกเกอร์ไว้ด้วยกัน เพื่อให้คนถัดไปแยกความแตกต่างระหว่างการแก้ไขกับความบังเอิญ

บทความที่เกี่ยวข้อง