NakedFlower 님의 블로그

라우팅에 대하여 본문

CS/네트워크

라우팅에 대하여

nakedflower 2025. 10. 1. 19:40

라우터

네트워크 간 통신을 가능케 하는 네트워크 계층의 장비

  • 네트워크 간 통신 과정에서 패킷은 여러 라우터를 거쳐서 다양한 경로로 이동할 수 있음
    • 패킷은 여러 대의 라우터를 잊중 경로를 거치듯 수신지까지 이동
    • 홉(hop)
      • 라우팅 도중 패킷이 호스트와 라우터 간에, 혹은 라우터와 라우터 간에 이동하는 한 과정

이걸 홉바이홉 라우팅이라고 부름

 

라우팅 과정(홉 수) 확인

  • 윈도우 - tracert www.google.com
  • 리눅스나 맥OS - traceroute www.google.com

 

라우터는 라우팅을 어떻게 수행할까

--> 라우팅 테이블을 통해서

  • 특정 수신지까지 도달하기 위한 정보를 명시한 표와 같은 정보
  • 라우터는 라우팅 테이블을 참고하여 수신지까지의 도달 경로를 판단

 

 

라우팅 테이블에 포함된 정보

  • 수신지 IP 주소와 서브넷 마스크
    • 최종적으로 패킷을 전달할 대상
  • 다음 홉(next hop)
    • 최종 수신지까지 가기 위해 다음으로 거쳐야 할 호스트의 IP 주소나 인터페이스
    • 게이트웨이라고 명시되기도 함
  • 네트워크 인터페이스
    • 패킷을 내보낼 통로
    • 인터페이스(NIC) 이름이 직접 명시되거나 인터페이스에 대응하는 IP 주소 명시
  • 메트릭(metric)
    • 해당 경로로 이동하는 데에 드는 비용
    • 라우팅 테이블의 여러 경로 중 메트릭이 낮은 경로를 선호

라우팅 방식에 따라, 호스트의 환경에 따라 달라질 수 있음

 

라우팅 테이블에 포함된 정보

  • 수신지가 192.168.2.0/24(호스트 IP 주소 범위 192.168.2.1~192.168.2.254)인 패킷은
  • eth0(인터페이스)를 통해
  • 192.168.2.1(게이트웨이)로 전송하라
수신지 IP 주소 서브넷 마스크 게이트웨이 인터페이스 메트릭
--- --- --- --- ---
192.168.2.0 255.255.255.0 192.168.2.1 eth0 30
--- --- --- --- ---

 

 

디폴트 라우트(default route): 라우팅 테이블에 경로가 없을 때

  • 기본적으로 패킷을 내보낼 경로
  • '모든 IP 주소를 의미'하는 0.0.0.0/0로 명시
  • 예) 수신지 IP 주소가 1.2.3.4인 패킷을 받았다면: 디폴트 루트, eth2를 통해 192.168.0.1로 전송

 

 

  • 일반적으로 기본 게이트웨이 주소 = 디폴트 루트
  • 기본 게이트웨이=네트워크 외부로 나아가기 위한 첫 경로, 일반적으로 라우터/공유기 주소
  • 라우팅 테이블에 따로 경로가 등록되어 있지 않은 패킷들을 기본적으로 기본 게이트웨이(라우터)에게 전달

라우팅 테이블이 만들어지는 방법에 따라 크게 2가지로 분류 가능
1. 정적 라우팅 - 수동으로 구성된 라우팅 테이블 항목을 통해 수행되는 라우팅
2. 동적 라우팅 - 자동으로 라우팅 테이블 항목을 만들고, 이를 이용하여 라우팅

 

정적 라우팅

  • 사용자가 수동으로 직접 채워 넣은 라우팅 테이블의 항목을 토대로 라우팅
  • 한계: 네트워크의 규모가 커지고 관리해야 할 라우터가 늘어나면 정적 라우팅만으로는 관리가 힘듦
  • 휴먼 에러, 유연성이 떨어짐 -> 경로상에 문제가 발생했을 때 유연하게 다른 경로로 변경해주지 않음(문제 발생 시에 경로 우회가 번거로움)

