Frinee의 코드저장소

라우터/L3 스위치: 3계층 장비

by Frinee

이 글은 고재성, 이상훈 저 - "IT 엔지니어를 위한 네트워크 입문"를 공부하고 정리하여 작성하였습니다.

 

1. 라우터의 동작 방식과 역할

  • 다양한 경로 정보를 수집해 최적의 경로를 라우팅 테이블에 저장
  • 패킷이 라우터로 들어오면 도착지 IP 주소와 라우팅 테이블을 비교해 최선의 경로로 패킷 전달
  • 패킷 포워딩 과정에서 기존 2계층 헤더 정보를 제거한 후 새로운 2계층 헤더를 제작
  • 이 동작 방식을 경로 지정, 브로드캐스트 컨트롤, 프로토콜 변환이라 함.

1.1. 경로 지정

  • 경로 정보를 모아 라우팅 테이블을 만들고 패킷의 도착지 IP주소를 확인해 경로를 지정하여 패킷을 포워딩함.
  • 경로 정보를 얻는 역할경로 정보를 확인하고 패킷을 포워딩하는 역할을 수행
  • 경로 정보를 얻는 방법
    1. IP 주소를 입력하면서 얻는 방법
    2. 관리자가 직접 입력하는 방법
    3. 라우터끼리 서로 경로 정보를 자동으로 교환하는 방법 등

1.2. 브로트캐스트 컨트롤

  • 라우터는 분명한 도착지 정보가 있을 때만 통신을 허락함.
  • 라우터의 기본 동작은 멀티캐스트 정보를 습득하지 않고 브로드캐스트 패킷을 전달하지 않음
  • 이 기능을 “브로드캐스트 컨트롤/멀티캐스트 컨트롤”이라 함.

1.3. 프로토콜 변환

  • 서로 다른 프로토콜로 구성된 네트워크를 연결하는 역할
  • 패킷이 들어오면 2계층까지의 헤더 정보를 벗겨내고 3계층 주소를 확인
  • 3계층 주소를 확인한 후 2계층 헤더 정보를 새로 만들어 외부로 내보냄
  • 저속 전용회선
    • WAN 구간: PPP 프로토콜 사용
    • LAN 구간: 이더넷 프로토콜 사용

2. 경로 지정 - 라우팅/스위칭

  • 라우터가 패킷을 처리할 때 두 가지 작업을 수행
    • 경로 정보를 얻어 경로 정보를 정리하는 역할
    • 정리된 경로 정보를 기반으로 패킷을 포워딩하는 역할
  • 라우터는 서브넷 단위로 라우팅 정보를 습득하고 라우팅 정보를 최적화하기 위해 서머리(summary) 작업을 통해 여러 개의 서브넷 정보를 뭉쳐 전달
  • 목적지 주소와 라우팅 테이블 정보가 정확히 일치하지 않더라도 목적지에 가장 근접한 정보를 찾아 패킷을 포워딩해야 함

