Сетевой мост (network bridge) может быть использован для настройки интернет доступа на виртуальных машинах.

Требования

  • Выделенный сервер с установленным гипервизором (Например: VMware ESXi, Citrix Xen Server, Proxmox, etc.)
  • дополнительный IP адрес

В этом руководстве мы будем использовать следующие значения в наших примерах, которые должны быть заменены вашими собственными значениями:

  • SERVER_IP = основной IP адрес сервера
  • ADDITIONAL_IP = дополнительный IP адрес
  • GATEWAY_IP = IP адрес шлюза (IP вашего сервера с последней октетом (восьмибитовый байт), замененным на 254)

Назначение виртуального MAC адреса

Для назначения MAC адреса дополнительному IP отправьте запрос в нашу службу поддержки в Личном кабинете Unihost.

Определение шлюза

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

К примеру:
  • IP вашего сервера: 123.456.789.012
  • IP шлюза — это основной IP вашего сервера, заканчивающийся на .254
  • Таким образом, IP шлюза: 123.456.789.254
Для всех операционных систем и дистрибутивов вам необходимо настроить виртуальную машину с использованием виртуального MAC-адреса.

Debian и производные ОС (Ubuntu, CrunchBang, SteamOS,etc.)

Откройте SSH-соединение с вашей виртуальной машиной. После подключения откройте файл конфигурации сети виртуальной машины, который находится в /etc/network/interfaces. Приведите файл к следующему виду (пожалуйста, не забудьте заменить переменные своими собственными значениями):

auto lo eth0
iface lo inet loopback
iface eth0 inet static
    address ADDITIONAL_IP
    netmask 255.255.255.255
    broadcast ADDITIONAL_IP
    post-up route add GATEWAY_IP dev eth0
    post-up route add default gw GATEWAY_IP
    pre-down route del GATEWAY_IP dev eth0
    pre-down route del default gw GATEWAY_IP

Сохраните и закройте файл, затем перезагрузите виртуальную машину для применения настроек.

Redhat и производные ОС (CentOS 6, Scientific Linux, ClearOS,etc.)

Откройте SSH-соединение с вашей виртуальной машиной. После подключения откройте файл конфигурации сети виртуальной машины, который находится в /etc/network/interfaces. Приведите файл к следующему виду (пожалуйста, не забудьте заменить переменные своими собственными значениями):

DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
IPV6INIT=no
PEERDNS=yes
TYPE=Ethernet
NETMASK=255.255.255.255
IPADDR=ADDITIONAL_IP
GATEWAY=GATEWAY_IP
ARP=yes
HWADDR=MY:VI:RT:UA:LM:AC

Сохраните и закройте файл.

Затем откройте файл маршрутизации виртуальной машины, который находится в /etc/sysconfig/network-scripts/route-eth0. Приведите файл к следующему виду (не забудьте заменить наши переменные своими собственными значениями):

GATEWAY_IP dev eth0
default via GATEWAY_IP dev eth0

Сохраните и закройте файл, затем перезагрузите виртуальную машину для применения настроек.

CentOS 7

Для CentOS 7 имя сетевого адаптера будет отличаться в зависимости от параметров установки. Вам нужно будет проверить имя адаптера и использовать его для настройки вашей виртуальной машины. Используйте команду ipaddr, чтобы определить имя интерфейса.

Откройте SSH-соединение с вашей виртуальной машиной. После подключения откройте файл конфигурации сети виртуальной машины, который находится в /etc/sysconfig/network-scripts/ifcfg-(имя интерфейса). Приведите файл к следующему виду (пожалуйста, не забудьте заменить наши переменные своими собственными значениями):

DEVICE=(insert interface Name)
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
IPV6INIT=no
PEERDNS=yes
TYPE=Ethernet
NETMASK=255.255.255.255
IPADDR=ADDITIONAL_IP
GATEWAY=GATEWAY_IP
ARP=yes
HWADDR=MY:VI:RT:UA:LM:AC

Сохраните и закройте файл.

Затем откройте файл маршрутизации виртуальной машины, который находится в /etc/sysconfig/network-scripts/route-(имя-интерфейса). Приведите файл к следующему виду (пожалуйста, не забудьте заменить наши переменные своими собственными значениями):

GATEWAY_IP - 255.255.255.255 (insert interface Name)
NETWORK_GW_VM - 255.255.255.0 (insert interface Name)
default GATEWAY_IP

OpenSUSE

Откройте SSH-соединение с вашей виртуальной машиной. После подключения откройте файл конфигурации сети виртуальной машины, который находится в /etc/sysconfig/network/ifcfg-ens32. Если файл не существует, вам придется его создать. Приведите файл к следующему виду (пожалуйста, не забудьте заменить наши переменные своими собственными значениями):

DEVICE=ens32
BOOTPROTO=static
ONBOOT=yes
ARP=yes
USERCTL=no
IPV6INIT=no
TYPE=Ethernet
STARTMODE=auto
IPADDR=ADDITIONAL_IP
NETMASK=255.255.255.255
GATEWAY=GATEWAY_IP
HWADDR=MY:VI:RT:UA:LM:AC

Сохраните и закройте файл.

Затем откройте файл маршрутизации виртуальной машины, который находится в /etc/sysconfig/network-scripts/ifroute-ens32. Если файл не существует, вам придется его создать. Приведите файл к следующему виду (пожалуйста, не забудьте заменить наши переменные своими собственными значениями):

