Назначение виртуальным машинам нескольких IP-адресов с помощью Azure PowerShell

К виртуальной машине Azure подключены один или несколько сетевых интерфейсов. Каждому такому адаптеру статически или динамически назначается один или несколько общедоступных или частных IP-адресов.

Назначение нескольких IP-адресов виртуальной машине дает следующие возможности:

  • Возможность размещать на одном сервере несколько веб-сайтов или служб с разными IP-адресами и TLS/SSL-сертификатами.

  • возможность использовать виртуальную машину в качестве виртуального сетевого устройства, такого как брандмауэр или балансировщик нагрузки.

  • Возможность добавления любых частных IP-адресов любых сетевых карт во внутренний пул Azure Load Balancer. Раньше во внутренний пул можно было добавить только основной IP-адрес для основной сетевой карты. Дополнительные сведения о балансировке нагрузки в конфигурациях с несколькими IP-адресами см. в статье Балансировка нагрузки в конфигурациях с несколькими IP-адресами.

Каждому сетевому адаптеру, подключенному к виртуальной машине, присвоена одна или несколько конфигураций IP-адресов. Каждая конфигурация получает один статический или динамический частный IP-адрес. Кроме того, каждой конфигурации также может быть присвоен один ресурс общедоступного IP-адреса. Дополнительные сведения о IP-адресах в Azure см. в статье об IP-адресах в Azure.

Примечание.

Все конфигурации IP-адресов в одном сетевом интерфейсе должны быть связаны с одной подсетью. Если желательно использовать несколько IP-адресов в разных подсетях, может использоваться несколько сетевых интерфейсов на виртуальной машине. Дополнительные сведения о нескольких сетевых адаптерах на виртуальной машине в Azure см. в статье "Создание виртуальной машины с несколькими сетевыми адаптерами".

Сетевой карте может быть назначено ограниченное число частных IP-адресов. Число общедоступных IP-адресов, которые можно использовать в одной подписке Azure, также ограничено. См. дополнительные сведения об ограничениях в Azure.

В этой статье объясняется, как добавить несколько IP-адресов в виртуальную машину с помощью PowerShell.

Необходимые компоненты

  • Учетная запись 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".
  • Войдите в Azure PowerShell и выберите подписку, с которой вы хотите использовать эту функцию. Дополнительные сведения см. в статье Вход с помощью Azure PowerShell.

Примечание.

Хотя в этой статье все IP-конфигурации назначаются одному сетевому интерфейсу, вы можете аналогичным образом назначить несколько IP-конфигураций любому сетевому интерфейсу, прикрепленному к виртуальной машине с несколькими сетевыми адаптерами. Дополнительные сведения см. в статье Создание виртуальной машины с несколькими сетевыми картами.

Diagram of network configuration resources created in How-to article.

Рисунок. Схема ресурсов конфигурации сети, созданных в этой статье.

Создание или изменение группы ресурсов

Группа ресурсов 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-адреса

Создайте первичный общедоступный IP-адрес с помощью командлета New-AzPublicIpAddress.

$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

Примечание.

При добавлении статического 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-адреса

Создайте вторичный общедоступный IP-адрес с помощью командлета New-AzPublicIpAddress.

$ip2 = @{
    Name = 'myPublicIP-2'
    ResourceGroupName = 'myResourceGroup'
    Location = 'eastus2'
    Sku = 'Standard'
    AllocationMethod = 'Static'
    IpAddressVersion = 'IPv4'
    Zone = 1,2,3
}
New-AzPublicIpAddress @ip2

Чтобы создать вторичную IP-конфигурацию для виртуальной машины, используйте New-AzNetworkInterfaceIpConfig.

## 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-адресов в операционную систему виртуальной машины

Внимание

Эта статья ссылается на CentOS, дистрибутив Linux, который приближается к состоянию конца жизни (EOL). Пожалуйста, рассмотрите возможность использования и планирования соответствующим образом.

Подключитесь к виртуальной машине, созданной с несколькими частными IP-адресами, и войдите на нее. Все частные IP-адреса (включая первичные), добавленные в виртуальную машину, необходимо добавить вручную. Выполните следующие шаги в соответствии с операционной системой виртуальной машины.

Windows Server