2.1. 라우팅 동작과 라우팅 테이블

  1. 라우팅 동작
    • 인접한 라우터까지만 경로를 지정하면 인접 라우터에서 최적의 경로를 다시 파악한 후 라우터로 패킷을 포워딩함.
    • 이 기법을 홉-바이-홉(Hop-by-Hop) 라우팅이라 부르고 인접한 라우터를 넥스트 홉(Next Hop)이라 부름
    • 라우터는 패킷이 목적지로 가는 전체 경로를 파악하지 않고 최적의 넥스트 홉을 선택해 보내줌
    • 넥스트 홉을 지정하는 방법
      1. 다음 라우터의 IP를 지정하는 방법
      2. 라우터의 나가는 인터페이스를 지정하는 방법
      3. 라우터의 나가는 인터페이스와 다음 라우터의 IP를 동시에 지정하는 방법
    • 일반적으로는 라우터의 인터페이스 IP 주소를 지정하는 방법을 사용
    • 상대방의 넥스트 홉 MAC 주소 정보를 알 때만 라우터의 나가는 인터페이스를 지정하는 방법을 쓸 수 있음
      • WAN구간의 PPP나 HLDC와 같은 프로토콜에서 MAC주소를 알 필요가 없는 경우
      • 상대방 라우터에서 프록시 ARP가 동작해 상대방 MAC 주소를 아는 경우
  2. 라우팅 테이블
    • 라우터가 패킷 포워딩 경로를 설정할 때는 출발지는 고려하지 않음
    • 목적지 주소와 라우팅 테이블을 비교해 경로 포워딩을 결정함.
    • 라우팅 테이블을 만들 때는 목적지 정보만 수집하고 목적지 주소를 확인해 패킷을 포워딩
    • 라우팅 테이블에 저장하는 정보
      • 목적지 주소
      • 넥스트 홉 IP 주소, 나가는 인터페이스 (선택 가능)
    • 소스 라우팅(Source Routing) 혹은 폴리시 라우팅(Policy Routing)
      • 라우터에서 패킷의 출발지 주소를 활용한 PBR(Policy-Based Routing) 기능을 사용하기도 함
      • 이때는 라우팅 정책과 관련된 별도의 설정이 필요
      • 관리가 어렵고 문제 발생 시 해결이 어려워 특별한 목적에서만 사용

소스 라우팅과 PBR, 정책 라우팅

더보기
  • PBR은 출발지 IP뿐만 아니라 도착지IP, 포트 번호와 같은 다양한 조건을 합쳐 사용할 수 있음
  • PBR은 출발지 주소를 이용해 경로를 지정한다는 이유로 소스 라우팅이라 부르기도 하는데
  • 소스 라우팅의 원래 의미는 출발지에서 경로를 지정하는 것으로 의미가 약간 다름

루프가 없는 3계층: TTL (Time To Live)

더보기
  • IP 헤더에는 TTL이라는 필드가 존재하여 살아 있는 시간이 제한됨
  • TTL 값의 단위는 홉 단위이며 하나의 홉을 지날 때마다 1씩 줄어듦

2.2. 라우팅(라우터가 경로 정보를 얻는 방법)

  • 크게 3가지로 구분함
    1. 다이렉트 커넥티드
    2. 스태틱 라우팅
    3. 다이나믹 라우팅
  1. 다이렉트 커넥티드
    • 사용된 IP 주소와 서브넷 마스크로 속한 네트워크 주소 정보를 알 수 있음
    • 이 정보로 해당 네트워크에 대한 라우팅 테이블을 자동으로 만듦
    • 이 경로 정보를 다이렉트 커넥티드라 함.
    • 다이렉트 커넥티드로 생성된 경로 정보는 강제로 지울 수 없고 해당 네트워크 설정을 지우거나 네트워크 인터페이스가 비활성화되야 자동으로 사라짐
  2. 스태틱 라우팅
    • 관리자가 목적지 네트워크와 넥스트 홉을 라우터에 직접 지정해 경로 정보를 입력하는 방식
    • 라우팅 정보를 매우 직관적으로 설정하고 관리할 수 있음
    • 다이렉트 커넥티드처럼 연결된 인터페이스 정보가 삭제되거나 비활성화되면 라우팅 정보가 자동 삭제됨.
    • 논리 인터페이스는 물리 인터페이스가 비활성화되더라도 남아 있는 경우도 있어 라우팅 테이블에서 사라지지 않음
    • 단점
      • 스태틱 라우팅은 라우터 너머의 다른 라우터 상태 정보 파악이 어려움
      • 그래서 라우터 사이의 회선이나 장애가 발생할 경우 대처가 어려운 문제가 있음
      • 그리고 관리해야 할 네트워크 수가 많아지고 복잡해지면 관리자가 직접 관리하기 어려움
  3. 다이나믹 라우팅
    • 라우터끼리 자신이 알고 있는 경로 정보, 링크 상태 정보를 교환해 전체 네트워크 정보를 학습
    • 주기적으로 경로 정보가 교환되므로 문제 발생 시 인지하여 대체 경로로 패킷 포워딩하는 것이 가능
    • 다이나믹 라우팅에서는 자신이 광고할 네트워크를 선언해야 함
    • 다이나믹 라우팅은 세부적으로 여러 종류로 분류할 수 있음
    • 라우팅의 역할은 다양한 경로 정보를 체계적으로 데이터베이스화하여 순위를 적절히 부여해 최적의 경로 정보만을 수집하는 것이기도 함
    • 라우터가 수집한 경로 정보, 원시 데이터를 토폴로지 테이블이라 함
    • 그 중에서 최적의 경로를 저장하는 테이블을 라우팅 테이블이라 함.
    • 패킷을 보낼 때는 전체 경로가 아닌 다음 라우터까지만의 최적의 경로로 포워딩을 한다는 것

