라우트 작성

라우트를 구성하여 VPC에서 네트워크 트래픽의 플로우를 제어할 수 있습니다. 목적지 주소에 따라 패킷의 다음 홉을 지정하려면 VPC 라우트를 사용하십시오.

VPC에 있는 각각의 구역에 대해 여러 라우팅 테이블이 존재합니다. 출력 트래픽의 경우, 패킷이 서브넷을 떠날 때 시스템은 해당 패킷의 목적지를 서브넷이 속한 영역의 라우팅 테이블과 대조하여 패킷을 다음으로 어디로 보낼지 결정합니다. 각 VPC에는 사용자가 서브넷을 명시적으로 다른 서브넷에 연결하지 않는 한 모든 서브넷에 연결되는 기본 라우팅 테이블이 있습니다.

VPC 사용자 정의 경로는 네 가지 주요 구성 요소로 이루어져 있습니다:

  • 목적지 CIDR: 이 경로가 적용되는 목적지 IP 주소 범위를 지정합니다.

  • 다음 홉: 경로 동작이 Deliver``일 때, 해당 조건에 맞는 트래픽이 전달될 IP 주소를 지정합니다.

    기존 라우트의 다음 홉 IP 주소를 편집할 수 있습니다.

  • 영역: 경로가 평가될 영역을 지정합니다. 출구 경로의 경우, ‘구역’은 일반적으로 트래픽의 발신지가 되는 구역을 의미합니다. 인그레스 경로의 경우, ‘존’이란 들어오는 트래픽이 처리되는 존이자 다음 홉이 반드시 존재해야 하는 존을 의미합니다.

  • 조치: 일치하는 트래픽을 전달, 위임 또는 폐기하는 등 해당 트래픽을 처리하는 방식을 지정합니다.

지정된 VPC 구역에서 발생했으며 목적지 주소가 지정된 목적지 CIDR 내에 있는 트래픽은 모두 다음 홉으로 라우팅됩니다. 목적지 주소가 복수의 VPC 라우트에 대한 목적지 CIDR 내에 있는 경우 가장 특정한 라우트가 사용됩니다. VPC에 둘 이상의 동일한 특정 라우트가 존재하는 경우 트래픽은 각각의 라우트 사이에 라운드 로빈 방식으로 분배됩니다.

각 라우트에는 접두부 길이(/2410.2.0.0/24)가 포함된 목적지 특성이 있습니다. 사용자 정의 라우팅 테이블별로 지원되는 고유한 접두부 길이의 수는 14입니다. 접두부 수가 동일한 다중 라우트는 하나의 고유 접두부로만 계산됩니다.

VPC 주소 접두부는 더 이상 RFC-1918 주소로 제한되지 않습니다. 이제 새 ‘ Delegate-VPC ’ 동작이 포함된 사용자 지정 경로를 사용하여, ‘ non-RFC-1918 ’ 주소를 모두 사용하고 공용 연결(플로팅 IP 주소 또는 공용 게이트웨이)을 갖춘 VPC를 구성해야 합니다. non-RFC-1918 를 준수하며 VPC 외부에 위치한 대상 CIDR의 경우, 이 작업을 반드시 지정해야 합니다. 예를 들어, Direct Link, Transit Gateway 또는 VPC 클래식 액세스를 통해 연결 가능한 대상의 경우입니다. Delegate-VPC 조치 사용 시점에 대한 자세한 정보는 IANA 등록 IP 지정을 위한 라우팅 고려사항을 참조하십시오.

둘 다 true이면 Delegate-VPC 조치가 필요합니다.

  • VPC가 비RFC-1918 주소를 사용합니다.
  • VPC에는 공용 연결이 있습니다.

다음과 같은 경우에는 Delegate-VPC 조치가 필요하지 않습니다.

  • VPC가 RFC-1918 주소만 사용합니다.
  • VPC에는 공용 연결이 없습니다.

사용자 지정 경로를 생성하기 전에, ‘라우팅 테이블 및 경로에 대해’를 검토하여 인그레스 및 이그레스 라우팅 동작을 이해하시기 바랍니다.

콘솔, CLI, API 또는 Terraform을 사용하여 IBM Cloud 서비스에 대한 경로를 생성할 수 있습니다.

콘솔에서 경로 생성하기

