จุดส่งต่อ NAT จุดใดทำให้การแมป VPN ที่ไม่ได้ใช้งานหลุด และจะรู้ได้อย่างไร
กระแส VPN ที่ไม่มีการใช้งานอาจตายได้ที่จุดส่งต่อใดก็ได้ที่เก็บสถานะ ทำการทดสอบหนึ่งครั้งซ้ำ เปรียบเทียบว่าขอบเขตแต่ละแห่งเห็นอะไร และรายงานผลลัพธ์ที่จำกัดแทนการเดาผู้กระทำผิด
หลังช่วงเวลาสงบเงียบ อุโมงค์ก็เชื่อมต่อใหม่ ไม่มีบันทึกใดเอ่ยชื่อผู้กระทำผิด และทางเลือกที่เห็นได้ชัดคือการเลือกอุปกรณ์ที่มีเอกสารเรื่องเวลาหมดอายุดูดีที่สุด นั่นคือการเดาที่แต่งตัวเป็นบทวินิจฉัย สถานะสามารถคงอยู่ได้ระยะหนึ่งในเราเตอร์บ้าน ในตัวแปลของผู้ให้บริการ และที่ขอบคลาวด์ และทุกจุดเหล่านั้นสามารถทิ้งกระแสที่เงียบไปได้ สิ่งที่ทำได้แทนคือวาดแผนที่เส้นทาง ทำเครื่องหมายอุปกรณ์ที่สังเกตได้จริง และทำการทดสอบความนิ่งหนึ่งครั้งที่ทำซ้ำได้
การทดสอบที่ทำซ้ำได้เปลี่ยนเรื่องเล่าให้เป็นการวัด ทุกอย่างด้านล่างตั้งสมมติฐานว่ามีไคลเอนต์หนึ่ง เซิร์ฟเวอร์หนึ่ง และโปรโตคอลหนึ่ง และตั้งสมมติฐานว่าคุณไม่เปลี่ยนสองตัวแปรพร้อมกัน จุดมุ่งหมายคือทำให้ครั้งต่อไปถูกลงกว่าครั้งนี้
ทำการทดสอบความนิ่งแบบเดียวกันทุกครั้ง
จดบันทึกว่ากระแสล่าสุดปกติดีเมื่อใด หลังจากนั้นนิ่งไปนานเท่าใด และแพ็กเก็ตใหม่หนึ่งแพ็กเก็ตนำกลับมาได้หรือไม่ สามข้อเท็จจริงนี้คือการวัด หากไม่มีก็เป็นเพียงเรื่องเล่าเกี่ยวกับแล็ปท็อปที่หลุด ใช้ไคลเอนต์เดิม เซิร์ฟเวอร์เดิม และโปรโตคอลเดิมทุกครั้งที่ทำซ้ำ และบันทึกวินาทีที่แพ็กเก็ตแรกหลังความเงียบถูกส่งออกไป
จากนั้นเปรียบเทียบว่าขอบเขตแต่ละแห่งที่คุณเป็นเจ้าของเห็นอะไรจริง ๆ ความแตกต่างที่ชี้ขาดการสอบสวนคือเซิร์ฟเวอร์ไม่เห็นอะไรเลยหลังการหยุดชะงัก หรือเห็นคำขอแล้วตอบกลับไปในเส้นทางที่ไม่ได้พาคำตอบอีกต่อไป
| What you observe | What it suggests | What it does not prove |
|---|---|---|
| server records no packet after the pause | state was lost upstream of the server | which hop dropped it |
| server answers, client never receives | return-path state or filtering | that the timer belongs to the client |
| client sends nothing at all | client-side timer or application behaviour | that the network path is healthy |
เปรียบเทียบเส้นทางโดยไม่เปลี่ยนห้าสิ่ง
เครือข่ายเข้าถึงที่ได้รับอนุมัติแห่งที่สองเป็นการเปรียบเทียบที่ชอบด้วยเหตุผล เพราะห่วงโซ่ NAT ต่างกัน มันยังต่างกันในผู้ให้บริการ สภาพวิทยุ และอาจรวมถึงตระกูลที่อยู่ ดังนั้นผลลัพธ์จึงเป็นขอบเขต ไม่ใช่การกล่าวโทษ บันทึกข้อจำกัดไว้พร้อมผลลัพธ์แทนที่จะทิ้งไปเงียบ ๆ เมื่อรายงาน และเขียนเส้นทางไว้ด้วย: อุปกรณ์ บทบาท และสถานะของมันอ่านได้หรือไม่
การเปรียบเทียบเส้นทางให้คำถามที่จำกัด: กระแสอยู่รอดบนเส้นทางหนึ่งและตายบนอีกเส้นทางหลังความเงียบที่คล้ายกัน ตัวแปรจึงอยู่ที่ใดที่หนึ่งในส่วนที่ต่างกัน นี่เป็นผลลัพธ์จริงแม้ไม่มีการระบุชื่ออุปกรณ์ และบอกวิศวกรคนถัดไปว่าควรใช้เวลาบ่ายที่ไหนและไม่ควรที่ไหน
ควรอ่านสถานะภายในก่อนคาดเดาเรื่องผู้ให้บริการ บนเกตเวย์ Linux คำสั่ง conntrack -L แสดงกระแสที่ติดตามอยู่พร้อมอายุคงเหลือ ซึ่งเปลี่ยนการเดาเรื่องตัวจับเวลาเป็นตัวเลขที่ดูได้ว่าหมดอายุเมื่อใด อ่านก่อนและหลังช่วงนิ่ง ไม่ใช่แค่หลังจากนั้น
สิ่งที่สัญญาณคงชีวิตจะรักษาไว้และสิ่งที่ไม่
สัญญาณคงชีวิตที่รองรับจะทำให้การแมปเปิดอยู่ และการทำให้การแมปเปิดอยู่ไม่ได้พิสูจน์สิ่งใดเกี่ยวกับบริการที่อยู่เบื้องหลัง อุโมงค์อาจยังถูกแมปอยู่ขณะที่แอปพลิเคชันที่มันพาไปหยุดตอบแล้ว และจากไฟสถานะทั้งสองกรณีดูเหมือนกัน มองสัญญาณคงชีวิตเป็นประกันต่อการหมดอายุเพราะไม่มีการใช้งาน ไม่ใช่การตรวจสุขภาพ
ตั้งช่วงเวลาให้อิงกับเวลาหมดอายุที่สั้นที่สุดที่วัดได้จริง ไม่ใช่ตัวเลขที่คัดลอกจากฟอรัม สัญญาณคงชีวิตที่ตั้งต่ำกว่าตัวจับเวลาที่เป็นไปได้ทุกตัวคือทราฟฟิกที่ไม่มีใครต้องการ และยังลบอาการที่จะบอกว่าขอบเขตใดหมดอายุก่อน เลือกช่วงเวลาจากตัวเลขที่วัดได้และปล่อยอย่างอื่นไว้ตามเดิม
เปลี่ยนหนึ่งอย่าง แล้ววัดอีกครั้ง
ต้านทานความอยากเพิ่มเวลาหมดอายุทุกตัวและล้างเกตเวย์ทุกตัวระหว่างการทดสอบสด นั่นลบหลักฐานที่คุณมาเก็บและขัดจังหวะกระแสของคนอื่น ซึ่งเป็นการแลกที่ไม่ดีสำหรับสมมติฐานที่ยังไม่ได้ทดสอบ เปลี่ยนการตั้งค่าที่รองรับหนึ่งอย่างบนอุปกรณ์หนึ่งเครื่อง แล้วทำช่วงนิ่งและการฟื้นตัวของแอปพลิเคชันซ้ำ
บันทึกว่าการสังเกตขอบเขตใดเปลี่ยนไป และบันทึกแม้ไม่มีอะไรดีขึ้น การตั้งค่าที่ไม่ได้แก้อะไรคือข้อมูล และการสังเกตครั้งเดียวถูกกว่าการไล่ทำทั้งระบบ
เขียนข้อค้นพบที่ปกป้องได้
เมื่อตรวจสอบตัวแปลที่อยู่เหนือขึ้นไปไม่ได้ ให้พูดเฉพาะสิ่งที่หลักฐานสนับสนุน: การแลกเปลี่ยนตายที่ใดที่หนึ่งตามช่วงนี้ของเส้นทางหลังความเงียบเท่านั้น และจุดส่งต่อที่รับผิดชอบยังไม่ถูกระบุตัว ข้อความที่จำกัดจะผ่านการทบทวนและชี้คนถัดไปไปยังส่วนที่ถูกต้อง การเอ่ยชื่อเราเตอร์ที่ซ่อนอยู่เป็นสาเหตุไม่ได้ทำทั้งสองอย่าง ส่งข้อค้นพบที่จำกัดให้เจ้าของส่วนที่สังเกตไม่ได้ พร้อมแนบช่วงเวลาไปด้วย
RFC 4787 อธิบายว่าทำไมตัวจับเวลาการแมป UDP จึงอนุมานจากปลายทางเดียวได้ยาก และความยากนั้นคือเหตุผลที่ข้อค้นพบแบบจำกัดคือคำตอบที่ซื่อสัตย์ ตัวจับเวลาเป็นของจริง และความไม่แน่นอนรอบ ๆ ตัวมันก็เช่นกัน