웹사이트 검색

LFCA: 기본 네트워크 문제 해결 팁 알아보기 - 12부


때때로 그렇듯이 시스템에 문제가 발생하면 문제를 해결하는 방법을 파악하고 시스템을 다시 정상 작동 상태로 복원해야 합니다. 이 섹션에서는 모든 Linux 시스템 관리자가 갖춰야 할 기본적인 네트워크 문제 해결 기술에 중점을 둡니다.

네트워크 문제 해결의 기본 이해

대부분의 경우 네트워크 관리자와 시스템 관리자 사이에는 큰 격차가 있습니다. 네트워크 가시성이 부족한 시스템 관리자는 일반적으로 중단 및 다운타임에 대해 네트워크 관리자를 비난하는 반면, 네트워크 관리자는 서버 지식이 부족하여 엔드포인트 장치 오류에 대해 시스템 관리자를 비난하는 경우가 많습니다. 하지만 비난 게임은 문제 해결에 도움이 되지 않으며, 업무 환경에서는 동료 간의 관계를 적대시할 수 있습니다.

시스템 관리자로서 네트워크 문제 해결에 대한 기본적인 이해가 있으면 문제를 더 빠르게 해결하고 응집력 있는 작업 환경을 조성하는 데 도움이 됩니다. 이러한 이유로 우리는 네트워크 관련 문제를 진단할 때 유용할 기본 네트워크 문제 해결 팁 중 일부를 강조하기 위해 이 섹션을 구성했습니다.

TCP/IP 모델 요약

LFCA 시리즈의 이전 주제에서는 컴퓨터에서의 데이터 전송과 각 계층에서 발견되는 프로토콜을 보여주는 TCP/IP 개념 모델을 살펴보았습니다.

똑같이 중요한 또 다른 개념 모델은 OSI 모델(개방형 시스템 상호 연결) 모델입니다. 네트워킹 시스템을 세분화하고 모든 레이어에서 컴퓨팅 기능을 수행하는 7 레이어 TCP/IP 프레임워크입니다.

OSI 모델에서 이러한 기능은 맨 아래부터 다음과 같은 레이어로 분할됩니다. 물리 계층, 데이터 링크 계층, 네트워크 계층, 전송 계층, 세션 계층. 프리젠테이션 레이어, 마지막으로 애플리케이션 레이어가 맨 위에 있습니다.

OSI 모델을 언급하지 않고 네트워크 문제 해결을 논하는 것은 불가능합니다. 이러한 이유로 우리는 각 계층을 안내하고 사용되는 다양한 네트워크 프로토콜과 모든 계층과 관련된 오류를 해결하는 방법을 알아봅니다.

레이어 1: 물리적 레이어

이것은 아마도 가장 간과되는 레이어 중 하나일 것입니다. 그러나 모든 통신이 이루어지기 위해 필요한 가장 필수적인 레이어 중 하나입니다. 물리적 계층은 네트워크 카드, 이더넷 케이블, 광섬유 등과 같은 PC의 물리적 PC 네트워킹 구성 요소를 포함합니다. 대부분의 문제는 여기에서 시작되며 대부분 다음으로 인해 발생합니다.

  • 네트워크/이더넷 케이블이 분리됨
  • 손상된 네트워크/이더넷 케이블
  • 네트워크 카드가 없거나 손상된 경우

