Создание и настройка виртуальных сетевых интерфейсов в 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. Заключение
Раньше один физический сервер обслуживал один веб-сайт. Сегодня такой
способ хостинга уже не является жизнеспособным, поэтому способность
операционной системы создавать виртуальные сетевые интерфейсы
действительно необходима.
|