Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
适用于:✔️ Linux VM ✔️ 灵活规模集
本文详述了如何使用 Azure CLI 创建具有多个 NIC 的 VM。
安装最新的 Azure CLI 并使用 az login 登录到 Azure 帐户。
Nota
在可以在由世纪互联运营的 Microsoft Azure 中使用 Azure CLI 之前,请先运行 az cloud set -n AzureChinaCloud
来更改云环境。 若要切换回 Azure 公有云,请再次运行 az cloud set -n AzureCloud
。
在以下示例中,请将示例参数名称替换成自己的值。 示例参数名称包括 myResourceGroup、mystorageaccount 和 myVM。
首先,使用 az group create 创建资源组。 以下示例在 chinanorth2 位置创建名为 myResourceGroup 的资源组。 在这些示例中,我们在使用环境变量时直接声明它们,并在唯一的资源名称后添加随机后缀。
export RANDOM_SUFFIX=$(openssl rand -hex 3)
export MY_RESOURCE_GROUP_NAME="myResourceGroup$RANDOM_SUFFIX"
export REGION="ChinaNorth2"
az group create --name $MY_RESOURCE_GROUP_NAME --location $REGION
{
"id": "/subscriptions/xxxxx/resourceGroups/myResourceGroupxxx",
"location": "ChinaNorth2",
"managedBy": null,
"name": "myResourceGroupxxx",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": "Microsoft.Resources/resourceGroups"
}
使用 az network vnet create 创建虚拟网络。 以下示例创建一个名为 myVnet 的虚拟网络和一个名为 mySubnetFrontEnd 的子网:
export VNET_NAME="myVnet"
export FRONTEND_SUBNET="mySubnetFrontEnd"
az network vnet create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--name $VNET_NAME \
--address-prefix 10.0.0.0/16 \
--subnet-name $FRONTEND_SUBNET \
--subnet-prefix 10.0.1.0/24
使用 az network vnet subnet create 为后端通信流创建子网。 以下示例创建名为 mySubnetBackEnd 的子网:
export BACKEND_SUBNET="mySubnetBackEnd"
az network vnet subnet create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--vnet-name $VNET_NAME \
--name $BACKEND_SUBNET \
--address-prefix 10.0.2.0/24
使用 az network nsg create 创建网络安全组。 以下示例创建名为“myNetworkSecurityGroup”的网络安全组:
export NSG_NAME="myNetworkSecurityGroup"
az network nsg create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--name $NSG_NAME
使用 az network nic create 创建两个 NIC。 以下示例创建两个名为 myNic1 和 myNic2 的 NIC,并连接到网络安全组,其中一个 NIC 连接到每个子网:
export NIC1="myNic1"
export NIC2="myNic2"
az network nic create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--name $NIC1 \
--vnet-name $VNET_NAME \
--subnet $FRONTEND_SUBNET \
--network-security-group $NSG_NAME
az network nic create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--name $NIC2 \
--vnet-name $VNET_NAME \
--subnet $BACKEND_SUBNET \
--network-security-group $NSG_NAME
创建 VM 时,请指定使用 --nics 创建的 NIC。 还需要谨慎选择 VM 的大小。 可添加到 VM 的 NIC 数目有限制。 详细了解 Linux VM 大小。
使用 az vm create 创建 VM。 以下示例创建一个名为 myVM 的 VM:
export VM_NAME="myVM"
az vm create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--name $VM_NAME \
--image Ubuntu2204 \
--size Standard_DS3_v2 \
--admin-username azureuser \
--generate-ssh-keys \
--nics $NIC1 $NIC2
通过完成为多个 NIC 配置来宾 OS 中的步骤,将路由表添加到来宾 OS。
之前的步骤创建了具有多个 NIC 的 VM。 还可使用 Azure CLI 将 NIC 添加到现有 VM。 不同的 VM 大小支持不同数目的 NIC,因此请相应地调整 VM 的大小。 如果需要,可调整 VM 的大小。
使用 az network nic create 创建另一 NIC。 以下示例创建一个名为 myNic3 的 NIC,该 NIC 连接到后端子网和之前步骤中创建的网络安全组:
export NIC3="myNic3"
az network nic create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--name $NIC3 \
--vnet-name $VNET_NAME \
--subnet $BACKEND_SUBNET \
--network-security-group $NSG_NAME
要将 NIC 添加到现有 VM,请先使用 az vm deallocate 解除分配 VM。 以下示例解除分配名为 myVM 的 VM :
az vm deallocate --resource-group $MY_RESOURCE_GROUP_NAME --name $VM_NAME
使用 az vm nic add 添加 NIC。 以下示例将 myNic3 添加到 myVM:
az vm nic add \
--resource-group $MY_RESOURCE_GROUP_NAME \
--vm-name $VM_NAME \
--nics $NIC3
使用 az vm start 启动 VM:
az vm start --resource-group $MY_RESOURCE_GROUP_NAME --name $VM_NAME
通过完成为多个 NIC 配置来宾 OS 中的步骤,将路由表添加到来宾 OS。
若要从现有 VM 删除 NIC,请先使用 az vm deallocate 解除分配 VM。 以下示例解除分配名为 myVM 的 VM :
az vm deallocate --resource-group $MY_RESOURCE_GROUP_NAME --name $VM_NAME
使用 az vm nic remove 删除 NIC。 以下示例从 myVM 删除 myNic3:
az vm nic remove \
--resource-group $MY_RESOURCE_GROUP_NAME \
--vm-name $VM_NAME \
--nics $NIC3
使用 az vm start 启动 VM:
az vm start --resource-group $MY_RESOURCE_GROUP_NAME --name $VM_NAME
Azure 资源管理器模板使用声明性 JSON 文件来定义环境。 可以阅读 Azure 资源管理器概述。 资源管理器模板可让你在部署期间创建资源的多个实例,例如,创建多个 NIC。 使用 copy 指定要创建的实例数:
"copy": {
"name": "multiplenics"
"count": "[parameters('count')]"
}
阅读有关使用 copy 创建多个实例的详细信息。
还可以使用 copyIndex()将数字追加到资源名称,以便创建 myNic1、myNic2 等。下面显示了追加索引值的示例:
"name": "[concat('myNic', copyIndex())]",
可以阅读使用 Resource Manager 模板创建多个 NIC 的完整示例。
通过完成为多个 NIC 配置来宾 OS 中的步骤,将路由表添加到来宾 OS。
前面的步骤创建了虚拟网络和子网,附加了 NIC,然后创建了 VM。 尚未创建公共 IP 地址,以及允许 SSH 流量的网络安全组规则。 若要为多个 NIC 配置来宾 OS,需要允许远程连接并在 VM 本地运行命令。
若要允许 SSH 流量,请使用 az network nsg rule create 创建网络安全组规则,如下所示:
az network nsg rule create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--nsg-name $NSG_NAME \
--name allow_ssh \
--priority 101 \
--destination-port-ranges 22
使用 az network public-ip create 创建公共 IP 地址,并使用 az network nic ip-config update 将其分配到第一个 NIC:
export PUBLIC_IP_NAME="myPublicIP"
az network public-ip create --resource-group $MY_RESOURCE_GROUP_NAME --name $PUBLIC_IP_NAME
az network nic ip-config update \
--resource-group $MY_RESOURCE_GROUP_NAME \
--nic-name $NIC1 \
--name ipconfig1 \
--public-ip-address $PUBLIC_IP_NAME
若要查看 VM 的公共 IP 地址,请使用 az vm, 如下所示:
az vm show --resource-group $MY_RESOURCE_GROUP_NAME --name $VM_NAME -d --query publicIps -o tsv
x.x.x.x
现在,通过 SSH 连接到 VM 的公共 IP 地址。 上一步骤中提供的默认用户名为 azureuser。 请提供自己的用户名和公共 IP 地址:
export IP_ADDRESS=$(az vm show --resource-group $MY_RESOURCE_GROUP_NAME --name $VM_NAME -d --query publicIps -o tsv)
ssh -o StrictHostKeyChecking=no azureuser@$IP_ADDRESS
若要向/从辅助网络接口发送数据,必须手动将永久性路由添加到每个辅助网络接口的操作系统。 在本文中,eth1 是辅助接口。 有关将永久性路由添加到操作系统的说明根据分发版的不同而异。 请参阅分发版的文档来获取说明。
将路由添加到操作系统时,网络接口所在的每个子网的网关地址为网络接口所在的子网的第一个地址。 例如,如果子网已分配范围 10.0.2.0/24,则为路由指定的网关为 10.0.2.1,或者子网已分配范围 10.0.2.128/25,则为路由指定的网关为 10.0.2.129。 如果希望接口的所有流量通过指定的网关,可以定义路由目标的特定网络,或指定目标 0.0.0.0。 每个子网的网关由虚拟网络管理。
添加辅助接口的路由后,使用 route -n
验证该路由是否包含在路由表中。 以下示例输出适用于其中的两个网络接口已添加到本文所述 VM 的路由表:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.1.1 0.0.0.0 UG 0 0 0 eth0
0.0.0.0 10.0.2.1 0.0.0.0 UG 0 0 0 eth1
10.0.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
168.63.129.16 10.0.1.1 255.255.255.255 UGH 0 0 0 eth0
169.254.169.254 10.0.1.1 255.255.255.255 UGH 0 0 0 eth0
重新启动后请再次检查路由表,以确认每次重新启动后,添加的路由是否能够保留。 若要测试连接,可以输入以下命令,例如, eth1 是辅助网络接口的名称: ping bing.com -c 4 -I eth1
尝试创建具有多个 NIC 的 VM 时,请查看 Lnux VM 大小。 注意每个 VM 大小支持的 NIC 数目上限。
若要进一步保护 VM,请使用适时 VM 访问。 此功能会视需要打开针对 SSH 流量的网络安全组规则,并根据定义的时间段保持打开。 有关详细信息,请参阅使用恰时功能管理虚拟机访问。