Развертывание
  1. Откройте командную строку или PowerShell.

  2. Введите ipconfig /all в командной строке. Вы увидите первичный частный IP-адрес, назначенный с помощью DHCP.

  3. Введите ncpa.cpl в командной строке, чтобы открыть конфигурацию сетевых подключений.

  4. Откройте раздел Свойства для сетевого адаптера, которому назначаются новые IP-адреса.

  5. Дважды щелкните Протокол Интернета версии 4 (TCP/IPv4).

  6. Выберите параметр Использовать следующий IP-адрес. Введите следующие значения.

    Параметр Значение
    IP-адрес: Введите первичный частный IP-адрес.
    Маска подсети: Введите маску подсети на основе IP-адреса.
    Например, если это подсеть /24, то маска подсети — 255.255.255.0.
    Шлюз по умолчанию: первый IP-адрес в подсети.
    Если это подсеть 10.0.0.0/24, то IP-адрес шлюза по умолчанию — 10.0.0.1.
  7. Выберите параметр Использовать следующие адреса DNS-серверов. Введите следующие значения.

    Параметр Значение
    Предпочитаемый DNS-сервер: Введите основной DNS-сервер.
    Введите IP-адрес 168.63.129.16, чтобы использовать службу DNS, предоставляемую в Azure по умолчанию.
  8. Нажмите кнопку Advanced (Дополнительно).

  9. Выберите Добавить.

  10. Введите частный IP-адрес, который вы добавили в сетевой интерфейс Azure. Укажите соответствующую маску подсети. Выберите Добавить.

  11. Чтобы добавить дополнительные частные IP-адреса, которые вы добавили в сетевой интерфейс Azure, повторите предыдущие шаги.

Важно!

Никогда не следует вручную назначать общедоступный IP-адрес для виртуальной машины Azure в ее операционной системе. Если вы будете вручную устанавливать IP-адрес в операционной системе, убедитесь, что он соответствует частному IP-адресу, назначенному сетевому интерфейсу Azure. Неправильное назначение адреса может привести к потере подключения к виртуальной машине. Дополнительные сведения см. в разделе Изменение параметров IP-адреса.

Дополнительные сведения см. в разделе Частный IP-адрес.

  1. Нажмите кнопку ОК, чтобы закрыть окно параметров вторичного IP-адреса.

  2. Нажмите кнопку ОК, чтобы закрыть окно параметров адаптера. После этого подключение к удаленному рабочему столу будет восстановлено.

  3. Откройте командную строку или PowerShell.

  4. Введите ipconfig /all в командной строке.

  5. Убедитесь, что первичный и вторичный частные 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
    
  6. Убедитесь, что первичный частный IP-адрес, используемый в Windows, совпадает с первичным IP-адресом сетевого интерфейса виртуальной машины Azure. Дополнительные сведения см. в статье Отсутствие доступа к Интернету из виртуальной машины Azure Windows с несколькими IP-адресами.

Проверка (Windows Server)

Чтобы проверить подключение к Интернету из вторичной IP-конфигурации через общедоступный IP-адрес, используйте следующую команду: Замените 10.1.0.5 вторичным частным IP-адресом, добавленным в сетевой интерфейс виртуальной машины Azure.

ping -S 10.1.0.5 outlook.com

Примечание.

Для вторичных IP-конфигураций подключение к Интернету можно проверить, если с конфигурацией связан общедоступный IP-адрес. В случае с первичными IP-конфигурациями для проверки связи с Интернетом общедоступный 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.

  1. Откройте окно терминала.

  2. Убедитесь, что у вас есть права привилегированного пользователя. В противном случае введите следующую команду:

    sudo -i
    
  3. Обновите файл конфигурации сетевого интерфейса (предполагаемый интерфейс — eth0).

    • Сохраните имеющийся элемент строки для DHCP. Основной IP-адрес остается настроенным, как и ранее.

    • Добавьте конфигурацию для дополнительного статического IP-адреса с помощью следующих команд:

      cd /etc/network/interfaces.d/
      ls
      

      Должен отобразиться CFG-файл.

  4. Откройте файл . В конце этого файла будут следующие строки:

    auto eth0
    iface eth0 inet dhcp
    
  5. Добавьте следующие строки после имеющихся строк в файле. Замените 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
    
  6. Сохраните файл с помощью следующей команды:

    :wq
    
  7. Сбросьте сетевой интерфейс, выполнив следующую команду:

    ifdown eth0 && ifup eth0
    

    Важно!

    Если используется удаленное подключение, выполните скрипты ifdown и ifup в одной и той же строке.

  8. Проверьте, добавлен ли IP-адрес к сетевому интерфейсу, с помощью следующей команды:

    ip addr list eth0
    

    Должен отобразиться IP-адрес, добавленный как часть списка. Пример:

    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

Примечание.

Для вторичных IP-конфигураций подключение к Интернету можно проверить, только если с конфигурацией связан общедоступный IP-адрес. В случае с первичными IP-конфигурациями для проверки связи с Интернетом общедоступный 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+,

Развертывание