2.3. 스위칭(라우터가 경로를 지정하는 방법)

  • 라우터가 최적 경로 정보를 유지하는 것은 라우터가 최선의 경로로 패킷을 빨리 포워딩하는 것을 지원하기 위함
  • 스위칭: 패킷이 들어와 라우팅 테이블을 참조하여 최적의 경로를 찾아 포워딩하는 작업을 일컬음
  • 패킷의 목적지가 일치하지 않은 경우도 발생하는데 이땐 Longest Prefix Match 기법을 이용해 가진 경로 중 가장 가까운 경로를 선택함.
  • 사실 이 작업은 부정확한 정보 중 가장 비슷한 정보를 찾는 작업이라서 많은 부하가 걸리는 작업
  • 그래서 한 번 스위칭을 수행한 정보를 캐시에 저장하고 뒤의 작업을 수행할 때 우선적으로 캐시 정보를 먼저 확인
  • 캐시 기술의 경우 출발지 IP, 목적지 IP, 포트 번호 정보, 넥스트 홉 L2 정보까지 포함해 저장하는 경우도 있음
  • 레디스(Redis)와 같은 메모리 캐시를 이용해 데이터베이스 부하를 줄이는 기법과 유사

Longest Prefix Match

더보기
  • 자신이 갖고 있는 라우팅 테이블에서 가장 좋은 항목을 찾는 알고리즘
  • Maximum Prefix Length Match라고도 합니다.
  • LPM(Longest Prefix Match Table): 라우터나 스위치에서 관리할 수 있는 라우팅 테이블

2.4. 라우팅, 스위칭 우선순위

  • 좋은 경로 정보 우선순위는 경로 정보를 받은 방법거리를 기준으로 정함
    • 관리자를 통한 경로 학습의 우선순위가 더 높음
    • 동일한 방식에서는 코스트가 낮은 쪽이 우선순위가 높음
  • 목적지 네트워크 정보가 동일한 서브넷을 사용하는 경우, 정보를 얻은 소스에 따라 가중치를 정하게 됨
    1. 내가 갖고 있는 네트워크(다이렉트 커넥티드)
    2. 내가 경로를 직접 지정한 네트워크(스태틱 라우팅)
    3. 경로를 전달받은 네트워크(다이나믹 라우팅)
  • 가중치 순서는 1 > 2 > 3 으로 기본적인 우선순위는 정해져 있지만 필요에 따라 관리자가 우선순위를 조정할 수 있음
  • 이런 우선순위를 AD(Administrative Distance: 관리 거리)라 부르며 라우터 생산업체에 따라 조금씩 다름

[AD 값 표]