콘솔에서 경로를 생성하려면 다음 단계를 따르세요:

  1. 제한사항 및 가이드라인 을 검토하십시오.

  2. IBM Cloud 콘솔에서 탐색 메뉴 탐색 메뉴 아이콘을 선택한 다음 인프라 VPC 아이콘 > 네트워크 > 라우팅 테이블을 클릭합니다. VPC용 라우팅 테이블 페이지가 표시됩니다.

  3. 확인하려는 라우팅 테이블과 연결된 VPC를 선택하십시오. 그런 다음 라우팅 테이블의 이름을 클릭하여 세부사항을 표시하십시오.

  4. 라우트 섹션으로 스크롤하여 작성을 클릭하십시오.

  5. ‘경로 생성’ 사이드 패널에서 다음 정보를 입력하세요:

    • 구역-라우트에 대한 가용성 구역을 선택하십시오.

    • 이름- 새 경로의 이름을 입력하세요.

    • 목적지 CIDR-라우트의 목적지 CIDR (예: 10.0.0.0/16).

    • 우선순위- 0 에서 4 까지의 우선순위를 입력하십시오. 기본값은 2입니다. 자세한 정보는 라우트 환경 설정 판별 을 참조하십시오.

    • 작업- 경로와 일치하는 패킷에 대해 수행할 작업. 값은 다음과 같습니다.

      • 위임 - 시스템 라우팅 테이블을 사용하여 패킷을 라우트합니다.
      • 위임 VPC - 시스템의 기본 제공 라우트에 위임하고 인터넷 바인드 라우트를 무시합니다. VPC가 비RFC-1918 주소를 사용하고 공용 연결이 있는 경우에는 필수입니다. 자세한 내용은 IANA 등록 IP 지정을 위한 라우팅 고려사항을 참조하십시오.
      • 전달 - 패킷을 다음 홉 대상으로 라우트합니다. 동일한 주소 접두부가 있는 다중 라우트를 추가할 수 있습니다. 가상 라우터는 상이한 다음 홉 IP 주소를 사용하여 동일 비용 다중 경로 라우팅(ECMP)을 수행합니다.
      • 삭제 - 패킷을 삭제합니다.

    트래픽 송신 서브넷은 서브넷과 연관된 사용자 정의 라우팅 테이블을 사용합니다. 사용자 정의 라우팅 테이블에 일치하는 경로가 없으면 VPC 시스템 라우팅 테이블을 사용하여 라우팅이 계속됩니다. 삭제 조치가 있는 사용자 정의 라우팅 테이블 기본 라우트를 사용하면 이 동작을 피할 수 있습니다.

    • 유형- IP 주소 또는 VPN 연결 중 하나를 선택하십시오.

    • 다음 홉 (IP 주소)-다음 홉을 입력하십시오.

      기존 라우트의 다음 홉 IP 주소를 수정할 수 있습니다.

    • 광고-유입 소스에 광고합니다. 현재 Direct Link 및 Transit Gateway 가 지원됩니다. 선택사항입니다.

  6. 저장을 클릭하여 새 라우트를 저장하십시오. 라우트가 라우팅 테이블 세부사항 페이지에 표시됩니다.

CLI에서 경로 생성하기

시작하기 전에 CLI 환경을 설정 하십시오.

CLI에서 VPC 경로를 생성하려면 다음 명령어를 실행하십시오:

ibmcloud is vpc-routing-table-route-create VPC ROUTING_TABLE --zone ZONE_NAME --destination DESTINATION_CIDR [--action delegate_vpc | delegate | deliver | drop] [--priority PRIORITY] [--next-hop NEXT_HOP [--vpngw VPNGW]][--advertise true | false] [--name NAME] [--output JSON] [-q, --quiet]

여기서:

