/etc/network/interfaces - настройка сетевого интерфейса для ifup и ifdown
/etc/network/interfaces содержит информацию по настройке сетевого интерфейса для команд ifup(8) и ifdown(8). Здесь вы указываете, каким образом ваша система подключена к сети.Строки, которые начинаются с символа ’#’, игнорируются. Обратите внимание, что комментарии с явным указанием конца строки НЕ поддерживаются, комментарии должны занимать одну строку.
Строка может быть перенесена на новую строку для удобства чтения, для этого в конце строки необходим символ "\".
Файл состоит из нуля или более строф "iface", "mapping", "auto" и "allow-". Ниже приведён пример.
Строки, начинающиеся со слова "auto", используются для идентификации физических интерфейсов при их подьеме в время запуска ifup с опцией -a. (Эта опция используется сценариями загрузки системы.) Имена физических интерфейсов должны следовать за словом "auto" в той же строке. Может быть несколько строф "auto". ifup поднимет названные интерфейсы в порядке их перечисления.
allow-hotplug eth1
iface lo inet loopback
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Строки, начинающиеся с "allow-" используются для идентификации интерфейсов, которые должны быть подняты автоматически различными подсистемами. Это может быть сделано, например, с использованием команды "ifup --allow=hotplug eth0 eth1", которая будет поднимать только eth0 или eth1, если они перечислены в строке "allow-hotplug". Учтите, что "allow-auto" и "auto" - синонимы.
Строфы, начинающиеся со слова "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) за подробностями.)
Опции обычно содержат отступ для ясности (как в примере выше) но это не обязательно.
Следующие "командные" опции доступны для любойго семейства и метода. Каждая из этих опций может быть задана несколько раз в одной строфе, в этом случае команды исполняются в том порядке, в котором они появляются в строфе. (Вы можете убедиться, что команда никогда не завершается с ошибкой, добавив суффикс "|| true". )Дополнительно, все опции, заданные в строфе определения интерфейса, экспортируются в переменные окружения. Имя переменной состоит из символов в верхнем регистре, дополненное символами "IF_" слева, с дефисами, преобразованными в знаки подчеркивания и с отброшенными не алфавитно-цифровыми символами.
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) после обработки самих опций. Все эти команды имеют доступ к следующим переменным окружения. 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
Этот раздел описывает методы, доступные для семейства адресов inet.
Этот метод может использоваться для описания интерфейса обратной петли IPv4.Опции
(Нет опций)
Этот метод может использоваться для описания Ethernet-интерфейсов со статически выделенными IPv4 адресами.Опции
address address Необходимый адрес (четыре числа, разделённых точками). netmask netmask Необходимая маска сети (четыре числа, разделённых точками). broadcast широковещательный_адрес Широковещательный адрес (четыре числа, разделённых точками). network network_address Необходимый для ядер 2.0.x адрес сети (четыре числа, разделённых точками). metric metric Метрика маршрутизации для шлюза по умолчанию (целое число). gateway address Шлюз по умолчанию (четыре числа, разделённых точками). pointopoint адрес Адрес удалённой точки (четыре числа, разделённых точками). Обратите внимание на написание "point-to". media type Тип носителя, зависящий от драйвера. hwaddress class address Аппаратный адрес. Класс - это одно из следующих значений: ether, ax25, ARCnet или netrom. Адрес зависит от выбранного класса. mtu size Размер MTU.
Этот метод может использоваться для описания интерфейсов, для которых нет настроек применяемых по умолчанию. Такие интерфейсы могут настраиваться вручную, подразумеваемыми командами up и down, или сценариями из каталогов /etc/network/if-*.d.Опции
(Нет опций)
Этот метод может использоваться для получения адреса через DHCP любым из перечисленных инструментов: dhclient, pump, udhcpc, dhcpcd. (Они были перечислены в порядке их приоритета.) Если у вас сложная конфигурация DHCP, вам следует знать, что некоторые из клиентов используют собственные настроечные файлы и не получают настроечную информацию посредством ifup.Опции
hostname hostname Запрашиваемое имя узла (pump, dhcpcd, udhcpc). leasehours leasehours Предпочитаемое время аренды в часах (pump). leasetime leasetime Предпочитаемое время аренды в секундах (dhcpcd). vendor vendor Идентификатор класса производителя (dhcpcd). client client Индетификатор клиента (dhcpcd, udhcpc). hwaddress класс адрес Аппаратный адрес. Класс - это одно из следующих значений: ether, ax25, ARCnet или netrom. Адрес зависит от выбранного класса.
Метод может использоваться для получения адреса через bootp.Опции
bootfile файл Сообщает серверу какой файл использовать в качестве загрузочного. server адрес Использовать указанный IP-адрес адрес для связи с сервером. hwaddr addr Использовать указанный аппаратный адрес вместо реального.
Этот метод использует pon/poff для настройки интерфейса PPP. Обратитесь к этим командам за подробностями.Опции
provider имя Использовать имя в качестве провайдера (из /etc/ppp/peers).
Этот метод использует wvdial для настройки интерфейса PPP. Обратитесь к этой команде за подробностями.Опции
provider имя Использовать имя в качестве провайдера (из /etc/ppp/peers).
Этот раздел описывает методы, доступные для семейства адресов ipx.
Этот метод может использоваться для настройки интерфейса IPX. Он требует команду ipx_interface.Опции
frame type Тип используемых кадров Ethernet (например, 802.2). netnum id Номер сети.
Этот метод может использоваться для динамической настройки интерфейса IPX.Опции
frame type Тип используемых кадров Ethernet (например, 802.2).
Этот раздел описывает методы, доступные для семейства адресов inet6.
Этот метод может использоваться для описания интерфейса обратной петли IPv6.Опции
(Нет опций)
Этот метод может использоваться для описания интерфейсов со статически назначенными IPv6 адресами.Опции
address address Необходимый адрес (разделенный двоеточиями). netmask mask Необходимая сетевая маска (количество бит, например 64). gateway address Шлюз по умолчанию (разделенный двоеточиями). media type Тип носителя, зависящий от драйвера. hwaddress класс адрес Аппаратный адрес. Класс - это одно из следующих значений: ether, ax25, ARCnet или netrom. Адрес зависит от выбранного класса. mtu size Размер MTU.
Этот метод может использоваться для описания интерфейсов, для которых нет настроек применяемых по умолчанию. Такие интерфейсы могут настраиваться вручную, подразумеваемыми командами up и down, или сценариями из каталогов /etc/network/if-*.d.Опции
(Нет опций)
Этот метод может использоваться для настройки туннеля IPv6-over-IPv4. Для него необходима команда ip из пакета iproute.Опции
address address Адрес (разделенный двоеточиями). netmask mask Маска сети (количество бит, например 64). endpoint address Необходимый адрес удалённой точки туннеля (IPv4 - четвёрка чисел, разделённых точками). local address Адрес локальной точки (IPv4 - четвёрка чисел, разделённых точками). gateway address Шлюз по умолчанию (разделенный двоеточиями). ttl time Настройка TTL.
ifup и ifdown работают с так называемыми "физическими" именами интерфейсов. Эти имена обозначены оборудованию ядром. К несчастью может случиться так, что ядро каждый раз будет назначать разные имена физических интерфейсов одному и тому же оборудованию; например, тот что называется "eth0" после перезагрузки может называться "eth1" или наоборот. Это создаёт проблему, если вы хотите настроить интерфейсы соответствующим образом. Для избежания подобного следует использовать сцеанрии отображения, которые выбирают логические имена интерфейсов в соответствии со свойствами аппаратного интерфейса. Смотри сценарий get-mac-address.sh из каталога примеров, который является примером такого сценария отображения. Смотри также Debian bug #101728.В настоящее время невозможно разделить /etc/network/interfaces на различные файлы. Возможность, которая сделает это возможным, это некая разновидность директивы включения. В текущей программе ifupdown это не возможно. За более подробной информацией обратитесь Debian bug #159884.
Комплекс программ ifupdown был написан Энтони Таунсом (Anthony Towns) <aj@azure.humbug.org.au>. Это руководство предоставлено Джо Хессом (Joey Hess) <joey@kitenet.net>.
Перевод на русский язык выполнил Владимир Ступин <wheelof@gmail.com>.
ifup(8), iwconfig(8), run-parts(8).Для получения консультаций по настройке этого пакета читайте главу Настройка Сети из справочного руководства Debian, который доступен по адресу http://www.debian.org/doc/manuals/reference/ch-gateway.en.html или в пакете debian-reference-en.
Примеры настройки interfaces вы можете найти в /usr/share/doc/ifupdown/examples/network-interfaces.
ifupdown | INTERFACES (5) | 5 апреля 2004 |