우선순위 기본 디스턴스
0 Connected Interface
1 Static Route
20 External BGP
110 OSPF
115 IS-IS
120 RIP
200 Internal BGP
255 Unknown
  • 가중치 값이 동일한 경우 코스트 값으로 정함
  • 코스트 값도 동일한 경우 ECMP(Equal-Cost Multi-Path) 기능으로 동일한 코스트 값을 가진 경로 값 정보를 활용해 트래픽을 분산함
  • 코스트 값은 일종의 거리를 나타내는 값이며 라우팅 프로토콜마다 기준이 다름
    • RIP: 홉 수, OSPF: 대역폭, EIGRP: 다양한 값들의 연산
  • 패킷을 스위칭할 때는 Longest Prefix Match 기법으로 우선순위를 정함.
  • 라우팅 우선순위
         
    우선순위 구분 적용 방법
    1 롱기스트 매치 스위칭
    2 AD(관리 거리) 라우팅
    3 코스트 라우팅
    4 부하 분산(ECMP) 라우팅

3. 라우팅 설정 방법

3.1. 다이렉트 커넥티드

  • 라우팅 테이블을 확인해 목적지가 다이렉트 커넥티드라면 라우터는 L2 통신으로 목적지에 도달
  • 외부 네트워크로 통신하려면 스태틱 라우팅이나 다이나믹 라우팅에서 얻은 원격지 네트워크에 대한 라우팅 정보도 있어야 함
  • IP주소를 잘못 설정하거나 서브넷 마스크를 정상 범위보다 작게 설정할 경우 다이렉트 커넥티드 라우팅 정보가 잘못 입력되게 됨

3.2. 스태틱 라우팅

  • 원격지 네트워크와 통신하려면 라우터에 직접 연결되지 않은 네트워크 정보를 입력해야 함
  • 다이렉트 커넥티드를 제외하고 라우팅 우선순위가 가장 높음
라우팅 설정 문법  
ip route NETWORK NETMAST NEXTHOP [네트워크 장비: 시스코]
ex) ip route 20.20.20.0 255.255.255.0 1.1.1.2
route add -net NETWORK/ Prefix gw NEXTHOP [서버 운영 체제: 리눅스]
  • “목적지(네트워크/호스트 - 서브넷/서브넷 마스크)로 가려면 패킷을 넥스트 홉으로 보내야 한다.” 라는 의미
  • 네트워크 규모가 매우 커지거나 인터넷 연결을 할 때에는 라우팅 처리에 어려움이 있음
  • 많은 라우팅 정보를 처리하기 위해서는 대용량의 인터넷 라우팅 전용 라우터가 필요함
  • 인터넷 라우팅 전용 라우터는 인터넷 사업자가 운영하기 때문에 우리가 이용하는데 문제가 없던 것
  • 인터넷 경로 정보를 받아 처리할 만큼 규모가 크지 않은 경우, 스태틱 라우팅을 확장한 디폴트 라우팅을 사용함
  • 디폴트 라우팅은 스태틱 라우팅의 IP주소와 서브넷 마스크를 모두 0으로 만든 방법
  • 서브넷 마스크를 이용해 네트워크를 뽑는 2진수 and 연산을 사용
    • 서브넷 마스크 1은 체크, 0은 체크하지 않음

※ 디폴트 게이트웨이: 라우팅 능력이 없는 장비에서 사용함

