Vladimir Drach. Official Web-Site. — Личный сайт Владимира Драча
Два IP-адреса на одном интерфейсе в CentOS 6.6
Четверг, 12 Февраль 2015 00:00
Рассматриватеся алиасинг IP-адресов на CentOS 6.6. Статья отвечает на вопрос: как привязать два IP-адреса к одному сетевому интерфейсу?
В моём случае потребовалось привязать дополнительный IP-адрес к интерфейсу виртуальной машины, работающей под управлением операционной системы Linux. В результате, задача была решена, к тому же родилась прекрасная методичка.
Внимание! В CentOS 7 и выше методика изменилась.
1. Общая информация о псевдонимах
Псевдонимы адресов (англ. IP alias/IP aliasing) представляют собой множественные IP-адреса, присвоенные единственному физическому сетевому интерфейсу. Псевдоним сетевого интерфейса добавляется к существующим сетевым интерфейсам.
При совмещении IP становиться возможным запуск приложений и служб на сервере под Linux, доступном по множественным IP адресам, используя только один физический сетевой интерфейс.
Требования для IP alias:
- Возможность подключения физического сетевого интерфейса
- Доступность множества IP-адресов
Ограничения для IP alias:
- Совмещение подсети (IP адрес сетевого интерфейса alias должен находится в той же подсети, что и адрес физического сетевого интерфейса – если не требуется точная конфигурация инфраструктуры сети.)
- DHCP (интерфейсы alias не поддерживают DHCP)
Пример: Если физический сетевой интерфейс называется eth0, интерфейсы alias будут называться eth0:0, eth0:1, … , а если физический сетевой интерфейс называется eth1, интерфейсы alias носят названия eth1:0, eth1:1 … и т.д.
2. Настройка непостоянного IP Alias
Непостоянный IP alias не сохраняется после перезагрузки сервера linux. Это означает, что IP alias настроен только когда сервер запущен и находится в работе и исчезнет, когда сервер linux будет перезагружен. Рассмотрим синтаксис командной строки для настройки непостоянного сетевого интерфейса, где X числа, настраиваемые сетевым интерфейсом, Y числа заданного интерфейса alias, начиная с 0 и IPADDRESS является IP-адресом, который мы хотим присвоить сетевому интерфейсу alias:
Проверим на работоспособность сетевой интерфейс alias следующей командой (ищем интерфейс ethX:Y):
В данном примере физический интерфейс eth0 правильно настроен с тестируемой связанностью узлов в сети и имеет IP адрес 192.168.1.100. Можно настроить сетевой интерфейс alias с именем eth0:0 и IP адресом 192.168.1.101 используя следующую команду:
Можно проверить сетевой интерфейс alias на работоспособность через ifconfig, ищем eth0:0 и IP адрес 192.168.1.101:
3.Настройка постоянного IP Alias
Постоянный IP alias сохраняется после перезагрузки сервера linux и настраивается в файлах сетевой конфигурации. Файлы сетевой конфигурации расположены в директории /etc/sysconfig/network-scripts/ и называются ifcfg-ethX, где X число физических сетевых интерфейсов. Файлы сетевой конфигурации псевдонимов называются ifcfg-ethX:Y, где X число физических интерфейсов и Y число сетевых интерфейсов alias.
Простейшим способом создания файла конфигурации alias является способ копирования существующего файла конфигурации физического интерфейса с работающей связностью узлов сети, выполняется это следующей командой:
cp /etc/sysconfig/network-scripts/ifcfg-ethX /etc/sysconfig/network-scripts/ifcfg-ethX:Y
…где X порядковый номер физических сетевых интерфейсов и Y номер псевдонимов сетевых интерфейсов.
Теперь необходимо отредактировать только что созданный файл /etc/sysconfig/network-scripts/ifcfg-ethX:Y в файловом редакторе и заменить записи физического сетевого интерфейса (ethX) записями нового сетевого интерфейса alias (ethX:Y).
Найдём строку IPADDR физического интерфейса ethX:
И заменим на желаемый IP адрес сетевого интерфейса alias:
Затем, когда файл конфигурации сетевого интерфейса alias настроен, запустим новый сетевой интерфейс alias командой:
Можно проверить сетевой интерфейс alias на работоспособность командой ifconfig (ищем интерфейс ethX:Y):
Пример: Файл конфигурации работоспособного физического сетевого интерфейса (eth0:0):
И пример работоспособного сетевого интерфейса alias (eth0:0) в добавок к физическому сетевому интерфейсу (eth0):
Командой ifup, запустим сетевой интерфейс alias:
Проверим сетевой интерфейс alias eth0:0 с IP адресом 192.168.1.101, для этого используем команду ifconfig:
Мини-HOWTO, описывающее, как настроить IP-алиасинг на машине с Linux
GNU Copyleft 1996/1997 Harish Pillay (h.pillay@ieee.org)
Перевод: Станислав Рогин, SWSoft Pte Ltd.
Главный сайт: http://home.pacific.net.sg/
Это книга рецептов того, как настроить и запустить IP-алиасинг на Linux-машине. Дополнительно к этому, здесь находятся инструкции, как получать электронную почту по этим IP-адресам.
- Самое последнее ядро (версия 2.0.27 — с сайта ftp.funet.fi:/pub/Linux/kernel/src/v2.0 ) — работало после версии 1.3.7x.
- IP-алиасинг, собранный в виде загружаемого модуля. Во время исполнения команды «make config» вам будет необходимо при сборке ядра указать, что вы хотите, чтобы IP-маскарадинг был собран в виде модуля. См. Modules HOW-TO (если таковой существует) или прочитайте файл /usr/src/linux/Documentation/modules.txt.
- Мне надо поддерживать 2 дополнительных IP-адреса помимо того, который я уже имею.
- Сетевой адаптер DE-620 фирмы D-Link (это не очень важно, все это работает с любым поддерживаемым Linux-ом сетевым адаптером).
- Во-первых, загрузите модуль IP-алиасинга (вы можете пропустить этот шаг, если у вас это встроено внутрь ядра):
- Во-вторых, настройте зацикленный адрес (loopback), eth0 и все IP-адреса, начиная с главного для интерфейса eth0 IP-адреса:
172.16.3.1 — это главный IP-адрес, а 172.16.3.10 and 172.16.3 .100 — алиасы. Фокус, как вы уже заметили, состоит во фразе «eth0:x», где x=0,1,2. n для различных IP-адресов. Главный IP-адрес не должен подвергаться алиасингу .
- В-третьих, настроим маршрутизацию. Первым маршрутизируем зацикленный адрес (loopback), затем сеть и, в конце концов, IP-адреса, начиная с главного:
В вышеприведенном примере я использовал личные IP-адреса ( RFC 1918 ), в целях иллюстрации. Замените их на ваши официальные или личные адреса.
В примере выше показаны только 3 IP-адреса. Максимум, заданный в /usr/include/linux/net_alias.h, равен 256. 256 IP-адресов — для ОДНОЙ карты это много! 🙂
Вот что выдает моя команда /sbin/ifconfig:
А вот что содержит /proc/net/aliases:
И, в свою очередь, /proc/net/alias_types:
Конечно, все, что в /proc/net, создано ifconfig-ом, а не вручную!
Вопрос: Как сохранить настройки в процессе перезагрузки?
Ответ: Если вы используете загрузку в стиле BSD или SysV (напр. Redhat), то всегда можно добавить эти команды в /etc/rc.d/rc.local. Вот что записано у меня в системе с загрузкой в стиле SysV (Redhat 3.0.3 and 4.0):
- Мой файл /etc/rc.d/rc.local: (только интересующая нас часть)
Вопрос: Как настроить машину с IP-алиасингом для получения почты, идущей по различным IP-адресам (на машине, использующей sendmail)?
- Ответ: Создайте (если еще не создали) файл с именем, например /etc/mynames.cw. Он не обязательно должен называться именно так и не обязательно должен находиться в каталоге /etc.
- В этом файле напишите официальные имена доменов для этих IP-адресов. Если у них нет имен, то поместите туда просто сами IP-адреса.
- В файле sendmail.cf, где определяется макрос класса файлов Fw, добавьте следующее:
- Это должно сработать. Проверьте новые настройки в тестовом режиме sendmail, в соответствии с примером:
Заметьте, что, когда я тестировал me@4.5.6.7, почта доставлена на локальную машину, а me@4.5.6.8 была передана smtp-mailer-у. Так и должно быть.
Надеюсь, все вышесказанное кому-нибудь пригодится.
Спасибо всем, кто провел титаническую работу над Linux-ом и IP-алиасингом. И особенно Juan Jose Ciarlante за ответы на мои вопросы.
Честь и слава программистам-асам!
Если вам пригодился этот документ, или у вас есть предложения или дополнения, пишите мне по адресу h.pillay@ieee.org.
Авторские права
Авторские права на русский перевод этого текста принадлежат © 2000 SWSoft Pte Ltd. Все права зарезервированы.
Этот документ является частью проекта Linux HOWTO.
Авторские права на документы Linux HOWTO принадлежат их авторам, если явно не указано иное. Документы Linux HOWTO, а также их переводы, могут быть воспроизведены и распространены полностью или частично на любом носителе, физическом или электронном, при условии сохранения этой заметки об авторских правах на всех копиях. Коммерческое распространение разрешается и поощряется; но, так или иначе, автор текста и автор перевода желали бы знать о таких дистрибутивах.
Все переводы и производные работы, выполненные по документам Linux HOWTO, должны сопровождаться этой заметкой об авторских правах. Это делается в целях предотвращения случаев наложения дополнительных ограничений на распространение документов HOWTO. Исключения могут составить случаи получения специального разрешения у координатора Linux HOWTO, с которым можно связаться по адресу приведенному ниже.
Мы бы хотели распространить эту информацию по всем возможным каналам. Но при этом сохранить авторские права и быть уведомленными о всех планах распространения HOWTO. Если у вас возникли вопросы, пожалуйста, обратитесь к координатору проекта Linux HOWTO по электронной почте: или к координатору русского перевода Linux HOWTO компании SWSoft Pte Ltd. по адресу
Add ip alias linux
На днях появилась задача привязать несколько ip-адресов к одному сетевому интерфейсу, без использования vlan, т.е. создать несколько виртуальных, еще их называют «alias», ip-адресов. Попробуем разобраться, как это сделать.
Данная задача решается в ОС Linux (Linux Mint, Debian, Ubuntu, xUbuntu) двумя способами: использование утилиты «ifconfig» и редактирование файла «/etc/network/interfaces».
Добавить alias ip в Linux через утилиту ifconfig
Рассмотрим способ добавления дополнительного ip-адреса на сетевой интерфейс «eth0» с использованием утилиты «ifconfig».
Добавим новые виртуальньные «alias» ip-адреса, которые будут привязаны к sub-интерфейсам «eth0:0» и «eth0:1» следующими командами:
В выводе команды «ifconfig -a» мы видим, что появились два sub-интерфейса «eth0:0» и «eth0:1» с ip-адресами.
Замечание: после перезагрузки добавленные виртуальные «alias» ip-адреса через команду «ifconfig» слетят.
Удалить alias ip в Linux через утилиту ifconfig
Для удаления ранее созданного sub-интерфейса «eth0:0» воспользуемся следующей командой:
Добавление alias ip в Linux Mint, Debian, Ubuntu через файл interfaces
Для того, чтобы дополнительные адреса сохранялись после перезагрузки системы, необходимо добавить в файл «/etc/network/interfaces» следующие строки:
Теперь при загрузке системы sub-интрефейсы eth0:0 и eth0:1 будут автоматически добавлены.
Вот и все. Аналогичным образом можно добавить и другие виртуальные ip-адреса на сетевую карту в ОС Linux Mint, Debian, Ubuntu.
1″ :pagination=»pagination» :callback=»loadData» :options=»paginationOptions»>