Хорошее подробное объяснение синтаксиса /etc/network/interfaces?

Хорошее подробное объяснение синтаксиса /etc/network/interfaces?

Я понял самую базовую концепцию того, как использовать /etc/network/interfaces, но все, что я нашел в сети, это примеры, пример за примером, которые я могу скопировать и вставить. Мне не хватает объяснения синтаксиса, объяснения значения команд и порядка, в котором они требуются. Я хочу понять, потому что в большинстве случаев копировать и вставлять недостаточно, потому что я не работаю на новой машине, поэтому я не могу просто перезаписать существующие конфигурации, потому что это сломает много всего. man interfacesне очень помогло, так как написано очень сложно.

Примеры вопросов, которые у меня есть: что именно означает inetin a ifaceline (я даже не смог найти это в man-странице), что именно означает manualin a ifaceline (многие примеры используют это, но согласно man-странице, тогда нужен дополнительный файл конфигурации, которого в примерах нет), когда я использую или мне они нужны? Когда нет? Когда я создаю мост, что именно происходит с интерфейсами?

решение1

Давайте разберем это на части, чтобы было легче понять /etc/network/interfaces:

Связующий слой+параметры типа интерфейса (обычно первый из каждого интерфейсастрофаи назвал адрес семейства + методinterfaces(5)страницы руководства):

auto interface– Запускать интерфейс(ы) при загрузке. Вот почему интерфейс loиспользует такую ​​конфигурацию связывания.

allow-auto interface- Такой же какauto

allow-hotplug interface– Запустить интерфейс при обнаружении события "hotplug". В реальном мире это используется в тех же ситуациях, autoно разница в том, что он будет ждать события, например "beobied by udev hotplug api" или "cable linked". См. "Связанные материалы(горячее подключение)" для получения дополнительной информации.

Эти параметры в значительной степени являются параметрами "уровня 2", настраивающими состояния ссылок на интерфейсах, и не связаны с "уровнем 3" (маршрутизацией и адресацией). Например, у вас может быть агрегация ссылок, где интерфейс bond0 должен быть включен независимо от состояния ссылки, а его члены могут быть включены после события состояния ссылки:

auto bond0
iface bond0 inet manual
        down ip link set $IFACE down
        post-down rmmod bonding
        pre-up modprobe bonding mode=4 miimon=200
        up ip link set $IFACE up mtu 9000
        up udevadm trigger

allow-hotplug eth0
iface eth0 inet manual
        up ifenslave bond0 $IFACE
        down ifenslave -d bond0 $IFACE 2> /dev/null

allow-hotplug eth1
iface eth1 inet manual
        up ifenslave bond0 $IFACE
        down ifenslave -d bond0 $IFACE 2> /dev/null

Итак, таким образом я создаюагрегация ссылоки интерфейсы будут добавляться и удаляться в зависимости от состояния кабельного соединения.

Наиболее распространённые типы интерфейсов:

Все опции ниже являются суффиксом определенного интерфейса ( iface <Interface_family>). По сути, iface eth0создаетстрофавызывается eth0на устройстве Ethernet. iface ppp0должен создатьточка-точкаинтерфейс, и он может иметь различные способы получения адресов, как inet wvdialэто будет пересылать конфигурацию этого интерфейса в wvdialconfскрипт. Кортеж inet/ inet6+ optionбудет определять версиюIP-протоколкоторый будет использоваться и как этот адрес будет настроен ( static, dhcp, scripts...).онлайн-руководства Debianпредоставлю вам более подробную информацию об этом.

Опции интерфейсов Ethernet:

inet static– Определяет статический IP-адрес.

inet manual– Не определяет IP-адрес для интерфейса. Обычно используется интерфейсами, которые являются членами моста или агрегации, интерфейсами, которым необходимо работать в смешанном режиме (например, зеркалирование портов или сетевые TAP), или иметь настроенное на них устройство VLAN. Это способ поддерживать интерфейс в рабочем состоянии без IP-адреса.

inet dhcp– Получить IP-адрес через протокол DHCP.

inet6 static– Определяет статический адрес IPv6.

Пример:

# Eth0
auto eth0
iface eth0 inet manual
    pre-up modprobe 8021q
    pre-up ifconfig eth0 up
    post-down ifconfig eth0 down

# Vlan Interface
auto vlan10
iface vlan10 inet static
        address 10.0.0.1
        netmask 255.255.255.0
        gateway 10.0.0.254
        vlan-raw-device eth0
        ip_rp_filter 0

Этот пример вызовет eth0и создастИнтерфейс VLANназывается vlan10, который будет обрабатывать тег номер 10 в кадре Ethernet.

Общие параметры внутри строфы интерфейса (уровни 2 и 3):

address– IP-адрес для статического IP-конфигурируемого интерфейса

netmask– Маска сети. Можно не указывать, если использовать cidr-адрес. Пример:

