본문 바로가기
AWS

[AWS] 라우팅 테이블

by 가영리 2023. 11. 30.
728x90

라우팅이란?

라우팅은 네트워크에서 경로를 선택하는 프로세스이다. 컴퓨터 네트워크는 node라고 하는 여러 시스템과 이러한 노드를 연결하는 경로 또는 링크로 구성된다. 상호 연결된 네트워크에서 두 노드 간의 통신은 여러 경로로 통해 이루어질 수 있는데 이때 라우팅을 이용해 미리 정해진 규칙을 사용하여 경로를 선택하는 프로세스를 제공한다.

라우터란?

라우터는 컴퓨팅 디바이스와 네트워크를 다른 네트워크에 연결하는 네트워킹 디바이스이다.

라우터 기능

  • 경로 결정 - 소스에서 대상으로 이동하는 데이터의 경로를 결정한다.
  • 데이터 전달 - 선택한 경로의 다음 디바이스로 데이터를 전달한다.
  • 로드 밸런싱 - 경우에 따라 라우터가 여러 경로를 사용하여 동일한 데이터 패킷의 여러 사본을 전송할 수도 있다. 이 방법을 통해 데이터 손실로 인한 오류를 줄이고 이중화를 구현하고 트래픽 볼륨을 관리한다.

라우팅 작동 원리

  1. 데이터 패킷이 라우터에 도착하면 라우팅 테이블에서 주소를 찾는다.
  2. 라우터는 패킷을 네트워크의 다음 지점으로 전달하거나 이동한다.
예를 들어 사무실 네트워크의 컴퓨터에서 웹 사이트를 방문하면, 데이터 패킷이 먼저 사무실 네트워크 라우터로 이동한다. 라우터가 헤더 패킷을 조회하고 패킷 대상을 결정한다. 그런 다음 내부 라우팅 테이블을 조회하고, 네트워크 자체 내에서 패킷을 다음 라우터로 전달하거나 프린터와 같은 다른 디바이스로 전달한다.

AWS에서 지원하는 라우팅 서비스

AWS Trasit Gateway

클라우드 라우터 역할을 하며, 중앙 허브를 통해 VPC와 온프레미스 네트워크를 연결한다. 네트워크 확장 시 증가하는 연결 관리로 인한 복잡성이 발생하지 않는다. 글로벌 애플리케이션을 구축하는 경우 리전 간 피어링을 사용하여 여러 AWS Transit Gateway를 연결할 수 있다.

Amazon Route 53

Amazon Route 53 Traffic Flow를 사용하면 다양한 라우팅 유형을 통해 전역적으로 트래픽을 손쉽게 관리하면서 지연 시간이 짧고 내결함성이 있는 아키텍처를 만들 수 있다.

Amazon Virtual Private Cloud(VPC)

AWS 리소스에 대한 논리적으로 격리된 가상 네트워크를 제공한다. Amazon VPC 라우팅 테이블을 사용하여, VPC를 실행하는 리소스가 다른 VPC, 온프레미스 또는 인터넷에서 실행 중인 리소스에 액세스하거나 해당 리소스와 통신하는 방법을 정의할 수 있다. VPC 라우팅 테이블을 보안 그룹 및 AWS Identity and Access Management(IAM) 정책과 함께 사용하여, VPC가 환경의 다른 리소스에 연결하는 방법을 세부적으로 제어할 수 있다.

라우팅 테이블 개념

