CS Repo/네트워크 - Top-down Approach + @

IP 라우팅

조금씩 차근차근 2025. 4. 17. 00:32

본 게시글은 그림으로 공부하는 TCP/IP 구조 도서를 참고하였습니다.
 
지금부터 라우팅, 라우팅 테이블, 라우팅 프로토콜에 대해서 알아보자.

라우팅이란?

라우팅 & 라우팅 테이블이란?

  • 라우터나 L3 스위치는 IP 패킷의 전송 대상지를 바꿀 수 있다.
    • 수신지 IP 주소
    • 명확히 주어진 수신지 네트워크 정보
    • IP 패킷을 전송할 근접 기기의 IP 주소를 나타내는 네트워크 홉 정보를 관리함으로써
  • 이 전송 대상지를 바꾸는 것을 "라우팅"이라고 한다.
  • 수신지 네트워크 정보와 네트워크 홉을 관리하는 테이블을 "라우팅 테이블"이라고 한다.

라우터가 IP패킷을 라우팅하는 형태

  • 모든 기기가 근접 기기의 MAC 주소를 학습한 상태라고 가정하자.
  • 네트워크 계층에서, 주어진 IP를 찾을 수 있는(해당 IP를 포함하는 서브넷) 넥스트 홉의 IP를 라우팅 테이블을 이용해 찾는다.
  • 데이터링크 계층에서, 주어진 넥스트 홉의 MAC 주소를 ARP+넥스트 홉의 IP를 이용해 찾는다.
  • 넥스트 홉으로 해당 패킷을 전송한다.

주의 깊게 봐야 할 것

  • IP 패킷의 IP 주소는 바뀌지 않는다.
  • 이더넷 프레임의 MAC 주소는 바뀌어가며 전송된다.
  • 이래서 네트워크 송신 시에는, IP 주소와 MAC주소가 모두 필요하다.

예시: 일반적인 가정에서의 라우팅 방식

  • 가정 내 LAN 환경에 있는 PC의 디폴트 게이트웨이는 브로드밴드 라우터이다.
  • 브로드밴드 라우터의 디폴트 게이트웨이는 계약된 ISP이다.
  • PC에서 인터넷을 사용하고 있을 때의 IP 패킷은
    • 먼저 PC의 디폴트 게이트웨이인 브로드밴드 라우터의 IP주소로 전송된다.
    • 이어서 브로드밴드 라우터의 디폴트 게이트웨이인 ISP의 IP주소로 전송된다.
  • 그리고 ISP로부터 수많은 라우터를 거쳐 인터넷으로 나간다.

라우팅 테이블을 만드는 방법

라우팅 테이블을 만드는 방법.

정적 라우팅

  • 수동으로 라우팅 테이블을 만든다.
  • 수신지 네트워크와 넥스트 홉을 하나하나 설정한다.
  • 이해하기 쉽고 운용 관리도 쉽기 때문에, 소규모에 적합하나, 일일히 설정해줘야 하기때문에 대규모에는 적합하지 않다.

동적 라우팅

  • 근접한 라우터끼리 자신이 가진 경로 정보를 교환해, 자동으로 라우팅 테이블을 만드는 기법이다.
  • 이때, 경로 정보를 교환하기 위한 프로토콜을 라우팅 프로토콜이라고 한다.
    • 서로간에 가진 루트를 교환하고, 자신의 라우팅 테이블에 추가한다.

장점

  • 대규모 네트워크에서 자동으로 설정을 할 수 있다.

단점

  • 잘못된 설정을 수행할 경우, 그 설정이 곧바로 네트워크에 전달되어 통신에 영향을 미칠 가능성이 있다.
    • 따라서 숙련된 사람이 설정을 수행해야 한다.

라우팅 프로토콜

동적으로 라우팅 테이블을 만들기 위한 라우팅 프로토콜은 대표적으로 위에서 봤듯이 RIP, OSPF, EIGRP, BGP 4종류가 있다.
각 프로토콜은 크게 보면 AS 기준으로 Interior/Exterior 로 나눌 수 있다.

  • AS(Autonomous System, 자율 시스템)란?
    • 하나의 정책에 따라 관리되는 네트워크 집합
    • ISP
    • 기업
    • 연구기관
    • 거점 등

라우팅 프로토콜의 종류

IGP(Interior Gateway Protocol)

  • 내부 게이트웨이 프로토콜을 의미한다.
  • IGP 주요 프로토콜
    • RIP
    • OSPF
    • EIGRP

