가상 네트워크 인터페이스 생성
대상에 연결하지 않고 가상 네트워크 인터페이스를 작성할 수 있습니다. 따라서 대상이 제거된 경우에도 가상 네트워크 인터페이스가 존재할 수 있습니다.
예를 들어, VPC내에서 인스턴스에는 인터넷에서 인스턴스에 도달할 수 있는 공용 IP 주소와 VPC의 다른 인스턴스에서 도달할 수 있는 사설 IP 주소가 있습니다. 사용자 정의 보안 그룹 규칙으로 인스턴스를 구성했습니다. 인스턴스를 삭제하면 공용 IP 주소 및 보안 그룹이 분리됩니다. 개인용 IP 주소가 해제되고 다른 자원에서 다시 예약할 수 있습니다. 삭제된 인스턴스와 동일한 공인 IP 주소, 사설 IP 주소 및 보안 그룹을 사용하여 새 인스턴스를 작성하려면 사설 IP 주소를 다시 예약하고 이전 공인 IP 주소 및 보안 그룹을 개별적으로 첨부해야 합니다.
가상 네트워크 인터페이스를 사용하여 인스턴스에 독립적인 라이프사이클이 있는 별도의 자원에서 IP 주소 및 보안 그룹을 관리할 수 있습니다. 사설 IP 주소, 공용 IP 주소 및 보안 그룹을 사용하여 가상 네트워크 인터페이스를 작성하십시오. 그런 다음 이 가상 네트워크 인터페이스를 사용하여 인스턴스를 작성하십시오. 나중에 인스턴스를 삭제하여 가상 네트워크 인터페이스를 보존하고 동일한 가상 네트워크 인터페이스를 사용하여 새 인스턴스를 작성할 수 있습니다.
시작하기 전에
가상 네트워크 인터페이스를 작성하려면 다음 전제조건이 있어야 합니다.
- VPC 인스턴스
- 가상 네트워크 인터페이스를 작성할 서브넷
- 적절한 IAM 권한 이 있는지 확인하십시오. IP 스푸핑 및 인프라 NAT를 구성하려면 IAM 관리자 역할 권한이 있어야 합니다.
가상 네트워크 인터페이스에 대한 계획 고려 사항과 알려진 문제를 검토하세요.
콘솔, CLI, API 또는 Terraform으로 가상 네트워크 인터페이스를 만들 수 있습니다.
콘솔에서 가상 네트워크 인터페이스 만들기
콘솔에서 가상 네트워크 인터페이스를 만들려면 다음 단계를 따르세요:
-
브라우저에서 IBM Cloud 콘솔을 열고 계정에 로그인하세요.
-
탐색 메뉴
선택한 다음 인프라
> 네트워크 > 가상 네트워크 인터페이스를 클릭합니다.
-
VPC용 가상 네트워크 인터페이스 페이지에서 작성을 클릭하십시오.
-
필요한 경우 위치 섹션에서 다음 필드를 편집하십시오.
- 위치: 가상 네트워크 인터페이스를 생성할 위치를 지정합니다.
- 지역: 가상 네트워크 인터페이스를 생성할 지역을 지정합니다.
-
세부 정보 섹션에서 다음 정보를 입력하십시오.
- 이름: 가상 네트워크 인터페이스의 고유 이름을 입력하십시오 (예:
my-virtual-network-interface). - 자원 그룹: 가상 네트워크 인터페이스의 자원 그룹을 선택하십시오.
- 태그: (선택 사항) 자료를 정리하고 쉽게 찾을 수 있도록 태그를 추가하세요. 나중에 태그를 추가할 수 있습니다. 자세한 정보는 태그에 대한 작업을 참조하십시오.
- 액세스 관리 태그: (선택사항) 액세스 제어 관계를 구성하는 데 도움이 되도록 자원에 액세스 관리 태그를 추가하십시오. 액세스 관리 태그의 유일한 지원 형식은
key:value입니다. 자세한 정보는 태그를 사용하여 리소스에 대한 액세스 제어를 참조하십시오.
- 이름: 가상 네트워크 인터페이스의 고유 이름을 입력하십시오 (예:
-
‘네트워크 구성’ 섹션에서 다음 정보를 입력하십시오:
-
가상 프라이빗 클라우드: 가상 네트워크 인터페이스를 작성할 VPC를 선택하십시오. VPC를 작성해야 하는 경우 VPC 작성을 클릭하십시오.
-
서브넷: 가상 네트워크 인터페이스를 작성할 서브넷을 선택하십시오. 서브넷을 작성해야 하는 경우 작성을 클릭하십시오.
-
IP 스푸핑 허용: IP 스푸핑을 사용 또는 사용 안함으로 설정하려면 스위치를 선택하십시오.
- IP 스푸핑을 비활성화하면 트래픽이 네트워크 인터페이스에서 중단되지 않고, 해당 인터페이스를 통과할 수 있게 됩니다.
- IP 스푸핑은 가상 서버 인스턴스 및 Bare Metal Servers만 지원합니다. 파일 공유는 지원되지 않습니다.
-
인프라 NAT: 인프라 NAT를 사용 또는 사용 안함으로 설정하려면 스위치를 선택하십시오.
IP 스푸핑이 활성화되면 인프라 NAT도 활성화됩니다.
-
사용 은 하나의 부동 IP 주소를 포함하며 가상 서버, 베어메탈 서버 및 파일 공유를 지원합니다.
-
사용 안함 은 베어메탈 서버에서만 다중 부동 IP 주소를 지원합니다. 가상 서버 및 파일 공유를 가상 네트워크 인터페이스 대상으로 사용하는 것은 지원되지 않습니다.
사용 안함으로 설정하면 가상 서버 인스턴스가 NAT 없이 피어에서 전송된 대로 트래픽을 수신합니다. 목적지 IP 주소는 플로팅 IP 주소이며, 베어 메탈 서버가 NAT 처리를 담당합니다.
-
-
프로토콜 상태 필터링 모드: 단일 선택 단추를 선택하여 모드를 설정하십시오.
-
자동 (기본값): 가상 네트워크 인터페이스의 대상 자원을 기반으로 필터링이 사용 또는 사용 안함으로 설정됩니다.
- 베어메탈 서버 (사용 안함)
- 가상 서버 인스턴스 (사용 가능)
- 파일 공유 마운트 (사용 가능)
-
활성화됨: TCP 연결이 해당 보안 그룹 규칙과 네트워크 ACL에 따라 RFC793 표준 및 해당 보안 그룹 규칙 및 네트워크 ACL에 의해 허용되는 모든 패킷과 일치하도록 합니다.
-
장애가 있는: 해당 보안 그룹 규칙 및 네트워크 ACL에 의해서만 패킷이 허용되도록 허용합니다.
-
-
-
기본 IP 섹션에서 다음을 선택하십시오.
- 예약 방법: 기본 IP 주소를 작성할 것인지 또는 수동으로 지정할 것인지 여부를 선택하십시오. 사용자 고유의 IP 주소를 지정하는 경우 가상 네트워크 인터페이스에 대한 기존의 예약된 IP 주소를 입력하거나 기존의 예약된 IP 목록 메뉴에서 하나를 선택하십시오.
- 자동 릴리스: 이 가상 네트워크 인터페이스에 대한 자동 릴리스를 사용 또는 사용 안함으로 설정하려면 스위치를 클릭하십시오.
-
유동 IP 섹션 (선택사항) 에서 첨부를 클릭하십시오. 표시되는 측면 패널의 기존 유동 IP 주소 목록에서 선택하거나 새 유동 IP 예약 을 선택하고 요청된 정보를 완료할 수 있습니다.
부동 IP가 접속된 경우, 가상 네트워크 인터페이스가 파일 공유 마운트 대상으로 허용되지 않습니다. 인프라 NAT가 활성화된 경우, 플로팅 IP는 최대 하나만 연결할 수 있습니다.
-
보조 IP 섹션 (선택사항) 에서 첨부를 클릭하십시오. 예약 방법을 선택하고 자동 릴리스가 사용 가능한지 여부를 지정하십시오.
보조 IP가 할당된 가상 네트워크 인터페이스는 파일 공유 마운트 대상으로 사용할 수 없습니다.
-
'보안 그룹' 섹션에서 네트워킹 수준에서 트래픽을 제어할 보안 그룹을 최소 1개에서 최대 5개까지 선택하십시오. 목록에서 보안 그룹을 선택하거나 작성을 클릭하여 보안 그룹을 작성할 수 있습니다. 보안 그룹 작성에 대한 자세한 정보는 보안 그룹 작성 을 참조하십시오.
-
요약 패널의 정보를 검토하고 가상 네트워크 인터페이스 작성을 클릭하십시오.
CLI를 사용하여 가상 네트워크 인터페이스 생성하기
시작하기 전에 CLI 환경을 설정 하십시오.
export IBMCLOUD_IS_FEATURE_VNI_ENABLE_PROTOCOL_STATE_FILTERING=true
CLI에서 가상 네트워크 인터페이스를 작성하려면 다음 명령을 입력하십시오.
ibmcloud is virtual-network-interface-create [--name NAME] [--allow-ip-spoofing false | true] [--auto-delete false | true] [--enable-infrastructure-nat false | true] [--protocol-state-filtering-mode auto | disabled | enabled] [[--rip RIP | [--rip-address RIP_ADDRESS --rip-auto-delete RIP_AUTO_DELETE --rip-name RIP_NAME]]] [--subnet SUBNET] [--ips RESERVED_IPS_JSON | @RESERVED_IPS_JSON_FILE] [--sgs SGS] [--resource-group-id RESOURCE_GROUP_ID | --resource-group-name RESOURCE_GROUP_NAME] [--vpc VPC] [--output JSON] [-q, --quiet]
여기서:
--name- 이 가상 네트워크 인터페이스의 이름입니다.
--allow-ip-spoofing- 이 인터페이스에서 소스 IP 스푸핑이 허용되는지 여부를 나타냅니다.
false인 경우, 이 인터페이스에서 소스 IP 스푸핑이 차단됩니다.true인 경우, 이 인터페이스에서 소스 IP 스푸핑이 허용됩니다. 다음 중 하나:false,true. --auto-delete- 대상이 삭제될 때 이 가상 네트워크 인터페이스가 자동으로 삭제되는지 여부를 표시합니다. 가상 네트워크 인터페이스가 바인딩 해제된 상태라면
false이어야 합니다. 다음 중 하나:false,true. --enable-infrastructure-nattrue인 경우, VPC 인프라가 필요한 NAT 작업을 수행합니다.false인 경우, 패킷은 네트워크 인터페이스를 통해 변경 없이 송수신되며, 이를 통해 워크로드가 필요한 NAT 작업을 수행할 수 있습니다. 다음 중 하나:false,true.--protocol-state-filtering-mode- 프로토콜 상태 필터링 모드의 상태입니다.
auto,enabled,disabled중 하나입니다. * 자동 (기본값): 가상 네트워크 인터페이스의 대상 자원을 기반으로 필터링이 사용 또는 사용 안함으로 설정됩니다. * 베어메탈 서버 (사용 안함) * 가상 서버 인스턴스 (사용 가능) * 파일 공유 마운트 (사용 가능) * 활성화됨: TCP 연결이 해당 보안 그룹 규칙과 네트워크 ACL에 따라 RFC793 표준 및 해당 보안 그룹 규칙 및 네트워크 ACL에 의해 허용되는 모든 패킷과 일치하도록 합니다. * 장애가 있는: 해당 보안 그룹 규칙 및 네트워크 ACL에 의해서만 패킷이 허용되도록 허용합니다. --rip- 가상 네트워크 인터페이스에 바인드할 예약된 IP의 ID 또는 이름입니다.
--rip-address- 가상 네트워크 인터페이스에 바인드할 예약된 IP의 IP 주소입니다.
--rip-auto-delete- 대상이 삭제되거나 예약된 IP가 바인드되지 않은 경우 이 예약된 IP가 자동으로 삭제되는지 여부를 표시합니다.
--rip-name- 가상 네트워크 인터페이스에 바인드할 이 예약된 IP의 이름입니다.
--subnet- 연관된 서브넷입니다.
--ips ips RESERVED_IPS_JSON | @RESERVED_IPS_JSON_FILE- 가상 네트워크 인터페이스에 바인딩할 보조 예약 IP 주소(JSON 형식 또는 JSON 파일). 데이터 스키마에 대해서는 API 문서의 ‘IPs’ 속성을 확인하십시오.
RESERVED_IPS_JSON,@RESERVED_IPS_JSON_FILE중 하나입니다. --sgs- 가상 네트워크 인터페이스에 사용할 보안 그룹의 ID 또는 이름입니다.
--resource-group-id- 리소스 그룹의 ID. 이 ID는
--resource-group-name와 상호 배타적입니다. --resource-group-name- 리소스 그룹의 이름. 이 이름은 ‘
--resource-group-id’과 상호 배타적입니다. --vpc- 이 VNI가 연결된 VPC의 ID 또는 이름.
--output- 출력 형식을 지정합니다. JSON만 지원됩니다.
JSON중 하나입니다. -q, --quiet- 상세 출력이 표시되지 않도록 합니다.
명령 예제
ibmcloud is virtual-network-interface-create --subnet 7208-d42716a5-6df2-416c-979d-f26330b9eod1ibmcloud is virtual-network-interface-create --name cli-vni-1 --allow-ip-spoofing true --auto-delete true --enable-infrastructure-nat true --protocol-state-filtering-mode auto --rip 7208-d4c0abbe-3fc2-4696-9fe1-4eb3dc9af976 --ips '[{"id":"7208-d83b7e58-3c3d-47d0-89c5-02d9a20c72fd"},{"address":"10.240.64.13", "auto_delete": false, "name": "srip2"}]' --sgs r006-aa7c7658-e503-4456-b342-8d6a89e05115,r006-4fb388f1-2b6e-4013-b279-7a8748f4d6ca --resource-group-id 11caaa983d9c4beb82690daab08717e9ibmcloud is virtual-network-interface-create --name cli-vni-2 --allow-ip-spoofing true --auto-delete true --enable-infrastructure-nat true --protocol-state-filtering-mode enabled --rip cli-rip-1 --subnet my-subnet --vpc vpc-cli-1 --ips '[{"id":"7208-d83b7e58-3c3d-47d0-89c5-02d9a20c72fd"},{"address":"10.240.64.14", "auto_delete": false, "name": "srip3"}]' --sgs cli-sg,sanctity-contest-only-filing --resource-group-name Defaultibmcloud is virtual-network-interface-create --name cli-vni-4 --allow-ip-spoofing false --auto-delete false --enable-infrastructure-nat false --protocol-state-filtering-mode disabled --subnet 7208-bfe017e7-6e71-415a-8615-0ee787fbeef9 --rip-address 10.240.64.15 --rip-auto-delete false --rip-name primar-ip-1 --ips '[{"id":"7208-2772a45f-c062-4e22-bafb-32ea792da56b"},{"address":"10.240.64.17", "auto_delete": false, "name": "sec-ip-2"}]' --sgs r006-aa7c7658-e503-4456-b342-8d6a89e05115,r006-4fb388f1-2b6e-4013-b279-7a8748f4d6ca --resource-group-id 11caaa983d9c4beb82690daab08717e9ibmcloud is virtual-network-interface-create --name cli-vni-3 --allow-ip-spoofing true --auto-delete false --enable-infrastructure-nat true --protocol-state-filtering-mode auto --subnet my-subnet --vpc vpc-cli-1 --rip-address 10.240.64.18 --rip-auto-delete true --rip-name primar-ip-2 --ips '[{"id":"7208-d42716a5-6df2-416c-979d-f26330b9d0b1"},{"address":"10.240.64.19", "auto_delete": true, "name": "sec-ip-3"}]' --sgs cli-sg,sanctity-contest-only-filing --resource-group-name Default
API를 사용하여 가상 네트워크 인터페이스 작성
API를 사용하여 가상 네트워크 인터페이스를 작성하려면 다음 단계를 수행하십시오.
-
올바른 변수를 사용하여 API 환경을 설정하십시오.
-
다음과 같이 API 명령에 사용할 추가 변수를 저장하십시오.
version(문자열):YYYY-MM-DD형식의 API 버전입니다.
-
모든 변수가 시작되면 가상 네트워크 인터페이스를 작성하십시오.
curl -X POST \ "$vpc_api_endpoint/v1/virtual_network_interfaces?version=$version&generation=2" \ -H "Authorization: Bearer $iam_token" \ -d '{ "name": "my-virtual-network-interface", "primary_ip": { "address": "10.0.0.5" }, "protocol_state_filtering_mode": "disabled", "security_groups": [ { "id": "be5df5ca-12a0-494b-907e-aa6ec2bfa271" }, { "id": "032e1387-71ba-4e83-b268-a53edf94af19" } ], "subnet": { "id": "032e1387-71ba-4e83-b268-a53edf94af19" } }'
Terraform을 사용하여 가상 네트워크 인터페이스 작성
다음 예제는 Terraform을 사용하여 가상 네트워크 인터페이스를 작성합니다.
resource "ibm_is_virtual_network_interface" "is_virtual_network_interface_instance" {
allow_ip_spoofing = true
auto_delete = false
enable_infrastructure_nat = true
name = "my-virtual-network-interface"
subnet = "<SubnetId>"
protocol_state_filtering_mode = "auto"
}
자세한 내용은 Terraform 레지스트리를 참조하십시오.