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

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

โปรไฟล์ที่บันทึกไว้ก่อน สภาวะที่ใช้งานจริงทีหลัง

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

nmcli -f connection.id,connection.uuid,ipv4.never-default,ipv4.routes,ipv4.dns connection show office-vpn

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

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

ip -4 rule show
ip -4 route show table all

สองปลายทาง เทียบครั้งเดียว

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

ip -4 route get 10.40.0.20
ip -4 route get 203.0.113.20

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

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

จุดที่ไคลเอนต์สองตัวต่างกันอย่างชอบธรรม

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

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

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

ทำให้การเปรียบเทียบสะอาด

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

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

เอกสารอ้างอิงการตั้งค่า IPv4 ของ NetworkManager นิยาม never-default และคุณสมบัติเส้นทางที่บันทึกไว้อย่างแม่นยำ ซึ่งคุ้มที่จะอ่านก่อนเปลี่ยนค่าที่มีการจัดการ และจำขอบเขตของการเปรียบเทียบนี้ไว้ มันครอบคลุม IPv4 และไม่ได้พูดอะไรเกี่ยวกับนโยบาย IPv6 ที่ตรงกัน ซึ่งมีค่าตั้งต้นของตัวเองและวิธีทำให้คุณประหลาดใจในแบบของตัวเอง

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