EGP(Exterior Gateway Protocol)

  • 외부 게이트웨이 프로토콜
  • EGP 주요 프로토콜
    • BGP

IGP

  • AS 안에서 사용하는 라우팅 프로토콜을 의미한다.
  • 라우팅 알고리즘과 매트릭에 의해 프로토콜이 결정된다.

IGP의 핵심

라우팅 알고리즘

라우팅 테이블을 만드는 방식에 대한 알고리즘을 의미한다.
크게 디스턴스 벡터 타입과 링크 스테이트 타입이 있다.

  • 디스턴스 벡터 타입
    • 거리(distance)와 방향(vector)에 기반해 경로를 계산하는 라우팅 프로토콜.
    • 거리 = 수신지에 이를 때까지 경유하는 라우터(홉) 수
    • 벡터 = 출력 인터페이스의 종류
  • 링크 스테이트 타입
    • 링크 상태(state) 에 기반해 최적 경로를 계산하는 라우팅 프로토콜.
    • 각 라우터가 자신의 링크(인터페이스) 상태나 대역 폭, IP 주소 등 다양한 정보를 교환해 데이터베이스를 만들고, 그 정보를 기반으로 라우팅 테이블을 만든다.

매트릭

  • 수신지 네트워크까지의 논리적 거리를 의미한다.
  • 논리적 거리를 계산하는 방식은 라우팅 프로토콜에 따라 다르다.

IGP의 주요 프로토콜로는 RIP, OSPF, EIGRP 3가지가 있다. 지금부터 각각이 어떤 프로토콜인지 알아보자.

RIP

  • 디스턴스 벡터 타입의 라우팅 프로토콜이다.
  • 현대에는 잘 쓰이지 않는다.

라우팅 알고리즘

  • 라우팅 테이블 자체를 정기적으로 교환함으로써, 라우팅 테이블을 만든다.
    • 동작이 알기 쉽다.
    • 대규모 네트워크 환경에는 어울리지 않는다.

매트릭

  • '지난 홉 수'를 사용한다.

OSPF

  • Open Shortest Path First
  • 링크 스테이트 타입의 라우팅 프로토콜이다.
  • 중규모~대규모 네트워크 환경에서 자주 사용된다.

라우팅 알고리즘

  • 각 라우터가 링크 상태나 대역폭, IP 주소, 서브넷 마스크 등 다양한 정보를 교환하면서 링크 스테이트 데이터베이스(LSDB)를 만든다.
  • 해당 정보를 통해 최적의 경로를 계산하고 라우팅 테이블을 만든다.
  • 이를 라우팅 테이블의 변경이 있을 때만 업데이트한다.
  • Hello packet 이라는 작은 패킷을 송신해, 상대방의 health를 check한다.
    • 필요 이상으로 대역을 압박하지 않는다.
  • 핵심 개념: Area
    • 다양한 정보를 모아서 만들어진 LSDB가 너무 커지지 않도록
    • 네트워크를 에어리어(area)로 나누고 같은 에어리어의 라우터끼리만 LSDB를 공유하도록 한다.

매트릭

  • '비용' 개념을 사용한다.
  • (100 이상의 큰 수) / 대역폭(Mbps)의 계산 결과를 정수값으로 계산하여 비용을 구한다.

참고 - ECMP

  • Equal Cost Multi Path
  • 장애 내구성 향상과 대역 확장을 동시에 할 수 있어, 많은 네트워크 환경에서 사용되고 있다.
  • 작동방식
    • 라우터를 넘을 때마다 출력 인터페이스에 비용을 더한다.

EIGRP

  • 디스턴스 벡터 타입 프로토콜을 확장한 형태의 프로토콜이다.
    • RIP와 OSPF를 적절히 조합한 라우팅 프로토콜이다.
    • Cisco가 만들었고, RFC7868에서 사양이 공개되었다.

라우팅 알고리즘

RIP 스타일과 OSPF 스타일을 모두 가지고 있다.

  • RIP 스타일
    • 최초에 자신이 가진 경로 정보를 교환하여, 각각 토폴로지 테이블을 만든다.
    • 토폴로지 테이블로부터 최적의 경로 정보만을 추출하여 라우팅 테이블을 만든다.
  • OSPF 스타일
    • 변경이 있을때만 라우팅 테이블을 업데이트한다.
    • 기본적으로 ECMP로 매트릭을 구한다.

