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

สแนปช็อตมีอะไรอยู่จริง

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

status /run/openvpn/office.status 30
status-version 3

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

RecordWhat it describesWhat it cannot tell you
Client listA session in this snapshotHow many people or machines that session represents
Real addressThe outer peer address and portWhich device is behind it
Routing rowsVirtual addresses and route ownershipWhich downstream hosts are alive

นับเซสชัน ไม่ใช่นับคนหรือเครื่อง

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

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

ที่อยู่ภายนอกไม่ใช่ตัวระบุ

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

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

แถวการกำหนดเส้นทางไม่ใช่บัญชีเครื่อง

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

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

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

อายุ สิทธิ์ และมุมมองสด

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

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

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

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