/etc/network/interfaces − конфигурация сетевого интерфейса для ifup и ifdown
/etc/network/interfaces содержит информацию по настройке сетевого интерфейса для команд ifup(8) и ifdown(8). Здесь вы указываете, каким образом ваша система подключена к сети.
Строки, которые начинаются с символа ’#’, игнорируются. Обратите внимание, что комментарии с явным указанием конца строки НЕ поддерживаются, комментарии должны занимать одну строку.
Строка может быть перенесена на новую строку для удобства чтения, для этого в конце строки необходим символ "\".
Файл состоит из нуля или более строф "iface", "mapping", "auto" и "allow−", "source" и "source−directory". Ниже приведён пример.
auto eth0 allow−hotplug eth1 source interfaces.d/machine−dependent source−directory interfaces.d mapping eth0 script /usr/local/sbin/map−scheme map HOME eth0−home map WORK eth0−work iface eth0−home inet static address 192.168.1.1 netmask 255.255.255.0 up flush−mail iface eth0−work inet dhcp iface eth1 inet dhcp
Строки, начинающиеся со слова "auto", используются для идентификации физических интерфейсов при их подъёме во время запуска ifup с опцией −a. (Эта опция используется сценариями загрузки системы.) Имена физических интерфейсов должны следовать за словом "auto" в той же строке. Может быть несколько строф "auto". ifup поднимет названные интерфейсы в порядке их перечисления.
Строки, начинающиеся с "allow−" используются для идентификации интерфейсов, которые должны быть подняты автоматически различными подсистемами. Это может быть сделано, например, с использованием команды "ifup −−allow=hotplug eth0 eth1", которая будет поднимать только eth0 или eth1, если они перечислены в строке "allow−hotplug". Учтите, что "allow−auto" и "auto" − синонимы.
Строки, начинающиеся с "source" используются для обозначения строф из других файлов, так что конфигурация может быть поделена на несколько файлов. После слова "source" следует путь к подключаемому файлу. Можно использовать символы шаблона оболочки. (За подробностями обращайтесь к wordexp(3).)
Ключевое слово "source−directory" используется для подключения нескольких файлов сразу, без их поимённого указания и без использования шаблонов оболочки. Дополнительно, при использовании "source−directory" имена файлов проверяются на соответствие регулярному выражению ^[a−zA−Z0−9_−]+$. Другими словами, имена могу состоять только из букв ASCII в верхнем и нижнем регистре, цифр ASCII, подчёркиваний и минусов−дефисов ASCII. В пути к каталогу можно указывать символы шаблонов оболочки.
Если подключаемый файл или каталог не начинается с косой черты, считается что путь задан относительно того каталога, в котором находится файл, содержащий ключевое слово. В примере выше, если файл располагается в /etc/network/interfaces, подразумевается что включаемые файлы располагаются внутри /etc/network.
В настоящее время "source−directory" не поддерживается программами network−manager и guessnet.
По умолчанию, на только что установленной системе Debian файл interfaces включает строки из файлов в каталоге /etc/network/interfaces.d.
Строфы, начинающиеся со слова "mapping", используются для определения, какой логический интерфейс соответствует физическому интерфейсу, который будет поднят. Первая строка строфы отображения (mapping) состоит из слова "mapping" с последующим шаблоном, соответствующим синтаксису глобальной оболочки. Каждая такая строфа отображения должна содержать определение сценария. Именованный сцеанрий запускается с именем физического интерфейса в качестве аргумента и с передачей на его стандартный вход всех следующих "map" строк (без ведущей "map") в строфе. Сценарий перед завершением должен вывести строку на стандартный вывод. Обратитесь к /usr/share/doc/ifupdown/examples за примерами того, что должен вывести сценарий.
Отображение имени состоит из поиска необходимого шаблона отображения и запуска сценария, соответствующего первому совпадению; сценарий выводит имя, в которое будет отображено исходное имя.
ifup, в качестве его первого обязательного аргумента, обычно передается имя физического интерфейса. ifup так же использует это имя как начальное логическое имя интерфейса, если оно не сопровождается суффиксом вида =LOGICAL, в этом же случае ifup выбирает LOGICAL в качестве начального логического имени интерфейса. Затем это название отображения, возможно более одного раза в соответствии с последующими спецификациями отображения, до тех пор пока больше не останется доступных отображений. Если окончательное имя − это имя некого определенного логического интерфейса, тогда ifup попытается поднять физический интерфейс в качестве этого логического интерфейса. В противном случае ifup закончит работу с ошибкой.
Строфы, определяющие логические интерфейсы, начинаются со строки, содержащей слово "iface", которая сопровождается именем логического интерфейса. В простых конфигурациях, без строф отображения, это имя просто должно быть именем физического интерфейса, к которому будут применены настройки. (Сценарий отображения по умолчанию действует подобно команде echo.) За именем интерфейса следует название семейства адресов, которое использует интерфейс. Это может быть "inet" для сетей TCP/IP, но имеется так же поддержка сетей IPX ("ipx"), и сетей IPv6 ("inet6"). За ним следует название метода, используемого для настройки интерфейса.
Дополнительные опции могут быть заданы в последующих строках строфы. Доступность опций зависит от семейства и метода, как описано ниже. Дополнительные опции могут предоставляться другими пакетами Debian. Например, пакет wireless−tools предоставляет несколько опций, начинающихся с "wireless−", которые можно использовать для настройки интерфейса с помощью iwconfig(8). (Обратитесь к wireless(7) за подробностями.)
Опции обычно содержат отступ для ясности (как в примере выше) но это не обязательно.
Для лёгкости настройки интерфейсов VLAN, интерфейсы, содержащие . в имени, настраиваются как тегированные интерфейсы 802.1q. Например, интерфейс eth0.1 − это виртуальный интерфейс с идентификатором VLAN 1 на физическом интерфейсе eth0.
В целях совместимости с пакетом bridge−utils настройка интерфейса VLAN не производится, если указана опция bridge_ports.
Следующие "командные" опции доступны для любого семейства и метода. Каждая из этих опций может быть задана
несколько раз в одной строфе, в этом случае команды исполняются в том порядке, в котором они появляются в строфе. (Чтобы результат выполнения команды всегда
был успешным, можно добавить к команде "|| true". )
pre−up команда
Запустить команду до поднятия интерфейса. Если команда завершается с ошибкой, тогда ifup не отмечает интерфейс как настроенный, выводит сообщение об ошибке и завершается со статусом 0. В будущем это поведение может измениться.
up команда
post−up команда
Запустить команду после поднятия интерфейса. Если команда завершается с ошибкой, тогда ifup не отмечает интерфейс как настроенный (даже если он в действительности настроен), выводит сообщение об ошибке и завершается со статусом 0. В будущем это поведение может измениться.
down команда
pre−down команда
Запустить команду перед отключением интерфейса. Если команда завершается с ошибкой, тогда ifdown помечает интерфейс как не настроенный (даже если на самом деле его настройки не были сброшены) и завершается со статусом 0. В будущем это поведение может измениться.
post−down команда
Запустить команду после отключения интерфейса. Если команда завершается с ошибкой, ifdown помечает интерфейс как не настроенный и завершается со статусом 0. В будущем это поведение может измениться.
Для каждой из вышеперечисленных опций существует каталог /etc/network/if−<опция>.d/, сценарии в котором запускаются (без аргументов) с помощью run−parts(8) после обработки самих опций. Отметим, что post−up и pre−down − псевдонимы, поэтому файлы из соответствующих каталогов не обрабатываются. Вместо них используйте каталоги if−up.d и if−down.d.
Все эти команды имеют доступ к следующим переменным окружения.
IFACE |
Физическое имя обрабатываемого интерфейса. |
LOGICAL
Логическое имя обрабатываемого интерфейса.
ADDRFAM
Семейство адресов интерфейса.
METHOD |
Метод интерфейса (например, static). |
||
MODE |
start − если команда запущена из ifup, stop − если команда запущена из ifdown. |
||
PHASE |
Как и MODE, но с большей точностью, при которой различаются фазы pre−up, post−up, pre−down и post−down. |
VERBOSITY
Указывает, что используется опция −−verbose; установлена в 1 если это так, или 0 − если нет.
PATH |
Путь поиска команды: /usr/local/sbin:/usr/local/bin:/usr/sbin:- /usr/bin:/sbin:/bin |
Дополнительно, все опции, заданные в строфе определения интерфейса, экспортируются в переменные окружения. Имя переменной состоит из символов в верхнем регистре, дополненное символами "IF_" слева, с дефисами, преобразованными в знаки подчеркивания и с отброшенными не алфавитно−цифровыми символами.
При вызове ifupdown с опцией −−all перед обработкой интерфейсов вызываются все скрипты−обработчики (pre−up или down) с IFACE равным "−−all", LOGICAL равным значению параметра −−allow (или "auto", если не указан), ADDRFAM="meta" и METHOD="none". После того, как все обработанные интерфейсы активированы или деактивированы, выполняются соответствующие скрипты (up или post−down).
Этот раздел описывает методы, доступные для семейства адресов inet.
Метод loopback
Этот метод может использоваться для описания интерфейса обратной петли IPv4.
Опции
(Нет опций)
Метод static
Этот метод может использоваться для описания Ethernet−интерфейсов со статически выделенными IPv4 адресами.
Опции
address адрес
Адрес (четыре числа, разделённых точками с косой чертой и маской). Требуется.
netmask маска_сети
Маска сети (четыре числа, разделённых точками или CIDR). Требуется.
broadcast широковещательный_адрес
Широковещательный адрес (четыре числа, разделённых точками, + или −). Значение по умолчанию: "+".
metric метрика
Метрика маршрутизации для шлюза по умолчанию (целое число).
gateway адрес
Шлюз по умолчанию (четыре числа, разделённых точками).
pointopoint адрес
Адрес удалённой точки (четыре числа, разделённых точками). Обратите внимание на написание "point−to".
hwaddress адрес
Адрес link local.
mtu размер
Размер MTU.
scope |
Области действительных адресов. Возможные значения: global, link, host. |
Метод manual
Этот метод может использоваться для описания интерфейсов, для которых нет настроек применяемых по умолчанию. Такие интерфейсы могут настраиваться вручную,
подразумеваемыми командами up и down, или сценариями из каталогов /etc/network/if−*.d.
Опции
(Нет опций)
Метод dhcp
Этот метод может использоваться для получения адреса через DHCP любым из перечисленных инструментов: dhclient, pump, udhcpc, dhcpcd. (Они были перечислены в
порядке их приоритета.) Если у вас сложная конфигурация DHCP, вам следует знать, что некоторые из клиентов используют собственные настроечные файлы и не
получают настроечную информацию посредством ifup.
Опции
hostname имя_узла
Запрашиваемое имя узла (pump, dhcpcd, udhcpc).
metric метрика
Метрика для добавляемых маршрутов (dhclient)
leasehours часы_аренды
Предпочитаемое время аренды в часах (pump).
leasetime время_аренды
Предпочитаемое время аренды в секундах (dhcpcd).
vendor производитель
Идентификатор класса производителя (dhcpcd).
client клиент
Идентификатор клиента (dhcpcd).
hwaddress адрес
Аппаратный адрес.
Метод bootp
Метод может использоваться для получения адреса через bootp.
Опции
bootfile файл
Сообщает серверу какой файл использовать в качестве загрузочного.
server адрес
Использовать указанный IP−адрес адрес для связи с сервером.
hwaddr адрес
Использовать указанный аппаратный адрес вместо реального.
Метод tunnel
Этот метод используется для создания туннелей GRE или IPIP. Нужен выполняемый файл ip из пакета iproute. Для туннелей GRE может понадобиться
загрузить модуль ip_gre, а для туннелей IPIP − модуль ipip.
Опции
address адрес
Локальный адрес (четыре числа, разделённых точками). Требуется.
mode тип
Тип туннеля (GRE или IPIP). Требуется.
endpoint адрес
Адрес удалённой точки туннеля. Требуется.
dstaddr адрес
Удалённый адрес (удалённый адрес внутри туннеля).
local адрес
Адрес локальной конца туннеля.
gateway адрес
Шлюз по умолчанию.
ttl время
Настройка TTL.
mtu размер
Размер MTU.
Метод ppp
Этот метод использует pon/poff для настройки интерфейса PPP. Обратитесь к этим командам за подробностями.
Опции
provider имя
Использовать имя в качестве провайдера (из /etc/ppp/peers).
unit число
Использовать число как номер интерфейса ppp.
options строка
Передать pon дополнительные опции из строки.
Метод wvdial
Этот метод использует wvdial для настройки интерфейса PPP. Обратитесь к этой команде за подробностями.
Опции
provider имя
Использовать имя в качестве провайдера (из /etc/wvdial.conf).
Метод ipv4ll
В этом методе для настройки интерфейса используется avahi−autoipd, который назначает адрес IPv4 Link−Layer (семейство 169.254.0.0/16). Этот метод также
называют APIPA и IPAC, а разговорной речи называется "адрес Zeroconf".
Опции
(Нет опций)
Этот раздел описывает методы, доступные для семейства адресов ipx.
Метод static
Этот метод может использоваться для настройки интерфейса IPX. Он требует команду ipx_interface.
Опции
frame тип
Тип используемых кадров Ethernet (например, 802.2).
netnum идентификатор
Номер сети.
Метод dynamic
Этот метод может использоваться для динамической настройки интерфейса IPX.
Опции
frame тип
Тип используемых кадров Ethernet (например, 802.2).
Этот раздел описывает методы, доступные для семейства адресов inet6.
Метод auto
Этот метод используется для автоматического назначения интерфейсам адресов IPv6. При самостоятельном использовании этой опции опции RDNSS применяться не будут.
Чтобы воспользоваться этими опциями, нужно установить, настроить и запустить демона rdnssd. Если включена поддержка DHCPv6 без учёта состояния, от DHCP
сервера будут получены дополнительные настройки сети, такие как серверы DNS и NTP. Отметим, что ifdown не освобождает арендованный адрес (это известная
недоработка).
Опции
privext целое_число
Расширения для секретности (RFC4941) (0=выключено, 1=назначено, 2=предпочитается)
accept_ra целое_число
Принимать анонсы маршрутизатора (0=отключено, 1=включено, 2=включено+маршрутизация). Значение по умолчанию − "2"
dhcp целое_число
Использовать DHCPv6 без учёта состояния (0=отключено, 1=включено)
Метод loopback
Этот метод может использоваться для описания интерфейса обратной петли IPv6.
Опции
(Нет опций)
Метод static
Этот метод может использоваться для определения интерфейсов со статически назначенными IPv6 адресами. По умолчанию для этого интерфейса отключена автонастройка
без учёта состояния.
Опции
address адрес
Адрес (разделенный двоеточиями с маской после косой черты). Требуется.
netmask маска_сети
Маска сети (количество бит, например 64).
gateway адрес
Шлюз по умолчанию (разделенный двоеточиями).
media тип
Тип носителя, зависящий от драйвера.
hwaddress адрес
Аппаратный адрес.
mtu размер
Размер MTU.
accept_ra целое_число
Принимать анонсы маршрутизатора (0=отключено, 1=включено, 2=включено+маршрутизация)
autoconf целое_число
Предпочитать автонастройку без учёта состояния (0=отключено, 1=включено). Значение по умолчанию − "0"
privext целое_число
Расширения для секретности (RFC3041) (0=выключено, 1=назначено, 2=предпочитается)
scope |
Область допустимых адресов. Возможные значения: global, site, link, host |
preferred−lifetime целое_число
Время, в течение которого адрес остаётся предпочитаемым.
dad−attempts
Количество попыток устранить конфликт адресов (0 − отключено). Значение по умолчанию − "60".
dad−interval
Интервал в секундах между попытками устранить конфликт адресов. Значение по умолчанию − "0.1"
Метод manual
Этот метод может использоваться для описания интерфейсов, для которых нет настроек применяемых по умолчанию. Такие интерфейсы могут настраиваться вручную,
подразумеваемыми командами up и down, или сценариями из каталогов /etc/network/if−*.d.
Опции
(Нет опций)
Метод dhcp
Метод может использоваться для получения настроек сетевого интерфейса через DHCPv6 без учёта состояний при помощи программы dhclient. В DHCPv6 с учётом
состояний за назначение адресов клиентам отвечает DHCP−сервер.
Опции
hwaddress адрес
Аппаратный адрес.
accept_ra целое_число
Принимать анонсы маршрутизатора (0=отключено, 1=включено, 2=включено+маршрутизация). Значение по умолчанию − "1"
autoconf целое_число
Предпочитать автонастройку без учёта состояния (0=отключено, 1=включено).
Метод v4tunnel
Этот метод может использоваться для настройки туннеля IPv6−over−IPv4. Для него необходима команда ip из пакета iproute.
Опции
address адрес
Необходимый адрес (разделенный двоеточиями).
netmask маска_сети
Маска сети (количество бит, например 64).
endpoint адрес
Необходимый адрес удалённой точки туннеля (IPv4 − четвёрка чисел, разделённых точками).
local адрес
Адрес локальной точки (IPv4 − четвёрка чисел, разделённых точками).
gateway адрес
Шлюз по умолчанию (разделенный двоеточиями).
ttl время
Настройка TTL.
mtu размер
Размер MTU.
preferred−lifetime целое_число
Время, в течение которого адрес остаётся предпочитаемым.
Метод 6to4
Этот метод может использоваться для настройки туннеля 6to4. Для него необходима команда ip из пакета iproute.
Опции
local адрес
Адрес локального конца туннеля (IPv4 − четвёрка чисел, разделённых точками). Требуется.
ttl время
Настройка TTL.
mtu размер
Размер MTU.
preferred−lifetime целое_число
Время, в течение которого адрес остаётся предпочитаемым.
Этот раздел описывает методы, доступные для семейства адресов can.
Метод static
Этот метод может использоваться для настройки интерфейса CAN (Controller Area Network − сеть контроллеров). Для него необходима команда ip из пакета
iproute.
Опции
bitrate битовая_скорость
Битовая скорость (1..1000000 бит/с). Требуется.
samplepoint точка_образец
Точка−образец (0.000..0.999).
loopback петлевой_интерфейс
Принимать отправленные сообщения CAN (on − включить|off − выключить)
listenonly только_приём
Режим только приёма (on − включить|off − выключить)
triple триплет
Режим тройного сэмплирования (on − включить|off − выключить)
oneshot однократный_режим
Однократный режим (on − включить|off − выключить)
berr berr
Включить отчёт berr (on − включить|off − выключить)
ifup и ifdown работают с так называемыми "физическими" именами интерфейсов. Эти имена обозначены оборудованию ядром. К несчастью может случиться так, что ядро каждый раз будет назначать разные имена физических интерфейсов одному и тому же оборудованию; например, тот что называется "eth0" после перезагрузки может называться "eth1" или наоборот. Это создаёт проблему, если вы хотите настроить интерфейсы соответствующим образом. Для избежания подобного следует использовать сцеанрии отображения, которые выбирают логические имена интерфейсов в соответствии со свойствами аппаратного интерфейса. Смотри сценарий get−mac−address.sh из каталога примеров, который является примером такого сценария отображения. Смотри также Debian bug #101728.
Комплекс программ ifupdown был написан Энтони Таунсом (Anthony Towns) <aj@azure.humbug.org.au>. Это руководство предоставлено Джо Хессом (Joey Hess) <joey@kitenet.net>.
Перевод на русский язык выполнил Владимир Ступин <vladimir@stupin.su>.
ifup(8), ip(8), ifconfig(8), run−parts(8), resolvconf(8).
Для получения консультаций по настройке этого пакета читайте главу Настройка сети из Справочного руководства Debian, которое доступно по адресу http://www.debian.org/doc/manuals/debian−reference/ch05.en.html или в пакете debian−reference−en.
Примеры настройки интерфейсов можно найти в /usr/share/doc/ifupdown/examples/network−interfaces.gz.