ในโลกของ Networking คุณอาจเจอปัญหาเช่น ยากต่อการเชื่อมต่อคอมพิวเตอร์อื่นหรือ SSH ปัญหา IP Tables หรือเข้าถึงเว็บไซต์ไม่ได้
แต่คุณเคยลอง Troubleshoot Network โดยใช้ OSI Model ไหม? ผ่าน Methodology Bottom-to-Top ที่บน Architecture ของ Open Systems Interconnection (OSI) เราจะคลี่คลายความซับซ้อนของ Network Troubleshooting ให้คุณมี Knowledge และ Tools ที่จำเป็นสำหรับแก้ไข Networking Difficulties หลากหลายอย่างมีประสิทธิภาพ
OSI Model (Open Systems Interconnection) คืออะไร?
OSI Model เป็น Conceptual Framework ที่จัดหมวดหมู่ Functions ของ Network Communications เป็น 7 Layers ที่แตกต่างกัน อย่างง่าย OSI มาตรฐาน化 วิธีที่ระบบคอมพิวเตอร์ต่างๆ สื่อสารกัน
7 Layers ของ OSI Model
วิธี Troubleshoot Website ด้วย OSI Model Principles
พิจารณาตัวอย่าง Troubleshoot Website ที่ Host บน Server ของคุณไม่ทำงาน เราจะใช้ Linux เป็น OS ฉันเชื่อว่า Divide and Rule เป็น Technique ที่ดีกว่าสำหรับ Debugging
OSI Model เป็นหนึ่ง Method สำหรับ Break Down Issue อย่างมีประสิทธิภาพ เพื่อให้คุณ Simplify Environment อย่างเป็นระบบ เพื่อหา Solution และเอาชนะมัน
Physical Layer
เหมือนที่กล่าว Debugging ควรเริ่มจาก Bottom Physical Layer คือ Bottom Layer ใน OSI Model Key Components: Ethernet Cables, Hubs, Switches ระดับนี้ควร Check Power Supply และ Device Status รวมตรวจสอบ Interface Statistics
- Tool "ifconfig" ให้ Overview รายละเอียดของ Ethernet Cards ทั้งหมดใน System
- อีกทางเลือก "IP link show" Commands หาก Result แสดง "Down" บ่งชี้ Layer 1 ไม่ทำงาน
- Ethernet Connections บางครั้งต่อ Physical กับ Server แต่ไม่ Active โดย Default ใช้ Command ด้านล่าง Enable
IP link set eth0 up
- หากต้องการข้อมูลรายละเอียด ethtool Utility ช่วยมาก Utility นี้ Query และ Modify Settings ได้ ปรับ Parameters เช่น Speed, Port, Auto-negotiation, PCI Locations, Checksum Offload
Data Link Layer
Data Link Layer ทำให้ Data Transmission ระหว่าง 2 Devices ที่เชื่อมต่อ Network เดียวกันได้ มี 2 Components Component แรก: Medium Access Control (MAC) Layer รวม Hardware Addressing และ Access Control Operations
Component ที่สอง: Logical Link Layer สร้าง Logical Connection ระหว่าง Media ต่างๆ ปัญหาที่พบบ่อย: ไม่สามารถสร้าง Connectivity ระหว่าง 2 Servers ได้ Tools: ping, traceroute, arp, macof, Wireshark ใช้ Test Data Link Layer
ช่วย Verify การ Transmit และ Receive Data Frames ระหว่าง Devices ใน Network Group เดียวกัน
Network Layer
Network Layer ทำหน้าที่ให้ Data Move ระหว่าง 2 Networks ได้ง่าย Network Devices Layer 3 คือ Routers หน้าที่หลัก Router: ทำให้ Networks สื่อสารกันง่ายขึ้น ทำงานกับ IP Addresses เป็นส่วนของ Layer นี้
ขั้นนี้ควรหา IP Address Problems พิมพ์ "ip -br address show" ดู Address ดูว่า Network Card ได้ IP Address มั้ย อาจไม่ได้ Dynamic IP Addresses จาก DHCP
ปัญหาที่พบบ่อย: ขาด Upstream Gateway สำหรับ Route เฉพาะ หรือขาด Default Route เมื่อ IP Packet ส่งไป Network อื่น ต้อง Direct ไป Gateway เพื่อ Further Processing
การเข้าใจ Routing ของ Packets ไป Destination สำคัญสำหรับ Gateway Routing Table มี List ของ Gateways สำหรับ Routes ต่างๆ Manage ด้วย "ip route" Commands สามารถ Check Connectivity ด้วย Ping ไป Default Gateway หรือ Beyond Gateway
Transport Layer
Protocols เช่น TCP (Transmission Control Protocol) และ UDP (User Datagram Protocol) ใช้โดย Transport Layer ควบคุม Network Traffic ระหว่าง Systems ให้ Data Flow มีประสิทธิภาพ
Transport Layer รับผิดชอบส่ง Data Packets, หา Errors, Control Data Flow, เรียงลำดับให้ถูกต้อง อาจเจอปัญหา: Ports ที่ไม่ Listening Service อาจ Start ไม่ได้เพราะ Port ถูกใช้อยู่ ดู Open Ports ด้วย "netstat -antlp | grep 'LISTEN'"
ปัญหาที่พบบ่อย: Remote Connectivity Scenario: Local System ไม่ Connect ไป Remote Port ได้ เช่น HTTP Port 80 Command telnet พยายามสร้าง TCP Connection กับ Host และ Port ที่ระบุ เหมาะสำหรับ Remote TCP Connectivity Testing
Check Remote UDP Port ใช้ "netcat" Utility
Session Layer
Layer นี้รับผิดชอบ Facilitate Initiation และ Termination ของ Communication ระหว่าง 2 Devices (เช่น Authentication) ระยะเวลาที่ Communication เริ่มและจบ เรียกว่า Session
ใน Layer นี้ควรสืบสวน Credentials, Certificates ของ Servers, Session ID และ Cookies ของ Clients
Presentation Layer
Presentation Layer ของ OSI Model รับผิดชอบ Formatting และ Transforming Data ให้ Present ให้ User ได้
SSL หรือ TLS Encryption Methods เป็น Key Parts ของ Layer นี้ ที่นี่ควร Examine Encryption และ Decryption Issues
Application Layer
System รับ Input จาก User และ Transmit Output กลับ User Protocols ด้านล่างทำงานที่ Level นี้:
ควร Verify Config Files บน Server สำหรับ Wrong Settings เพิ่มเติม ต้องดู Log Files บน Servers เพื่อข้อมูลรายละเอียดเกี่ยวกับ Issues
- File Transfer Protocol (FTP)
- Simple Mail Transfer Protocol (SMTP)
- Secure Shell (SSH)
- Internet Message Access Protocol (IMAP)
- Domain Name Service (DNS)
- Hypertext Transfer Protocol (HTTP)
Conclusion
Troubleshoot Network Issues ใน Linux อาจเป็นงานยาก แต่ด้วย OSI Model Principles คุณสามารถ Diagnose และ Resolve Problems ได้อย่าง Systematic และมีประสิทธิภาพมากขึ้น
เริ่มจาก Bottom Layer ขึ้นไป เราสำรวจ Tools และ Techniques ต่างๆ สำหรับแต่ละ Level ของ OSI Model
เริ่ม Physical Layer ตรวจสอบ Hardware Components ใช้ Tools เช่น ifconfig และ ip link show Verify Connectivity ขึ้น Data Link Layer Focus MAC Addresses ใช้ Utilities เช่น ping และ Wireshark Test ที่ Network Layer ลงลึกลง IP Addressing และ Routing ใช้ Commands เช่น ip route และ ping Diagnose Issues
ขึ้น Transport Layer จัดการ TCP/UDP Problems ใช้ Commands เช่น netstat และ telnet Check Open Ports และ Establish Connections ขึ้นไป Session และ Presentation Layers อภิปราย Session Management และ Encryption ตามลำดับ
สุดท้าย Application Layer ตรวจสอบ Protocols เฉพาะอย่าง FTP, SMTP, SSH, HTTP เน้น Config Files และ Log Analysis ในการ Resolve Issues
เรียนรู้เขียนโค้ดฟรี หลักสูตรโอเพนซอร์สของ freeCodeCamp ช่วยให้ผู้คนมากกว่า 40,000 คนได้งานเป็นนักพัฒนา เริ่มต้นได้เลย