iface eth1 inet static
    address 192.168.1.2/24
    gateway 192.168.1.1

gateway– Шлюз по умолчанию сервера. Будьте осторожны, используйте только один из них.

vlan-raw-device– На интерфейсе VLAN определяет своего «отца».

bridge_ports– В интерфейсе моста определите его участников.

down– Используйте следующую команду для отключения интерфейса вместо ifdown.

post-down– Действия, предпринимаемые сразу после выхода интерфейса из строя.

pre-up– Действия перед включением интерфейса.

up– Используйте следующую команду для включения интерфейса вместо ifup. Вы можете использовать любую опцию, доступную на , по своему усмотрению iputils. В качестве примера мы могли бы использовать up ip link set $IFACE up mtu 9000для включениябольшие кадрыво время upработы (вместо использования mtuсамой опции). Вы также можете вызвать любое другое программное обеспечение, например, up sleep 5; mii-tool -F 100baseTx-FD $IFACEдля принудительного включения 100 Мбит/с Full duplex через 5 секунд после включения интерфейса.

hwaddress ether 00:00:00:00:00:00- Измените mac-адрес интерфейса вместо того, чтобы использовать тот, который жестко закодирован в rom или сгенерирован алгоритмами. Вы можете использовать ключевое слово, randomчтобы получить рандомизированный mac-адрес.

dns-nameservers– IP-адреса серверов имен. Требуется resolvconfпакет. Это способ сконцентрировать всю информацию /etc/network/interfacesвместо использования /etc/resolv.confдля конфигураций, связанных с DNS. Не редактируйте resolv.confфайл конфигурации вручную, так как он будет динамически изменен программами в системе.

dns-search example.net– Добавить example.net как домен к запросам хоста, создав полное доменное имя. domainВариант/etc/resolv.conf

wpa-ssid– Беспроводная сеть: установите беспроводной WPA SSID.

mtu-МТУразмер. mtu 9000= Jumbo Frame. Полезно, если ваш Linux-бокс подключен к коммутаторам, которые поддерживают большие размеры MTU. Может нарушить некоторые протоколы (у меня был плохой опыт с snmp и jumbo frames).

wpa-psk– Беспроводная сеть: установите шестнадцатеричный код PSK для вашего SSID.

ip_rp_filter 1-Фильтр обратного путивключено. Полезно в ситуациях, когда у вас есть 2 маршрута к хосту, и это заставит пакет вернуться оттуда, откуда он пришел (тот же интерфейс, используя его маршруты). Пример: вы подключены к вашей локальной сети (LAN 192.168.1.1/24) и у вас есть сервер dlna с одним интерфейсом на вашей локальной сети (LAN 192.168.1.10/24) и другим интерфейсом на dmz для выполнения административных задач (DMZ 172.16.1.1/24). Во время сеанса ssh с вашего компьютера на dlna dmz ip информация должна вернуться к вам, но будет зависать вечно, потому что ваш сервер dlna попытается доставить ответ напрямую через свой интерфейс локальной сети (LAN). При включенном rp_filter он гарантирует, что соединение вернется оттуда, откуда оно пришло. Дополнительная информацияздесь.

Некоторые из этих опций не являются опциональными. Например, Debian предупредит вас, если вы поместите IP-адрес на интерфейс без сетевой маски.

Вы можете найти больше хороших примеров конфигурации сетиздесь.

Похожие материалы:

Ссылки, содержащие информацию, связанную с /etc/network/interfacesфайлом конфигурации сети:

решение2

Я бы также добавил, что:

  • интерфейсы предназначены для служб ifup/ifdown.
  • При использовании allow-hotplug он не будет запускаться с ifup/ifdown, потому что вам нужно использовать флаг --allow=hotplug.

Вы можете отслеживать, что происходит с ifup, используя флаг --verbose.

Я не уверен в этом на 100%, но, похоже, что в принципе при вызове ifup выполнится все из /etc/network/interfaces с помощью up ... если не указано иное.

Я не уверен, как это связано с: сетевым обслуживанием...

Было бы неплохо, если бы кто-нибудь указал, что происходит после звонка:

service networking restart

по отношению к ifup/ifdown.

решение3

Если вам необходимо добавить параметры при использовании resolvconfпакета, например в Ubuntu, вы помещаете эту конфигурацию в /etc/resolvconf/resolv.conf.d/base:

# /etc/resolvconf/resolv.conf.d/base
options timeout:1 attempts:1 rotate

решение4

Важным моментом для имен атрибутов является:

Нет ни одного файла со стандартным описанием. Это означает, что этот файл определен реализацией

Это может быть строчная, заглавная или смешанная буква.

Не имеет значения «-» или «_».

Не может содержать пробелы и табуляции.

Насколько источники ifupdown говорят

За исключением некоторых общих названий, таких как «pre-up», «down» и т. д., которые не могут быть написаны по-другому.

Связанный контент