중요한 개념은 기본 라우팅 테이블, 사용자 지정 라우팅 테이블, 대상이다.

  • 기본 라우팅 테이블 : VPC와 자동적으로 딸려오는 라우팅 테이블. 다른 라우팅 테이블과 분명하게 연결이 된 모든 서브넷을 위한 라우팅을 조정한다. 
  • 사용자 지정 라우팅 테이블 : VPC를 위해 만든 라우팅 테이블 (기본적으로 생성된 메인 라우팅테이블과 달리 따로 만든 것!)
  • 대상 주소 : destination 트래픽을 보낼 게이트웨이, 네트워크 인터페이스(네트워크를 위한 물리 링크 연결, 라우터 등) 혹은 연결. 예를들어 인터넷 게이트웨이 -- destination보다 작은 개념
  • 대상 : 인터넷 게이트웨이 또는 ENI 등 AWS 네트워크 리소스여야 한다.
  • 라우팅테이블 연결: 라우팅 테이블과 서브넷, 인터넷 게이트웨이 혹은 가상 사설 게이트웨이(virtual private gateway) 사이의 연결
  • 서브넷 라우팅 테이블 : 서브넷과 연결된 라우팅 테이블
  • 로컬 라우트 : VPC 내에서 통신을 위한 기본 라우트
  • 전파 : 라우트 전파는 가상 사설 게이트웨이가 자동으로 라우팅 테이블들에게 라우트를 전파하게한다. 즉, 라우팅 테이블에 수동으로 VPN(가상사설망) 라우트를 입력할 필요가 없다.
  • 게이트웨이 라우팅 테이블: 인터넷 게이트웨이 혹은 가상 사설 게이트웨이와 연결된 라우팅 테이블
  • 엣지 연결: 내부로 들어오는 VPC 트래픽을 기기로 라우트하는데 사용하는 라우팅 테이블. 라우팅테이블과 인터넷게이트웨이 혹은 가상사설게이트웨이와 연결하고 VPC 트래픽을 위한 타겟으로서 기기의 네트워크 인터페이스를 명시한다.
  • 전송 게이트웨이 라우팅 테이블(Transit gateway route table): 전송 게이트웨이(고객이 자신이 VPC와 온프레미스 네트워크를 단일 게이트웨이에 연결할 수 있도록 지원해 주는 서비스))와 연결된 라우팅 테이블
  • 로컬 게이트웨이 라우팅 테이블(Local gateway route table): AWS Outposts(일관된 하이브리드 환경을 위해 동일한 AWS 인프라, AWS 서비스, API 및 도구를 모든 데이터 센터, 코로케이션 공간, 온프레미스 시설에 제공하는 완전관리형 서비스) 로컬 게이트웨이와 연결된 라우팅 테이블
쉽게 생각하자면 네트워크 트래픽을 위한 VPC게이트웨이 사이에서 통로 역할을 해준다고 생각하면 된다.

 

서브넷 라우팅 테이블 

VPC에는 암시적 라우터가 있으며 라우팅 테이블을 사용하여 네트워크 트래픽이 전달되는 위치를 제어한다. VPC의 각 서브넷은 라우팅 테이블에 연결해야 합니다. 라우팅 테이블에서는 서브넷에 대한 라우팅을 제어한다(서브넷 라우팅 테이블). 또한 서브넷을 특정 라우팅 테이블과 명시적으로 연결할 수 있다. 그렇지 않으면 서브넷이 기본 라우팅 테이블과 암시적으로 연결된다. 서브넷은 한 번에 하나의 라우팅 테이블에만 연결할 수 있지만 여러 서브넷을 동일한 서브넷 라우팅 테이블에 연결할 수 있다.

출처 : https://err-bzz.oopy.io/c4abbed2-fc30-4061-81b0-2803c4a59809

위 그림을 살펴보면 라우팅 테이블엔 0개 이상의 서브넷이 연결될 수 있으며, 서브넷은 최대 1개의 라우팅 테이블에만 연결할 수 있다. 

 

라우팅

테이블의 각 라우팅은 목적지 및 대상을 지정한다.

대상 주소(destination) : CIDR 표기법으로 작성된 IPv4 또는 IPv6이어야 한다.

대상(target) : 인터넷 게이트웨이 또는 ENI 등 AWS 네트워크 리소스여야 한다.

출처 : https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/VPC_Route_Tables.html#subnet-route-tables

위의 예시는 서브넷이 인터넷 게이트웨이를 통해 인터넷에 액세스할 수 있도록 서브넷 라우팅 테이블에 라우팅을 추가한 것이다. 대상 주소 0.0.0.0/0은 모든 IPv4 주소를 나타내고, 대상 igw-id는 VPC에 연결된 인터넷 게이트웨이이다. 

 

아래의 예시에서 VPC에는 IPv4 CIDR 블록 및 IPv6 CIDR 블록이 모두 있다고 가정했을 때, IPv4 및 IPv6 트래픽은 다음 라우팅 테이블에 표시된 것처럼 별도로 처리된다.

