Jak utworzyć maszynę wirtualną z systemem Linux na platformie Azure z wieloma kartami interfejsu sieciowego
Dotyczy: ✔️ Maszyny wirtualne z systemem Linux — elastyczne zestawy skalowania ✔️
W tym artykule opisano sposób tworzenia maszyny wirtualnej z wieloma kartami sieciowymi za pomocą interfejsu wiersza polecenia platformy Azure.
Tworzenie zasobów pomocniczych
Zainstaluj najnowszy interfejs wiersza polecenia platformy Azure i zaloguj się do konta platformy Azure przy użyciu polecenia az login.
W poniższych przykładach zastąp przykładowe nazwy parametrów własnymi wartościami. Przykładowe nazwy parametrów to myResourceGroup, mystorageaccount i myVM.
Najpierw utwórz grupę zasobów za pomocą polecenia az group create. W poniższym przykładzie pokazano tworzenie grupy zasobów o nazwie myResourceGroup w lokalizacji eastus:
az group create --name myResourceGroup --location eastus
Utwórz sieć wirtualną za pomocą polecenia az network vnet create. Poniższy przykład tworzy sieć wirtualną o nazwie myVnet i podsieci o nazwie mySubnetFrontEnd:
az network vnet create \
--resource-group myResourceGroup \
--name myVnet \
--address-prefix 10.0.0.0/16 \
--subnet-name mySubnetFrontEnd \
--subnet-prefix 10.0.1.0/24
Utwórz podsieć dla ruchu zaplecza za pomocą polecenia az network vnet subnet create. Poniższy przykład tworzy podsieć o nazwie mySubnetBackEnd:
az network vnet subnet create \
--resource-group myResourceGroup \
--vnet-name myVnet \
--name mySubnetBackEnd \
--address-prefix 10.0.2.0/24
Utwórz sieciową grupę zabezpieczeń za pomocą polecenia az network nsg create. Poniższy przykład tworzy sieciową grupę zabezpieczeń o nazwie myNetworkSecurityGroup:
az network nsg create \
--resource-group myResourceGroup \
--name myNetworkSecurityGroup
Tworzenie i konfigurowanie wielu kart sieciowych
Utwórz dwie karty sieciowe za pomocą polecenia az network nic create. Poniższy przykład obejmuje tworzenie dwóch kart sieciowych o nazwach myNic1 i myNic2 połączonych z sieciową grupą zabezpieczeń z jedną kartą sieciową łączącą się z każdą podsiecią:
az network nic create \
--resource-group myResourceGroup \
--name myNic1 \
--vnet-name myVnet \
--subnet mySubnetFrontEnd \
--network-security-group myNetworkSecurityGroup
az network nic create \
--resource-group myResourceGroup \
--name myNic2 \
--vnet-name myVnet \
--subnet mySubnetBackEnd \
--network-security-group myNetworkSecurityGroup
Tworzenie maszyny wirtualnej i dołączanie kart sieciowych
Podczas tworzenia maszyny wirtualnej określ karty sieciowe utworzone za pomocą --nics
polecenia . Należy również zachować ostrożność podczas wybierania rozmiaru maszyny wirtualnej. Istnieją limity całkowitej liczby kart sieciowych, które można dodać do maszyny wirtualnej. Przeczytaj więcej na temat rozmiarów maszyn wirtualnych z systemem Linux.
Utwórz maszynę wirtualną za pomocą polecenia az vm create. W poniższym przykładzie utworzono maszynę wirtualną o nazwie myVM:
az vm create \
--resource-group myResourceGroup \
--name myVM \
--image Ubuntu2204 \
--size Standard_DS3_v2 \
--admin-username azureuser \
--generate-ssh-keys \
--nics myNic1 myNic2
Dodaj tabele routingu do systemu operacyjnego gościa, wykonując kroki opisane w temacie Konfigurowanie systemu operacyjnego gościa dla wielu kart sieciowych.
Dodawanie karty sieciowej do maszyny wirtualnej
W poprzednich krokach utworzono maszynę wirtualną z wieloma kartami sieciowymi. Możesz również dodać karty sieciowe do istniejącej maszyny wirtualnej za pomocą interfejsu wiersza polecenia platformy Azure. Różne rozmiary maszyn wirtualnych obsługują różną liczbę kart sieciowych, więc odpowiednio rozmieścisz maszynę wirtualną. W razie potrzeby możesz zmienić rozmiar maszyny wirtualnej.
Utwórz kolejną kartę sieciową za pomocą polecenia az network nic create. Poniższy przykład tworzy kartę sieciową o nazwie myNic3 połączoną z podsiecią zaplecza i sieciową grupą zabezpieczeń utworzoną w poprzednich krokach:
az network nic create \
--resource-group myResourceGroup \
--name myNic3 \
--vnet-name myVnet \
--subnet mySubnetBackEnd \
--network-security-group myNetworkSecurityGroup
Aby dodać kartę sieciową do istniejącej maszyny wirtualnej, najpierw cofnij przydział maszyny wirtualnej za pomocą polecenia az vm deallocate. Poniższy przykład cofa przydział maszyny wirtualnej o nazwie myVM:
az vm deallocate --resource-group myResourceGroup --name myVM
Dodaj kartę sieciową za pomocą polecenia az vm nic add. Poniższy przykład dodaje myNic3 do maszyny wirtualnej myVM:
az vm nic add \
--resource-group myResourceGroup \
--vm-name myVM \
--nics myNic3
Uruchom maszynę wirtualną za pomocą polecenia az vm start:
az vm start --resource-group myResourceGroup --name myVM
Dodaj tabele routingu do systemu operacyjnego gościa, wykonując kroki opisane w temacie Konfigurowanie systemu operacyjnego gościa dla wielu kart sieciowych.
Usuwanie karty sieciowej z maszyny wirtualnej
Aby usunąć kartę sieciową z istniejącej maszyny wirtualnej, najpierw cofnij przydział maszyny wirtualnej za pomocą polecenia az vm deallocate. Poniższy przykład cofa przydział maszyny wirtualnej o nazwie myVM:
az vm deallocate --resource-group myResourceGroup --name myVM
Usuń kartę sieciową za pomocą polecenia az vm nic remove. Poniższy przykład usuwa myNic3 z maszyny wirtualnej myVM:
az vm nic remove \
--resource-group myResourceGroup \
--vm-name myVM \
--nics myNic3
Uruchom maszynę wirtualną za pomocą polecenia az vm start:
az vm start --resource-group myResourceGroup --name myVM
Tworzenie wielu kart sieciowych przy użyciu szablonów usługi Resource Manager
Szablony usługi Azure Resource Manager używają deklaratywnych plików JSON do zdefiniowania środowiska. Możesz zapoznać się z omówieniem usługi Azure Resource Manager. Szablony usługi Resource Manager umożliwiają tworzenie wielu wystąpień zasobu podczas wdrażania, takich jak tworzenie wielu kart sieciowych. Kopię służy do określania liczby wystąpień do utworzenia:
"copy": {
"name": "multiplenics"
"count": "[parameters('count')]"
}
Przeczytaj więcej na temat tworzenia wielu wystąpień przy użyciu kopiowania.
Możesz również użyć elementu , copyIndex()
aby następnie dołączyć liczbę do nazwy zasobu, co umożliwia utworzenie myNic1
, myNic2
itp. Poniżej przedstawiono przykład dołączania wartości indeksu:
"name": "[concat('myNic', copyIndex())]",
Pełny przykład tworzenia wielu kart sieciowych przy użyciu szablonów usługi Resource Manager.
Dodaj tabele routingu do systemu operacyjnego gościa, wykonując kroki opisane w temacie Konfigurowanie systemu operacyjnego gościa dla wielu kart sieciowych.
Konfigurowanie systemu operacyjnego gościa dla wielu kart sieciowych
W poprzednich krokach utworzono sieć wirtualną i podsieć, dołączone karty sieciowe, a następnie utworzono maszynę wirtualną. Nie utworzono publicznego adresu IP i reguł sieciowej grupy zabezpieczeń, które zezwalają na ruch SSH. Aby skonfigurować system operacyjny gościa dla wielu kart sieciowych, należy zezwolić na połączenia zdalne i uruchamiać polecenia lokalnie na maszynie wirtualnej.
Aby zezwolić na ruch SSH, utwórz regułę sieciowej grupy zabezpieczeń za pomocą polecenia az network nsg rule create w następujący sposób:
az network nsg rule create \
--resource-group myResourceGroup \
--nsg-name myNetworkSecurityGroup \
--name allow_ssh \
--priority 101 \
--destination-port-ranges 22
Utwórz publiczny adres IP za pomocą polecenia az network public-ip create i przypisz go do pierwszej karty sieciowej za pomocą polecenia az network nic ip-config update:
az network public-ip create --resource-group myResourceGroup --name myPublicIP
az network nic ip-config update \
--resource-group myResourceGroup \
--nic-name myNic1 \
--name ipconfig1 \
--public-ip myPublicIP
Aby wyświetlić publiczny adres IP maszyny wirtualnej, użyj polecenia az vm show w następujący sposób:
az vm show --resource-group myResourceGroup --name myVM -d --query publicIps -o tsv
Teraz za pomocą protokołu SSH na publiczny adres IP maszyny wirtualnej. Domyślna nazwa użytkownika podana w poprzednim kroku to azureuser. Podaj własną nazwę użytkownika i publiczny adres IP:
ssh azureuser@137.117.58.232
Aby wysyłać do lub z pomocniczego interfejsu sieciowego, należy ręcznie dodać trasy trwałe do systemu operacyjnego dla każdego pomocniczego interfejsu sieciowego. W tym artykule eth1 jest interfejsem pomocniczym. Instrukcje dotyczące dodawania tras trwałych do systemu operacyjnego różnią się w zależności od dystrybucji. Aby uzyskać instrukcje, zobacz dokumentację dystrybucji.
Podczas dodawania trasy do systemu operacyjnego adres bramy jest pierwszym adresem podsieci, w których znajduje się interfejs sieciowy. Jeśli na przykład podsieć została przypisana zakres 10.0.2.0/24, brama określona dla trasy to 10.0.2.1 lub jeśli do podsieci przypisano zakres 10.0.2.128/25, brama określona dla trasy to 10.0.2.129. Można zdefiniować określoną sieć dla miejsca docelowego trasy lub określić miejsce docelowe 0.0.0.0.0, jeśli chcesz, aby cały ruch dla interfejsu przechodził przez określoną bramę. Brama dla każdej podsieci jest zarządzana przez sieć wirtualną.
Po dodaniu trasy dla interfejsu pomocniczego sprawdź, czy trasa znajduje się w tabeli tras za pomocą polecenia route -n
. Poniższe przykładowe dane wyjściowe są przeznaczone dla tabeli tras, która zawiera dwa interfejsy sieciowe dodane do maszyny wirtualnej w tym artykule:
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
Upewnij się, że dodana trasa będzie się powtarzać po ponownym uruchomieniu, sprawdzając ponownie tabelę tras po ponownym uruchomieniu. Aby przetestować łączność, możesz wprowadzić następujące polecenie, na przykład gdzie eth1 jest nazwą pomocniczego interfejsu sieciowego:
ping bing.com -c 4 -I eth1
Następne kroki
Przejrzyj rozmiary maszyn wirtualnych z systemem Linux podczas próby utworzenia maszyny wirtualnej z wieloma kartami sieciowymi. Zwróć uwagę na maksymalną liczbę kart sieciowych, które obsługuje każdy rozmiar maszyny wirtualnej.
Aby dodatkowo zabezpieczyć maszyny wirtualne, użyj dostępu just in time do maszyny wirtualnej. Ta funkcja otwiera reguły sieciowej grupy zabezpieczeń dla ruchu SSH w razie potrzeby i przez określony okres czasu. Aby uzyskać więcej informacji, zobacz Manage virtual machine access using just in time (Zarządzanie dostępem maszyny wirtualnej przy użyciu funkcji „dokładnie na czas”).