GATEWAY_IP - 255.255.255.255 ens32
NETWORK_GW_VM - 255.255.255.0 ens32
default GATEWAY_IP

Затем откройте файл конфигурации DNS виртуальной машины, который находится в /etc/sysconfig/network/resolv.conf. Если файл не существует, вам придется его создать. Приведите файл к следующему виду:

nameserver 213.186.33.99 # OVH DNS Server

Сохраните и закройте файл, затем перезагрузите виртуальную машину для применения настроек.

Arch Linux

Выполните следующую команду, чтобы определить имя сетевого интерфейса виртуальной машины:

# ip link

1: eno3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether ac:1f:6b:67:ce:a4 brd ff:ff:ff:ff:ff:ff

Из приведенного выше вывода видно, что имя  сетевого интерфейса — eno3. Ваш интерфейс, вероятно, будет иметь другое имя.

Затем скопируйте содержимое файла статической конфигурации Netctl и создайте новый файл с именем вашего сетевого интерфейса:

# cp /etc/netctl/examples/ethernet-static /etc/netctl/eno3

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

Description='A basic static ethernet connection'
Interface=eno3
Connection=ethernet
IP=ADDITIONAL_IP
Address=('255.255.255.255')
Gateway=('GATEWAY_IP')
DNS=('213.186.33.99')

Добавляем в автозагрузку:

# netctl enable eno3

Запускаем профиль:

# netctl start eno3

Затем останавливаем и отключаем службу dhcp:

# systemctl stop dhcpcd
# systemctl disable dhcpcd

Перезагружаем виртуальную машину для применения настроек.

FreeBSD 8.0

Откройте SSH-соединение с вашей виртуальной машиной. После подключения откройте файл конфигурации сети виртуальной машины, который находится в /etc/rc.conf. Приведите файл к следующему виду (пожалуйста, не забудьте заменить наши переменные своими собственными значениями):

ifconfig_em0="inet ADDITIONAL_IP netmask 255.255.255.255 broadcast ADDITIONAL_IP"
static_routes="net1 net2"
route_net1="-net GATEWAY_IP/32 ADDITIONAL_IP"
route_net2="default GATEWAY_IP"

Сохраните и закройте файл, затем перезагрузите виртуальную машину для применения настроек.

Ubuntu 18.04

Откройте SSH-соединение с вашей виртуальной машиной После подключения откройте файл конфигурации сети, расположенный в /etc/netplan/, с помощью следующей команды. В нашем примере файл называется 50-cloud-init.yaml:

# nano /etc/netplan/50-cloud-init.yaml

Приведите файл к следующему виду:

network:
    ethernets:
        your-network-interface:
            addresses:
                - additional-ip/32
            nameservers:
                addresses:
                    - 213.186.33.99
                search: []
            optional: true
            routes:
                - to: 0.0.0.0/0
                  via: your-gateway-ip
                  on-link: true
    version: 2

После внесения изменений сохраните и закройте файл, а затем выполните следующую команду:

# netplan try
Warning: Stopping systemd-networkd.service, but it can still be activated by:
  systemd-networkd.socket
Do you want to keep these settings?

Press ENTER before the timeout to accept the new configuration

Changes will revert in 120 seconds
Configuration accepted.

Windows Server 2012 /Hyper-V

Перед настройкой виртуальной машины вам необходимо создать виртуальный коммутатор. В командной строке выделенного сервера запустите IPconfig /ALL и запишите имя сетевого адаптера, который содержит основной IP-адрес сервера. В диспетчере Hyper-V создайте новый виртуальный коммутатор и установите тип подключения External (Внешний). Выберите адаптер с IP-адресом сервера, затем установите флажок Allow management operating system to share this network adapter (Разрешить операционной системе использовать общий сетевой адаптер).

Этот шаг требуется проделать один раз на хост-сервере Hyper-v. Для всех виртуальных машин требуется виртуальный коммутатор для подключения виртуальных сетевых адаптеров виртуальной машины к физическому адаптеру сервера.

Затем выберите виртуальную машину, к которой вы хотите добавить дополнительный IP-адрес. Используйте диспетчер Hyper-V, чтобы изменить настройки виртуальной машины и выключить ее.

Затем выберите сетевой адаптер и нажмите Advanced Features, измените MAC-адрес на статический и введите виртуальный MAC-адрес для дополнительного IP-адреса. После ввода этих настроек нажмите OK, чтобы применить изменения.

Затем запустите виртуальную машину и войдите в систему как администратор, затем перейдите в Control Panel > Network and Sharing Center. Нажмите на ссылку Connections: Ethernet, затем нажмите кнопку Properties, чтобы просмотреть свойства Ethernet. Выберите Internet Protocol Version 4 (TCP/IPv4), а затем нажмите кнопку Properties, чтобы отобразить свойства IPv4.

В окне Properties IPv4 выберите Use the additional IP address. Введите дополнительный IP-адрес в поле IP-адреса и введите маску подсети 255.255.255.255.

Затем введите IP-адрес шлюза вашего сервера (то есть IP-адрес вашего сервера, заканчивающийся на .254) и введите 213.186.33.99 в поле  Preferred DNS Server.

Нажмите OK и проигнорируйте предупреждающее сообщение об IP-адресе шлюза и назначенном IP-адресе, который не находится в той же подсети.

Перезагрузите сервер. После чего виртуальная машина должна быть подключена к сети Интернет с использованием дополнительного IP-адреса.