출처 : https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/VPC_Route_Tables.html#subnet-route-tables

  • VPC(10.0.0.0/16) 내에서 라우팅되는 IPv4 트래픽은 Local 경로로 처리
  • VPC(2001:db8:1234:1a00::/56) 내에서 라우팅되는 IPv6 트래픽은 Local 경로로 처리
  • 172.31.0.0/16의 경로는 피어링 연결로 트래픽을 전송
  • 모든 IPv4 트래픽(0.0.0.0/0)의 경로는 인터넷 게이트웨이로 트래픽을 전송, 따라서 VPC 내 그리고 피어링 연결을 통한 트래픽을 제외한 모든 IPv4 트래픽은 인터넷 게이트웨이로 라우팅
  • 모든 IPv6 트래픽(::/0)의 경로는 외부 전용 인터넷 게이트웨이로 트래픽을 전송, 따라서 VPC 내 트래픽을 제외한 모든 IPv6 트래픽은 외부 전용 인터넷 게이트웨이로 라우팅
IPv4 및 IPv6 CIDR 블록은 별도로 취급된다는 점에 주의해야 한다. 예를 들어 대상 CIDR이 0.0.0.0/0인 라우팅에는 모든 IPv6 주소가 자동으로 포함되지 않는다. 모든 IPv6 주소에 대해 대상 CIDR이 ::/0인 라우팅을 생성해야 한다.

 

기본 라우팅 테이블

VPC를 만들면 기본 라우팅 테이블이 자동으로 생성된다. 이 라우트 테이블에는 로컬 라우트가포함 되어 있어 인스턴스가 다른 서브넷으로 이동해 서로 소통할 수 있도록 한다. 따라서 아무런 라우팅 테이블이 연결되어 있지 않은 서브넷이라도 VPC 내부 통신이 가능하게 된다.서브넷이 라우팅 테이블과 명시적으로 연결되지 않은 경우 서브넷은 기본 라우팅 테이블을 기본적으로 사용한다.

 

사용자 지정 라우팅 테이블

기본적으로 라우팅 테이블에는 VPC 내부 통신을 위한 로컬 라우팅이 포함되어있다. 만약 퍼블릭 서브넷을 생성하 Amazon VPC는 사용자 지정 라우팅 테이블을 만들고 인터넷 게이트웨이를 가리키는 경로를 추가한다. VPC를 보호하는 한 가지 방법은 기본 라우팅 테이블을 원래 기본 상태로 두는 것이다. 그런 다음 생성한 각 새 서브넷을 생성한 사용자 지정 라우팅 테이블 중 하나에 명시적으로 연결한다. 이렇게 하면 각 서브넷이 트래픽으로 어떻게 라우팅되는지를 명시적으로 제어할 수 있다.

 

서브넷 라우팅 테이블 연결

서브넷은 사용자 지정 라우팅 테이블과 명시적으로 연결되거나 기본 라우팅 테이블과 암시적 또는 명시적으로 연결될 수 있다. 아래의 다이어그램은 인터넷 게이트웨이, 가상 프라이빗 게이트웨이, 퍼블릭 서브넷 및 VPN 전용 서브넷이 있는 VPC의 라우팅이다.

출처 : https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/VPC_Route_Tables.html#subnet-route-tables
A

라우팅 테이블 A는 퍼블릭 서브넷과 명시적으로 연결되는 사용자 지정 라우팅 테이블이다. 연결 서브넷은 모든 트래픽을 인터넷 게이트웨이로 보내는 경로가 있기 때문에 퍼블릭 서브넷이 된다.

 

 

라우팅 테이블 B는 기본 라우팅 테이블이다. 프라이빗 서브넷과는 묵시적으로 연결된다. 이 서브넷은 모든 트래픽을 가상 프라이빗 게이트웨이로 보내는 경로는 있지만 인터넷 게이트웨이로 보내는 경로는 없기 때문에 VPN 전용 서브넷이 된다.

 

 

게이트웨이 라우팅 테이블

라우팅 테이블이 게이트웨이와 연결된 경우를 게이트웨이 라우팅 테이블이라고 한다.

  • 인터넷 게이트웨이와 연결된 게이트웨이 라우팅 테이블은 다음 대상을 가진 경로를 지원한다.
    1. 기본 로컬 경로
    2. Gateway Load Balancer 엔드포인트
    3. 미들박스 어플라이언스에 대한 네트워크 인터페이스
  • 가상 프라이빗 게이트웨이와 연결된 게이트웨이 라우팅 테이블은 다음 대상을 가진 경로를 지원한다.
    1. 기본 로컬경로
    2. Gateway Load Balancer 엔드포인트
    3. 미들박스 어플라이언스에 대한 네트워크 인터페이스