매트릭

  • '대역폭'과 '지연'을 함께 사용한다.
  • 대역폭=10000/최소대역폭(Mbps)
  • 지연=지연시간(ms)/10
  • 비용 = (대역폭 + 지연) * 256
  • 기본 동작은 ECMP로 구한다.

EGP - BGP

  • EGP(Exterior Gateway Protocol)
  • AS와 AS를 연결할 때 사용하는 라우팅 프로토콜이다.
    • 대표 프로토콜은 Border Gateway Protocol 인데, 사실상 이것만 쓰인다.
  • 핵심은 세가지다.

AS번호

  • AS 끼리 유일한 AS번호를 통해 서로를 식별한다.

라우팅 알고리즘

  • path vector 타입 프로토콜이다.
  • path = 지나는 AS 수
  • vector = 경로 정보를 교환하는 상대
  • 경로 정보 + 최선 경로 선택 알고리즘에 기반해, 라우팅 테이블을 만든다.
  • 해당 정보를 다른 vector에 전달한다.
  • 변경이 있을때만 업데이트한다.

최선 경로 선택 알고리즘

  • 직접 지정할 수 있는 다양한 Attribute 에 근거하여 최선의 경로를 선택한다.
  • 단순히 수학적인 최선이 아니라, 지정학적/정치적 상황에 대처할 수 있기 위해 이렇게 만들어졌다.

Redistribution (재분배, 재전송)

  • 각 라우팅 프로토콜 간에는 서로 다른 라우팅 알고리즘/매트릭/프로세스를 사용한다.
    • 호환성이 없다!
  • 따라서 라우팅 프로토콜을 번역/변환하는 기술이 필요하다.
    • 이를 Redistribution 이라고 한다.
    • IaC를 이용해 구현되기도 한다.

라우팅 테이블 사용 규칙

네트워크 엔지니어의 영역이니, 가볍게 훑어보고 넘어가겠다.

  • 롱기스트 매치(Longest Match)
    • 패킷 전송 시 여러 경로가 있을 때, 가장 구체적인(서브넷 마스크가 가장 긴) 경로를 선택하는 원칙이다.
  • 경로 집약(Path Aggregation)
    • 라우팅 테이블의 여러 세부 경로를 하나로 요약하는 기법이다.
    • 경로의 수와 라우터 부하를 줄이는 역할을 수행한다.
    • 그렇게 모든 경로를 하나로 집약한 것이 '기본 경로'인 0.0.0.0/0 이다.
  • AD값
    • 라우팅 프로토콜 간에 경로 선택 시 우선도를 결정하기 위해 사용되는 값이다.
    • 낮을 수록 우선순위가 높다.

VRF

  • 정의
    • 1대의 라우터에 독립된 여러 라우팅 테이블을 갖도록 하는 가상화 기술이다.
    • VLAN의 라우터 버전에 가깝다.
    • RD(Route Distinguisher) 라는 숫자를 사용해, 1대의 라우터를 가상으로 분할한다.
  • 장점
    • VRF로 만들어진 라우팅 테이블은 완전히 독립되므로, 같은 IP 서브넷을 사용해도 문제없이 동작한다.
      • 실제 포트 주소/MAC연결 정보는 수신 라우터만이 갖고 있다(상세 구현의 캡슐화).
      • VRF 사용 시, 라우팅 프로토콜에서 내 포트의 MAC 주소값만 가상의 값으로 수정해서 보내면 된다.
    • 또한, RD 별로 다른 라우팅 프로토콜을 동작하게 할 수도 있다.
    • 최근의 라우터는 성능이 매우 놓기 때문에, 어지간한 상황에서도 처리 부족 상태가 되지 않고, VRF를 이용해 관리할 라우터의 수를 줄일 수 있다.
  • 이 또한 IaC로 정의되기도 한다.

정책 기반 라우팅(PBR)

  • 수신지 네트워크에 기반한 라우팅이 아닌, 정책에 기반한 라우팅을 의미한다.
  • 특정 안건에 대해 수신지를 바꾸는 방식을 의미한다.
  • 이 또한 IaC로 정의되기도 한다.

'CS Repo > 네트워크 - Top-down Approach + @' 카테고리의 다른 글

NAT  (0) 2025.04.17
IP 주소 할당 방법 - 정적 할당, 동적 할당(DHCP)  (0) 2025.04.17
IPv4  (0) 2025.04.16
IPv4 주소와 서브넷 마스크  (0) 2025.04.16
IPv4 패킷의 구조  (0) 2025.04.16