/etc/net - базовая и расширенная конфигурация сети в Linux
СИНТАКСИС
ifup <interface>
ifdown <interface>
service network <start|stop|restart|reload...>
ОПИСАНИЕ
/etc/net - это система конфигурации сети. Она является одновременно простой в применении для новичка и действенной для эксперта. В первую очередь следует описать настройки и интерфейсы вашей сети в конфигурационных файлах. Однажды сделав это, вы сможете контролировать состояние вашего хоста с помощью трех скриптов: ifup, ifdown, network.init.
КОНФИГУРАЦИЯ СИСТЕМЫ
/etc/net поставляется с конфигурацией по умолчанию, которая подходит для большинства случаев. Более того, дистрибутивы Linux могут подстроить установки по умолчанию, но существуют вещи, которые можете настроить только вы. /etc/net сохраняет свою конфигурацию в файлах, большая часть которых постоянно хранится в каталоге /etc/net.
/etc/net/options.d
В этом каталоге по умолчанию хранится файл 00-default. Там же могут находиться и другие файлы, они будут читаться в алфавитном порядке.
/etc/net/sysctl.conf
файл запуска системных вызовов
/etc/net/ipv4rule
таблица правил ip ('ip -4 добавляет параметры)
/etc/net/vlantab
Таблица конфигурации VLAN. Если нужно настроить множество простых VLAN интерфейсов, это правильное место. Чтобы узнать подробности, смотрите раздел СИНТАКСИС VLANTAB.
/etc/net/iftab
Таблица назначения интерфейсов факультативна, но иметь ее настоятельно рекомендуется Этот файл используется ifrename. Формат файлов iftab описан в руководстве iftab. Обратите внимание, что /etc/iftab не используется, а данные хранятся в /etc/net/iftab. Это различие позволяет хранить /etc/net-специфичные профили и суффиксы хостов в отдельном каталоге, не создавая дополнительной путаницы в /etc. Кроме того, это оберегает систему от случайной смены имени интерфейса после запуска ifrename.
/etc/net/hosttab
Этот дополнительный файл может быть использован во время МУЛЬТИХОСТОВОЙ КОНФИГУРАЦИИ.
/etc/net/ifup-pre
Если существует и выполним, запускается перед запуском ЛЮБОГО интерфейса, но после того, как он будет создан.
/etc/net/ifup-post
Если существует и выполним, запускается после того, как ЛЮБОЙ интерфейс будет запущен и начнет работу.
/etc/net/ifdown-pre
Если существует и выполним, запускается перед тем, как ЛЮБОЙ интерфейс начнет подготовку к выключению.
/etc/net/ifdown-post
Если существует и выполним, запускается после того, как ЛЮБОЙ интерфейс полностью выключен.
/etc/net/netup-pre
Если существует и выполним, запускается перед началом работы сети.
/etc/net/netup-post
Если существует и выполним, запускается после начала работы сети.
/etc/net/netdown-pre
Если существует и выполним, запускается перед прекращением работы сети.
/etc/net/netdown-post
Если существует и выполним, запускается после прекращения работы сети.
НАСТРОЙКА ИНТЕРФЕЙСА
Для полной настройки интерфейса следует проделать следующие шаги для каждого интерфейса сети, обнаруженной в Linux:
Создать описательное имя интерфейса и поместить соответствующую строку в /etc/net/iftab. Помните, что приняты некоторые ограничения:
PPP-интерфейсы могут быть названы только pppXXX, TEQL-интерфейсы не должны переименовываться из-за ошибки в коде ядра. Код ядра для Skystar DVB нестабилен вообще.
Создать каталог настройки интерфейса /etc/net/ifaces/<ИМЯ>
Заполнить ее файлами настройки в соответствии с ПРАВИЛАМИ НАСТРОЙКИ ИНТЕРФЕЙСА.
ГРУППЫ ИНТЕРФЕЙСОВ
Существует 5 групп интерфейсов в модели /etc/net:
virtual (виртуальная)
Самодостаточные интерфейсы, в настоящее время loopback и фиктивные (dummy). Они очень редко требуют другие интерфейсы и не требуют оборудования.
real physical (физическая)
Интерфейсы, связанные с реальным оборудованием: Ethernet, PLIP, адаптерам USB Ethernet и DVB. Вы не можете их создать, если нет оборудования.
hosted physical (производная от физической)
Нечто среднее между физическим и логическим типами. Эта группа включает: VLAN, связки (bonding), мосты и эквалайзеры трафика. Эти интерфейсы не используют непосредственно оборудование, но основаны на одном или более узловом (host) реальном физическом интерфейсе. Если узловой интерфейс отсутствует, эти интерфейсы не могут быть подняты.
independent logical (независимая логически)
Эта группа включает тоннели IP и IPSec. Тоннели не имеют постоянного положения, они больше похожи на виртуальные группы, но иногда они косвенно зависят от интерфейсов более низкого уровня.
dependent logical (зависимая логически)
Эта группа в настоящее время состоит из PPP-интерфейсов, включая PPPoE/PPtP. Хорошо известное их свойство - отключаться по таймауту, так что эта группа имеет больше всех шансов на сбой.
Когда сеть начинает работу, /etc/net помещает интерфейсы в соответствующую группу и обрабатывает группы от виртуальной до зависимой логической. Когда сеть завершает работу, группы обрабатываются в обратном порядке. Такой порядок приводит к меньшему числу ошибок, чем простая обработка каждого интерфейса по порядку. Вам не нужно распределять интерфейсы по группам, это происходит автоматически по типу интерфейса.
ПРАВИЛА НАСТРОЙКИ ИНТЕРФЕЙСА
Если явно не установлено, каждый файл настройки перечисляет по одному параметру в строке (опции, адреса, маршруты и т.д.). Вам следует создавать файлы для каждой возможности, которое вы хотите использовать. Если файл отсутствует, свойство не будет задано.
options
Главный файл настройки. Этот файл является необходимым. Посмотрите список доступных опций на странице руководства etcnet.
iplink
Список команд 'ip link'. Если вам нужно изменить флаг MTU или PROMISC интерфейса, это то самое место. Если вы хотите иметь указанный MAC-адрес, вы можете поместить в этот файл опцию "address xx:xx:xx:xx:xx:xx". Этот файл не является необходимым.
ipneigh
Список команд 'ip ne' может быть использован для контроля таблицы ARP, например, добавляет статичные записи ARP. Этот файл не является необходимым.
ipv4address
Список адресов IPv4 для текущего интерфейса. Этот файл не является необходимым, но часто используется.
ipv4route
Список IPv4 маршрутов для текущего интерфейса. Этот файл не является необходимым, но часто используется.
ipv4rule
Список правил маршрутов IPv4 для текущего интерфейса. Этот файл понадобится вам только для того, чтобы установить маршруты в многочисленные таблицы правил маршрутизации. Этот файл не является необходимым.
ipv6address
Список адресов IPv6 для текущего интерфейса. Этот файл не является необходимым.
ipv6route
Список маршрутов IPv6 для текущего интерфейса. Этот файл не является необходимым.
iwconfig
Список команд iwconfig. Этот файл необходим только для WiFi WEP.
wpa_supplicant.conf
Файл настройки wpa_supplicant. Этот файл необходим только для WiFi WPA.
brctl
Список команд brctl. Этот файл используется только мостами и не является необходимым.
ethtool
Список команд ethtool. Этот файл используется только для интерфейсов Ethernet и не является необходимым.
ipx_interface
Список параметров 'ipx_interface add'. Этот файл является необходимым для интерфейсов IPX.
sysctl.conf
Список опций sysctl, которые будут запущены после запуска интерфейса. Смотрите ПОДДЕРЖКА SYSCTL. Этот файл необязателен.
resolv.conf
Настройка определения адресов. Этот файл будет скопирован в /etc/resolv.conf после запуска интерфейса. Этот файл необязателен.
ifup-pre
Если существует и выполним, запускается перед тем, как ТЕКУЩИЙ интерфейс поднят, но после того, как он создан.
ifup-post
Если существует и выполним, запускается после того, как ТЕКУЩИЙ интерфейс запущен и работает.
ifdown-pre
Если существует и выполним, запускается перед тем как ТЕКУЩИЙ интерфейс начнет подготовку к завершению.
ifdown-post
Если существует и выполним, запускается после того, как ТЕКУЩИЙ интерфейс полностью завершен.
pppoptions
Этот опциональный файл содержит дополнительные опции pppd для PPP-интерфейсов.
pppinit
Этот опциональный файл содержит скрипт чата (не оболочку) для инициализации модема.
pppconnect
Этот опциональный файл содержит скрипт чата (не оболочку) соединения с удаленным устройством (т.е. набор номера).
pppdisconnect
Этот опциональный файл содержит скрипт чата (не оболочку) для отключения от удаленного устройства (т.е. отбой).
Каталог интерфейса может содержать два специальных подкаталога: 'fw' и 'qos'. Они используются для настройки брандмауэра и QoS соответственно. Смотрите руководство по настройке QoS etcnet-qos(8).
СПЕЦИАЛЬНЫЕ ИНТЕРФЕЙСЫ
/etc/net поставляется с тремя существующими интерфейсами:
lo
Необходим для сетевой подсистемы Linux. Этот интерфейс настроен, подходит в большинстве случаев.
default
В действительности это не интерфейс, а шаблон интерфейса. Интерфейс 'default' формирует исходный набор опций для всех интерфейсов и не принадлежит ни к какой группе интерфейсов. Этот интерфейс позволяет помещать файлы дополнительных опций в директорию: options-<TYPE>. Этот опциональный файл имеет действие ТОЛЬКО для 'default' интерфейса, это позволяет подменять опции по умолчанию опциями, специфичными для типа.
Не рекомендуется менять опции интерфейса 'default'. Каждый интерфейс может переназначать значения опций по умолчанию.
unknown
Это специальный интерфейс, который используется каждый раз, когда /etc/net не может подобрать подходящую конфигурацию, но должен это сделать. Назначение этого интерфейса - помочь сконфигурировать hotplug-интерфейсы, которые еще не настроены
ПОДДЕРЖКА SYSCTL
/etc/net использует некоторые файлы sysctl.conf для настройки ядра:
/etc/net/sysctl.conf
Вызывается при запуске службы. Не имеет автопрефикса.
/etc/net/ifaces/default/sysctl.conf
Вызывается ifup, не имеет автопрефикса.
/etc/net/ifaces/default/sysctl.conf-$TYPE
Вызывается ifup, с автопрефиксом.
/etc/net/ifaces/XXXXXX/sysctl.conf
Вызывается ifup, с автопрефиксом.
Автопрефикс означает, что если встречается полностью заданная переменная (как в традиционном файле /etc/sysctl.conf), она будет обрабатываться как есть, но для переменных отдельного слова, подобно p_filter, или для продвижения соответствующего префикса ее попробуют найти. Автопрефикс работает только для интерфейса sysctl.conf и
зависящего от типа sysctl.conf.
РЕКУРСИЯ И ЗАВИСИМОСТИ
Некоторые интерфейсы требуют наличия других поднятых интерфейсов для запуска. Некоторые зависимости вычисляются автоматически, но некоторые должны быть настроены вручную.
Если для интерфейса A в его файле настроек REQUIRES=B его файле опций, A является дочерним (children), B - родительским (parent).
Существует шесть опций для контроля над разрешением зависимостей:
Эти опции описаны в руководстве etcnet-options(5).
ОБРАТИТЕ ВНИМАНИЕ:
Интерфейсы из vlantab обходят традиционную логику,
они не могут стать причиной запуска/остановки материнского/дочернего интерфейса. Если материнский интерфейс остановлен когда vlantab обрабатывает данные (ONBOOT=no или неверная настройка), все дочерние VLAN-интерфейсы попросту пропускаются.
В большинстве случаев (если не всегда) зависимости задаются опцией REQUIRES.
СИНТАКСИС VLANTAB
vlantab обеспечивает путь к массовой настройке VLAN-интерфейсов только по одному адресу IPv4 в каждом интерфейсе. Для каждого VLAN-интерфейса вам следует поместить строку:
<host interface> <VLAN ID>
Создает VLAN-интерфейс и автоматически называет его в соответствии со значением опции VLAN_NAMETYPE.
Создает VLAN-интерфейс с заданным именем и запускает 'ip address' с заданными параметрами.
СИНТАКСИС HOSTTAB
Этот файл хранит альтернативные имена хоста. Если имя хоста слишком длинное или неудобное, здесь вы можете определить псевдоним. Этот псевдоним может быть использован для отметки файлов. Одно имя хоста должно быть связано только с одним псевдонимом. Формат файлов:
Скрипты /etc/net обеспечивают поддержку независимых пространств имен в едином дереве конфигурации. Это достигается с помощью специальных суффиксов, используемых в зависимости от текущих значений профиля и хоста.
ПРОФИЛИ КОНФИГУРАЦИИ
Профиль - расширенный набор настроек. Например, если ноутбук использует несколько разных сетей, желательно выбрать конфигурацию только по одному параметру. Имя текущего профиля может быть установлено посредством:
1. изменяемый режим NETPROFILE (не очень хорошая идея, я полагаю)
2. файл /etc/net/profile (файл должен содержать только одно слово, например "office" без кавычек)
3. ядро загружает параметр "netprofile", например "LILO: linux netprofile=home"
Установка профиля по умолчанию ничего не делает. Но если скрипты etcnet знают имя текущего профиля (например "home") и ищет файл конфигурации (например, "options") и существует "options#home", тогда "options#home" будет использован вместо "options". То же самое для ipv4address, ipv4route, ipv4rule, ipv6address, iplink и так далее.
Итак, если вы хотите настроить хост для работы в двух разных сетях, вам скорее всего придется создать дополнительный файл ipv4address#имя_вашего_профиля для другого адреса и ipv4route#имя_вашего_профиля для другого маршрута по умолчанию. То же самое для resolv.conf (если необходимо).
Следующий пример: поднятие двух хостов с одного жесткого диска (root fs). То же самое, что и в предыдущем случае, но создаются дополнительные файлы options#имя_вашего_профиля и iftab#имя_вашего_профиля для разных сетевых карт.
Чтобы переключиться между профилями без редактирования /etc/net/profile можно использовать:
# service etcnet startwith office
# service etcnet restartwith home
Если скрипт, выполняемый 'selectprofile', существует в каталоге iface, он будет запущен с одним параметром, который определяет текущую стадию конфигурации. Если вы хотите заменить имя текущего профиля во время работы, следует выполнить указанные действия в этом скрипте и вывести имя профиля в стандартный вывод. Так как скрипт будет запущен несколько раз и определение времени работы может занять некоторое время, сообщается, что скрипт выполнит действия только на определенных стадиях. 'selectprofile' будет всегда получать имя запроса скрипта как первый параметр, поэтому вы можете не пытаться обнаружить беспроводное соединение прежде, чем, к примеру, загружен модуль ядра. См. /etc/net/ifaces/default/selectprofile как пример скрипта.
Как и в /etc/net-0.5.3 init_netprofile вызывается только из {ifup,ifdown}.*,
{setup,shutdown}-.* и из network.init scripts.