본문 바로가기
카테고리 없음

NETWORK HOP - 네트워크 홉 이란?

by techdebt 2025. 1. 27.
반응형

network hop

 

네트워크 홉(Hop): 데이터 패킷의 여정을 이해하다

인터넷을 통해 데이터가 어떻게 전달되는지 궁금해하신 적 있으신가요? 네트워크 엔지니어로서 20년간 다양한 네트워크 인프라를 설계하고 운영하면서, 저는 항상 데이터 패킷의 놀라운 여정에 매료되어 왔습니다. 오늘은 그 여정의 핵심 개념인 '홉(Hop)'에 대해 자세히 알아보겠습니다.

홉의 본질적 이해

홉은 마치 기차역과 같습니다. 여러분이 서울에서 부산까지 기차를 탈 때 여러 역을 거치는 것처럼, 데이터 패킷도 출발지에서 목적지까지 가는 동안 여러 네트워크 장비를 거치게 됩니다. 이때 각각의 네트워크 장비(라우터나 스위치)가 바로 '홉'이 되는 것입니다.

홉 카운트의 중요성

홉 카운트는 단순히 숫자 이상의 의미를 가집니다. 이는 네트워크 효율성의 중요한 지표가 됩니다. 예를 들어, 동일한 목적지로 가는 두 개의 경로가 있다면, 일반적으로 홉 카운트가 적은 경로가 더 효율적입니다. 마치 목적지까지 가는데 환승을 적게 하는 것이 더 편한 것과 같은 원리입니다.

홉의 실제 작동 방식

각 홉에서는 놀라운 일들이 일어납니다. 라우터는 패킷의 목적지 IP 주소를 확인하고, 라우팅 테이블을 참조하여 최적의 다음 홉을 결정합니다. 이 과정은 밀리초 단위로 이루어지며, 수많은 패킷이 동시에 처리됩니다.

이 과정에서 중요한 역할을 하는 것이 TTL(Time to Live)입니다. 각 패킷은 TTL 값을 가지고 있으며, 홉을 하나 거칠 때마다 이 값이 1씩 감소합니다. 이는 패킷이 네트워크에서 영원히 떠돌아다니는 것을 방지하는 안전장치입니다.

네트워크 문제 해결에서의 홉

네트워크 문제가 발생했을 때, 홉 분석은 문제 해결의 핵심이 됩니다. traceroute와 같은 도구를 사용하면 각 홉에서의 지연 시간과 패킷 손실을 확인할 수 있습니다. 이는 마치 택배가 어디서 지연되고 있는지 실시간으로 추적하는 것과 비슷합니다.

 

장애가 발생했을때, 단계별 해결 방법

운영하는 시스템 웹 서비스가 갑자기 느려졌다는 알람을 받았다고 가정하겠습니다. 사용자들은 웹 페이지 로딩이 평소보다 3~4배 정도 더 걸린다는 VOC를 등록하고 있습니다.생각만해도 겨드랑이에 땀이 차는 상황이죠?

 

1. 초기 상황 파악

# traceroute 명령어 실행
traceroute www.example.com

1  192.168.1.1 (192.168.1.1)  1.023 ms
2  10.0.0.1 (10.0.0.1)  2.147 ms
3  172.16.0.1 (172.16.0.1)  15.482 ms  # 여기서 급격한 지연 발생
4  203.0.113.1 (203.0.113.1)  18.234 ms

 

이 결과에서 세 번째 홉에서 지연이 급격히 증가한 것을 확인할 수 있습니다.

일반적으로 홉 간 지연은 1-2ms 정도가 정상인데, 여기서는 13ms 이상의 추가 지연이 발생했습니다.

 

세 번째 홉(172.16.0.1)이 문제의 원인이라는 것을 파악한 후, 다음과 같은 추가 분석을 수행합니다.

 

2. 해당 라우터의 부하 상태 확인

# SNMP 명령어 - 네트워크 장치(라우터, 스위치, 서버 등)의 상태를 모니터링
# snmp 없을 경우 설치 부터 진행
yum install net-snmp net-snmp-utils
# OID(Object Identifier) 포함하여 실행
# 1.3.6.1.4.1.2021.10.1.3.1 (1분 평균 부하)
# 1.3.6.1.4.1.2021.10.1.3.2 (5분 평균 부하)
# 1.3.6.1.4.1.2021.10.1.3.3 (15분 평균 부하)
# 1.3.6.1.4.1.2021.4.5.0 (전체 메모리)
# 1.3.6.1.4.1.2021.4.6.0 (사용 가능한 메모리)
# 1.3.6.1.4.1.2021.4.11.0 (사용 중인 스왑 메모리)
# OID로 15분 평균부하 조회
snmpget -v2c -c {커뮤니티문자열} {서비스IP} 1.3.6.1.4.1.2021.10.1.3.3
# MIB로 15분 평균부하 조회
# laLoad.1: 1분 평균 부하
# laLoad.2: 5분 평균 부하
# laLoad.3: 15분 평균 부하
snmpwalk -v2c -c TEMP_JEUS02 172.30.1.70 UCD-SNMP-MIB::laLoad.2

 