동적 라우팅

  • 자동으로 라우팅 테이블 항목을 만들고, 이를 이용하여 라우팅
  • 라우팅 프로토콜 이용
    • 라우터끼리 자신들의 정보를 교환하며 패킷이 이동할 최적의 경로를 찾기 위한 프로토콜
    • 동적 라우팅을 하면 라우팅 테이블 항목이 수시로 변할 수 있음
    • 라우팅 테이블의 항목을 수동으로 입력할 필요 없음
    • 네트워크 경로상에 문제가 발생했을 때 이를 우회할 수 있게 경로가 자동으로 갱신

라우터들의 집단 네트워크, AS (Autonomous System)

  • 동적 라우팅과 라우팅 프로토콜을 이해하기 위한 배경 지식
  • 한 회사나 단체에서 관리하는 라우터 집단
    • AS마다 인터넷상에서 고유한 **AS 번호(ASN; Autonomous System Number)**가 할당
    • AS 번호는 사설 IP 주소처럼 사설 AS 번호도 있지만, 일반적으로 'AS 번호'는 고유한 AS 번호를 지칭
  • 한 AS 내에는 다수의 라우터가 존재
    • 라우터들은 AS 내부에서만 통신할 수도 있고, AS 외부와 통신할 수도 있음
    • AS 외부와 통신할 경우 AS 경계에서 AS 내외로 통신을 주고받을 수 있는 '특별한 라우터'를 이용
    • 이 '특별한 라우터' = AS 경계 라우터(ASBR; Autonomous System Boundary Router)

라우팅 프로토콜은 AS 내부에서 수행하냐, 외부에서 수행하냐에 따라 그 종류가 나뉜다.

 

대표적인 IGP(Interior Gateway Protocol): RIP와 OSPF

  • RIP - 최적의 경로를 선정하는 과정에서 거리 벡터를 사용
  • OSPF - 최적의 경로를 선정하는 과정에서 링크 상태를 사용

RIP: 거리 벡터 기반 라우팅 프로토콜

  • '거리'는 패킷이 경유한 라우터의 수, 즉 홉 수를 의미
  • 특정 수신지까지 도달하기 위해 '홉 수가 가장 적은 경로'를 최적의 경로라고 판단
  • 홉 수가 적을수록 라우팅 테이블상의 메트릭 값도 작아짐
  • 주기적으로 인접 라우터끼리 경로 정보 교환, 라우팅 테이블 갱신, 특정 수신지까지의 홉 수 계산

OSPF: 링크 상태(link state) 기반 라우팅 프로토콜

  • 현재 네트워크 상황을 마치 지도처럼 그린 뒤, 최적의 경로를 선택
  • 현재 네트워크의 상태(연결 상태)를 라우터에 저장해 저장
    • 링크 상태 데이터베이스(LSDB; Link State Database)에 저장
    • 라우터들의 연결 관계, 연결 비용 등 현재 네트워크의 상태를 그래프로 표현하기 위한 데이터 저장
  • 대역폭을 기반으로 메트릭을 계산하여 최적의 경로를 결정
    • 대역폭이 높은 링크일수록 메트릭이 낮은 경로로 인식

EGP: BGP (Border Gateway Protocol)

  • AS 간의 통신에서 사용되는 대표적인 프로토콜
  • 엄밀하게는 AS 간의 통신이 '가능한' 프로토콜 - BGP로 AS 내 라우터 간 통신도 가능
    • eBGP(external) BGP - AS 간의 통신을 위한 BGP
    • iBGP(internal) BGP - AS 내의 통신을 위한 BGP
  • 피어링 과정을 거쳐야 함
    • 다른 AS와의 BGP연결을 유지하기 위해서 BGP라우터끼리 피어가 되도록 연결되는 과정
  • BGP는 RIP와 OSPF에 비해 최적의 경로를 결정하는 과정이 복잡하고, 일정하지 않은 경우가 많음
  • 경로 결정 과정에서 수신지 주소와 더불어 다양한 '속성'과 '정책'이 고려되기 때문에

속성은 경로에 대한 부가 정보를 의미함

  • AS-PATH
  • NEXT-HOP
  • LOCAL-PREF

BGP는 RIP처럼 단순 '거리'가 아닌, 어디를 거쳐 어디로 이동하는지를 나타내는 '경로'를 고려, 이런 점에서 경로 벡터(path vector) 라우팅 프로토콜의 일종이라 부르기도 한다.