Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: ✔️ Flexibele schaalsets voor Linux-VM's ✔️
In dit artikel wordt beschreven hoe u een virtuele machine maakt met meerdere NIC's met de Azure CLI.
Ondersteunende resources maken
Installeer de nieuwste Azure CLI en meld u aan bij een Azure-account met az login.
Vervang in de volgende voorbeelden voorbeeldparameternamen door uw eigen waarden. Voorbeelden van parameternamen zijn myResourceGroup, mystorageaccount en myVM.
Maak eerst een resourcegroep met az group create. In het volgende voorbeeld wordt een resourcegroep met de naam myResourceGroup gemaakt in de locatie eastus. In deze voorbeelden declareren we omgevingsvariabelen terwijl ze worden gebruikt en voegen we een willekeurig achtervoegsel toe aan unieke resourcenamen.
export RANDOM_SUFFIX=$(openssl rand -hex 3)
export MY_RESOURCE_GROUP_NAME="myResourceGroup$RANDOM_SUFFIX"
export REGION="WestUS2"
az group create --name $MY_RESOURCE_GROUP_NAME --location $REGION
{
"id": "/subscriptions/xxxxx/resourceGroups/myResourceGroupxxx",
"location": "WestUS2",
"managedBy": null,
"name": "myResourceGroupxxx",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": "Microsoft.Resources/resourceGroups"
}
Maak het virtuele netwerk met az network vnet create. In het volgende voorbeeld wordt een virtueel netwerk gemaakt met de naam myVnet en subnet met de naam 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
Maak een subnet voor het back-endverkeer met az network vnet subnet create. In het volgende voorbeeld wordt een subnet met de naam mySubnetBackEnd gemaakt:
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
Maak een netwerkbeveiligingsgroep met az network nsg create. In het volgende voorbeeld wordt een netwerkbeveiligingsgroep met de naam myNetworkSecurityGroup gemaakt:
export NSG_NAME="myNetworkSecurityGroup"
az network nsg create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--name $NSG_NAME
Meerdere NIC's maken en configureren
Maak twee NIC's met az network nic create. In het volgende voorbeeld worden twee NIC's met de naam myNic1 en myNic2 gemaakt die zijn verbonden met de netwerkbeveiligingsgroep, met één NIC die verbinding maakt met elk subnet:
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
Een virtuele machine maken en de NIC's koppelen
Wanneer u de virtuele machine maakt, geeft u de NIC's op die u hebt gemaakt met --nics. U moet ook voorzichtig zijn bij het selecteren van de VM-grootte. Er zijn limieten voor het totale aantal NIC's dat u aan een virtuele machine kunt toevoegen. Meer informatie over vm-grootten voor Linux.
Maak een VM met az vm create. In het volgende voorbeeld wordt een VIRTUELE machine met de naam myVM gemaakt:
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
Voeg routeringstabellen toe aan het gastbesturingssystemen door de stappen in Het gastbesturingssystemen configureren voor meerdere NIC's uit te voeren.
Een NIC toevoegen aan een VIRTUELE machine
In de vorige stappen is een virtuele machine met meerdere NIC's gemaakt. U kunt ook NIC's toevoegen aan een bestaande VIRTUELE machine met de Azure CLI. Verschillende VM-grootten ondersteunen een verschillend aantal NIC's, dus de grootte van uw VIRTUELE machine dienovereenkomstig. Indien nodig kunt u het formaat van een VIRTUELE machine wijzigen.
Maak een andere NIC met az network nic create. In het volgende voorbeeld wordt een NIC gemaakt met de naam myNic3 die is verbonden met het back-endsubnet en de netwerkbeveiligingsgroep die in de vorige stappen is gemaakt:
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
Als u een NIC wilt toevoegen aan een bestaande VM, moet u eerst de virtuele machine vrijgeven met az vm deallocate. In het volgende voorbeeld wordt de virtuele machine met de naam myVM vrijgegeven.
az vm deallocate --resource-group $MY_RESOURCE_GROUP_NAME --name $VM_NAME
Voeg de NIC toe met az vm nic add. In het volgende voorbeeld wordt myNic3 toegevoegd aan myVM:
az vm nic add \
--resource-group $MY_RESOURCE_GROUP_NAME \
--vm-name $VM_NAME \
--nics $NIC3
Start de VM met az vm start:
az vm start --resource-group $MY_RESOURCE_GROUP_NAME --name $VM_NAME
Voeg routeringstabellen toe aan het gastbesturingssystemen door de stappen in Het gastbesturingssystemen configureren voor meerdere NIC's uit te voeren.
Een NIC van een VM verwijderen
Als u een NIC van een bestaande VM wilt verwijderen, moet u eerst de virtuele machine uit de roulatie halen met az vm deallocate. In het volgende voorbeeld wordt de virtuele machine met de naam myVM vrijgegeven.
az vm deallocate --resource-group $MY_RESOURCE_GROUP_NAME --name $VM_NAME
Verwijder de NIC met az vm nic remove. In het volgende voorbeeld wordt myNic3 verwijderd uit myVM:
az vm nic remove \
--resource-group $MY_RESOURCE_GROUP_NAME \
--vm-name $VM_NAME \
--nics $NIC3
Start de VM met az vm start:
az vm start --resource-group $MY_RESOURCE_GROUP_NAME --name $VM_NAME
Meerdere NIC's maken met Resource Manager-sjablonen
Azure Resource Manager-sjablonen maken gebruik van declaratieve JSON-bestanden om uw omgeving te definiëren. U kunt een overzicht van Azure Resource Manager lezen. Resource Manager-sjablonen bieden een manier om meerdere exemplaren van een resource te maken tijdens de implementatie, zoals het maken van meerdere NIC's. U gebruikt kopiëren om het aantal exemplaren op te geven dat moet worden gemaakt:
"copy": {
"name": "multiplenics"
"count": "[parameters('count')]"
}
Lees meer over het maken van meerdere exemplaren met behulp van kopiëren.
U kunt ook een copyIndex() gebruiken om vervolgens een nummer toe te voegen aan een resourcenaam, waarmee u myNic1, myNic2, enzovoort kunt maken. Hieronder ziet u een voorbeeld van het toevoegen van de indexwaarde:
"name": "[concat('myNic', copyIndex())]",
U kunt een volledig voorbeeld lezen van het maken van meerdere NIC's met behulp van Resource Manager-sjablonen.
Voeg routeringstabellen toe aan het gastbesturingssystemen door de stappen in Het gastbesturingssystemen configureren voor meerdere NIC's uit te voeren.
Gastbesturingssystemen configureren voor meerdere NIC's
In de vorige stappen zijn een virtueel netwerk en subnet gemaakt, gekoppelde NIC's en vervolgens een virtuele machine gemaakt. Er zijn geen regels voor openbare IP-adressen en netwerkbeveiligingsgroepen gemaakt die SSH-verkeer toestaan. Als u het gastbesturingssystemen voor meerdere NIC's wilt configureren, moet u externe verbindingen toestaan en opdrachten lokaal uitvoeren op de virtuele machine.
Als u SSH-verkeer wilt toestaan, maakt u als volgt een netwerkbeveiligingsgroepregel met 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
Maak een openbaar IP-adres met az network public-ip create en wijs dit toe aan de eerste NIC met az network nic ip-config update:
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 $PUBLIC_IP_NAME
Als u het openbare IP-adres van de virtuele machine wilt weergeven, gebruikt u az vm show als volgt:
az vm show --resource-group $MY_RESOURCE_GROUP_NAME --name $VM_NAME -d --query publicIps -o tsv
x.x.x.x
SSH nu naar het openbare IP-adres van uw VIRTUELE machine. De standaardgebruikersnaam die in een vorige stap is opgegeven, is azureuser. Geef uw eigen gebruikersnaam en openbaar IP-adres op:
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
Als u wilt verzenden naar of van een secundaire netwerkinterface, moet u handmatig permanente routes toevoegen aan het besturingssysteem voor elke secundaire netwerkinterface. In dit artikel is eth1 de secundaire interface. Instructies voor het toevoegen van permanente routes aan het besturingssysteem variëren per distributie. Raadpleeg de documentatie voor uw distributie voor verdere instructies.
Wanneer u de route toevoegt aan het besturingssysteem, is het gatewayadres het eerste adres van het subnet waarin de netwerkinterface zich bevindt. Als aan het subnet bijvoorbeeld het bereik 10.0.2.0/24 is toegewezen, is de gateway die u opgeeft voor de route 10.0.2.1 of als het subnet het bereik 10.0.0.2.128/25 heeft toegewezen, is de gateway die u voor de route opgeeft 10.0.2.129. U kunt een specifiek netwerk definiëren voor de bestemming van de route of een bestemming van 0.0.0.0.0 opgeven als u wilt dat al het verkeer voor de interface via de opgegeven gateway gaat. De gateway voor elk subnet wordt beheerd door het virtuele netwerk.
Nadat u de route voor een secundaire interface hebt toegevoegd, controleert u of de route zich in uw routetabel bevindt.route -n
De volgende voorbeelduitvoer is voor de routetabel met de twee netwerkinterfaces die zijn toegevoegd aan de VIRTUELE machine in dit artikel:
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
Controleer of de route die u hebt toegevoegd, behouden blijft tijdens het opnieuw opstarten door de routetabel opnieuw te controleren na het opnieuw opstarten. Als u de connectiviteit wilt testen, kunt u de volgende opdracht invoeren, bijvoorbeeld waarbij eth1 de naam is van een secundaire netwerkinterface: ping bing.com -c 4 -I eth1
Volgende stappen
Controleer de grootten van linux-VM's bij het maken van een virtuele machine met meerdere NIC's. Let op het maximum aantal NIC's dat elke VM-grootte ondersteunt.
Als u uw VM's verder wilt beveiligen, gebruikt u Just-In-Time-VM-toegang. Met deze functie worden regels voor netwerkbeveiligingsgroepen geopend voor SSH-verkeer wanneer dat nodig is en voor een gedefinieerde periode. Zie Toegang tot virtuele machines beheren met just-in-time voor meer informatie.