추가적으로 설명하자면 SNMP 같은 경우는 

타겟 시스템에도 SNMP daemon이 설치되어 있어야하고 동작 중이어야 합니다. ( 확인 법 : systemctl status snmpd.service ) 

snmp를 조회하는 방법은 크게 2가지가 있습니다.

1. public으로 조회

2. 커뮤니티 문자열 로 조회

public 같은 경우는 일반적으로 제한된 정보만 조회가 가능하며

타겟에 문자열를 설정하고 소스시스템(조회를하려고하는 시작 시스템) 에 공지를 해줘야

네트워크 부하, 시스템 리소스같은 민감한 상세 데이터가 조회가 가능합니다.

일종의 제약을 준다고 생각하시면 편하겠네요.

 

- 커뮤니티 문자열 추가

커뮤니티 문자열 설정은 아래 순서로 진행하시면 됩니다.

 1. /etc/snmp/snmpd.conf 파일 편집

 2. 맨 마지막 줄에 추가

rocommunity {등록할문자열} {IP대역}

 

snmp로 조회할 수 있는 정보들을 OID(Object Identifier) , MIB(Management Information Base) 라고 하는데 

상단에 snmpget 다음에 숫자들이 OID, 문자가 MIB라고 생각하면 됩니다.

➡️ OID:
MIB에서 각 자원을 식별하는 고유한 경로입니다. OID는 MIB 구조 내에서 특정 객체를 가리키며, 시스템 자원에 대한 정보(예: CPU, 메모리, 네트워크 인터페이스 등)를 조회하기 위해 사용됩니다.

 

➡️ MIB:
SNMP가 사용하는 정보의 구조와 내용을 정의한 데이터베이스입니다. 이 데이터베이스는 네트워크 장비나 서버의 성능, 상태, 설정 등을 나타내는 다양한 매개변수와 그들의 정의를 포함하고 있습니다.

 

 

3. MTR( My TraceRoute) 로 패킷 상세 확인

MTR나 ping -s 옵션등을 활용해서 패킷 전송상태를 확인합니다. 

아래 예제에서는 세번째 홉의 loss 를 확인했으니 해당 라우터나 서버에 자세한 분석 요청을 하면 되겠습니다. 

# MTR(My TraceRoute) 실행으로 상세 분석
mtr --report target_ip

# 결과
HOST: mycomputer                Loss%   Snt   Last   Avg  Best  Wrst StDev
  1. 192.168.1.1                0.0%    60    1.5   1.7   1.2   2.1   0.2
  2. 10.0.0.1                   0.0%    60    2.3   2.5   2.0   3.1   0.3
  3. 172.16.0.1                15.0%    60   12.5  14.2  10.1  25.3   4.2
  4. target_ip                   0.0%    60    3.2   3.5   3.0   4.2   0.3

 

최신 네트워크에서의 홉

현대의 네트워크 기술이 발전하면서 홉의 개념도 진화하고 있습니다. SDN(Software-Defined Networking)과 같은 새로운 기술은 홉의 동적 관리를 가능하게 하며, 이는 네트워크의 효율성과 안정성을 크게 향상시킵니다.

효율적인 네트워크 설계를 위한 홉 최적화

네트워크 설계에서 홉 수를 최적화하는 것은 매우 중요합니다. 하지만 단순히 홉 수를 줄이는 것만이 정답은 아닙니다. 대역폭, 지연 시간, 신뢰성 등 다양한 요소를 종합적으로 고려해야 합니다. 이는 마치 도시 교통망을 설계할 때 단순히 정거장 수만을 고려하는 것이 아닌 것과 같은 이치입니다.

네트워크의 세계는 끊임없이 진화하고 있지만, 홉의 기본 개념은 여전히 네트워크의 핵심을 이루고 있습니다. 이러한 기본 원리를 이해하는 것은 현대 네트워크 기술을 이해하고 활용하는데 필수적인 토대가 될 것입니다.