안녕하세요

리눅스 클러스터 서버에서 갑자기 인터넷 안될 때 해결 방법 본문

삽질

리눅스 클러스터 서버에서 갑자기 인터넷 안될 때 해결 방법

godxxy1229 2024. 10. 17. 02:15

얼마 전, 잘 되던 클러스터 서버에서 갑자기 외부 인터넷 연결이 안 되는 상황이 발생했다.

 

인접한 컴퓨터와의 내부망 통신은 정상적으로 이루어졌지만, DNS 서버와 웹 서비스와의 연결이 끊긴 상태였다. 왜 이런 일이 생겼을까? 그리고 어떻게 해결했을까? 문제 원인과 해결 방법을 정리해보려고 써봤다.

 

원인

먼저, 네트워크 라우팅 테이블을 확인했다. 라우팅 테이블을 보면, 내부망과 외부망 모두 기본 게이트웨이로 설정되어 있었고, 내부망(192.168.1.1)의 우선순위(metric 값)가 더 낮게 설정된 상태였다. 이는 내부망이 기본 라우트로 인식되면서 외부망과의 연결을 방해하게 되는 상황을 만들었다.

 

내부망과 외부망이 동시에 사용되던 환경에서, 외부 DNS 서버로 나가야 할 요청이 내부망으로 잘못 나가는 구조였다. 이로 인해 외부망 통신이 실패하고, 인터넷도 사용할 수 없게 된 것이다.

 

이런 문제는 시스템 업데이트, 네트워크 재시작(NetworkManager 재부팅 등), 또는 일시적인 네트워크 장애로 인해 라우팅 우선순위가 변동되면서 발생할 수 있다.

즉 기존 설정이 유지되지 않고, 예상치 못한 방식으로 네트워크 트래픽이 라우팅된 것이다!

 

해결방법

문제를 해결하기 위해 우선 기존 라우팅 테이블을 정리하고, 외부망 우선순위를 조정했다. 내부망을 기본 게이트웨이에서 삭제하고, 외부망을 metric 값을 낮춰 최우선 게이트웨이로 설정했다.

sudo ip route del default via 내부망용아이피 dev 내부망네트워크인터페이스이름
sudo ip route add default via 외부망용아이피 dev 외부망네트워크인터페이스이름 metric 50

 

이렇게 하면 외부망이 기본 라우트로 설정되면서, 외부 DNS 서버와의 통신이 정상적으로 이루어지게 된다.

 

결론

내부망과 외부망을 동시에 사용하는 환경에서, 라우팅 우선순위와 네트워크 설정이 변경되면 예기치 않은 네트워크 장애가 발생할 수 있다. 이번 문제를 통해, 클러스터 서버처럼 여러 네트워크를 사용하는 경우 라우팅 설정을 명확히 관리하고, 고정 라우트와 같은 방법으로 경로를 명시적으로 지정해두는 것이 중요하다는 것을 다시 한 번 확인했다.