VPN 라우트 관리
각 클라이언트 대 사이트 VPN은 라우팅 테이블을 사용하여 네트워크 트래픽이 전달되는 대상 네트워크 라우트를 나열합니다. 대상 네트워크에 대한 액세스 권한이 있는 클라이언트를 지정하려면 각 클라이언트 대 사이트 VPN 라우트에 대한 권한 부여 규칙을 구성하십시오.
사설 IP는 정적이 아니며 언제든지 변경할 수 있습니다. 라우트를 작성하지 않고 사설 IP 주소를 사용해 보십시오.
클라이언트 대 사이트 VPN에서 분할 터널 사용
VPN이 분할 터널 구성에 설정되면, 클라이언트 대 사이트 VPN 서버 라우팅 테이블의 모든 라우트가 클라이언트 라우팅 테이블에 추가됩니다. 새 라우트가 클라이언트에 전달되도록 나중에 라우트를 추가하는 경우에는 연결을 재설정해야 합니다.
라우트가 부족하지 않으려면 클라이언트 대 사이트 VPN 서버 라우팅 테이블을 수정하기 전에 클라이언트 디바이스의 라우트 용량을 기록해 두십시오.
콘솔에서 경로 만들기
라우트를 작성하여 대상 네트워크 트래픽을 지정하는 방법을 지정하십시오. 라우트를 작성하려면 VPN 클라이언트 서버의 상태가 "정상"이고 서버 상태가 "안정적"이어야 합니다.
클라이언트가 인터넷에 액세스할 수 있으려면 라우트로 0.0.0.0/0
을 추가하십시오.
- 브라우저에서 IBM Cloud 콘솔을 열고 계정에 로그인합니다.
- 탐색 메뉴
선택한 다음 인프라 > 네트워크 > VPN을 클릭합니다.
- 클라이언트-사이트 서버 탭을 선택합니다.
- 라우트를 추가할 VPN 서버를 선택하십시오. 그런 다음 VPN 서버 라우트 탭을 선택하십시오.
- **작성 +**을 선택하십시오.
- 라우트에 이름을 지정하십시오.
- 대상 네트워크에 대한 대상 CIDR 범위를 지정하십시오. 예를 들어, 다음과 같습니다.
- 인터넷 액세스의 경우
0.0.0.0/0
을 입력하십시오. - 온프레미스 네트워크의 경우 사이트 대 사이트 게이트웨이 연결의 IPv4 CIDR 범위를 입력하십시오.
- VPC 서브넷의 경우 VPC 서브넷 CIDR을 입력하십시오.
- 인터넷 액세스의 경우
- 다음 조치를 선택하십시오.
- 전달 - 라우트 대상이 VPC에 있거나 VPN 게이트웨이를 사용하여 연결된 온프레미스 사설 서브넷에 있는 경우 사용합니다. VPN 라우트가 전달 조치를 사용할 때 클라이언트 IP가 유지됩니다.
- 삭제 - 원하지 않거나 바람직하지 않는 네트워크 트래픽을 널 또는 "블랙홀" 라우트로 전달하기 위해 클라이언트에서 트래픽을 차단할 경우 사용합니다.
- 변환 - VPN 서버에서 전송되기 전에 소스 IP를 VPN 서버 사설 IP로 변환하여 VPN 클라이언트 IP를 대상 디바이스에 표시하지 않도록 합니다.
- 작성을 클릭하십시오.
VPN 서버 경로의 작업 메뉴에서 편집을 선택하여 경로 이름을 변경할 수 있습니다.
콘솔에서 경로 삭제하기
UI를 사용하여 라우트를 삭제하려면 다음 단계를 수행하십시오.
- 브라우저에서 IBM Cloud 콘솔을 열고 계정에 로그인합니다.
- 탐색 메뉴
선택한 다음 인프라 > 네트워크 > VPN을 클릭합니다.
- 클라이언트 대 사이트 서버 탭을 선택하십시오.
- 라우트를 삭제할 VPN 서버를 선택하십시오. 그런 다음 작업 메뉴에서 삭제를 선택합니다.
- 삭제를 확인하려면 삭제를 다시 선택하십시오.
CLI에서 경로 만들기
시작하기 전에 CLI 환경을 설정 하십시오.
CLI에서 VPN 서버 경로를 생성하려면 다음 명령을 입력하세요:
ibmcloud is vpn-server-route-create VPN_SERVER_ID --destination DESTINATION_CIDR [--action translate | deliver | drop] [--name NAME] [--output JSON] [-q, --quiet]
여기서:
- VPN_SERVER_ID: VPN 서버의 ID입니다.
-
- -액션: 동작: 경로와 일치하는 패킷으로 수행할 동작입니다. 변환, 전달, 삭제 중 하나입니다(기본값: 전달).
- --destination: VPN 서버에서 이 VPN 라우트에 사용할 대상입니다. VPN 서버 내에서 고유해야 합니다. 수신 패킷이 목적지와 일치하지 않으면 삭제됩니다.
-
- -이름: VPN 경로의 이름입니다.
-
- -출력: 출력 형식을 지정하며, JSON만 지원됩니다. 다음 중 하나입니다: JSON.
- -q, -- quiet: 상세 출력을 억제합니다.
예를 들어, 다음과 같습니다.
-
ibmcloud is vpn-server-route-create r006-77e21079-7291-44c2-866a-8f1848bc10f0 --name myroute --action deliver --destination 10.0.0.0/24
-
ibmcloud is vpn-server-route-create r006-77e21079-7291-44c2-866a-8f1848bc10f0 --name myroute --action drop --destination 10.0.0.0/24
CLI에서 경로 업데이트하기
CLI에서 VPN 서버 경로를 업데이트하려면 다음 명령을 입력하세요:
ibmcloud is vpn-server-route-update VPN_SERVER_ID ROUTE_ID [--name NAME] [--output JSON] [-q, --quiet]
여기서:
- VPN_SERVER_ID: VPN 서버의 ID입니다.
- ROUTE_ID: VPN 경로의 ID입니다.
-
- -이름: VPN 경로의 새 이름입니다.
-
- -출력: 출력 형식을 지정하며, JSON만 지원됩니다. 다음 중 하나입니다: JSON.
- -q, -- quiet: 상세 출력을 억제합니다.
예를 들어, 다음과 같습니다.
ibmcloud is vpn-server-route-update r006-77e21079-7291-44c2-866a-8f1848bc10f0 1233a60b-fc95-4dbc-96ab-a976b723bfb0 --name myroute
CLI에서 VPN 경로 세부 정보 보기
VPN 라우트의 세부사항을 보려면 다음 명령을 입력하십시오.
ibmcloud is vpn-server-route VPN_SERVER_ID ROUTE_ID [--output JSON] [-q, --quiet]
여기서:
- VPN_SERVER_ID: VPN 서버의 ID입니다.
- ROUTE_ID: VPN 경로의 ID입니다.
-
- -출력: 출력 형식을 지정하며, JSON만 지원됩니다. 다음 중 하나입니다: JSON.
- -q, -- quiet: 상세 출력을 억제합니다.
CLI를 사용하여 모든 경로 보기
시작하기 전에 CLI 환경을 설정 하십시오.
CLI에서 VPN 서버의 VPN 서버 경로 목록을 보려면 다음 명령을 입력하세요:
ibmcloud is vpn-server-routes VPN_SERVER_ID [--resource-group-id RESOURCE_GROUP_ID | --resource-group-name RESOURCE_GROUP_NAME | --all-resource-groups] [--output JSON] [-q, --quiet]
여기서:
- VPN_SERVER_ID: VPN 서버의 ID입니다.
-
- -자원 그룹 ID: 리소스 그룹의 ID입니다. 이 옵션은 --resource-group-name과 상호 배타적입니다.
-
- -자원 그룹 이름: 리소스 그룹의 이름입니다. 이 옵션은 --resource-group-id와 상호 배타적입니다.
- --all-resource-groups: 모든 리소스 그룹을 조회합니다.
-
- -출력: 출력 형식을 지정하며, JSON만 지원됩니다. 다음 중 하나입니다: JSON.
- -q, -- quiet: 상세 출력을 억제합니다.
CLI를 사용하여 라우트 삭제
CLI에서 VPN 서버 경로를 삭제하려면 다음 명령을 입력하세요:
ibmcloud is vpn-server-route-delete VPN_SERVER_ID (ROUTE_ID1 ROUTE_ID2 ...) [--output JSON] [-f, --force] [-q, --quiet]
여기서:
- VPN_SERVER_ID: VPN 서버의 ID입니다.
- ROUTE_ID1: VPN 경로의 ID입니다.
- ROUTE_ID2: VPN 경로의 ID입니다.
-
- -출력: 출력 형식을 지정하며, JSON만 지원됩니다. 다음 중 하나입니다: JSON.
- -- force, -f: 확인하지 않고 오퍼레이션을 강제 실행합니다.
- -q, -- quiet: 상세 출력을 억제합니다.
API를 사용하여 라우트 작성
API를 사용하여 VPN 서버에서 VPN 경로를 생성하려면 다음 단계를 따르세요:
-
올바른 변수를 사용하여 API 환경을 설정하십시오.
-
/vpn_servers/{vpn_server_id}/routes
에 대한 POST를 수행하십시오.curl -X POST "$vpc_api_endpoint/v1/vpn_servers/$vpn_server_id/routes?version=$api_version&generation=2" \ -H "Authorization: $iam_token" \ -d '{ "name":"my-route-1", "destination": "10.10.10.0/24", "action": "translate" }'
API를 사용하여 경로 업데이트하기
API를 사용하여 VPN 서버의 경로를 업데이트하려면 다음 단계를 따르세요:
-
올바른 변수를 사용하여 API 환경을 설정하십시오.
-
/vpn_servers/{vpn_server_id}/routes/{id}
에 대한 PATCH를 수행하십시오.curl -X PUT "$vpc_api_endpoint/v1/vpn_servers/$vpn_server_id/routes/$route_id?version=$api_version&generation=2" \ -H "Authorization: $iam_token" \ -d '{ "name":"new-route-name" }'
API를 사용하여 경로 보기
API를 사용하여 VPN 서버의 경로를 보려면 다음 단계를 따르세요:
-
올바른 변수를 사용하여 API 환경을 설정하십시오.
-
모든 변수가 시작되면 라우트를 나열하십시오.
curl -sS -X GET \ -H "Authorization: $iam_token" \ "$vpc_api_endpoint/v1/vpn_servers/$vpn_server_id/routes?version=$api_version&generation=2" | jq
이 예에서는 MIT 라이선스에 따라 라이선스가 부여된 타사 도구인
jq
파서를 사용합니다.jq
인스턴스를 만들 때 사용 가능한 모든 VPC 이미지에 사전 설치되어 있지 않을 수 있습니다. 사용하기 전에jq
을 설치하거나 원하는 다른 구문 분석기를 사용해야 할 수도 있습니다. -
/vpn_servers/{vpn_server_id}/routes/{id}
에 GET을 수행하십시오. 자세한 내용은list_vpn-server_routes
를 참조하십시오.curl -sS -X GET \ -H "Authorization: $iam_token" \ "$vpc_api_endpoint/v1/vpn_servers/$vpn_server_id/routes/$route_id?version=$api_version&generation=2" | jq
API를 사용하여 라우트 삭제
API를 사용하여 VPN 서버에서 경로를 삭제하려면 다음 단계를 따르세요:
-
올바른 변수를 사용하여 API 환경을 설정하십시오.
-
/vpn_servers/{vpn_server_id}/routes/{id}
에 대한 DELETE를 수행하십시오.curl -sS -X DELETE \ -H "Authorization: $iam_token" \ "$vpc_api_endpoint/v1/vpn_servers/$vpn_server_id/routes/$route_id?version=$api_version&generation=2"