Библиотека сайта rus-linux.net
Создание и настройка виртуальных сетевых интерфейсов в Linux
Оригинал: Configuring virtual network interfaces in LinuxАвтор: Lubos Rendek
Дата публикации: январь 2013 года
Перевод: А. Кривошей
Дата перевода: август 2013 г.
1. Введение
Знаете ли вы, что можете присвоить более чем один IP-адрес физическому сетевому интерфейсу? Эта техника очень полезна, например при работе с Apache и виртуальными хостами, так как позволяет получить доступ к одному и тому же серверу Apache с двух разных IP-адресов.
2. Временный виртуальный сетевой интерфейс
Процесс создания виртуального сетевого интерфейса в Linux не занимает много времени. Он включает один запуск команды ifconfig.
$ ifconfig eth0:0 123.123.22.22
Приведенная выше команда создает виртуальный сетевой интерфейс, базирующийся на оригинальном физическом сетевом интерфейсе eth0. Самое важное условие для создания виртуального сетевого интерфейса - должен существовать физический сетевой интерфейс, в нашем случае eth0. Ниже приведен полный пример:
# ifconfig eth0 eth0 Link encap:Ethernet HWaddr 3c:97:0e:02:98:c8 inet addr:192.168.100.23 Bcast:192.168.100.255 Mask:255.255.255.0 # ping 192.168.100.23 PING 192.168.100.23 (192.168.100.23) 56(84) bytes of data. 64 bytes from 192.168.100.23: icmp_req=1 ttl=64 time=0.023 ms 64 bytes from 192.168.100.23: icmp_req=2 ttl=64 time=0.059 m
Теперь мы можем настроить новый виртуальный интерфейс на базе eth0. После выполнения команды ifconfig новый виртуальный интерфейс готов к немедленному использованию.
# ifconfig eth0:0 eth0:0 Link encap:Ethernet HWaddr 3c:97:0e:02:98:c8 UP BROADCAST MULTICAST MTU:1500 Metric:1 Interrupt:20 Memory:f1600000-f1620000 # ifconfig eth0:0 123.123.22.22 # ifconfig eth0:0 eth0:0 Link encap:Ethernet HWaddr 3c:97:0e:02:98:c8 inet addr:123.123.22.22 Bcast:123.255.255.255 Mask:255.0.0.0 # ping 123.123.22.22 PING 123.123.22.22 (123.123.22.22) 56(84) bytes of data. 64 bytes from 123.123.22.22: icmp_req=1 ttl=64 time=0.060 ms 64 bytes from 123.123.22.22: icmp_req=2 ttl=64 time=0.057 ms
2.1. Отключение виртуального сетевого интерфейса
Для отключения нашего, созданного ранее, временного сетевого интерфейса мы можем также использовать команду ifconfig с флагом down.
# ifconfig eth0:0 down
3. Присвоение виртуальному интерфейсу постоянного адреса
Описанные выше настройки не сохраняются после перезагрузки. Если вы хотите, чтобы виртуальный сетевой интерфейс работал постоянно, необходимо модифицировать конфигурационные файлы в соответствии с требованиями вашего дистрибутива Linux. Ниже описан этот процесс для самых распространенных дистрибутивов:
3.1. Debian / Ubuntu
3.1.1. Статический адрес
В Debian или Ubuntu вам необходимо отредактировать файл /etc/network/interfaces, добавив в него следующие строки:
iface eth0:0 inet static address 123.123.22.22 netmask 255.0.0.0 broadcast 123.255.255.255
3.1.2. Dhcp
Возможно также использовать витруальный сетевой интерфейс с DHCP. В этом случае вам необходимо добавить в /etc/network/interfaces следующую строку:
iface eth0:0 inet dhcp
Для того, чтобы изменения вступили в силу, необходимо перезапустить сеть:
# /etc/init.d/networking restart
3.2. Redhat / Fedora / CentOS
3.2.1. Статический адрес
В Redhat, Fedora или CentOS Linux директория, отвечающая за присвоение постоянных IP-адресов - это /etc/sysconfig/network-scripts. В этой директории необходимо создать файл, соответствующий вашему новому виртуальному интерфейсу. В нашем случае этот файл будет называться ifcfg-eth0:0. Создайте этот новый файл и вставьте в него приведенные ниже строки. После перезагрузки адрес будет присвоен виртуальному интерфейсу на постоянной основе.
DEVICE=eth0:0 IPADDR=123.123.22.22 NETMASK=255.0.0.0 NETWORK=123.0.0.0 BROADCAST=123.255.255.255 ONBOOT=yes
3.2.2. Dhcp
DEVICE=eth0:0 BOOTPROTO=dhcp ONBOOT=yes
Когда закончите, перезапустите ваши интерфейсы:
# service network restart
4. Заключение
Раньше один физический сервер обслуживал один веб-сайт. Сегодня такой способ хостинга уже не является жизнеспособным, поэтому способность операционной системы создавать виртуальные сетевые интерфейсы действительно необходима.