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

อ่านอินเทอร์เฟซก่อนอ่านไอคอน

เริ่มจาก ip -details link show dev tun0 ตามที่อธิบายไว้ในคู่มือ ip-link โดยแทนชื่ออินเทอร์เฟซตามธรรมเนียมด้วยอินเทอร์เฟซที่ไคลเอนต์ของคุณถืออยู่จริง แฟล็ก ชนิด MTU และเอกลักษณ์ของอินเทอร์เฟซเป็นข้อสังเกตที่มีประโยชน์ ถ้อยคำบอกสถานะของอินเทอร์เฟซเสมือนไม่จำเป็นต้องทำงานเหมือนสัญญาณตัวพาของสายเคเบิลจริง ดังนั้นให้ถือว่า UP เป็นคำกล่าวเกี่ยวกับอินเทอร์เฟซ ไม่ใช่เกี่ยวกับอุโมงค์

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

การตั้งค่าคงอยู่สามารถรักษาลิงก์ไว้ได้เพื่อให้การเชื่อมต่อใหม่ไม่ต้องสร้างมันขึ้นมาใหม่ ซึ่งหมายความว่าการมีอยู่ไม่ใช่สุขภาพ

เพิ่มตัวนับและคำขอที่ควรใช้ตัวนับนั้น

ใช้มุมมองสถิติที่รองรับคือ ip -s link show dev tun0 แล้วบันทึกจำนวนแพ็กเก็ตและไบต์ในทั้งสองทิศทาง จากนั้นสร้างคำขอที่ไม่เป็นอันตรายซึ่งควรวิ่งผ่านอินเทอร์เฟซนี้ แล้วเปรียบเทียบทิศทางที่เกี่ยวข้อง คำขอที่ใช้เส้นทางตรงของแอปพลิเคชันอื่นจะไม่ขยับตัวนับเหล่านั้น และนั่นคือจุดประสงค์ของการทดสอบ

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

อ่านค่าสองครั้ง ครั้งหนึ่งก่อนและครั้งหนึ่งหลัง แทนที่จะเชื่อภาพนิ่งเพียงภาพเดียว

ที่อยู่และเส้นทางเป็นคนละขั้นตอน

ลิงก์สามารถมีอยู่ได้โดยไม่มีพรีฟิกซ์ ไม่มีการกำหนดค่าตัวแปลงชื่อ หรือไม่มีเส้นทางที่แอปพลิเคชันต้องการ ตรวจที่อยู่ด้วย ip address show dev tun0 จากนั้นดูว่าเส้นทางใดที่ปลายทางจะเลือกด้วย ip route get สำหรับเป้าหมายจริง ข้อสังเกตสามข้อนั้นตอบคำถามสามข้อที่ต่างกัน และมีเพียงข้อสุดท้ายที่เกี่ยวกับการส่งต่อ

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

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

อย่าลบสิ่งที่คุณยังไม่ได้ระบุตัวตน

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

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

ข้อควรระวังนั้นใช้กับ ip link set down ด้วย ซึ่งดูเหมือนย้อนกลับได้และบ่อยครั้งไม่ใช่

การตรวจสอบควรทิ้งอะไรไว้ให้คุณ

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

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

เก็บเอาต์พุตไว้กับตั๋ว เพราะการเปรียบเทียบในภายหลังมีประโยชน์ก็ต่อเมื่อคุณเห็นว่าอะไรเปลี่ยนไป

จากนั้นปิดวงจรด้วยการทดสอบแอปพลิเคชันอีกครั้ง เพราะอินเทอร์เฟซไม่เคยเป็นสิ่งที่ผู้ใช้สนใจ

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