Есть концепция, которая позволяет настроить несколько IP-адресов на одном сетевом интерфейсе, и называется она IP-aliasing, если переводить дословно, то это IP-псевдонимы. Подобные вещи используются для создания нескольких виртуальных сайтов на Apache, посредством одного сетевого интерфейса и разных IP-адресов в одной подсети.
Преимущество возможности использования псевдонимов IP адресов в том, что нет необходимости использования физических адаптеров к каждому IP. Вместо этого вы создаете несколько виртуальных интерфейсов, которые будут действовать на одной физической сетевой карте, это довольно удобно.
Примеры, опубликованные здесь актуальны для дистрибутивов Red Hat, Fedora и CentOS. Мы рассмотрим несколько способов конфигурирования сетевых интерфейсов, и IP адреса у нас будут использованы из локальной сети. Вам же будет необходимо поменять значения адресов на свои.
Создание виртуальных интерфейсов, а так же использование нескольких IP адресов.
В нашем примере мы используем интерфейс «ifcfg-eth0», в качестве интерфейса по умолчанию. Если вы хотите добавить второй Ethernet интерфейс, то вам следует создать файл конфигурации с именем «ifcfg-eth1». Файлы конфигурации сетевых интерфейсов размещаются по пути /etc/sysconfig/network-script/. Давайте пройдем в данную директорию, и просмотрим список файлов.
# cd /etc/sysconfig/network-scripts/ # ls –l
Здесь всё просто, мы проходим с помощью команды cd в указанную директорию, затем просматриваем содержимое с помощью команды «ls -l».
В результате, если всё сделано правильно, мы получаем вывод примерно такого содержания:
ifcfg-eth0 ifdown-isdn ifup-aliases ifup-plusb init.ipv6-global ifcfg-lo ifdown-post ifup-bnep ifup-post net.hotplug ifdown ifdown-ppp ifup-eth ifup-ppp network-functions ifdown-bnep ifdown-routes ifup-ippp ifup-routes network-functions-ipv6 ifdown-eth ifdown-sit ifup-ipv6 ifup-sit ifdown-ippp ifdown-tunnel ifup-isdn ifup-tunnel ifdown-ipv6 ifup ifup-plip ifup-wireless
Предположим нам необходимо добавить к существующему IP адресу, ещё три дополнительных, пусть это будет 172.16.16.126, 172.16.16.127 и 172.16.16.128. Для этого нам нужно добавить дополнительные файлы конфигурации по каждому на каждый виртуальный интерфейс. Таким образом, файл «ifcfg-eth0» будет файлом конфигурации для основного IP-адреса. Для IP-адресов псевдонимов мы создаем дополнительные файлы, выглядеть это будет так:
Adapter IP Address Type ------------------------------------------------- eth0 172.16.16.25 Primary eth0:0 172.16.16.26 Alias 1 eth0:1 172.16.16.27 Alias 2 eth0:2 172.16.16.28 Alias 3
Значение «:N» обозначает номер интерфейса созданного нами интерфейса алиаса, к интерфейсу eth0. Нумерацию интерфейсов следует сделать последовательной, т.е. получается ifcfg-eth0:0, ifcfg-eth0:1, ifcfg-eth0:2. Сделать это просто, посредством копирования из основного конфигурационного файла.
# cd /etc/sysconfig/network-scripts/ # cp ifcfg-eth0 ifcfg-eth0:0 # cp ifcfg-eth0 ifcfg-eth0:1 # cp ifcfg-eth0 ifcfg-eth0:2
Если мы откроем файл «ifcfg-eth0» то увидим следующее содержимое
[root@href network-scripts]# vi ifcfg-eth0 DEVICE="eth0" BOOTPROTO=static ONBOOT=yes TYPE="Ethernet" IPADDR=172.16.16.125 NETMASK=255.255.255.224 GATEWAY=172.16.16.100 HWADDR=00:0C:29:28:FD:4C
Здесь нас интересуют два параметра DIVECE и IPADDR. Таким образом, откройте каждый из файлов конфигурации (сделать это можно через редактор VI), и отредактируйте эти параметры. DEVICE – имя устройства, задайте его уникальным, у каждого интерфейса он будет свой. IPADDR – IP адрес интерфейса. В конечном итоге, файлы конфигурации будут выглядеть таким образом:
Ifcfg-eth0:0
DEVICE="eth0:0" BOOTPROTO=static ONBOOT=yes TYPE="Ethernet" IPADDR=172.16.16.126 NETMASK=255.255.255.224 GATEWAY=172.16.16.100 HWADDR=00:0C:29:28:FD:4C
Ifcfg-eth0:1
DEVICE="eth0:1" BOOTPROTO=static ONBOOT=yes TYPE="Ethernet" IPADDR=172.16.16.127 NETMASK=255.255.255.224 GATEWAY=172.16.16.100 HWADDR=00:0C:29:28:FD:4C
Ifcfg-eth0:2
DEVICE="eth0:2" BOOTPROTO=static ONBOOT=yes TYPE="Ethernet" IPADDR=172.16.16.128 NETMASK=255.255.255.224 GATEWAY=172.16.16.100 HWADDR=00:0C:29:28:FD:4C
После того как вы внесли изменения и сохранили файлы конфигурации, чтобы подгрузить новые параметры вам необходимо перезапустить сетевой интерфейс.
[root@href network-scripts]# /etc/init.d/network restart
После перезапуска сетевого интерфейса мы можем проверить применение новых параметров, посредством команды «ifconfig». С другой машин вы так же можете проверить работы посредством утилиты Ping (о ней наверняка вы уже знаете).
Использование диапазона IP адресов
Еще один не менее полезный способ конфигурации виртуального интерфейса – это если вы используете диапазон IP адресов. В этом случае вам не придется плодить файлы конфигурации на каждый виртуальный интерфейс по отдельности, а достаточно создать один дополнительный, задав ему имя как «ifcfg-eth0-range0». Для его быстрого создания вы так же можете скопировать файл конфигурации основного интерфейса «ifcfg-eth0».
[root@href network-scripts]# cd /etc/sysconfig/network-scripts/ [root@href network-scripts]# cp -p ifcfg-eth0 ifcfg-eth0-range0
В новом файле конфигурации «ifcfg-eth0-range0» нам потребуется задать два параметра, «IPADDR_START» и «IPADDR_END». Как вы уже наверное догадались это начало и конец диапазон адресов, кроме того в файле конфигурации необходимо закомментировать параметры DEVICE, BOOTPROTO, и т.д. см. ниже.
[root@href network-scripts]# vi ifcfg-eth0-range0 #DEVICE="eth0" #BOOTPROTO=none #NM_CONTROLLED="yes" #ONBOOT=yes TYPE="Ethernet" IPADDR_START=172.16.16.126 IPADDR_END=172.16.16.130 IPV6INIT=no #GATEWAY=172.16.16.100
Как и в предыдущем примере перезапускаем конфигурацию после внесений изменений.
[root@href network-scripts]# /etc/init.d/network restart
Осталось проверить, всё ли сделано правильно, опять же смотрим ifconfig а так же пробуем пинговать с других машин. На это всё, успехов!