네트워킹의 세계에서는 다른 컴퓨터나 SSH 연결 문제, IP 테이블 문제, 웹사이트 액세스 불가 등의 문제를 해결하고 있는 자신을 발견할 수 있습니다.
그러나 OSI 모델을 적용하여 네트워크 문제를 해결해 본 적이 있습니까? OSI(개방형 시스템 상호 연결) 아키텍처를 기반으로 하는 하향식 방법론을 사용하여 네트워크 문제 해결의 복잡성을 밝혀내고 다양한 네트워킹 문제를 효과적으로 해결하는 데 필수적인 지식과 도구를 제공합니다.
OSI 모델(개방형 시스템 상호 연결)이란 무엇입니까?
OSI(개방형 시스템 상호 연결) 모델은 네트워크 통신 기능을 7가지 수준으로 분류하는 개념적 프레임워크입니다. 간단히 말해서, OSI는 다양한 컴퓨터 시스템이 서로 통신할 수 있는 방법을 표준화합니다.
OSI 모델의 7개 계층
OSI 모델 원칙을 적용하여 웹사이트 문제를 해결하는 방법
작동하지 않는 서버에서 호스팅되는 웹 사이트 문제를 해결하는 다음 예를 고려하십시오. 우리는 운영체제로 Linux를 사용할 것입니다. 저는 분할 및 규칙이 디버깅에 더 나은 기술이라고 믿습니다.
OSI 모델은 문제를 효율적으로 분석하여 솔루션을 찾고 극복하기 위해 환경을 체계적으로 단순화할 수 있는 한 가지 방법입니다.
물리적 레이어
앞서 언급했듯이 디버깅에 관해서는 일반적으로 맨 아래부터 시작하는 것이 좋습니다. 물리 계층은 OSI 모델의 최하위 계층입니다. 이 계층의 주요 구성 요소는 이더넷 케이블, 허브 및 스위치로 구성됩니다. 이 수준에서는 전원 공급 장치와 장치 상태를 확인하고 인터페이스 통계를 조사해야 합니다.
- "ifconfig" 도구는 시스템에 있는 모든 이더넷 카드에 대한 자세한 개요를 제공합니다.
- 또한 "IP 링크 표시" 명령을 사용할 수도 있습니다. 결과에 'down'이 표시되면 layer1이 작동하지 않는 것입니다.
- 때때로 이더넷 연결이 서버에 물리적으로 연결되어 있지만 기본적으로 활성화되지 않을 수 있습니다. 활성화하려면 아래 명령을 사용하세요.
IP link set eth0 up
- 더 자세한 정보를 찾고 있다면 ethtool 유틸리티가 매우 도움이 될 수 있습니다. 이 유틸리티는 설정을 쿼리하고 수정하는 기능을 제공합니다. 속도, 포트, 자동 협상, PCI 위치 및 체크섬 오프로드와 같은 매개변수를 조정할 수 있습니다.
데이터 링크 계층
데이터 링크 계층은 동일한 네트워크에 연결된 두 장치 간의 데이터 전송을 가능하게 합니다. 이 레이어에는 두 가지 구성 요소가 있습니다. 첫 번째 구성 요소는 하드웨어 주소 지정 및 액세스 제어 작업을 포함하는 매체 액세스 제어(MAC) 계층입니다.
두 번째 계층은 서로 다른 미디어 간의 논리적 연결 생성을 가능하게 하는 논리적 링크 계층입니다. 이 계층의 일반적인 문제는 두 서버가 연결을 설정할 수 없다는 것입니다. ping, Traceroute, arp, macof 및 Wireshark와 같은 도구는 데이터 링크 계층을 테스트하는 데 사용됩니다.
이는 동일한 네트워크 그룹 내의 장치 간에 데이터 프레임의 올바른 전송 및 수신을 확인하는 데 도움이 될 수 있습니다.
네트워크 계층
네트워크 계층의 임무는 두 네트워크 간에 데이터를 쉽게 이동할 수 있도록 하는 것입니다. OSI 모델의 계층 3에서 작동하는 네트워크 장치는 라우터입니다. 라우터의 주요 임무는 네트워크가 서로 더 쉽게 통신할 수 있도록 하는 것입니다. IP 주소 작업은 이 계층의 일부입니다.
이 단계에서는 대부분 IP 주소 관련 문제를 찾아야 합니다. "ip -br address show"를 입력하면 주소를 볼 수 있습니다. 네트워크 카드에 IP 주소가 부여되었는지 확인할 수 있습니다. DHCP를 사용하여 동적 IP 주소를 얻으면 DHCP에서 동적 IP 주소를 얻지 못할 수도 있습니다.
자주 발생하는 일반적인 문제 중 하나는 특정 경로에 대한 업스트림 게이트웨이가 없거나 기본 경로가 없다는 것입니다. IP 패킷이 다른 네트워크로 전송되면 추가 처리를 위해 게이트웨이로 전달되어야 합니다.
게이트웨이에서는 패킷이 최종 목적지로 라우팅되는 과정을 이해하는 것이 중요합니다. 라우팅 테이블에는 다양한 경로에 대한 게이트웨이 목록이 포함되어 있으며 "ip Route" 명령을 사용하여 관리할 수 있습니다. 기본 게이트웨이나 게이트웨이 너머로 핑을 보내 연결을 확인할 수도 있습니다.
전송 계층
전송 제어 프로토콜(TCP) 및 사용자 데이터그램 프로토콜(UDP)과 같은 프로토콜은 전송 계층에서 시스템 간의 네트워크 트래픽을 제어하고 데이터가 효율적으로 흐르도록 하는 데 사용됩니다.
전송 계층은 데이터 패킷 전송, 오류 검색, 데이터 흐름 제어 및 올바른 순서 배치를 담당합니다. 이 계층에서는 수신 대기하지 않는 포트와 같은 문제가 발생할 수 있습니다. 포트가 이미 사용 중이기 때문에 서비스가 시작되지 않을 수 있습니다. "commad "netstat -antlp | grep "LISTEN"".
자주 발생하는 문제 중 하나는 원격 연결과 관련이 있습니다. 로컬 시스템이 먼 포트, 특히 포트 80의 HTTP와의 연결을 설정할 수 없는 시나리오를 생각해 보십시오. telnet 명령은 지정된 호스트 및 포트를 사용하여 TCP 연결을 생성하려고 시도합니다. 이 기능은 원격 TCP 연결 테스트를 수행하는 데 이상적입니다.
원격 UDP 포트를 확인하려면 "netcat" 유틸리티를 활용할 수 있습니다.
세션 레이어
이 계층은 두 장치 간의 통신 시작 및 종료를 촉진하는 역할을 합니다(예:인증). 통신이 시작되고 종료되는 기간을 세션이라고 합니다.
이 계층에서는 자격 증명, 서버 인증서, 클라이언트의 세션 ID 및 쿠키를 조사해야 합니다.
프레젠테이션 레이어
OSI 모델의 표시 계층은 사용자에게 표시할 수 있는 방식으로 데이터의 형식을 지정하고 변환하는 일을 담당합니다.
SSL 또는 TLS 암호화 방법은 이 계층의 핵심 부분입니다. 여기에서 암호화 및 복호화 문제를 검사해야 합니다.
애플리케이션 계층
시스템은 사용자로부터 입력을 받아 출력을 다시 사용자에게 전송합니다. 벨로우즈 프로토콜은 이 수준에서 작동합니다.
잘못된 설정이 있는지 서버의 구성 파일을 확인해야 합니다. 또한 문제에 대한 자세한 정보를 얻으려면 서버의 로그 파일을 확인하는 것이 중요합니다.
- 파일 전송 프로토콜(FTP)
- 간단한 메일 전송 프로토콜(SMTP)
- 보안 셸(SSH)
- 인터넷 메시지 액세스 프로토콜(IMAP)
- 도메인 이름 서비스(DNS)
- 하이퍼텍스트 전송 프로토콜(HTTP).
결론
Linux에서 네트워크 문제를 해결하는 것은 어려운 작업일 수 있지만 OSI 모델의 원리를 적용하면 보다 효율적으로 문제를 체계적으로 진단하고 해결할 수 있습니다.
맨 아래 계층부터 시작하여 위로 올라가면서 우리는 OSI 모델의 각 수준에 맞는 다양한 도구와 기술을 탐색했습니다.
물리 계층부터 시작하여 하드웨어 구성 요소를 검사하고 ifconfig과 같은 도구를 사용했습니다. 그리고 ip link show 연결을 확인합니다. 데이터 링크 계층으로 올라가서 MAC 주소에 중점을 두고 ping와 같은 유틸리티를 사용했습니다. 그리고 Wireshark 테스트용. 네트워크 계층에서는 ip route와 같은 명령을 사용하여 IP 주소 지정 및 라우팅을 자세히 살펴보았습니다. 및 ping 문제를 진단합니다.
전송 계층으로 전환하면서 netstat와 같은 명령을 활용하여 TCP 및 UDP 관련 문제를 해결했습니다. 그리고 telnet 열린 포트를 확인하고 연결을 설정합니다. 더 나아가서 세션 및 프레젠테이션 계층에서 각각 세션 관리 및 암호화의 중요성에 대해 논의했습니다.
마지막으로 애플리케이션 계층에서는 FTP, SMTP, SSH, HTTP와 같은 특정 프로토콜을 조사하여 문제 해결에 있어 구성 파일 및 로그 분석의 중요성을 강조했습니다.
무료로 코딩을 배우세요. freeCodeCamp의 오픈 소스 커리큘럼은 40,000명 이상의 사람들이 개발자로 취업하는 데 도움을 주었습니다. 시작하세요