이 계층에서 떠오르는 질문은 다음과 같습니다.

    네트워크 인터페이스의 상태를 확인하려면 ip 명령을 실행하십시오.

    ip link show
    

    위의 출력에는 2개의 인터페이스가 있습니다. 첫 번째 인터페이스인 lo는 루프백 주소이며 일반적으로 사용되지 않습니다. 네트워크와 인터넷에 대한 연결을 제공하는 활성 네트워크 인터페이스는 enp0s3 인터페이스입니다. 출력에서 인터페이스 상태가 UP임을 확인할 수 있습니다.

    네트워크 인터페이스가 다운되면 state DOWN 출력이 표시됩니다.

    이 경우 다음 명령을 사용하여 인터페이스를 불러올 수 있습니다.

    sudo ip link set enp0s3 up
    

    또는 아래 표시된 ifconfig 명령을 실행할 수 있습니다.

    
    sudo ifconfig enp0s3 up
    ip link show
    

    PC가 라우터나 DHCP 서버에서 IP 주소를 선택했는지 확인하려면 ifconfig 명령을 실행하세요.

    ifconfig
    

    IPv4 주소에는 표시된 대로 inet 매개변수가 앞에 붙습니다. 예를 들어, 이 시스템의 IP 주소는 192.168.2.104이고 서브넷 또는 넷마스크는 255.255.255.0입니다.

    
    ifconfig
    

    또는 다음과 같이 ip address 명령을 실행하여 시스템의 IP 주소를 확인할 수 있습니다.

    
    ip address
    

    기본 게이트웨이의 IP 주소를 확인하려면 다음 명령을 실행하십시오.

    
    ip route | grep default
    

    대부분의 경우 DHCP 서버 또는 라우터인 기본 게이트웨이의 IP 주소는 아래와 같이 표시됩니다. IP 네트워크에서는 기본 게이트웨이를 ping할 수 있어야 합니다.

    사용 중인 DNS 서버를 확인하려면 systemd 시스템에서 다음 명령을 실행하십시오.

    
    systemd-resolve --status
    

    사용 중인 DNS 서버를 확인하는 더 좋은 방법은 표시된 nmcli 명령을 실행하는 것입니다.

    
    ( nmcli dev list || nmcli dev show ) 2>/dev/null | grep DNS
    

    관찰한 바와 같이 네트워크 문제 해결의 상당 부분이 여기에서 발생합니다.

    계층 2: 데이터 링크 계층

    기본적으로 데이터 링크 계층은 네트워크의 데이터 형식을 결정합니다. 이곳은 호스트 간 데이터 프레임 통신이 이루어지는 곳입니다. 이 계층의 주된 프로토콜은 ARP(주소 확인 프로토콜)입니다.

    ARP는 링크 계층 주소 검색을 담당하고 계층 3의 IPv4 주소를 MAC 주소에 매핑합니다. 일반적으로 호스트가 기본 게이트웨이에 접속할 때 호스트의 IP는 이미 가지고 있지만 MAC 주소는 없을 가능성이 있습니다.

    ARP 프로토콜은 레이어 3의 32비트 IPv4 주소를 레이어 2의 48비트 MAC 주소로 또는 그 반대로 변환하여 레이어 3과 레이어 2 사이의 격차를 해소합니다.

    PC가 LAN 네트워크에 연결되면 라우터( 기본 게이트웨이)는 식별을 위해 IP 주소를 할당합니다. 다른 호스트가 PC로 향하는 데이터 패킷을 기본 게이트웨이로 보내면 라우터는 ARP에 IP 주소와 함께 가는 MAC 주소를 찾아보라고 요청합니다.

    모든 시스템에는 자체 ARP 테이블이 있습니다. ARP 테이블을 확인하려면 다음 명령을 실행하세요.

    ip neighbor show
    

    보시다시피 라우터의 MAC 주소가 채워져 있습니다. 해결 문제가 있는 경우 명령은 출력을 반환하지 않습니다.

    레이어 3: 네트워크/인터넷 레이어

    시스템 관리자에게 친숙한 IPv4 주소로만 작업하는 레이어입니다. 이는 우리가 다룬 ICMPARPRIP(라우팅 정보 프로토콜)과 같은 여러 프로토콜을 제공합니다. ).

    일반적인 문제 중 일부에는 장치 구성 오류 또는 라우터 및 스위치와 같은 네트워크 장치 문제가 포함됩니다. 문제 해결을 시작하는 좋은 방법은 시스템이 다음과 같이 IP 주소를 선택했는지 확인하는 것입니다.

    ifconfig
    

    또한 ping 명령을 사용하면 ICMP 에코 패킷을 Google의 DNS로 전송하여 인터넷 연결을 확인할 수 있습니다. -c 플래그는 전송되는 패킷 수를 나타냅니다.

    ping 8.8.8.8 -c 4
    

    출력에는 패킷 손실이 전혀 없는 Google DNS의 긍정적인 응답이 표시됩니다. 연결이 간헐적으로 발생하는 경우 다음과 같이 traceroute 명령을 사용하여 패킷이 삭제되는 지점을 확인할 수 있습니다.

    traceroute google.com
    

    별표는 패킷이 삭제되거나 손실되는 지점을 나타냅니다.

    nslookup 명령은 DNS를 쿼리하여 도메인이나 호스트 이름과 연결된 IP 주소를 얻습니다. 이를 정방향 DNS 조회라고 합니다.

    예를 들어.

    
    nslookup google.com
    

    이 명령은 google.com 도메인과 연결된 IP 주소를 표시합니다.

    
    Server:		127.0.0.53
    Address:	127.0.0.53#53
    
    Non-authoritative answer:
    Name:	google.com
    Address: 142.250.192.14
    Name:	google.com
    Address: 2404:6800:4009:828::200e
    

    dig 명령은 도메인 이름과 연결된 DNS 서버를 쿼리하는 데 사용되는 또 다른 명령입니다. 예를 들어 DNS 이름 서버를 쿼리하려면 다음을 실행합니다.

    
    dig google.com
    

    계층 4: 전송 계층

    전송 계층은 TCPUDP 프로토콜을 사용하여 데이터 전송을 처리합니다. 요약하자면 TCP는 연결 지향 프로토콜인 반면 UDP는 연결이 없는 프로토콜입니다. 실행 중인 애플리케이션은 포트와 IP 주소로 구성된 소켓을 수신합니다.

    애플리케이션에 필요할 수 있는 차단된 TCP 포트를 포함하여 발생할 수 있는 일반적인 문제입니다. 웹 서버가 있고 실행 상태를 확인하려면 netstat 또는 ss 명령을 사용하여 웹 서비스가 포트 80을 수신하고 있는지 확인하세요.

    sudo netstat -pnltu | grep 80
    OR
    ss -pnltu | grep 80
    

    때때로 시스템에서 실행 중인 서비스가 포트를 사용 중일 수 있습니다. 다른 서비스가 해당 포트를 사용하도록 하려면 다른 포트를 사용하도록 구성해야 할 수도 있습니다.

    여전히 문제가 있는 경우 방화벽을 확인하고 관심 있는 포트가 차단되어 있는지 확인하세요.

    대부분의 문제 해결은 이 4개 계층에서 발생합니다. 세션, 프레젠테이션 및 애플리케이션 계층에서는 문제 해결이 거의 수행되지 않습니다. 이는 네트워크 기능에서 덜 적극적인 역할을 하기 때문입니다. 하지만 해당 레이어에서 무슨 일이 일어나는지 빠르게 살펴보겠습니다.

    계층 5: 세션 계층

    세션 계층은 세션이라고 하는 통신 채널을 열고 데이터 전송 중에 해당 채널이 열린 상태로 유지되도록 보장합니다. 또한 통신이 종료되면 닫힙니다.

    레이어 6: 프리젠테이션 레이어

    구문 계층이라고도 알려진 프리젠테이션 계층은 애플리케이션 계층에서 사용할 데이터를 합성합니다. 이는 상대방이 데이터를 잘 수신할 수 있도록 장치가 데이터를 암호화, 인코딩 및 압축하는 방법을 설명합니다.

    계층 7: 애플리케이션 계층

    마지막으로 최종 사용자에게 가장 가깝고 이들이 애플리케이션 소프트웨어와 상호 작용할 수 있게 해주는 애플리케이션 계층이 있습니다. 애플리케이션 계층에는 HTTP, HTTPS, POP3, IMAP, DNS, RDP, SSH, SNMP 및 NTP와 같은 프로토콜이 풍부합니다.

    결론

    Linux 시스템 문제를 해결할 때 OSI 모델을 사용하는 계층적 접근 방식이 맨 아래 계층부터 시작되는 것이 좋습니다. 이를 통해 무엇이 잘못되었는지에 대한 통찰력을 얻고 문제의 범위를 좁히는 데 도움이 됩니다.