네트워크 인터페이스 관리
가상 서버 인스턴스를 작성한 후 두 가지 스타일의 새 네트워크 인터페이스 (하위 네트워크 인터페이스 및 가상 네트워크 인터페이스) 를 추가하거나 인스턴스와 이미 연관된 인터페이스를 편집할 수 있습니다. 네트워크 인터페이스를 편집하는 경우 이름을 변경하거나, 유동 IP 주소를 연관 또는 연관 해제하거나, 인터페이스와 연관된 보안 그룹에 액세스할 수 있습니다.
네트워크 인터페이스 정보
네트워크 인터페이스는 가상 서버 인스턴스를 네트워크에 연결합니다. 가상 서버 인스턴스를 작성할 때 네트워크 인터페이스를 사용하여 여러 개의 IP 주소를 지정할 수 있습니다.
다음 목록에서는 네트워크 인터페이스가 인스턴스에서 작동하는 방법을 강조합니다.
- 각 가상 서버 인스턴스에 대해 여러 개의 네트워크 인터페이스를 생성하고 할당할 수 있습니다. 가상 서버 인스턴스에 지정할 수 있는 네트워크 인터페이스의 수는 인스턴스를 프로비저닝하는 데 사용되는 프로파일 에 포함된 vCPU 개수에 따라 다릅니다.
- 2 - 16 vCPUs: 최대 5개의 네트워크 인터페이스
- 17 - 48 vCPUs: 최대 10개 네트워크 인터페이스
- 49개 이상 vCPUs: 최대 15개 네트워크 인터페이스
- 각 네트워크 인터페이스를 동일한 구역의 다른 서브넷에 연결할 수 있습니다.
- 각 네트워크에는 고유하고 불변한 MAC(Media Access Control) 주소가 지정되고 서브넷 범위에서 사설 IP 주소를 수신합니다.
- 가상 서버 인스턴스의 각 네트워크 인터페이스에 하나의 플로팅 IP 주소를 연결할 수 있습니다. 데이터 경로에서, 네트워크 주소 변환(NAT)이 부동 IP 주소와 네트워크 인터페이스의 기본 IP 주소 사이에 적용됩니다.
- 기본적으로 기본 인터페이스는 IBM Cloud 콘솔의
eth0
입니다. 보조 인터페이스는 기본적으로eth1
,eth2
등으로 설정되어 있습니다. - 각 네트워크 인터페이스에 보안 그룹을 지정할 수 있습니다.
- 기존 네트워크 인터페이스의 이름을 변경할 수 있습니다.
대역폭은 가상 서버 인스턴스에 연결된 네트워크 인터페이스에 분배됩니다. 자세한 정보는 대역폭 할당 을 참조하십시오.
실행 중인 가상 서버 인스턴스에 새 네트워크 인터페이스를 할당하는 경우, 해당 인스턴스가 사용할 네트워크 인터페이스를 구성해야 합니다. 인스턴스를 중지한 후 다시 시작하거나 게스트 운영 체제에서 인터페이스를 수동으로 구성할 수 있습니다. Linux 예를 들어, iOS 기반 운영 체제에서는 ip link set dev <interface> up
를 사용하여 인터페이스에 대한 IP 주소 구성을 검색할
수 있습니다.
네트워크 인터페이스 추가 또는 편집
가상 서버 인스턴스와 연관된 네트워크 인터페이스를 추가하거나 편집하려면 다음 단계를 완료하십시오.
- IBM Cloud 의 콘솔에서 탐색 메뉴
>
> 컴퓨팅 > 가상 서버 인스턴스로 이동합니다.
- 편집하려는 네트워크 인터페이스가 포함된 가상 서버 인스턴스의 이름을 클릭하십시오. 또는 가상 서버 인스턴스에 네트워크 인터페이스를 추가할 수 있습니다.
- 인스턴스 세부사항 페이지에서 네트워크 인터페이스 섹션을 찾으십시오.
- 유동 IP 주소를 추가하거나 네트워크 인터페이스를 추가하기 위한 특정 단계는 다음 절을 참조하십시오.
유동 IP 주소 추가
유동 IP 주소를 네트워크 인터페이스에 추가하여 인터넷의 트래픽이 가상 서버 인스턴스에 액세스할 수 있도록 하려면 다음 단계를 완료하십시오.
- 가상 서버 인스턴스에 플로팅 IP 주소를 처음으로 추가하는 경우, 인스턴스 세부사항 페이지의 네트워크 인터페이스 섹션 에서 네트워크 인터페이스를 식별합니다. 일반적으로 인스턴스의 기본 네트워크 인터페이스는 부동 IP를 연결하는 데 사용됩니다. 기본적으로 게스트 운영 체제에서 첫 번째 인터페이스의 이름은
eth0
입니다. 초기에 유동 IP 주소를 기본 네트워크 인터페이스와 연관시키면 데이터 경로를 설정하는 데 도움이 됩니다. 나중에, 플로팅 IP를 인스턴스의 다른 네트워크 인터페이스에 연결하거나, 별도의 플로팅 IP를 보조 네트워크 인터페이스에 연결할 수 있습니다. - 편집 아이콘
을 클릭하여 기본 네트워크 인터페이스를 편집합니다.
- 네트워크 인터페이스 편집 페이지에서 유동 IP 주소 필드를 찾으십시오. 새 유동 IP 예약을 선택하거나 기존 유동 IP 주소를 선택할 수 있습니다.
- 선택한 후 저장을 클릭하십시오.
네트워크 인터페이스 추가
인스턴스 프로파일에 포함된 vCPU 개수에 따라 가상 서버 인스턴스에 최대 15개의 네트워크 인터페이스를 추가할 수 있습니다. 네트워크 인터페이스는 사용자의 가상 서버 인스턴스에 맞게 여러 개의 IP 주소 옵션을 제공하여 고유 IP 주소를 설정합니다. 인터페이스를 추가하기 전에, 새로운 네트워크 인터페이스와 연결할 고유한 서브넷을 생성했는지 확인하십시오 각 네트워크 인터페이스는 동일한 구역 내의 다른 서브넷에 있어야 합니다
가상 서버 인스턴스에 네트워크 인터페이스를 추가하려면 다음 단계를 완료하십시오.
- 인스턴스 상세 정보 페이지 의 네트워크 인터페이스 섹션에서 새로운 인터페이스를 클릭합니다.
- 새 네트워크 인터페이스 페이지에서 기본적으로 인터페이스의 이름은 증가된 수로 설정됩니다. 이 인스턴스가 기본 인터페이스 이후에 새로 생긴 인터페이스인 경우, 기본 이름은
eth1
입니다. 원하는 경우 이름을 변경할 수 있습니다. - 기존 네트워크 인터페이스에 할당된 서브넷 중에서 고유한 서브넷을 선택합니다.
- 네트워크 인터페이스와 연관시킬 보안 그룹을 선택하십시오.
- 작성을 클릭하십시오.
- 네트워크 인터페이스를 추가할 때 가상 서버 인스턴스가 실행 중이었다면, 해당 인스턴스에 대한 네트워크 인터페이스를 구성해야 합니다. 인스턴스를 중지한 후 다시 시작하거나 게스트 운영 체제에서 인터페이스를 수동으로 구성할 수 있습니다. Linux 예를 들어, iOS 기반 운영 체제에서는
ip link set dev <interface> up
를 사용하여 인터페이스에 대한 IP 주소 구성을 검색할 수 있습니다.
가상 네트워크 인터페이스 추가하기
대상에 연결하지 않고 가상 네트워크 인터페이스를 작성할 수 있습니다. 가상 네트워크 인터페이스는 대상이 제거된 경우에도 존재할 수 있습니다. 자세한 정보는 가상 네트워크 인터페이스에 대한 작업 을 참조하십시오.
가상 네트워크 인터페이스는 새 가상 서버 인스턴스에 연결할 수 있으며 하위 네트워크 인터페이스를 사용하여 기존 가상 서버 인스턴스에 추가할 수 없습니다.
{: caption="
- IBM Cloud 의 콘솔에서 탐색 메뉴
>
> 컴퓨팅 > 가상 서버 인스턴스로 이동합니다.
- 작성 을 클릭하여 가상 네트워크 인터페이스를 사용할 수 있는 새 가상 서버 인스턴스 작성을 시작하십시오.
- 네트워킹 섹션에서 다음 중 하나를 작성할지 여부를 선택하십시오.
- 가상 네트워크 인터페이스가 있는 네트워크 연결: 보조 IP 주소 및 작성 중인 가상 서버 인스턴스와 별도의 라이프사이클과 같은 추가 기능이 있는 네트워크 인터페이스입니다.
- 인스턴스 네트워크 인터페이스: 하위 네트워크 인터페이스.
다중 인터페이스로 가상 서버 인스턴스 구성
때때로 가상 서버 인스턴스는 여러 네트워크 인터페이스를 통해 다른 인스턴스와 통신합니다. 예를 들어 서로 다른 통신 목적으로 서로 다른 서브넷을 사용합니다. 데이터 통신을 위한 하나의 서브넷과 제어 통신을 위한 다른 서브넷이 필요할 수 있습니다. 가상 서버 인스턴스는 기본 네트워크 인터페이스와 연결된 단일 기본 라우트로 구성되어 있기 때문에 다른 인터페이스에서의 통신이 처음에는 작동하지 않을 수 있습니다. (보안 목적으로 IP 스푸핑 검사를 실시하면 비주 네트워크 인터페이스에서의 통신 흐름을 방지할 수도 있습니다.)
다음 옵션 중 하나를 사용하여 보조 네트워크 인터페이스에 대한 통신을 설정할 수 있습니다. 이러한 예제는 Ubuntu
와 같은 Linux 플랫폼용입니다.
- 두 번째 서브넷에 대해 정적 라우트를 추가합니다.
- 두 번째 서브넷에 대해 개별 라우팅 테이블을 추가합니다.
가상 서버 인스턴스에 대한 라우팅 테이블은 인스턴스가 프로비저닝될 때 기본적으로 생성됩니다. 생성된 라우팅 테이블을 수정하는 것은 중요한 태스크입니다. 가상 서버 인스턴스의 라우팅 테이블을 수정해야 하는 경우 인스턴스를 프로비저닝할 때 인스턴스의 라우팅 테이블을 설명하고 재구성하기 위해 사용자 데이터를 포함할 수 있습니다. 다른 옵션은 사용자 정의 이미지를 사용하여 인스턴스를 프로비저닝하고 다중 네트워크 인터페이스에 대해 작성되는 항목을 제어하는 것입니다. 기본 이미지를 사용하여 인스턴스를 프로비저닝할 때 네트워크 구성이 작성됩니다. 생성되는 항목을 제한적으로 제어할 수 있습니다.
다음 절에서는 이러한 솔루션에 대해 자세히 설명합니다.
가상 서버 설정 예제:
-
두 개의 가상 서버(
Virtual-server-1
와Virtual-server-2
)가 동일한 VPC에 속해 있습니다. -
각 가상 서버에는 두 가지 서브넷에서의 두 가지 인터페이스가 있습니다.
- _Virtual-server-1_의 경우
net_1_0
의 인터페이스eth0
이(가) 있고net_1_1
의 인터페이스eth1
이(가) 있습니다. - _Virtual-server-2_의 경우
net_2_0
의 인터페이스eth0
이(가) 있고net_2_1
의 인터페이스eth1
이(가) 있습니다.
- _Virtual-server-1_의 경우
-
각 가상 서버의
net_*_0
은 기본 라우트로 설정됩니다. -
각 서브넷의 게이트웨이 IP 및 CIDR이 알려져 있습니다.
여기에는 영문자 이름이 사용됩니다. 실제 게이트웨이 ID는
192.168.100.1
과 유사하고, CIDR은192.168.100.0/24
와 유사하고, IP 주소는192.168.100.6
과 유사합니다.
서브넷 | 게이트웨이 IP | 서브넷 CIDR | 인터페이스 IP |
---|---|---|---|
net_1_0 |
gw_ip_1_0 |
cidr_1_0 |
ip_1_0 |
net_1_1 |
gw_ip_1_1 |
cidr_1_1 |
ip_1_1 |
net_2_0 |
gw_ip_2_0 |
cidr_2_0 |
ip_2_0 |
net_2_1 |
gw_ip_2_1 |
cidr_2_1 |
ip_2_1 |
두 번째 인터페이스에 대해 정적 라우트 추가
이 솔루션에서는 하나의 서브넷을 기본 게이트웨이로 설정하고(가상 서버 인스턴스 작성을 통해 자동으로) 두 번째 서브넷에 대해 정적 라우트를 추가합니다.
-
Virtual-server-1
에서 다음을 실행하십시오.ip route add cidr_2_1 via gw_ip_1_1 dev eth1
-
Virtual-server-2
에서 다음을 실행하십시오.ip route add cidr_1_1 via gw_ip_2_1 dev eth1
두 번째 인터페이스에 대해 개별 라우팅 테이블 추가
Virtual-server-1
에서 다음을 실행하십시오.
echo 201 eth1tab >> /etc/iproute2/rt_tables
ip route add cidr_1_1 dev eth1 proto kernel scope link src ip_1_1 table eth1tab
ip route add default via gw_1_1 dev eth1 table eth1tab
Virtual-server-2
에서 다음을 실행하십시오.
echo 201 eth1tab >> /etc/iproute2/rt_tables
ip route add cidr_2_1 dev eth1 proto kernel scope link src ip_2_1 table eth1tab
ip route add default via gw_2_1 dev eth1 table eth1tab
ip rule add from ip_2_1 table eth1tab
이 방법은 정적 라우트를 추가하는 방법보다 다소 복잡하지만, 여러 인터페이스에 맞게 라우팅 정책을 사용자 정의하는 방법을 제공합니다.
CLI에서 가상 네트워크 인터페이스 만들기
가상 네트워크 인터페이스는 새 가상 서버 인스턴스에 연결할 수 있으며 하위 네트워크 인터페이스를 사용하여 기존 가상 서버 인스턴스에 추가할 수 없습니다.
명령행 인터페이스 (CLI) 를 사용하여 가상 네트워크 인터페이스를 작성할 수 있습니다. 기능, 계획 고려사항, 시작하기 및 유스 케이스에 대한 자세한 정보는 가상 네트워크 인터페이스 정보 를 참조하십시오.
CLI를 사용하여 가상 네트워크 인터페이스를 작성하려면 ibmcloud is virtual-network-interface-create 명령을 사용하십시오.
ibmcloud is virtual-network-interface-create [--name NAME] [--allow-ip-spoofing false | true] [--auto-delete false | true] [--enable-infrastructure-nat false | true] [[--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]
다음 예제는 예약된 IP의 설정을 기반으로 하는 가상 네트워크 인터페이스를 작성합니다. 가상 네트워크 인터페이스 이름은 cli-vni-1
입니다. 예약된 IP 주소의 ID는 7208-d4c0abbe-3fc2-4696-9fe1-4eb3dc9af976
입니다. 기본 예약 IP 주소의 ID는 7208-d83b7e58-3c3d-47d0-89c5-02d9a20c72fd
입니다. 보조 예약 IP 주소는 10.240.64.13
입니다. 가상 네트워크 인터페이스와 연관시킬 보안 그룹 ID는 r134-aa7c7658-e503-4456-b342-8d6a89e05115
및 r134-4fb388f1-2b6e-4013-b279-7a8748f4d6ca
입니다. 가상 네트워크 인터페이스가 작성되는 자원 그룹의 ID는 11caaa983d9c4beb82690daab08717e9
입니다.
ibmcloud is virtual-network-interface-create --name cli-vni-1 --allow-ip-spoofing true --auto-delete false --enable-infrastructure-nat true --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 r134-aa7c7658-e503-4456-b342-8d6a89e05115,r134-4fb388f1-2b6e-4013-b279-7a8748f4d6ca --resource-group-id 11caaa983d9c4beb82690daab08717e9
자세한 정보는 VPC CLI 참조 페이지에서 ibmcloud is virtual-network-interface-create 를 참조하십시오.
기존 가상 네트워크 인터페이스를 사용하여 가상 서버 작성
명령행 인터페이스 (CLI) 를 사용하여 기존 가상 네트워크 인터페이스를 사용하는 가상 서버 인스턴스를 작성할 수 있습니다.
CLI를 사용하여 기존 가상 네트워크 인터페이스로 가상 서버 인스턴스를 작성하려면 ibmcloud is instance-create 명령을 사용하십시오.
다음 예제는 기존 가상 네트워크 인터페이스를 포함하는 가상 서버를 작성합니다. 가상 서버 이름은 my-instance-name
입니다. VPC의 ID는 72b27b5c-f4b0-48bb-b954-5becc7c1dcb8
입니다. 구역 이름은 us-south-1
입니다. 가상 서버의 프로파일은 bx2-2x8
입니다. 서브넷은 72b27b5c-f4b0-48bb-b954-5becc7c1dcb8
입니다. 기본 네트워크 연결 이름은 cli-pnac-1
입니다. 기본 네트워크 인터페이스와 연관된 가상 네트워크 인터페이스의 ID는 7322-1293a27a-7178-4e62-ba5b-272623c989aa
입니다. 네트워크 연결 구성에는 이름 instance-snac-1
및 가상 네트워크 인터페이스 ID 02h7-56705448-c9d9-43dc-aa11-20d42333cd87
가 포함됩니다. 가상 서버의 이미지 ID는 r123-72b27b5c-f4b0-48bb-b954-5becc7c1dcb8
입니다.
ibmcloud is instance-create my-instance-name 72b27b5c-f4b0-48bb-b954-5becc7c1dcb8 us-south-1 bx2-2x8 72b27b5c-f4b0-48bb-b954-5becc7c1dcb8 --pnac-name cli-pnac-1 --pnac-vni 7322-1293a27a-7178-4e62-ba5b-272623c989aa --network-attachments [{"name": "instance-snac-1","virtual_network_interface": {"id":"02h7-56705448-c9d9-43dc-aa11-20d42333cd87"}}] --image r123-72b27b5c-f4b0-48bb-b954-5becc7c1dcb8
자세한 내용은 ibmcloud is instance-create in the VPC CLI reference page를 참조하세요.
API를 사용하여 가상 네트워크 인터페이스 작성
가상 네트워크 인터페이스는 새 가상 서버 인스턴스에 연결할 수 있으며 하위 네트워크 인터페이스를 사용하여 기존 가상 서버 인스턴스에 추가할 수 없습니다.
API를 사용하여 가상 네트워크 인터페이스를 작성할 수 있습니다. 기능, 계획 고려사항, 시작하기 및 유스 케이스에 대한 자세한 정보는 가상 네트워크 인터페이스 정보 를 참조하십시오.
API를 사용하여 가상 네트워크 인터페이스를 작성하려면 다음 단계를 수행하십시오.
-
올바른 변수를 사용하여 API 환경을 설정하십시오.
-
다음과 같이 API 명령에 사용할 추가 변수를 저장하십시오.
version
(문자열):YYYY-MM-DD
형식의 API 버전입니다.
-
모든 변수가 시작되면 가상 네트워크 인터페이스를 작성하십시오. 다음 예제에는 기본 IP 주소, 보안 그룹 및 서브넷에 대한 샘플 정보가 포함되어 있습니다.
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" }, "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" "my_virtual_network_interface_instance" {
allow_ip_spoofing = true
auto_delete = false
enable_infrastructure_nat = true
name = "my-virtual-network-interface"
subnet = ibm_is_subnet.my_subnet.id
}
더 자세한 정보를 원하시면, Terraform 레지스트리를 참고하세요.
가상 네트워크 인터페이스를 새 가상 서버 인스턴스에 연결하려면 Terraform 레지스트리를 참조하십시오.