Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Виртуальная машина Azure, к которой подключены один или несколько сетевых интерфейсов. Каждому такому адаптеру статически или динамически назначается один или несколько общедоступных или частных IP-адресов.
Назначение нескольких IP-адресов виртуальной машине дает следующие возможности:
Возможность размещать на одном сервере несколько веб-сайтов или служб с разными IP-адресами и TLS/SSL-сертификатами.
возможность использовать виртуальную машину в качестве виртуального сетевого устройства, такого как брандмауэр или балансировщик нагрузки.
Возможность добавлять любой из частных IP-адресов для любого из сетевых адаптеров в Azure Load Balancer внутренний пул. Раньше во внутренний пул можно было добавить только основной IP-адрес для основной сетевой карты. Дополнительные сведения о балансировке нагрузки в конфигурациях с несколькими IP-адресами см. в статье Балансировка нагрузки в конфигурациях с несколькими IP-адресами.
Каждому сетевому адаптеру, подключенному к виртуальной машине, присвоена одна или несколько конфигураций IP-адресов. Каждая конфигурация получает один статический или динамический частный IP-адрес. Кроме того, каждой конфигурации также может быть присвоен один ресурс общедоступного IP-адреса. Дополнительные сведения о IP-адресах в Azure см. в разделе IP-адреса в Azure.
Note
Все конфигурации IP-адресов на одном сетевом интерфейсе должны быть связаны с одной и той же подсетью. Если желательно использовать несколько IP-адресов в разных подсетях, может использоваться несколько сетевых интерфейсов на виртуальной машине. Дополнительные сведения о нескольких сетевых адаптерах на виртуальной машине в Azure см. в статье Create VM с несколькими сетевыми адаптерами.
Сетевой карте может быть назначено ограниченное число частных IP-адресов. Существует также ограничение на количество общедоступных IP-адресов, которые можно использовать в подписке Azure. Дополнительные сведения см. в статье об ограничениях Azure.
В этой статье объясняется, как добавить несколько IP-адресов в виртуальную машину с помощью PowerShell.
Prerequisites
Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
Среда PowerShell в Azure Cloud Shell или Azure PowerShell локально установлена. Дополнительные сведения об использовании PowerShell в Azure Cloud Shell см. в кратком руководстве Azure Cloud Shell.
- Если вы решили установить и использовать PowerShell локально, в этой статье требуется модуль Azure PowerShell версии 5.4.1 или более поздней. Выполните командлет
Get-InstalledModule -Name Az, чтобы узнать установленную версию. Если вам необходимо обновить, смотрите Установите модуль Azure PowerShell. Убедитесь, что модуль Az.Network имеет версию 4.3.0 или более позднюю. Чтобы проверить установленный модуль, используйте командуGet-InstalledModule -Name "Az.Network". Если модуль требует обновления, используйте командуUpdate-Module -Name "Az.Network".
- Если вы решили установить и использовать PowerShell локально, в этой статье требуется модуль Azure PowerShell версии 5.4.1 или более поздней. Выполните командлет
Войдите в Azure PowerShell и убедитесь, что выбрана подписка, с которой вы хотите использовать эту функцию. Дополнительные сведения см. в разделе Sign in with Azure PowerShell.
Note
Хотя в этой статье все IP-конфигурации назначаются одному сетевому интерфейсу, вы можете аналогичным образом назначить несколько IP-конфигураций любому сетевому интерфейсу, прикрепленному к виртуальной машине с несколькими сетевыми адаптерами. Дополнительные сведения см. в статье Создание виртуальной машины с несколькими сетевыми картами.
Рисунок. Схема ресурсов конфигурации сети, созданных в этой статье.
Создание группы ресурсов
Группа ресурсов Azure — это логический контейнер, в котором развертываются и управляются ресурсы Azure.
Создайте группу ресурсов с помощью New-AzResourceGroup с именем myResourceGroup в регионе eastus2.
$rg =@{
Name = 'myResourceGroup'
Location = 'eastus2'
}
New-AzResourceGroup @rg
Создание виртуальной сети
В этом разделе описано, как создать виртуальную сеть для виртуальной машины.
Используйте New-AzVirtualNetwork и New-AzVirtualNetworkSubnetConfig , чтобы создать виртуальную сеть с одной подсетью.
## Create backend subnet config ##
$subnet = @{
Name = 'myBackendSubnet'
AddressPrefix = '10.1.0.0/24'
}
$subnetConfig = New-AzVirtualNetworkSubnetConfig @subnet
## Create the virtual network ##
$vnet = @{
Name = 'myVNet'
ResourceGroupName = 'myResourceGroup'
Location = 'eastus2'
AddressPrefix = '10.1.0.0/16'
Subnet = $subnetConfig
}
New-AzVirtualNetwork @vnet
Создание первичного общедоступного IP-адреса
Используйте New-AzPublicIpAddress , чтобы создать основной общедоступный IP-адрес.
$ip1 = @{
Name = 'myPublicIP-1'
ResourceGroupName = 'myResourceGroup'
Location = 'eastus2'
Sku = 'Standard'
AllocationMethod = 'Static'
IpAddressVersion = 'IPv4'
Zone = 1,2,3
}
New-AzPublicIpAddress @ip1
Создание группы безопасности сети
В этом разделе описано, как создать группу безопасности сети для виртуальной машины и виртуальной сети. Вы создадите правило, чтобы разрешить подключения к виртуальной машине через порт 22 для SSH.
Используйте New-AzNetworkSecurityGroup и New-AzNetworkSecurityRuleConfig , чтобы создать группу безопасности сети и правила.
## Create rule for network security group and place in variable. ##
$nsgrule1 = @{
Name = 'myNSGRuleSSH'
Description = 'Allow SSH'
Protocol = '*'
SourcePortRange = '*'
DestinationPortRange = '22'
SourceAddressPrefix = 'Internet'
DestinationAddressPrefix = '*'
Access = 'Allow'
Priority = '200'
Direction = 'Inbound'
}
$rule1 = New-AzNetworkSecurityRuleConfig @nsgrule1
## Create network security group ##
$nsg = @{
Name = 'myNSG'
ResourceGroupName = 'myResourceGroup'
Location = 'eastus2'
SecurityRules = $rule1
}
New-AzNetworkSecurityGroup @nsg
Создание сетевого интерфейса
Используйте New-AzNetworkInterface и New-AzNetworkInterfaceIpConfig для создания сетевого интерфейса для виртуальной машины. Ранее созданный общедоступный IP-адрес и группа безопасности сети связаны с сетевым интерфейсом. Сетевой интерфейс подключен к виртуальной сети, созданной ранее.
## Place the virtual network into a variable. ##
$net = @{
Name = 'myVNet'
ResourceGroupName = 'myResourceGroup'
}
$vnet = Get-AzVirtualNetwork @net
## Place the network security group into a variable. ##
$ns = @{
Name = 'myNSG'
ResourceGroupName = 'myResourceGroup'
}
$nsg = Get-AzNetworkSecurityGroup @ns
## Place the primary public IP address into a variable. ##
$pub1 = @{
Name = 'myPublicIP-1'
ResourceGroupName = 'myResourceGroup'
}
$pubIP1 = Get-AzPublicIPAddress @pub1
## Create a primary IP configuration for the network interface. ##
$IP1 = @{
Name = 'ipconfig1'
Subnet = $vnet.Subnets[0]
PrivateIpAddressVersion = 'IPv4'
PublicIPAddress = $pubIP1
}
$IP1Config = New-AzNetworkInterfaceIpConfig @IP1 -Primary
## Create a secondary IP configuration for the network interface. ##
$IP3 = @{
Name = 'ipconfig3'
Subnet = $vnet.Subnets[0]
PrivateIpAddressVersion = 'IPv4'
PrivateIpAddress = '10.1.0.6'
}
$IP3Config = New-AzNetworkInterfaceIpConfig @IP3
## Command to create a network interface. ##
$nic = @{
Name = 'myNIC1'
ResourceGroupName = 'myResourceGroup'
Location = 'eastus2'
NetworkSecurityGroup = $nsg
IpConfiguration = $IP1Config,$IP3Config
}
New-AzNetworkInterface @nic
Note
При добавлении статического IP-адреса необходимо указать допустимый неиспользуемый адрес в подсети, к которой подключена сетевая интерфейсная карта.
Создание виртуальной машины
Используйте следующие команды для создания виртуальной машины:
$cred = Get-Credential
## Place network interface into a variable. ##
$nic = @{
Name = 'myNIC1'
ResourceGroupName = 'myResourceGroup'
}
$nicVM = Get-AzNetworkInterface @nic
## Create a virtual machine configuration for VMs ##
$vmsz = @{
VMName = 'myVM'
VMSize = 'Standard_DS1_v2'
}
$vmos = @{
ComputerName = 'myVM'
Credential = $cred
}
$vmimage = @{
PublisherName = 'Debian'
Offer = 'debian-11'
Skus = '11'
Version = 'latest'
}
$vmConfig = New-AzVMConfig @vmsz `
| Set-AzVMOperatingSystem @vmos -Linux `
| Set-AzVMSourceImage @vmimage `
| Add-AzVMNetworkInterface -Id $nicVM.Id
## Create the virtual machine for VMs ##
$vm = @{
ResourceGroupName = 'myResourceGroup'
Location = 'eastus2'
VM = $vmConfig
SshKeyName = 'mySSHKey'
}
New-AzVM @vm -GenerateSshKey
Добавление вторичного частного и общедоступного IP-адреса
Используйте New-AzPublicIpAddress для создания вторичного общедоступного IP-адреса.
$ip2 = @{
Name = 'myPublicIP-2'
ResourceGroupName = 'myResourceGroup'
Location = 'eastus2'
Sku = 'Standard'
AllocationMethod = 'Static'
IpAddressVersion = 'IPv4'
Zone = 1,2,3
}
New-AzPublicIpAddress @ip2
Используйте New-AzNetworkInterfaceIpConfig , чтобы создать вторичную IP-конфигурацию для виртуальной машины.
## Place the virtual network into a variable. ##
$net = @{
Name = 'myVNet'
ResourceGroupName = 'myResourceGroup'
}
$vnet = Get-AzVirtualNetwork @net
## Place your virtual network subnet into a variable. ##
$sub = @{
Name = 'myBackendSubnet'
VirtualNetwork = $vnet
}
$subnet = Get-AzVirtualNetworkSubnetConfig @sub
## Place the secondary public IP address you created previously into a variable. ##
$pip = @{
Name = 'myPublicIP-2'
ResourceGroupName = 'myResourceGroup'
}
$pubIP2 = Get-AzPublicIPAddress @pip
## Place the network interface into a variable. ##
$net = @{
Name = 'myNIC1'
ResourceGroupName = 'myResourceGroup'
}
$nic = Get-AzNetworkInterface @net
## Create a secondary IP configuration for the network interface. ##
$IPc2 = @{
Name = 'ipconfig2'
Subnet = $vnet.Subnets[0]
PrivateIpAddressVersion = 'IPv4'
PrivateIpAddress = '10.1.0.5'
PublicIPAddress = $pubIP2
}
$IP2Config = New-AzNetworkInterfaceIpConfig @IPc2
## Add the IP configuration to the network interface. ##
$nic.IpConfigurations.Add($IP2Config)
## Save the configuration to the network interface. ##
$nic | Set-AzNetworkInterface
Добавление IP-адресов в операционную систему виртуальной машины
Подключитесь к виртуальной машине, созданной с несколькими частными IP-адресами, и войдите на нее. Все частные IP-адреса (включая первичные), добавленные в виртуальную машину, необходимо добавить вручную. Выполните следующие шаги в соответствии с операционной системой виртуальной машины.
Windows Server
Расширять
Откройте командную строку или PowerShell.
Введите
ipconfig /allв командной строке. Вы увидите основной частный IP-адрес, назначенный через DHCP.Введите
ncpa.cplв командной строке, чтобы открыть конфигурацию сетевых подключений .Откройте свойства сетевого адаптера, назначенные новым IP-адресам.
Дважды щелкните Протокол Интернета версии 4 (TCP/IPv4).
Выберите параметр Использовать следующий IP-адрес. Введите следующие значения.
Setting Value IP-адрес: Введите основной частный IP-адрес. Маска подсети: Введите маску подсети на основе IP-адреса.
Например, если подсеть является подсетью /24 , маска подсети — 255.255.255.0.Шлюз по умолчанию: первый IP-адрес в подсети.
Если подсеть имеет значение 10.0.0.0/24, IP-адрес шлюза равен 10.0.0.1.Выберите параметр Использовать следующие адреса DNS-серверов. Введите следующие значения.
Setting Value Предпочитаемый DNS-сервер: Введите основной DNS-сервер.
Введите IP-адрес 168.63.129.16 для использования DNS, предоставленного Azure по умолчанию.Нажмите кнопку "Дополнительно ".
Нажмите кнопку "Добавить".
Введите частный адрес IP, добавленный в сетевой интерфейс Azure. Введите соответствующую маску подсети. Нажмите кнопку "Добавить".
Повторите предыдущие шаги, чтобы добавить дополнительные частные IP-адреса, добавленные в сетевой интерфейс Azure.
Important
Вы никогда не должны вручную назначать общедоступный IP-адрес, назначенный виртуальной машине Azure в операционной системе виртуальной машины. При ручном настройке IP-адреса в операционной системе убедитесь, что он тот же адрес, что и частный IP-адрес, назначенный сетевому интерфейсу Azure. Неправильное назначение адреса может привести к потере подключения к виртуальной машине. Дополнительные сведения см. в разделе Изменение параметров IP-адреса.
Дополнительные сведения см. в разделе Частный IP-адрес.
Нажмите кнопку "ОК" , чтобы закрыть параметры вторичного IP-адреса.
Нажмите кнопку "ОК" , чтобы закрыть параметры адаптера. Соединение RDP восстанавливается.
Откройте командную строку или PowerShell.
Введите
ipconfig /allв командной строке.Убедитесь, что в конфигурации присутствуют первичные и вторичные частные IP-адреса.
PS C:\Users\azureuser> ipconfig /all Windows IP Configuration Host Name . . . . . . . . . . . . : myVM Primary Dns Suffix . . . . . . . : Node Type . . . . . . . . . . . . : Hybrid IP Routing Enabled. . . . . . . . : No WINS Proxy Enabled. . . . . . . . : No Ethernet adapter Ethernet: Connection-specific DNS Suffix . : Description . . . . . . . . . . . : Microsoft Hyper-V Network Adapter Physical Address. . . . . . . . . : 00-0D-3A-E6-CE-A3 DHCP Enabled. . . . . . . . . . . : No Autoconfiguration Enabled . . . . : Yes Link-local IPv6 Address . . . . . : fe80::a8d1:11d5:3ab2:6a51%5(Preferred) IPv4 Address. . . . . . . . . . . : 10.1.0.4(Preferred) Subnet Mask . . . . . . . . . . . : 255.255.255.0 IPv4 Address. . . . . . . . . . . : 10.1.0.5(Preferred) Subnet Mask . . . . . . . . . . . : 255.255.255.0 IPv4 Address. . . . . . . . . . . : 10.1.0.6(Preferred) Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 10.1.0.1 DHCPv6 IAID . . . . . . . . . . . : 100666682 DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-2A-A8-26-B1-00-0D-3A-E6-CE-A3 DNS Servers . . . . . . . . . . . : 168.63.129.16 NetBIOS over Tcpip. . . . . . . . : EnabledУбедитесь, что основной частный IP-адрес, используемый в windows, совпадает с основным IP-адресом сетевого интерфейса Azure виртуальной машины. Для получения дополнительной информации см. статью Отсутствие доступа в Интернет с Azure Windows VM с несколькими IP-адресами.
Проверка (Windows Server)
Чтобы проверить подключение к Интернету из вторичной IP-конфигурации через общедоступный IP-адрес, используйте следующую команду: Замените 10.1.0.5 дополнительным частным IP-адресом, добавленным в сетевой интерфейс Azure виртуальной машины.
ping -S 10.1.0.5 outlook.com
Note
Для вторичных IP-конфигураций вы можете выполнить ping до Интернета, если с этой конфигурацией связан публичный IP-адрес. Для первичных IP-конфигураций для выполнения ping к Интернету не требуется общедоступный IP-адрес.
SUSE Linux Enterprise и openSUSE
Расширять
Дистрибутивы на основе SUSE используют подключаемыйcloud-netconfig модуль из cloud-netconfig-azure пакета для управления IP-конфигурацией. Никаких действий, выполняемых вручную, не требуется от имени администратора. Первый IP-адрес интерфейсного набора на платформе назначается через DHCP. Затем подключаемый модуль cloud-netconfig проверяет API службы метаданных экземпляра Azure непрерывно (один раз в минуту) для получения дополнительных IP-адресов, назначенных интерфейсу, и добавляет и удаляет их в качестве вторичных IP-адресов автоматически.
Этот подключаемый модуль должен быть установлен и включен на новых образах по умолчанию. Ниже приведены шаги по настройке старых рабочих нагрузок. https://www.suse.com/c/multi-nic-cloud-netconfig-ec2-azure/
Ubuntu 14/16
Расширять
Рекомендуем ознакомиться с последней версией документации к своей версии Linux.
Откройте окно терминала.
Убедитесь, что у вас есть права привилегированного пользователя. В противном случае введите следующую команду:
sudo -iОбновите файл конфигурации сетевого интерфейса (предполагая ‘eth0’).
Сохраните имеющийся элемент строки для DHCP. Основной IP-адрес остается настроенным, как и ранее.
Добавьте конфигурацию для другого статического IP-адреса со следующими командами:
cd /etc/network/interfaces.d/ lsВы должны увидеть файл .cfg.
Откройте файл . В конце этого файла будут следующие строки:
auto eth0 iface eth0 inet dhcpДобавьте следующие строки после имеющихся строк в файле. Замените
10.1.0.5своим частным IP-адресом и маской подсети.iface eth0 inet static address 10.1.0.5 netmask 255.255.255.0Чтобы добавить другие частные IP-адреса, измените файл и добавьте новые частные IP-адреса в последующих строках:
iface eth0 inet static address 10.1.0.5 netmask 255.255.255.0 iface eth0 inet static address 10.1.0.6 netmask 255.255.255.0Сохраните файл с помощью следующей команды:
:wqСбросьте сетевой интерфейс, выполнив следующую команду:
ifdown eth0 && ifup eth0Important
Если используется удаленное подключение, выполните скрипты ifdown и ifup в одной и той же строке.
Проверьте, добавлен ли IP-адрес к сетевому интерфейсу, с помощью следующей команды:
ip addr list eth0Должен отобразиться IP-адрес, добавленный как часть списка. Example:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:0d:3a:04:45:16 brd ff:ff:ff:ff:ff:ff inet 10.1.0.5/24 brd 10.1.0.255 scope global eth0 valid_lft forever preferred_lft forever inet 10.1.0.6/24 brd 10.1.0.255 scope global secondary eth0 valid_lft forever preferred_lft forever inet 10.1.0.4/24 brd 10.1.0.255 scope global secondary eth0 valid_lft forever preferred_lft forever inet6 fe80::20d:3aff:fe04:4516/64 scope link valid_lft forever preferred_lft forever
Проверка (Ubuntu 14/16)
Чтобы убедиться, что вы можете подключиться к Интернету с помощью вторичной IP-конфигурации через связанный с ней общедоступный IP-адрес, используйте следующую команду:
ping -I 10.1.0.5 outlook.com
Note
Для вторичных IP-конфигураций можно использовать команду ping для доступа к интернету только в том случае, если с конфигурацией связан общедоступный IP-адрес. Для первичных IP-конфигураций для выполнения ping к Интернету не требуется общедоступный IP-адрес.
При попытке проверки исходящего трафика с вторичной сетевой карты для виртуальных машин Linux может потребоваться добавить соответствующие маршруты. Дополнительные сведения о дистрибутиве Linux см. в соответствующей документации. Следующий метод для достижения этой цели:
echo 150 custom >> /etc/iproute2/rt_tables
ip rule add from 10.1.0.5 lookup custom
ip route add default via 10.1.0.1 dev eth2 table custom
Убедитесь, что заменяете:
10.1.0.5 с частным IP-адресом, которому соответствует общедоступный IP-адрес
10.1.0.1 для шлюза по умолчанию
eth2 для названия вашей вторичной сетевой карты
Ubuntu 18.04+
Расширять
Начиная с версии 18.04, netplan используется в Ubuntu для управления сетями. Рекомендуем ознакомиться с последней версией документации к своей версии Linux.
Откройте окно терминала.
Убедитесь, что у вас есть права привилегированного пользователя. Если вы не являетесь, введите следующую команду:
sudo -iСоздайте файл для второго интерфейса и откройте его в текстовом редакторе:
vi /etc/netplan/60-static.yamlДобавьте в файл перечисленные ниже строки, заменив
10.1.0.5/24своим IP-адресом и маской подсети:network: version: 2 ethernets: eth0: addresses: - 10.1.0.5/24Чтобы добавить частные IP-адреса, измените файл и добавьте новые частные IP-адреса в последующих строках:
network: version: 2 ethernets: eth0: addresses: - 10.1.0.5/24 - 10.1.0.6/24Сохраните файл с помощью следующей команды:
:wqПроверьте изменения с помощью команды netplan try, чтобы подтвердить синтаксис:
netplan tryNote
netplan tryприменит изменения временно и откатит изменения через 120 секунд. Если есть потеря подключения, подождите 2 минуты, а затем снова подключитесь. По истечении этого периода произойдет откат внесенных изменений.Убедившись в отсутствии неполадок с помощью команды
netplan try, примените следующие изменения конфигурации:netplan applyПроверьте, добавлен ли IP-адрес к сетевому интерфейсу, с помощью следующей команды:
ip addr list eth0Должен отобразиться IP-адрес, добавленный как часть списка. Example:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:0d:3a:04:45:16 brd ff:ff:ff:ff:ff:ff inet 10.1.0.5/24 brd 10.1.0.255 scope global eth0 valid_lft forever preferred_lft forever inet 10.1.0.6/24 brd 10.1.0.255 scope global secondary eth0 valid_lft forever preferred_lft forever inet 10.1.0.4/24 brd 10.1.0.255 scope global secondary eth0 valid_lft forever preferred_lft forever inet6 fe80::20d:3aff:fe04:4516/64 scope link valid_lft forever preferred_lft forever
Проверка (Ubuntu 18.04+)
Чтобы убедиться, что вы можете подключиться к Интернету с помощью вторичной IP-конфигурации через связанный с ней общедоступный IP-адрес, используйте следующую команду:
ping -I 10.1.0.5 outlook.com
Note
Для вторичных IP-конфигураций можно использовать команду ping для доступа к интернету только в том случае, если с конфигурацией связан общедоступный IP-адрес. Для первичных IP-конфигураций для выполнения ping к Интернету не требуется общедоступный IP-адрес.
При попытке проверки исходящего трафика с дополнительного сетевого интерфейса для виртуальных машин Linux может потребоваться добавление соответствующих маршрутов. Следуйте соответствующей документации по дистрибутиву Linux. Следующий метод является одним из способов достижения этой цели:
echo 150 custom >> /etc/iproute2/rt_tables
ip rule add from 10.1.0.5 lookup custom
ip route add default via 10.1.0.1 dev eth2 table custom
Замените:
10.1.0.5 с частным IP-адресом, которому соответствует общедоступный IP-адрес
10.1.0.1 для шлюза по умолчанию
eth2 для названия вашей вторичной сетевой карты
Red Hat Enterprise Linux и другие
Расширять
Note
Чтобы настроить дополнительные IP-адреса в RHEL10.x, достаточно перезапустить NetworkManger с помощью: systemctl restart NetworkManger.service или перезагрузить систему. Больше никаких действий не требуется.
RHEL 8.6 и выше, RHEL 9
Начиная с RHEL 8.6 и выше и RHEL 9 пакет networkmanager-cloud-setup может обрабатывать несколько IP-конфигураций и связанную конфигурацию маршрута.
- Отключен cloud-init для обработки вторичной IP-конфигурации в соответствующих файлах /etc/cloud/cloud.cfg.d/99-apply-network-config.cfg или /etc/cloud/cloud.cfg.d/91-azure_datasource.cfg. Это позволит NetworkManager и nm-cloud-setup управлять всей конфигурацией сети.
[root@rhel8 ~]# cat /etc/cloud/cloud.cfg.d/99-apply-network-config.cfg
datasource:
Azure:
apply_network_config: False
- Установите пакет NetworkManager-cloud-setup, если он еще не установлен
]# yum install NetworkManager-cloud-setup
Red Hat Enterprise Linux 8 for x86_64 - BaseOS from RHUI (RPMs) 39 MB/s | 66 MB 00:01
Red Hat Enterprise Linux 8 for x86_64 - Supplementary (RPMs) from RHUI 2.3 MB/s | 340 kB 00:00
Red Hat Enterprise Linux 8 for x86_64 - AppStream from RHUI (RPMs) 41 MB/s | 60 MB 00:01
Red Hat CodeReady Linux Builder for RHEL 8 x86_64 (RPMs) from RHUI 33 MB/s | 8.9 MB 00:00
Red Hat Ansible Engine 2 for RHEL 8 x86_64 (RPMs) from RHUI 14 MB/s | 2.5 MB 00:00
Dependencies resolved.
==============================================================================================================================================================================================
Package Architecture Version Repository Size
==============================================================================================================================================================================================
Installing:
NetworkManager-cloud-setup x86_64 1:1.40.16-13.el8_9 rhel-8-for-x86_64-appstream-rhui-rpms 198 k
Upgrading:
NetworkManager x86_64 1:1.40.16-13.el8_9 rhel-8-for-x86_64-baseos-rhui-rpms 2.3 M
NetworkManager-libnm x86_64 1:1.40.16-13.el8_9 rhel-8-for-x86_64-baseos-rhui-rpms 1.9 M
NetworkManager-team x86_64 1:1.40.16-13.el8_9 rhel-8-for-x86_64-baseos-rhui-rpms 161 k
NetworkManager-tui x86_64 1:1.40.16-13.el8_9 rhel-8-for-x86_64-baseos-rhui-rpms 356 k
Transaction Summary
==============================================================================================================================================================================================
Install 1 Package
Upgrade 4 Packages
Total download size: 4.9 M
Is this ok [y/N]: y
Downloading Packages:
(1/5): NetworkManager-cloud-setup-1.40.16-13.el8_9.x86_64.rpm 2.0 MB/s | 198 kB 00:00
(2/5): NetworkManager-1.40.16-13.el8_9.x86_64.rpm 18 MB/s | 2.3 MB 00:00
(3/5): NetworkManager-team-1.40.16-13.el8_9.x86_64.rpm 4.1 MB/s | 161 kB 00:00
(4/5): NetworkManager-libnm-1.40.16-13.el8_9.x86_64.rpm 12 MB/s | 1.9 MB 00:00
(5/5): NetworkManager-tui-1.40.16-13.el8_9.x86_64.rpm 8.8 MB/s | 356 kB 00:00
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 28 MB/s | 4.9 MB 00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Running scriptlet: NetworkManager-libnm-1:1.40.16-13.el8_9.x86_64 1/1
Upgrading : NetworkManager-libnm-1:1.40.16-13.el8_9.x86_64 1/9
Running scriptlet: NetworkManager-libnm-1:1.40.16-13.el8_9.x86_64 1/9
Running scriptlet: NetworkManager-1:1.40.16-13.el8_9.x86_64 2/9
Upgrading : NetworkManager-1:1.40.16-13.el8_9.x86_64 2/9
Running scriptlet: NetworkManager-1:1.40.16-13.el8_9.x86_64 2/9
Installing : NetworkManager-cloud-setup-1:1.40.16-13.el8_9.x86_64 3/9
Running scriptlet: NetworkManager-cloud-setup-1:1.40.16-13.el8_9.x86_64 3/9
Upgrading : NetworkManager-team-1:1.40.16-13.el8_9.x86_64 4/9
Upgrading : NetworkManager-tui-1:1.40.16-13.el8_9.x86_64 5/9
Cleanup : NetworkManager-tui-1:1.40.0-1.el8.x86_64 6/9
Cleanup : NetworkManager-team-1:1.40.0-1.el8.x86_64 7/9
Running scriptlet: NetworkManager-1:1.40.0-1.el8.x86_64 8/9
Cleanup : NetworkManager-1:1.40.0-1.el8.x86_64 8/9
Running scriptlet: NetworkManager-1:1.40.0-1.el8.x86_64 8/9
Cleanup : NetworkManager-libnm-1:1.40.0-1.el8.x86_64 9/9
Running scriptlet: NetworkManager-libnm-1:1.40.0-1.el8.x86_64 9/9
Verifying : NetworkManager-cloud-setup-1:1.40.16-13.el8_9.x86_64 1/9
Verifying : NetworkManager-1:1.40.16-13.el8_9.x86_64 2/9
Verifying : NetworkManager-1:1.40.0-1.el8.x86_64 3/9
Verifying : NetworkManager-libnm-1:1.40.16-13.el8_9.x86_64 4/9
Verifying : NetworkManager-libnm-1:1.40.0-1.el8.x86_64 5/9
Verifying : NetworkManager-team-1:1.40.16-13.el8_9.x86_64 6/9
Verifying : NetworkManager-team-1:1.40.0-1.el8.x86_64 7/9
Verifying : NetworkManager-tui-1:1.40.16-13.el8_9.x86_64 8/9
Verifying : NetworkManager-tui-1:1.40.0-1.el8.x86_64 9/9
Installed products updated.
Upgraded:
NetworkManager-1:1.40.16-13.el8_9.x86_64 NetworkManager-libnm-1:1.40.16-13.el8_9.x86_64 NetworkManager-team-1:1.40.16-13.el8_9.x86_64 NetworkManager-tui-1:1.40.16-13.el8_9.x86_64
Installed:
NetworkManager-cloud-setup-1:1.40.16-13.el8_9.x86_64
Complete!
- Чтобы включить "nm-cloud-setup" для обработки вторичной IP-конфигурации, создайте nm-cloud-setup.service и nm-cloud-setup.timer (настройте параметры OnBootSec и OnUnitActiveSec в соответствии с вашими требованиями)
[root@rhel8 ~]# cat /etc/systemd/system/nm-cloud-setup.service
[Unit]
Description=Automatically configure NetworkManager in cloud
Documentation=man:nm-cloud-setup(8)
Before=network-online.target
After=NetworkManager.service
[Service]
Environment=NM_CLOUD_SETUP_AZURE=yes
Type=oneshot
ExecStart=/usr/libexec/nm-cloud-setup
[Install]
WantedBy=NetworkManager.service
[root@rhel8 ~]# cat /etc/systemd/system/nm-cloud-setup.timer
[Unit]
Description=Periodically run nm-cloud-setup
[Timer]
OnBootSec=1min
OnUnitActiveSec=1min
[Install]
WantedBy=timers.target
- Активировать службы и перезагрузить демон
systemctl enable --now nm-cloud-setup.service
systemctl start nm-cloud-setup.service
systemctl enable --now nm-cloud-setup.timer
systemctl daemon-reload
- Перезагрузите виртуальную машину и проверьте ее. Теперь виртуальная машина должна успешно определить соответствующие первичные и вторичные IP-адреса.
RHEL 8.5 и ниже
Откройте окно терминала.
Убедитесь, что у вас есть права привилегированного пользователя. В противном случае введите следующую команду:
sudo -iВведите пароль и следуйте инструкциям. После того как вы станете привилегированным пользователем, перейдите к папке сетевых скриптов, используя следующую команду:
cd /etc/sysconfig/network-scriptsВыведите список связанных IFCFG-файлов, используя следующую команду:
ls ifcfg-*Вы должны увидеть ifcfg-eth0 как один из файлов.
Создайте новый файл конфигурации для каждого IP-адреса, добавленного в систему.
touch ifcfg-eth0:0Откройте файл ifcfg-eth0:0 с помощью следующей команды:
vi ifcfg-eth0:0Добавьте содержимое в файл eth0:0 в этом случае с помощью следующей команды. Замените
10.1.0.5новым частным IP-адресом и маской подсети.DEVICE=eth0:0 BOOTPROTO=static ONBOOT=yes IPADDR=10.1.0.5 NETMASK=255.255.255.0Сохраните файл, используя следующую команду:
:wqСоздайте файл конфигурации для каждого IP-адреса, чтобы добавить соответствующие значения:
touch ifcfg-eth0:1vi ifcfg-eth0:1DEVICE=eth0:1 BOOTPROTO=static ONBOOT=yes IPADDR=10.1.0.6 NETMASK=255.255.255.0:wqПерезапустите сетевые службы и убедитесь, что изменения вступили в силу, выполнив следующие команды:
systemctl restart NetworkManager.service ifconfigВ возвращенном списке должен содержаться добавленный вами IP-адрес или IP-адреса.
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.1.0.4 netmask 255.255.255.0 broadcast 10.1.0.255 inet6 fe80::6245:bdff:fe7d:704a prefixlen 64 scopeid 0x20<link> ether 60:45:bd:7d:70:4a txqueuelen 1000 (Ethernet) RX packets 858 bytes 244215 (238.4 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 1021 bytes 262077 (255.9 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth0:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.1.0.5 netmask 255.255.255.0 broadcast 10.1.0.255 ether 60:45:bd:7d:70:4a txqueuelen 1000 (Ethernet) eth0:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.1.0.6 netmask 255.255.255.0 broadcast 10.1.0.255 ether 60:45:bd:7d:70:4a txqueuelen 1000 (Ethernet)
Проверка (Red Hat и другие)
Чтобы убедиться, что вы можете подключиться к Интернету с помощью вторичной IP-конфигурации через связанный с ней общедоступный IP-адрес, используйте следующую команду:
ping -I 10.0.0.5 outlook.com
Note
Для вторичных IP-конфигураций можно использовать команду ping для доступа к интернету только в том случае, если с конфигурацией связан общедоступный IP-адрес. Для первичных IP-конфигураций для выполнения ping к Интернету не требуется общедоступный IP-адрес.
При попытке проверки исходящего трафика с вторичной сетевой карты для виртуальных машин Linux может потребоваться добавить соответствующие маршруты. См. соответствующую документацию для дистрибутива Linux. Следующий метод для достижения этой цели:
echo 150 custom >> /etc/iproute2/rt_tables
ip rule add from 10.1.0.5 lookup custom
ip route add default via 10.1.0.1 dev eth2 table custom
Убедитесь, что заменяете:
10.0.0.5 с частным IP-адресом с общедоступным IP-адресом, связанным с ним
10.0.0.1 для шлюза по умолчанию
eth2 для названия вашей вторичной сетевой карты
Debian GNU/Linux
Расширять
Рекомендуем ознакомиться с последней версией документации к своей версии Linux.
Откройте окно терминала.
Убедитесь, что у вас есть права привилегированного пользователя. В противном случае введите следующую команду:
sudo -iОбновите файл конфигурации сетевого интерфейса (предполагая ‘eth0’).
Сохраните имеющийся элемент строки для DHCP. Основной IP-адрес остается настроенным, как и ранее.
Добавьте конфигурацию для каждого статического IP-адреса с помощью следующих команд:
cd /etc/network/interfaces.d/ lsВы должны увидеть файл .cfg.
Откройте файл . В конце этого файла будут следующие строки:
auto eth0 iface eth0 inet dhcpДобавьте следующие строки после имеющихся строк в файле. Замените
10.1.0.5своим частным IP-адресом и маской подсети.iface eth0 inet static address 10.1.0.5 netmask 255.255.255.0Добавьте новые ip-адреса в файл конфигурации:
iface eth0 inet static address 10.1.0.5 netmask 255.255.255.0 iface eth0 inet static address 10.1.0.6 netmask 255.255.255.0Сохраните файл с помощью следующей команды:
:wqПерезапустите службы сети, чтобы изменения вступили в силу. Для Debian 8 и более поздних версий используйте:
systemctl restart networkingДля предыдущих версий Debian можно использовать следующие команды:
service networking restartПроверьте, добавлен ли IP-адрес к сетевому интерфейсу, с помощью следующей команды:
ip addr list eth0Должен отобразиться IP-адрес, добавленный как часть списка. Example:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:0d:3a:04:45:16 brd ff:ff:ff:ff:ff:ff inet 10.1.0.5/24 brd 10.1.0.255 scope global eth0 valid_lft forever preferred_lft forever inet 10.1.0.6/24 brd 10.1.0.255 scope global secondary eth0 valid_lft forever preferred_lft forever inet 10.1.0.4/24 brd 10.1.0.255 scope global secondary eth0 valid_lft forever preferred_lft forever inet6 fe80::20d:3aff:fe04:4516/64 scope link valid_lft forever preferred_lft forever
Проверка (Debian GNU/Linux)
Чтобы убедиться, что вы можете подключиться к Интернету с помощью вторичной IP-конфигурации через связанный с ней общедоступный IP-адрес, используйте следующую команду:
ping -I 10.1.0.5 outlook.com
Note
Для вторичных IP-конфигураций можно использовать команду ping для доступа к интернету только в том случае, если с конфигурацией связан общедоступный IP-адрес. Для первичных IP-конфигураций для выполнения ping к Интернету не требуется общедоступный IP-адрес.
При попытке проверки исходящего трафика с вторичной сетевой карты для виртуальных машин Linux может потребоваться добавить соответствующие маршруты. Дополнительные сведения о дистрибутиве Linux см. в соответствующей документации. Следующий метод для достижения этой цели:
echo 150 custom >> /etc/iproute2/rt_tables
ip rule add from 10.1.0.5 lookup custom
ip route add default via 10.1.0.1 dev eth2 table custom
Убедитесь, что заменяете:
10.1.0.5 с частным IP-адресом, которому соответствует общедоступный IP-адрес
10.1.0.1 для шлюза по умолчанию
eth2 для названия вашей вторичной сетевой карты
Дальнейшие шаги
- Дополнительные сведения о публичных IP-адресах в Azure.
- Дополнительные сведения о частных IP-адресах в Azure.
- Узнайте, как настроить IP-адреса для сетевого интерфейса Azure.