Windows 및 LAN 관련 라우팅 문제
업데이트: 2024년 10월 11일
여러분께 안타까운 상황 하나를 소개합니다. 여러 대의 컴퓨터로 구성된 로컬 네트워크가 있다고 가정해 보세요. 그중 최소 두 대는 Windows 호스트입니다. 한 Windows 호스트에서 다른 호스트로 파일을 복사하고 싶은데, 공유 설정도 제대로 마쳤고 Windows 탐색기에서 \\MACHINE 형태로 상대 컴퓨터에 쉽게 접근할 수 있는 상황입니다. 첫 번째 파일은 순조롭게 복사됩니다. 그런데 딱 3분 뒤, 두 번째 파일을 복사하려는데 Windows 탐색기가 말썽을 부립니다. 도무지 되지 않습니다. 이제 어떻게 해야 할까요?
저도 며칠 전 정확히 같은 문제를 겪었습니다. 저는 원래 무슨 일이든 내 설정이나 사용 방식에 문제가 있다고 먼저 의심하는 편이라, 라우터를 점검했습니다. 문제 없음. Linux 머신에서 해당 Windows 호스트에 접속해 봤습니다. 역시 문제 없음. 네트워크 연결 상태도 이상이 없었습니다. 그렇다면 대체 무엇이 문제일까요? 이번 글에서는 어떤 현상이 발생했는지, 그리고 같은 문제를 만났을 때 어떻게 빠르게 해결할 수 있는지 알려드리겠습니다.
문제를 좀 더 자세히 살펴보기
경험이 많으신 분들은 이미 무엇이 문제인지 짐작하고 계실 겁니다. 하지만 일반적인 사용자는 자신이 겪는 시스템 문제를 '전문 용어'로 표현하기 어렵습니다. 일반적으로 컴퓨터 시스템에서 문제가 발생했고, 그 문제가 GUI 같은 화면 인터페이스를 통해 나타난다면, 명령줄(커맨드 라인)에서 동일한 상황을 재현해 보는 것이 좋습니다. 명령줄에서는 훨씬 더 많고 정확한 정보를 얻을 수 있기 때문입니다.
Windows 호스트 역시 명령줄에서 접근할 수 있습니다. 컴퓨터 간 연결 상태를 확인하는 가장 간단한 방법은 ping 명령(ICMP 프로토콜 사용)입니다. 모든 것이 정상임을 완벽하게 보장하지는 않지만, 소스 시스템에서 대상 호스트로 ping 요청을 보냈을 때 정상적인 응답을 받는다면, 적어도 자신의 LAN 범위 안에는 더 큰 네트워크 문제가 없을 가능성이 높습니다.
그래서 저는 '말썽'을 부리는 그 컴퓨터에 ping을 날려 문제를 파악하려 했습니다. cmd.exe를 실행(시작 > 명령 프롬프트)한 뒤 다음과 같이 입력합니다.
ping [IP 주소 또는 호스트명]
만약 해당 시스템의 IP 주소를 모른다면 다음 과정을 따라 하세요.
Windows 설정 > 네트워크 및 인터넷 > 해당 네트워크(유선 또는 무선) 선택 후, 속성 버튼을 클릭합니다. 새 페이지가 열리고 맨 아래에 IP 주소를 포함한 네트워크 정보가 표시됩니다. 아래 이미지를 참고하세요. 특정 환경을 의미하는 것은 아니며, 데이터를 확인하는 절차를 보여주는 예시일 뿐입니다.


IPv4 주소 항목을 찾아보세요. IPv6 주소도 함께 표시될 수 있지만, 문제가 되는 경우는 드물고 가정용 LAN의 99%는 IPv4로 구성되어 있습니다. 이 주소(X.X.X.X)를 메모한 뒤, 앞서 열어둔 명령 프롬프트에 입력합니다.
실행했더니, 문제가 드러났습니다.
Pinging 192.168.4.113 with 32 bytes of data:
Reply from 192.168.4.107: Destination host unreachable.
Reply from 192.168.4.107: Destination host unreachable.
저는 IP 주소 끝자리가 113인 호스트에 ping을 보냈지만, 응답은 107에서 돌아왔습니다. 107은 대상 호스트에 파일을 복사하려던 소스 Windows 머신, 즉 내 컴퓨터의 주소입니다. 어떤 이유에서인지 소스 시스템이 방향 감각을 잃고 다른 컴퓨터를 찾지 못한 것입니다. 불과 몇 분 전까지는 모든 것이 정상적으로 작동했는데도 말이죠.
기술적으로 말하면, 이는 Windows 호스트에서 발생한 ARP 또는 DNS 문제입니다. 네트워크 스택이 작동하는 세부 원리까지 다루기에는 이 글의 범위를 벗어납니다. 이 가이드를 찾는 독자들은 네트워크 프로토콜 강좌가 아니라 빠른 해결책을 원할 테니까요. 요약하자면, 제 Windows 시스템이 혼란스러운 상태가 되어 잘못된 정보를 담고 있었던 것입니다. 따라서 그 정보를 지워야 합니다. 즉, 캐시를 정리하면 됩니다.
두 가지 작업을 순서대로 시도합니다. 먼저 ARP 캐시를 삭제하고, 그다음 DNS 캐시를 정리합니다. 하나를 시도해서 문제가 해결되면 좋고, 그렇지 않으면 두 번째 명령을 실행하면 됩니다. 명령 프롬프트를 관리자 권한으로 실행해야 합니다. Windows 시작 메뉴에서 명령 프롬프트를 찾은 뒤, 마우스 오른쪽 버튼 > 관리자 권한으로 실행을 클릭하세요.

그다음 아래 명령을 입력합니다.
arp -d *
첫 번째 명령으로 문제가 해결되지 않았다면, 선택 사항으로 DNS 캐시도 정리합니다.
ipconfig /flushdns
이제 대상 호스트에 다시 접속해 보세요. 앞서 다른 문제는 없었으므로 복잡한 환경적 요인이 있는 상황이 아니라면, 대부분 성공할 것입니다. 처음 시나리오에서 말씀드린 것처럼, 한 순간에는 잘 되다가 다음 순간 갑자기 안 되는 경우였다는 점을 기억하세요.
그래도 해결되지 않는다면 재부팅을 할 수도 있지만, 그것이 최선의 방법은 아닙니다.
마치며
이렇게 '마술 같은' 문제 해결 튜토리얼을 마무리합니다. 저는 논리와 상식에 반하는 기묘하고 산발적인 문제를 결코 달가워하지 않습니다. 특히 네트워킹 분야에서는 더욱 그렇습니다. 하지만 버그는 언제나 발생할 수 있으므로, 이런 상황에 대처하고 문제를 해결하는 방법을 미리 준비해 두어야 합니다. 항상 체계적으로 접근하고, 가능하다면 명령줄을 활용해 당면한 문제에 대해 더 많은 정보를 파악하세요.
제 경우에는 Windows 머신이 네트워크 관련 정보를 캐싱하는 과정에서 갑자기 문제를 일으켰고, 그 결과 순조롭게 작동하던 호스트 간 통신이 순식간에 실패했습니다. ping 명령이 문제의 원인을 밝혀냈고, 네트워크 캐시를 정리하자 해결되었습니다. 여러분도 이런 문제를 만난다면, 제가 처음에 그랬듯 컴퓨터에 욕을 퍼붓기보다는 명령줄을 열고 열심히 타이핑해 보세요. 이것으로 마치겠습니다. 모두 건강히 지내세요.
감사합니다.