3.3. 다이나믹 라우팅

  • IT 환경을 구축할 때에는 SPoF를 없애기 위해 두 개 이상의 경로를 유지함
  • 스태틱 라우팅 만으로는 대체 경로를 구성하긴 힘듦
  • 네트워크 회선이 끊기거나 라우터에 장애가 발생하면 능동적으로 대처하기도 힘듦
  • 다이나믹 라우팅 프로토콜을 사용하면 라우터끼리 정보를 교환하여 경로정보를 최신으로 유지함
  • 라우터끼리도 자신들만의 프로토콜로 정보를 교환함

  • 일반적으로 라우팅 프로토콜은 유니캐스트 라우팅 프로토콜을 말함.
  1. 역할에 따른 분류
    • 인터넷에는 AS(Autonomous System)라는 자율 시스템이 존재
    • IGP(Interior Gateway Protocol): AS 내부에서 사용하는 라우팅 프로토콜
    • EGP(Exterior Gateway Protocol): AS 간 통신에 사용되는 라우팅 프로토콜
    • AS 내부의 연결은 효율성, AS와의 연결은 조직 간 정책이 더 중요함
  2. 동작 원리에 따른 분류
    • IGP 라우팅 프로토콜은 동작 원리에 따라 나뉨.
    1. 디스턴스 벡터
      • 인접한 라우터에서 경로 정보를 습득하는 라우팅 프로토콜
      • 시스코사가 개발한 IGRP, EIGRP 가 있음
      • 다른 라우터의 정보는 인접 라우터를 통해 간접적으로 전달 받음
      • 간단한 네트워크를 구축하는 데 많이 사용되었음
    2. 링크 스테이트
      • 라우터에 연결된 링크 상태를 서로 교환하고 각 네트워크 맵을 그리는 라우팅 프로토콜
      • 링크 상태를 교환하기 때문에 직접적인 상태 정보를 받을 수 있음
      • 링크 상태를 교환해 토폴로지 데이터베이스를 만들고 다시 SPF 알고리즘을 이용해 최단 경로 트리를 만듦
      • 최단 경로 트리를 이용해 최적의 경로를 선정한 후 라우팅 테이블에 정보를 추가함
      • 경로 파악 작업이 부하로 작용하여 네트워크 규모가 커지면 CPU와 메모리를 많이 소모함
      • 최적화를 위해 네트워크를 에어리어(AREA) 단위로 분리하고 분리된 에어리어 내에서만 링크 상태 정보를 교환, ex) OSPF
      • 에어리어 내부에서는 전체 링크 정보가 공유되고 외부의 라우터는 가공된 라우팅 테이블 형태로 정보를 전달
      • AREA 단위로 네트워크를 구분하고 확장하는 OSPF의 경우
        • ABR(Area Border Router): AREA 간 연결시키는 경계 라우터
        • ASBR(Autonomous System Border Router): OSPF가 아닌 다른 외부의 정보를 OSPF와 연결시켜주는 외곽 라우터
분류 방법 분류 설명
역할

EGP 서로 다른 AS 간 정보교환용 라우팅 프로토콜, BGP가 속함
IGP AS 내부에서 동작하는 라우팅 프로토콜로 RIP, EIGRP, OSPF, IS-IS 등이 있다.
동작원리 디스턴스 벡터 직접 연결된 장비가 보내준 정보를 기반으로 최적의 경로를 선정하는 라우팅 프로토콜로 RIP, BGP가 있다.
어드밴스드 디스턴스 벡터 디스턴스 벡터보다 다양한 경로 선정을 위한 요소가 있으며 직접 연결된 장비를 지난 장비까지 고려해 경로를 선정할 수 있다.
링크 스테이트 네트워크 망에 속한 장비가 보내준 정보를 기반으로 토폴로지 맵을 만들고 SPF 알고리즘을 이용해 최적의 경로를 선정한다. OSPF와 IS-IS가 속함

다이나믹 라우팅 활용 현황

더보기
  • RIP: 소형 네트워크에서 많이 쓰였지만 사용되지 않는 추세
  • EIGRP: RIP의 단점을 보완했지만 특정 업체(시스코)가 개발한 프로토콜이어서 활용성이 떨어져 대부분 사라짐
  • 최근에 BGP 사용이 늘어남
    • 다양한 프로토콜 정보를 한꺼번에 교환할 수 있음
    • AS 외부뿐만 아니라 내부에서도 사용 가능
    • 정책 기반 라우팅 프로토콜이어서 관리자 의도대로 경로를 변환할 수 있는 장점

 

자료

  • IT 엔지니어를 위한 네트워크 입문 (고재성, 이상훈 저, 2020.10)

블로그의 정보

프리니의 코드저장소

Frinee

활동하기