ความไม่ตรงกันของดูเพล็กซ์บนพอร์ตเกตเวย์ VPN: อ่านทั้งสองฝั่ง
พอร์ต 10/100 ที่เจรจาความเร็วแต่ไม่เจรจาดูเพล็กซ์ทำให้เกิดข้อผิดพลาดภายใต้โหลด อ่านโหมดการทำงานที่ปลายทั้งสองข้าง แล้วเปรียบเทียบตัวนับตามช่วงเวลา
การคัดลอกไฟล์ผ่านอุโมงค์หยุดชะงักราวหนึ่งวินาทีแล้วดำเนินต่อ และบันทึกของ VPN ไม่แสดงอะไรเลย แอปพลิเคชันโทษเครือข่าย เครือข่ายโทษแอปพลิเคชัน และพอร์ตสวิตช์เปิดใช้งานมาสิบเอ็ดเดือนแล้ว คำแนะนำนี้ออกตัวจากอาการหยุดชะงักและค่อยๆ ขยับออกไปยังลิงก์กายภาพ: พอร์ตกำลังทำอะไรจริงๆ ปลายอีกข้างกำลังทำอะไร และตัวนับทำอะไรบ้างขณะที่คุณเฝ้าดู ควรทำก่อนที่ใครจะไปแตะการตั้งค่าดูเพล็กซ์
เริ่มจากอาการหยุดชะงัก ไม่ใช่จากพอร์ต
อธิบายอาการให้ทดสอบได้ การหยุดราวหนึ่งวินาทีระหว่างการถ่ายโอนข้อมูลจำนวนมากเป็นปัญหาที่ต่างจากการเชื่อมต่อที่รีเซ็ต และการหยุดที่เกิดชั่วโมงละครั้งก็ต่างจากที่เกิดทุกไม่กี่วินาที บันทึกภาระงาน ทิศทาง และช่วงเวลาที่ประมาณได้
จากนั้นทำซ้ำขณะเฝ้าดูอินเทอร์เฟซ ปัญหากายภาพจะปรากฏเป็นการเคลื่อนไหวของตัวนับระหว่างภาระงานที่ได้รับผลกระทบ และปัญหาที่ ไม่ทำให้ตัวนับขยับเลย มักอยู่เหนือชั้นลิงก์ เฝ้าดูหนึ่งนาที ไม่ใช่หนึ่งวินาที เพราะข้อบกพร่องเหล่านี้มักต้องมีทราฟฟิกต่อเนื่องก่อนจะปรากฏ การเฝ้าดูตอนว่างเปล่าไม่ได้พิสูจน์อะไรเกี่ยวกับลิงก์ที่ทำงานผิดปกติเฉพาะภายใต้โหลด
เรื่องนี้สำคัญเพราะความไม่ตรงกันของดูเพล็กซ์มีลายเซ็น: ข้อผิดพลาดที่ปรากฏเฉพาะภายใต้โหลด ตามทิศทางของทราฟฟิก ขณะที่ ping เล็กๆ และเซสชันโต้ตอบยังสมบูรณ์ ถ้าทราฟฟิกตอนว่างก็ล้มเหลวด้วย ให้ไปดูที่อื่นก่อน
อ่านโหมดการทำงานที่ปลายทั้งสองข้าง
การตั้งค่าที่บันทึกไว้ไม่ใช่สถานะการทำงาน พอร์ตอาจถูกตั้งค่าให้เจรจาอัตโนมัติแล้วไปจบที่ครึ่งดูเพล็กซ์ หรือถูกตั้งค่าเป็นความเร็วคงที่ที่ปลายอีกข้างไม่เคยตกลงด้วย อ่านว่าลิงก์กำลังทำอะไรอยู่ตอนนี้ทั้งสองด้าน
ethtool eth0 ethtool -S eth0 | grep -iE 'error|drop|collision|fcs' ip -s link show eth0
บันทึกความเร็ว ดูเพล็กซ์ และการเจรจาอัตโนมัติเปิดอยู่หรือไม่ แล้วเก็บข้อเท็จจริงสามอย่างเดียวกันจากสวิตช์ข้างเคียงหรือพอร์ตของผู้ให้บริการ ปลายเดียวไม่บอกอะไรเลย เพราะความไม่ตรงกันเป็นความสัมพันธ์ไม่ใช่การตั้งค่า ใส่ทั้งสองแถวในตั๋วเคียงกันพร้อมเวลาที่อ่าน ครึ่งหนึ่งของคุณค่าของแบบฝึกหัดนี้คือการมีค่าที่อ่านได้ทั้งสองอยู่ที่เดียวกัน
ถ้าอ่านปลายไกลไม่ได้ ก็วินิจฉัยเรื่องนี้ไม่ได้ ขอโหมดการทำงานและตัวนับจากเจ้าของ หรือจัดให้มีการเข้าถึงก่อนเริ่มเปลี่ยนฝั่งของคุณ
เคส 10/100 ครึ่งดูเพล็กซ์มีหน้าตาอย่างไร
บนลิงก์ทองแดง 10/100 ปลายที่เจรจาอัตโนมัติสามารถตรวจพบความเร็วของคู่ตรงข้ามที่ถูกบังคับโดยไม่เรียนรู้การตั้งค่าดูเพล็กซ์ของอีกฝ่าย การตรวจจับแบบขนานกำหนดความเร็วจากสัญญาณ และดูเพล็กซ์ถูกสันนิษฐานแทนการเจรจา จึงเป็นไปได้ที่ฝั่งหนึ่งจบที่ครึ่งดูเพล็กซ์ขณะที่อีกฝั่งทำงานเต็ม
คำแนะนำ เรื่องการเจรจาอัตโนมัติของ Cisco อธิบายเคสเฉพาะนั้น ไม่ได้เป็นข้อโต้แย้งให้ปิดการเจรจาทุกที่ และไม่ได้บอกอะไรที่เป็นประโยชน์เกี่ยวกับทองแดงกิกะบิต ซึ่งดูเพล็กซ์คงที่และการเจรจาอัตโนมัติจำเป็นต่อการที่ลิงก์จะขึ้นได้
หลักฐานที่สังเกตได้คือส่วนผสมของข้อผิดพลาดที่มีอยู่เพียงทิศทางเดียว: ข้อผิดพลาด FCS หรือ CRC ทางฝั่งดูเพล็กซ์เต็ม การชนกันหรือการชนกันแบบล่าช้าทางฝั่งครึ่งดูเพล็กซ์ และปริมาณงานที่ทรุดลงภายใต้โหลดขณะที่ความหน่วงยังปกติตอนว่าง ความไม่สมมาตรนั้นคือลายเซ็น ลิงก์ที่เพียงแต่รับภาระเกินจะเสื่อมลงทั้งสองทิศทางและตลอดเวลา
เปลี่ยนทั้งสองฝั่งพร้อมกัน พร้อมทางกลับ
การแก้ไขดูเพล็กซ์เป็นการเปลี่ยนแปลงที่ต้องประสาน ไม่ใช่เฉพาะที่ การบังคับฝั่งของคุณโดยไม่ได้รับความยินยอมจากปลายไกลคือวิธีที่ทำให้ลิงก์ที่ทำงานอยู่กลายเป็นลิงก์ที่พัง และการที่ CLI รับคำสั่งได้เพียงพิสูจน์ว่าไวยากรณ์ถูกต้อง
sudo ethtool -s eth0 speed 100 duplex full autoneg off ethtool eth0
ก่อนรันอะไรแบบนั้น ให้ยืนยันว่าแพลตฟอร์มรองรับการผสมนี้และปลายไกลจะถูกเปลี่ยนในช่วงเวลาเดียวกัน รักษาวิธีการจัดการอุปกรณ์ไว้อย่างอิสระ เพราะพอร์ตที่คุณกำลังจะเปลี่ยนอาจเป็นพอร์ตที่รับเซสชันการจัดการของคุณอยู่
บนลิงก์สมัยใหม่หลายแห่ง คำตอบที่ถูกต้องคือปล่อยให้การเจรจาอัตโนมัติเปิดอยู่ทั้งสองฝั่งแทนการบังคับอะไร การบังคับเป็นยาสำหรับความไม่ตรงกันเฉพาะบนเทคโนโลยีเฉพาะ ไม่ใช่การปรับปรุงทั่วไป โดยเฉพาะทองแดงกิกะบิตต้องการการเจรจาอัตโนมัติให้ลิงก์ขึ้นได้ คำแนะนำสำหรับ 10/100 จึงใช้ไม่ได้ที่นั่น
ยืนยันว่าตัวนับขยับไปในทางที่ดีขึ้น
หลังการเปลี่ยนแปลง ให้อ่านสถานะการทำงานที่ปลายทั้งสองอีกครั้งและยืนยันว่าตรงกัน จากนั้นรันภาระงานเดิมที่ทำให้เกิดการหยุดและ เปรียบเทียบส่วนต่างของตัวนับ ไม่ใช่ยอดรวมตลอดอายุ, เพราะยอดรวมที่สะสมมาหนึ่งปีบอกไม่ได้ว่าเกิดอะไรขึ้นในสิบนาทีล่าสุด
ethtool -S eth0 | grep -iE 'error|drop|collision|fcs' ip -s link show eth0 ping -f -c 200 10.90.0.1
ลิงก์ที่ไม่มีข้อผิดพลาดใหม่ภายใต้โหลดเดิมคือหลักฐานที่คุณขาดไป ลิงก์ที่ยังผิดพลาด หรือลิงก์ที่ตัวนับไม่ขยับเลยตั้งแต่แรก จะส่งคุณไปยังขอบเขตถัดไปแทนที่จะลงลึกในการโต้เถียงเรื่องดูเพล็กซ์ ทั้งสองผลลัพธ์คือความคืบหน้า ซึ่งมากกว่าที่ไฟล์การตั้งค่าให้ได้ อย่าข้ามการอ่านครั้งที่สองเพียงเพราะครั้งแรกดูถูกต้อง
เขียนตัวเลขก่อนและหลังลงในตั๋วพร้อมการประทับเวลา บันทึกนั้นคือสิ่งที่เปลี่ยน «VPN รู้สึกดีขึ้น» ให้เป็นสิ่งที่วิศวกรคนถัดไปต่อยอดได้