Я понял самую базовую концепцию того, как использовать /etc/network/interfaces
, но все, что я нашел в сети, это примеры, пример за примером, которые я могу скопировать и вставить. Мне не хватает объяснения синтаксиса, объяснения значения команд и порядка, в котором они требуются. Я хочу понять, потому что в большинстве случаев копировать и вставлять недостаточно, потому что я не работаю на новой машине, поэтому я не могу просто перезаписать существующие конфигурации, потому что это сломает много всего. man interfaces
не очень помогло, так как написано очень сложно.
Примеры вопросов, которые у меня есть: что именно означает inet
in a iface
line (я даже не смог найти это в man-странице), что именно означает manual
in a iface
line (многие примеры используют это, но согласно 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» и т. д., которые не могут быть написаны по-другому.