Сетевой мост (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-адреса.