Пакет ifupdown является комплексным средством настройки параметров
сети, в частности используется для инициализации сети при загрузке операционной
системы в Debian GNU\Linux (совместно с соответствующими скриптами ifupdown-clean,
ifupdown, networking, расположенными в каталоге /etc/init.d)
Начиная с версии 6.0 (squeeze), разработчики Debian в документации классифицируют
пакет ifupdown как устаревший и рекомендуют пользоваться такими средствами как
NetworkManager или Wicd. Такой подход себя оправдывает для рабочих станций с установленными
средствами графического интерфейса пользователя. Для серверов продолжается использование
ifupdown - стабильного, многофункционального, хорошо документированного средства
управления сетевой подсистемой.
Пакет ifupdown содержит две команды ifup и ifdown для включения
и отключения сетевого подключения (в данном случае интерфейса eth1):
#
ifdown eth1
#
ifup eth1
Эти команды по умолчанию используют настройки, записанные в файле /etc/network/interfaces.
Для запуска, перезапуска и останова сетевой подсистемы следует использовать
скрипт /etc/init.d/networking c параметрами start, restart
и stop соответственно:
#
/etc/init.d/networking restart
Файл настроек сетевых интерфейсов /etc/network/interfaces
Файл /etc/network/interfaces имеет текстовый формат, пригодный для редактирования
администратором системы c помощью текстового редактора, в тоже время команды
ifup и ifdown также способны его читать и распознавать указанные в нем настройки.
Пример этого файла:
auto
lo eth1 eth0
iface
lo inet loopback
iface
eth1 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.1
iface
eth0 inet dhcp
Ключевое слово auto c перечислением через пробел имен интерфейсов
указывает включать данные интерфейсы при старте системы. Ключевое слово iface
является описанием интерфейса (общий формат: iface <имя_интерфейса>
<тип адреса> <метод_настройки>). Так, в примере:
- в строке iface lo inet loopback настраивается локальный интерфейс lo для взаимодействия приложений в рамках данного компьютера (loopback)
- в строке iface eth1 inet static настраивается интерфейс eth1 на статический метод конфигурации (сетевые параметры указываются вручную, static). Далее параметры статической настройки интерфейса и указаны (формат в общем виде: <опция> <значение>): IP-адрес (address), маска подсети (netmask), шлюз по умолчанию (gateway), адреса DNS-серверов (dns-nameservers) и т.д.
- в строке iface eth0 dhcp указывается настройка интерфейса eth0 по протоколу динамической конфигурации узла.
Протокол DHCP (Dynamic Host Configuration Protocol) позволяет компьютеру
автоматически получать по сети IP-адрес и другие параметры, необходимые для работы
сетевого интерфейса. Для использования протокола DHCP необходимо чтобы в данном
широковещательном домене был настроен DHCP-сервер. При настройке сетевого
устройства компьютер обращается к DHCP-серверу и получает требуемые сетевые параметры.
Кроме статической и динамической настройки интерфейса, существует ручной
способ конфигурирования (manual), который предполагает то, что интерфейс
будет настроен с помощью средств, сторонних относительно ifupdown.
Рекомендуется отключать сетевой интерфейс (ifdown) перед тем как вносить
изменения в его конфигурацию, а затем включать (ifup).
Синтаксис файла interfaces подробно описан на соответствующей странице помощи
(man interfaces).
Добавление постоянного статического маршрута
Опции интерфейса в файле interfaces позволяют указать команды, которые необходимо
выполнить при включении интерфейса (опция up) и выключении (опция
down).
Например, настроим постоянную сетевую конфигурацию со статическим маршрутом
через альтернативный шлюз (приведен фрагмент файла /etc/network/interfaces):
iface
eth1 inet static
address 192.168.1.100
netmask 255.255.255.0
up ip route add 192.168.24.0/24 via
192.168.1.2
gateway 192.168.1.1
Применим данную конфигурацию с помощью команд ifdown/ifup и просмотрим таблицу маршрутизации:
#
ifdown eth1
#
ifup eth1
# ip
route show dev eth1
192.168.1.0/24 proto kernel
scope link src 192.168.1.100
192.168.24.0/24
via 192.168.1.2
default
via 192.168.1.1
Несколько IP-адресов на одном сетевом интерфейсе
Задача добавления нескольких IP-адресов на интерфейс с помощью файла
/etc/network/interfaces решается следующим образом:
auto
eth1 eth1:add
iface
eth1 inet static
address 192.168.11.10
netmask 255.255.255.0
gateway 192.168.11.1
iface
eth1:add inet static
address 192.168.11.11
netmask 255.255.255.0
Псевдоним задается через двоеточие после имени интерфейса. Также необходимо указать автоматический запуск нового интерфейса в параметре auto.
Для применения данной конфигурации необходимо выполнить последовательность
команд:
#
ifdown eth1; ifup eth1; ifup eth1:add
или же:
# /etc/init.d/networking
restart