VPC
VPC의 ID 또는 이름입니다.
ROUTING_TABLE
VPC 라우팅 테이블의 ID 또는 이름.
--zone
구역의 이름.
--destination
라우트의 대상 CIDR입니다. 테이블 내의 각 구역당 최대 두 개의 경로만 동일한 목적지를 가질 수 있으며, 이는 두 경로의 동작이 모두 ‘ deliver ’인 경우에만 해당됩니다.
--action
라우트와 일치하는 패킷에 대해 수행할 조치입니다. 다음 중 하나: delegate_vpc, delegate, deliver, drop. 기본값: deliver
--priority
라우트의 우선 순위입니다. 중 하나: 0, 1, 2, 3, 4. 기본값: 2. 값이 낮을수록 우선순위가 높습니다. 사용자 지정 라우팅 테이블에 목적지가 동일한 경로가 포함된 경우 우선 순위가 가장 높은(값이 가장 낮은) 경로가 선택됩니다.
--next-hop
작업이 ‘ deliver ’인 경우, 패킷을 라우팅할 다음 홉의 IP 주소 또는 VPN 연결 ID를 입력하십시오.
--vpngw
VPN 게이트웨이의 이름입니다.
--advertise
직접 링크, Transit Gateway 또는 두 Ingress 소스 모두에 광고하십시오. true 의 한 작품, false.
--name
VPC 라우팅 테이블의 이름입니다.
--output
출력 형식입니다. json 중 하나입니다.
--q, quiet
상세 출력이 표시되지 않도록 합니다.

CLI 예제

  • 구역 이름, 목적지 CIDR 및 다음 홉(IP 주소)을 지정하여 경로를 생성합니다:

    ibmcloud is vpc-routing-table-route-create r134-b754e387-8b06-43be-a5ea-909595a50676 r134-6cfaceb8-99d6-4743-bee8-ebbcbba6a563 --zone us-south-1 --destination 10.2.2.0/24 --action deliver --priority 1 --next-hop 10.0.0.2 --name my-vpc-route
    
  • VPN 연결 ID로 영역 이름, 목적지 CIDR 및 다음 홉을 지정하여 경로를 생성합니다:

    ibmcloud is vpc-routing-table-route-create r134-b754e387-8b06-43be-a5ea-909595a50676 r134-6cfaceb8-99d6-4743-bee8-ebbcbba6a563 --zone us-south-1 --destination 10.2.2.0/24 --action deliver --priority 1 --next-hop 02h7-1cf20e69-e2ce-400b-b070-0897521e2eb6 --name my-vpc-route
    

API를 사용하여 경로 생성하기

API를 사용하여 목적지 경로를 생성하려면 다음 단계를 따르세요:

  1. API 환경을 설정하십시오.

  2. API 명령에 사용될 다음 변수의 값을 저장하십시오.

    export VpcId=<your_vpc_id>
    export RoutingTableId=<your_routing_table_id>
    
  3. next_hop 을 IP 주소 또는 VPN 연결 ID로 지정하여 경로를 생성합니다:

    curl -X POST "$vpc_api_endpoint/v1/vpcs/$VpcId/routing_tables/$RoutingTableId/routes?version=$api_version&generation=2" \
    -H "Authorization: Bearer $iam_token" \
    -d '{
         "name": "my-new-route",
         "zone": {"name": "us-south-2"},
         "action": "deliver",
         "destination": "10.10.10.0/24",
         "next_hop": {"address": "10.0.0.3"}
       }'
    
    curl -X POST "$vpc_api_endpoint/v1/vpcs/$VpcId/routing_tables/$RoutingTableId/routes?version=$api_version&generation=2" \
    -H "Authorization: Bearer $iam_token" \
    -d '{
         "name": "my-new-route",
         "zone": {"name": "us-south-2"},
         "action": "deliver",
         "destination": "10.10.10.0/24",
         "next_hop": {"id": "02h7-1cf20e69-e2ce-400b-b070-0897521e2eb6"}
       }'
    

자세한 내용과 선택적 매개변수에 대해서는 VPC API 참조 서의 VPC 라우팅 테이블에서 경로 생성 항목을 참조하십시오.

Terraform을 사용하여 라우트 작성

Terraform을 사용하여 라우트를 작성하려면 다음 단계를 따르십시오.

  1. Terraform 환경을 설정하세요.

  2. 라우트를 작성하십시오.

    resource "ibm_is_vpc_routing_table_route" "example" {
      vpc           = ibm_is_vpc.example.id
      routing_table = ibm_is_vpc_routing_table.example.routing_table
      zone          = "us-south-1"
      name          = "custom-route-2"
      destination   = "192.168.4.0/24"
      action        = "deliver"
      next_hop      = ibm_is_vpn_gateway_connection.example.gateway_connection // Example value "10.0.0.4"
    }
    

자원에 ibm_is_vpc_routing_table_route 대한 자세한 내용은 Terraform 레지스트리를 참조하십시오.