Для управления сетевыми ресурсами ОС в Ubuntu версии 18.04 и более новых теперь используется netplan. Рекомендуем ознакомиться с последней версией документации к своей версии Linux.

  1. Откройте окно терминала.

  2. Убедитесь, что у вас есть права привилегированного пользователя. В противном случае введите следующую команду:

    sudo -i
    
  3. Создайте файл для второго интерфейса и откройте его в текстовом редакторе:

    vi /etc/netplan/60-static.yaml
    
  4. Добавьте в файл перечисленные ниже строки, заменив 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
    
  5. Сохраните файл с помощью следующей команды:

    :wq
    
  6. Протестируйте изменения с помощью команды netplan try, чтобы убедиться в правильности синтаксиса:

    netplan try
    

    Примечание.

    netplan try временно применит изменения и отменит их по истечении 120 секунд. Если соединение окажется потеряно, подождите 120 секунд и восстановите его. По истечении этого периода произойдет откат внесенных изменений.

  7. Убедившись в отсутствии неполадок с помощью команды netplan try, примените следующие изменения конфигурации:

    netplan apply
    
  8. Проверьте, добавлен ли IP-адрес к сетевому интерфейсу, с помощью следующей команды:

    ip addr list eth0
    

    Должен отобразиться IP-адрес, добавленный как часть списка. Пример:

    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

Примечание.

Для вторичных IP-конфигураций подключение к Интернету можно проверить, только если с конфигурацией связан общедоступный IP-адрес. В случае с первичными IP-конфигурациями для проверки связи с Интернетом общедоступный 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, CentOS и другие

Развертывание
  1. Откройте окно терминала.

  2. Убедитесь, что у вас есть права привилегированного пользователя. В противном случае введите следующую команду:

    sudo -i
    
  3. Введите пароль и следуйте инструкциям. После того как вы станете привилегированным пользователем, перейдите к папке сетевых скриптов, используя следующую команду:

    cd /etc/sysconfig/network-scripts
    
  4. Выведите список связанных IFCFG-файлов, используя следующую команду:

    ls ifcfg-*
    

    В списке файлов должен быть файл ifcfg-eth0 .

  5. Чтобы добавить IP-адрес, создайте для него файл конфигурации, как показано ниже. Обратите внимание, что такой файл должен быть создан для каждой IP-конфигурации.

    touch ifcfg-eth0:0
    
  6. Откройте файл ifcfg-eth0:0, используя следующую команду.

    vi ifcfg-eth0:0
    
  7. Добавьте содержимое в файл eth0:0 (в этом случае) с помощью следующей команды. Замените 10.1.0.5 своим дополнительным частным IP-адресом и маской подсети.

    DEVICE=eth0:0
    BOOTPROTO=static
    ONBOOT=yes
    IPADDR=10.1.0.5
    NETMASK=255.255.255.0
    
  8. Сохраните файл, используя следующую команду:

    :wq
    
  9. Чтобы добавить дополнительные частные IP-адреса в конфигурацию сети, создайте дополнительные файлы конфигурации и добавьте в файл сведения об IP-адресе.

    touch ifcfg-eth0:1
    
    vi ifcfg-eth0:1
    
    DEVICE=eth0:1
    BOOTPROTO=static
    ONBOOT=yes
    IPADDR=10.1.0.6
    NETMASK=255.255.255.0
    
    :wq
    
  10. Перезапустите сетевые службы и убедитесь, что изменения вступили в силу, выполнив следующие команды:

    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, CentOS и другие дистрибутивы)

Чтобы убедиться, что вы можете подключиться к Интернету с помощью вторичной IP-конфигурации через связанный с ней общедоступный IP-адрес, используйте следующую команду:

ping -I 10.0.0.5 outlook.com

Примечание.

Для вторичных IP-конфигураций подключение к Интернету можно проверить, только если с конфигурацией связан общедоступный IP-адрес. В случае с первичными IP-конфигурациями для проверки связи с Интернетом общедоступный 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.

  1. Откройте окно терминала.

  2. Убедитесь, что у вас есть права привилегированного пользователя. В противном случае введите следующую команду:

    sudo -i
    
  3. Обновите файл конфигурации сетевого интерфейса (предполагаемый интерфейс — eth0).

    • Сохраните имеющийся элемент строки для DHCP. Основной IP-адрес остается настроенным, как и ранее.

    • Добавьте конфигурацию для дополнительного статического IP-адреса с помощью следующих команд:

      cd /etc/network/interfaces.d/
      ls
      

      Должен отобразиться CFG-файл.

  4. Откройте файл . В конце этого файла будут следующие строки:

    auto eth0
    iface eth0 inet dhcp
    
  5. Добавьте следующие строки после имеющихся строк в файле. Замените 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
    
  6. Сохраните файл с помощью следующей команды:

    :wq
    
  7. Перезапустите службы сети, чтобы изменения вступили в силу. Для Debian 8 и более поздних версий это можно сделать с помощью следующей команды:

    systemctl restart networking
    

    Для предыдущих версий Debian можно использовать следующие команды:

    service networking restart
    
  8. Проверьте, добавлен ли IP-адрес к сетевому интерфейсу, с помощью следующей команды:

    ip addr list eth0
    

    Должен отобразиться IP-адрес, добавленный как часть списка. Пример:

    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

Примечание.

Для вторичных IP-конфигураций подключение к Интернету можно проверить, только если с конфигурацией связан общедоступный IP-адрес. В случае с первичными IP-конфигурациями для проверки связи с Интернетом общедоступный 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 — на имя дополнительной сетевой карты.

Следующие шаги