Jak utworzyć maszynę wirtualną z systemem Linux na platformie Azure przy użyciu wielu kart interfejsu sieciowego

Dotyczy: ✔️ Maszyny wirtualne z systemem Linux — elastyczne zestawy ✔️ skalowania

W tym artykule szczegółowo 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. Poniższy przykład tworzy grupę 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 podsieć 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. W poniższym przykładzie są tworzone dwie karty sieciowe o nazwach myNic1 i myNic2 połączone 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ą --nicspolecenia . 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. Dowiedz się więcej o rozmiarach maszyn wirtualnych z systemem Linux.

Utwórz maszynę wirtualną za pomocą polecenia az vm create. Poniższy przykład tworzy 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

Poprzednie kroki spowodowały utworzenie maszyny wirtualnej 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ścić maszynę wirtualną. W razie potrzeby można 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 element 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 element 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 Resource Manager

Szablony usługi Azure Resource Manager używają deklaratywnych plików JSON do definiowania środowiska. Możesz zapoznać się z omówieniem usługi Azure Resource Manager. Resource Manager szablony umożliwiają tworzenie wielu wystąpień zasobu podczas wdrażania, takich jak tworzenie wielu kart sieciowych. Kopia 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 kopii.

Możesz również użyć elementu , copyIndex() aby następnie dołączyć liczbę do nazwy zasobu, co umożliwia utworzenie myNic1, myNic2itp. Poniżej przedstawiono przykład dołączania wartości indeksu:

"name": "[concat('myNic', copyIndex())]",

Pełny przykład tworzenia wielu kart sieciowych można uzyskać przy użyciu szablonów 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. Zapoznaj się z dokumentacją dystrybucji, aby uzyskać instrukcje.

Podczas dodawania trasy do systemu operacyjnego adres bramy jest pierwszym adresem podsieci, w którą znajduje się interfejs sieciowy. Jeśli na przykład podsieć ma przypisany 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, 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. Następujące 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 zdefiniowany 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”).