管理網路介面
建立虛擬伺服器實例之後,您可以新增兩種樣式的新網路介面 (子網路介面及虛擬網路介面),或編輯已與實例相關聯的介面。 當您編輯網路介面時,可以變更其名稱、關聯或取消關聯浮動 IP 位址,或存取與介面相關聯的安全群組。
關於網路介面
網路介面會將虛擬伺服器實例連接至網路。 建立虛擬伺服器實例時,可以使用網路介面指定多個 IP 位址。
以下清單重點說明網路介面如何與您的實體搭配使用。
- 您可以為每一個虛擬伺服器實例建立並指派多個網路介面。 您可以指派給虛擬伺服器實例的網路介面數目,取決於用來佈建實例的 設定檔 中包含的 vCPU 計數。
- 2 - 16 個vCPUs:最多 5 個網路介面
- 17 - 48 個vCPUs:最多 10 個網路介面
- 49 個或更多vCPUs:最多 15 個網路接口
- 您可以將每個網路介面附加到同一區域中的不同子網路。
- 每個網路都會獲指派唯一且不可變的「媒體存取控制 (MAC)」位址,並從子網路範圍接收專用 IP 位址。
- 您可以將一個浮動 IP 位址附加到虛擬伺服器實例上的每個網路介面。 在資料路徑中,浮動 IP 位址和網路介面的主要 IP 位址之間會套用網路位址轉換 (NAT)。
- 在 IBM Cloud 控制台中,主介面預設為
eth0
。 次要介面預設為eth1
,eth2
,等等。 - 您可以為每個網路介面指定安全群組。
- 您可以變更任何現有網路介面的名稱。
頻寬分佈在連接至虛擬伺服器實例的網路介面上。 如需相關資訊,請參閱 頻寬配置。
如果您在虛擬伺服器實例執行時將新的網路介面指派給虛擬伺服器實例,則必須配置網路介面以供實例使用。 您可以停止然後重新啟動實例,也可以在訪客作業系統中手動配置介面。 例如,在 Linux型作業系統上,您可以使用 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型作業系統上,您可以使用
ip link set dev <interface> up
來擷取介面的 IP 位址配置。
新增虛擬網路介面
您可以建立虛擬網路介面,而不將它連接至目標。 即使移除虛擬網路介面的目標,虛擬網路介面也可以存在。 如需相關資訊,請參閱 使用虛擬網路介面。
虛擬網路介面可以連接至新的虛擬伺服器實例,且無法新增至具有子網路介面的現有虛擬伺服器實例。
- 在IBM Cloud控制台中,前往導航選單圖示
> 基礎架構
> 計算 > 虛擬伺服器實例。
- 按一下 建立,以開始建立能夠使用虛擬網路介面的新虛擬伺服器實例。
- 在 網路 區段中,選取是否要建立下列其中一項:
- 具有虛擬網路介面的網路連接: 具有其他特性 (例如次要 IP 位址及與您所建立虛擬伺服器實例分開的生命週期) 的網路介面。
- 實例網路介面: 子網路介面。
配置具有多個介面的虛擬伺服器實例
有時,虛擬伺服器實例會透過多個網路介面與其他實例通訊,例如,使用不同的子網路來進行不同的通訊目的。 您可能想要一個子網路用於資料通訊,另一個子網路用於控制通訊。 因為虛擬伺服器實例已配置與主要網路介面相關聯的單一預設路徑,所以其他介面上的通訊一開始可能無法運作。 (基於安全目的,IP 盜用檢查也可以防止非主要網路介面上的通訊流程。)
您可以使用下列其中一個選項來建立次要網路介面的通訊。 這些範例適用於 Linux 平台,例如 Ubuntu
。
- 新增第二個子網路的靜態路徑。
- 新增第二個子網路的個別遞送表。
佈建實例時,依預設會產生虛擬伺服器實例的遞送表。 修改產生的遞送表是一項非常重要的作業。 如果您需要修改虛擬伺服器實例的遞送表,當您佈建實例時,可以包含使用者資料來說明及重新配置實例的遞送表。 另一個選項是使用自訂映像檔來佈建實例,並控制針對多個網路介面所建立的項目。 當您使用預設映像檔來佈建實例時,會為您建立網路配置。 您對產生的內容有有限的控制。
以下各節將詳細介紹這些解決方案。
虛擬伺服器設定範例:
-
兩部虛擬伺服器 (
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
、CIDR192.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
如需相關資訊,請參閱 VPC CLI 參考頁面中的 ibmcloud is instance-create。
使用 API 建立虛擬網路介面
虛擬網路介面可以連接至新的虛擬伺服器實例,且無法新增至具有子網路介面的現有虛擬伺服器實例。
您可以使用 API 來建立虛擬網路介面。 如需功能、規劃考量、入門及使用案例的相關資訊,請參閱 關於虛擬網路介面。
若要使用 API 建立虛擬網路介面,請遵循下列步驟:
-
使用正確的變數 來設定 API 環境。
-
儲存要在 API 指令中使用的任何其他變數; 例如:
version
(字串):API 版本,格式為YYYY-MM-DD
。
-
起始所有變數時,請建立虛擬網路介面。 下列範例包括主要 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 登錄。