ในโลกของเครือข่าย คุณอาจพบว่าตัวเองกำลังแก้ไขปัญหาต่างๆ เช่น ปัญหาในการเชื่อมต่อกับคอมพิวเตอร์เครื่องอื่นหรือ SSH ปัญหาเกี่ยวกับตาราง IP หรือไม่สามารถเข้าถึงเว็บไซต์ได้
อย่างไรก็ตาม คุณเคยพยายามแก้ไขปัญหาเครือข่ายของคุณด้วยการใช้โมเดล OSI หรือไม่? ด้วยการใช้วิธีการจากล่างขึ้นบนซึ่งอิงตามสถาปัตยกรรม Open Systems Interconnection (OSI) เราจะเปิดเผยความซับซ้อนของการแก้ไขปัญหาเครือข่าย โดยมอบความรู้และเครื่องมือที่จำเป็นสำหรับการจัดการปัญหาเครือข่ายที่หลากหลายอย่างมีประสิทธิภาพ
โมเดล OSI (การเชื่อมต่อระหว่างระบบเปิด) คืออะไร
โมเดล Open Systems Interconnection (OSI) เป็นกรอบแนวคิดที่จัดหมวดหมู่หน้าที่ของการสื่อสารเครือข่ายออกเป็นเจ็ดระดับที่แตกต่างกัน พูดง่ายๆ ก็คือ OSI จะกำหนดมาตรฐานวิธีที่ระบบคอมพิวเตอร์ต่างๆ สามารถสื่อสารระหว่างกันได้
เจ็ดเลเยอร์ของโมเดล OSI ป>
วิธีแก้ไขปัญหาเว็บไซต์โดยใช้หลักการโมเดล OSI
ลองพิจารณาตัวอย่างต่อไปนี้ในการแก้ไขปัญหาเว็บไซต์ที่โฮสต์บนเซิร์ฟเวอร์ของคุณซึ่งไม่ทำงาน เราจะใช้ Linux เป็นระบบปฏิบัติการของเรา ฉันเชื่อว่าการแบ่งแยกและการปกครองเป็นเทคนิคที่ดีกว่าในการดีบัก ป>
แบบจำลอง OSI เป็นวิธีการหนึ่งในการทำลายปัญหาอย่างมีประสิทธิภาพ เพื่อให้คุณสามารถลดความซับซ้อนของสภาพแวดล้อมอย่างเป็นระบบ เพื่อค้นหาวิธีแก้ปัญหาและพิชิตมันได้
เลเยอร์จริง
ดังที่ผมได้กล่าวไว้ก่อนหน้านี้ เมื่อพูดถึงการดีบัก โดยปกติแล้วควรเริ่มจากด้านล่างสุดจะดีกว่า เลเยอร์ทางกายภาพคือชั้นล่างสุดในโมเดล OSI ส่วนประกอบสำคัญในชั้นนี้ประกอบด้วยสายอีเธอร์เน็ต ฮับ และสวิตช์ ในระดับนี้ คุณควรตรวจสอบแหล่งจ่ายไฟและสถานะของอุปกรณ์ ตลอดจนตรวจสอบสถิติอินเทอร์เฟซ
- เครื่องมือ "ifconfig" ให้ภาพรวมโดยละเอียดของการ์ดอีเธอร์เน็ตทั้งหมดที่มีอยู่ในระบบของคุณ
- นอกจากนี้ คุณยังมีตัวเลือกในการใช้คำสั่ง "แสดงลิงก์ IP" หากผลลัพธ์แสดง "ลง" แสดงว่าเลเยอร์ 1 ไม่ทำงาน
- บางครั้ง การเชื่อมต่ออีเธอร์เน็ตอาจเชื่อมต่อทางกายภาพกับเซิร์ฟเวอร์ แต่ไม่ได้เปิดใช้งานตามค่าเริ่มต้น หากต้องการเปิดใช้งาน ให้ใช้คำสั่งด้านล่าง
IP link set eth0 up
- หากคุณกำลังมองหาข้อมูลโดยละเอียดเพิ่มเติม ยูทิลิตี้ ethtool มีประโยชน์ค่อนข้างมาก ยูทิลิตี้นี้ให้ความสามารถในการสืบค้นและแก้ไขการตั้งค่า ช่วยให้คุณสามารถปรับพารามิเตอร์ต่างๆ เช่น ความเร็ว พอร์ต การเจรจาอัตโนมัติ ตำแหน่ง PCI และออฟโหลดการตรวจสอบ
เลเยอร์การเชื่อมโยงข้อมูล
Data Link Layer ช่วยให้สามารถรับส่งข้อมูลระหว่างอุปกรณ์สองเครื่องที่เชื่อมต่อกับเครือข่ายเดียวกัน มีสององค์ประกอบในชั้นนี้ องค์ประกอบแรกคือเลเยอร์การควบคุมการเข้าถึงสื่อ (MAC) ซึ่งรวมถึงการทำงานของการกำหนดที่อยู่ฮาร์ดแวร์และการควบคุมการเข้าถึง ป>
เลเยอร์ที่สองคือเลเยอร์ลิงก์แบบลอจิคัล ซึ่งช่วยให้สามารถสร้างการเชื่อมต่อแบบลอจิคัลระหว่างสื่อต่างๆ ได้ ปัญหาทั่วไปในเลเยอร์นี้คือการที่เซิร์ฟเวอร์สองตัวไม่สามารถสร้างการเชื่อมต่อได้ เครื่องมือต่างๆ เช่น ping, Traceroute, arp, macof และ Wireshark ใช้สำหรับทดสอบดาต้าลิงก์เลเยอร์
ซึ่งอาจช่วยในการตรวจสอบการส่งและรับเฟรมข้อมูลที่ถูกต้องระหว่างอุปกรณ์ภายในกลุ่มเครือข่ายเดียวกัน
เลเยอร์เครือข่าย
หน้าที่ของเลเยอร์เครือข่ายคือการทำให้ข้อมูลสามารถเคลื่อนย้ายระหว่างสองเครือข่ายได้ง่าย อุปกรณ์เครือข่ายที่ทำงานบนเลเยอร์ 3 ของรุ่น OSI คือเราเตอร์ งานหลักของเราเตอร์คือการทำให้เครือข่ายสามารถพูดคุยกันได้ง่ายขึ้น การทำงานกับที่อยู่ IP เป็นส่วนหนึ่งของเลเยอร์นี้ ป>
ในขั้นตอนนี้ คุณควรมองหาปัญหาเกี่ยวกับที่อยู่ IP เป็นส่วนใหญ่ คุณสามารถพิมพ์ "ip -br address show" เพื่อดูที่อยู่ คุณสามารถดูว่าการ์ดเครือข่ายของคุณได้รับที่อยู่ IP หรือไม่ คุณอาจไม่ได้รับที่อยู่ IP แบบไดนามิกจาก DHCP หากคุณใช้เพื่อรับที่อยู่เหล่านั้น
ปัญหาทั่วไปประการหนึ่งที่มักเกิดขึ้นคือการไม่มีเกตเวย์อัปสตรีมสำหรับเส้นทางเฉพาะหรือการไม่มีเส้นทางเริ่มต้น เมื่อแพ็คเก็ต IP ถูกส่งไปยังเครือข่ายอื่น จะต้องถูกส่งไปยังเกตเวย์เพื่อการประมวลผลเพิ่มเติม ป>
การทำความเข้าใจการกำหนดเส้นทางแพ็กเก็ตไปยังปลายทางสุดท้ายถือเป็นสิ่งสำคัญสำหรับเกตเวย์ ตารางเส้นทางประกอบด้วยรายการเกตเวย์สำหรับเส้นทางต่างๆ และสามารถจัดการได้โดยใช้คำสั่ง “เส้นทาง ip” นอกจากนี้เรายังสามารถตรวจสอบการเชื่อมต่อโดยการส่ง Ping ไปยังเกตเวย์เริ่มต้นหรือเกินกว่าเกตเวย์
เลเยอร์การขนส่ง
โปรโตคอล เช่น Transmission Control Protocol (TCP) และ User Datagram Protocol (UDP) ถูกใช้โดยเลเยอร์การขนส่งเพื่อควบคุมการรับส่งข้อมูลเครือข่ายระหว่างระบบ และตรวจสอบให้แน่ใจว่าข้อมูลไหลอย่างมีประสิทธิภาพ ป>
Transport Layer ทำหน้าที่ส่งแพ็กเก็ตข้อมูล ค้นหาข้อผิดพลาด ควบคุมการไหลของข้อมูล และจัดเรียงข้อมูลตามลำดับที่ถูกต้อง คุณอาจประสบปัญหาในเลเยอร์นี้ เช่น พอร์ตที่ไม่รับฟัง บริการของคุณอาจไม่เริ่มทำงานเนื่องจากมีการใช้งานพอร์ตอยู่แล้ว คุณสามารถดูว่าพอร์ตใดบ้างที่เปิดอยู่โดยการเรียกใช้ "commad "netstat -antlp | grep "ฟัง"".
ปัญหาหนึ่งที่มักเกิดขึ้นเกี่ยวข้องกับการเชื่อมต่อระยะไกล พิจารณาสถานการณ์ที่ระบบภายในเครื่องของคุณไม่สามารถสร้างการเชื่อมต่อกับพอร์ตระยะไกล โดยเฉพาะ HTTP บนพอร์ต 80 01 คำสั่งพยายามสร้างการเชื่อมต่อ TCP กับโฮสต์และพอร์ตที่ระบุ ความสามารถนี้เหมาะอย่างยิ่งสำหรับการดำเนินการทดสอบการเชื่อมต่อ TCP ระยะไกล ป>
หากต้องการตรวจสอบพอร์ต UDP ระยะไกล คุณสามารถใช้ยูทิลิตี "netcat" ได้
เลเยอร์เซสชัน
เลเยอร์นี้มีหน้าที่รับผิดชอบในการอำนวยความสะดวกในการเริ่มต้นและยุติการสื่อสารระหว่างอุปกรณ์ทั้งสอง (เช่น การรับรองความถูกต้อง) ระยะเวลาที่การสื่อสารเริ่มต้นและสิ้นสุดจะเรียกว่าเซสชัน ป>
ในเลเยอร์นี้ คุณควรตรวจสอบข้อมูลประจำตัว ใบรับรองของเซิร์ฟเวอร์ รหัสเซสชัน และคุกกี้ของไคลเอ็นต์
เลเยอร์การนำเสนอ
เลเยอร์การนำเสนอของโมเดล OSI มีหน้าที่จัดรูปแบบและแปลงข้อมูลในลักษณะที่ช่วยให้สามารถนำเสนอต่อผู้ใช้ได้ ป>
วิธีการเข้ารหัส SSL หรือ TLS เป็นส่วนสำคัญของเลเยอร์นี้ ที่นี่ คุณควรตรวจสอบปัญหาการเข้ารหัสและการถอดรหัส
เลเยอร์แอปพลิเคชัน
ระบบรับอินพุตจากผู้ใช้และส่งเอาต์พุตกลับไปยังผู้ใช้ ฟังก์ชั่น Bellow Protocols ในระดับนี้ ป>
คุณควรตรวจสอบไฟล์การกำหนดค่าบนเซิร์ฟเวอร์ของคุณว่ามีการตั้งค่าที่ไม่ถูกต้องหรือไม่ นอกจากนี้ จำเป็นต้องดูไฟล์บันทึกบนเซิร์ฟเวอร์เพื่อรับข้อมูลโดยละเอียดเพิ่มเติมเกี่ยวกับปัญหา
- โปรโตคอลการถ่ายโอนไฟล์ (FTP)
- Simple Mail Transfer Protocol (SMTP)
- เชลล์ปลอดภัย (SSH)
- โปรโตคอลการเข้าถึงข้อความอินเทอร์เน็ต (IMAP)
- บริการชื่อโดเมน (DNS)
- Hypertext Transfer Protocol (HTTP)
บทสรุป
การแก้ไขปัญหาเครือข่ายใน Linux อาจเป็นงานที่น่ากังวล แต่ด้วยการใช้หลักการของโมเดล OSI คุณสามารถวินิจฉัยและแก้ไขปัญหาอย่างเป็นระบบได้อย่างมีประสิทธิภาพมากขึ้น ป>
เริ่มต้นจากชั้นล่างสุดและไต่ระดับขึ้นไป เราได้สำรวจเครื่องมือและเทคนิคต่างๆ ที่ปรับให้เหมาะกับโมเดล OSI แต่ละระดับ
เริ่มจากชั้นกายภาพ เราได้ตรวจสอบส่วนประกอบฮาร์ดแวร์และเครื่องมือที่ใช้ เช่น 15 และ 23รหัส> เพื่อตรวจสอบการเชื่อมต่อ เราเลื่อนขึ้นไปที่เลเยอร์ดาต้าลิงก์โดยมุ่งเน้นไปที่ที่อยู่ MAC และใช้ยูทิลิตี้เช่น 32 และ 44รหัส> สำหรับการทดสอบ ที่เลเยอร์เครือข่าย เราเจาะลึกการกำหนดที่อยู่ IP และการกำหนดเส้นทาง โดยใช้คำสั่ง เช่น 56 และ 63รหัส> เพื่อวินิจฉัยปัญหา
เมื่อเปลี่ยนไปใช้เลเยอร์การขนส่ง เราได้แก้ไขปัญหาที่เกี่ยวข้องกับ TCP และ UDP โดยใช้คำสั่งเช่น 73 และ 80รหัส> เพื่อตรวจสอบพอร์ตที่เปิดอยู่และสร้างการเชื่อมต่อ นอกจากนี้ เราได้พูดคุยถึงความสำคัญของการจัดการเซสชันและการเข้ารหัสในเลเยอร์เซสชันและการนำเสนอตามลำดับ
สุดท้าย ที่เลเยอร์แอปพลิเคชัน เราได้ตรวจสอบโปรโตคอลเฉพาะ เช่น FTP, SMTP, SSH และ HTTP โดยเน้นความสำคัญของไฟล์การกำหนดค่าและการวิเคราะห์บันทึกในการแก้ไขปัญหา
เรียนรู้การเขียนโค้ดฟรี หลักสูตรโอเพ่นซอร์สของ freeCodeCamp ช่วยให้ผู้คนมากกว่า 40,000 คนได้งานในตำแหน่งนักพัฒนา เริ่มต้น