8.2. Настройка сети

Сеть настраивается автоматически во время первоначальной установки. Если установлен Network Manager (что обычно имеет место при полной установке рабочего стола), то может случиться так, что на самом деле не требуется никакой настройки (например, если вы полагаетесь на DHCP в проводном соединении и не предъявляете особых требований). Если требуется конфигурация (например, для интерфейса WiFi), то создаст соответствующий файл в /etc/NetworkManager/system-connections/.

Если Network Manager не установлен, программа установки настроит его, создав файл /etc/network/interfaces. Строка, начинающаяся с auto, дает список интерфейсов, которые будут автоматически настраиваться сетевой службой при загрузке. При наличии большого количества интерфейсов рекомендуется хранить конфигурацию в разных файлах внутри /etc/network/interfaces.d/, как описано во врезке НАЗАД К ОСНОВАМ Каталоги, оканчивающиеся на .d.

Содержание
  1. Интерфейс Ethernet
  2. Беспроводной интерфейс
  3. Записи, относящиеся к беспроводным сетям, в /etc/network/interfaces
  4. Соединение с PPP через модем PSTN
  5. Подключение через модем ADSL
  6. Модемы с поддержкой PPPOE
  7. Модемы с поддержкой PPTP
  8. Modems Supporting DHCP
  9. Automatic Network Configuration for Roaming Users
  10. Настройка интерфейса Ethernet
  11. Автоматическое конфигурирование интерфейса с использованием DHCP
  12. Ручное конфигурирование интерфейса
  13. Настройка скорости и дуплекса
  14. Переключение интерфейса в режим моста без IP адреса
  15. Задание серверов имён (DNS)
  16. Конфигурационный файл resolv. conf
  17. Программа resolvconf
  18. Конфигурирование DNS для network-manager
  19. DHCP Client Configuration
  20. Ручная настройка
  21. Предостережения при использовании моста и vlan
  22. Конфигурация сценария инициализации сети
  23. Как создать отказоустойчивое соединение с vlan (Etch)
  24. Склеивание с активной поддержкой
  25. Несколько IP-адресов на одном интерфейсе
  26. 3 ways to configure the network
  27. Starting and Stopping Interfaces
  28. Reinitialize new network setup
  29. Имена сетевых интерфейсов
  30. Обновление и имена сетевых интерфейсов
  31. Настройка интерфейса вручную
  32. Настройка скорости и дуплекса
  33. Вызов интерфейса без IP-адреса
  34. Определение DNS-серверов имен
  35. Разрешение. конфигурационный файл conf
  36. Программа resolvconf
  37. Конфигурация DNS для NetworkManager
  38. Использование systemd-resolved для разрешения DNS
  39. Включение разрешения systemd
  40. Проверка состояния и очистка кеша в systemd-resolved
  41. Управление параметрами разрешения systemd
  42. Установка дополнительных поисковых доменов
  43. Соединение без переключения
  44. Мосты и VLAN

Интерфейс Ethernet

Если компьютер оснащен картой Ethernet, связанная с ней IP-сеть должна быть настроена одним из двух способов. Самый простой метод — это динамическая настройка с использованием DHCP, и для этого требуется DHCP-сервер в локальной сети. Это может указывать желаемое имя хоста, соответствующее настройке имени хоста в приведенном ниже примере. Затем сервер DHCP отправляет параметры конфигурации для соответствующей сети.

авто enp0s31f6
iface enp0s31f6 инет dhcp
имя хоста арракис

«Статическая» конфигурация должна указывать сетевые настройки фиксированным образом. Это включает как минимум IP-адрес и маску подсети; также иногда указываются сетевые и широковещательные адреса. Маршрутизатор, подключающийся к внешней стороне, будет указан как шлюз.

авто enp0s31f6
iface enp0s31f6 инет статический
адрес 192.168.0.3/24
широковещательный 192.168.0.255
сеть 192.168.0.0
шлюз 192.168.0.1

Беспроводной интерфейс

Сначала вам нужно включить несвободный репозиторий в файле sources.list APT: подробности об этом файле см. в разделе 6.1, «Заполнение файла sources.list». Многие прошивки являются проприетарными и поэтому находятся в этом репозитории. Вы можете попытаться пропустить этот шаг, если хотите, но если на следующем шаге не будет найдена нужная прошивка, повторите попытку после включения несвободного раздела.

Затем необходимо установить соответствующие пакеты прошивки-*. Если вы не знаете, какой пакет вам нужен, вы можете установить пакет и запустить его команду isenkram-autoinstall-firmware. Пакеты часто называют в честь производителя оборудования или соответствующего модуля ядра: для беспроводных карт Intel, для Qualcomm Atheros, для Ralink и т. д. Затем рекомендуется перезагрузка, поскольку драйвер ядра обычно ищет файлы прошивки при первой загрузке и уже не потом.

Записи, относящиеся к беспроводным сетям, в /etc/network/interfaces

Пример 8.3. Настройка DHCP для беспроводного интерфейса

авто wlp4s0
iface wlp4s0 инет dhcp
wpa-ssid Фалькот
wpa-psk ccb290fd4fe6b22935cbae31449e050edd02ad44627b16ce0151668f5f53c01b

Соединение с PPP через модем PSTN

Соединение точка-точка (PPP) устанавливает прерывистое соединение; это наиболее распространенное решение для соединений, осуществляемых с помощью телефонного модема («модем PSTN», поскольку соединение осуществляется через коммутируемую телефонную сеть общего пользования).

Подключение через модем ADSL

Общий термин «модем ADSL» охватывает множество устройств с очень разными функциями. Модемы, которые проще всего использовать с Linux, имеют интерфейс Ethernet (а не только интерфейс USB). Они имеют тенденцию быть популярными; большинство интернет-провайдеров ADSL предоставляют (или арендуют) «коробку» с интерфейсами Ethernet. В зависимости от типа модема требуемая конфигурация может сильно различаться.

Модемы с поддержкой PPPOE

Некоторые модемы Ethernet работают с протоколом PPPOE (протокол точка-точка через Ethernet). Инструмент pppoeconf (из одноименного пакета) настроит соединение. Для этого он изменяет файл /etc/ppp/peers/dsl-provider с предоставленными настройками и записывает информацию для входа в файлы /etc/ppp/pap-secrets и /etc/ppp/chap-secrets. Рекомендуется принять все модификации, которые он предлагает.

После завершения этой настройки вы можете открыть ADSL-соединение с помощью команды pon dsl-provider и отключиться с помощью poff dsl-provider.

Модемы с поддержкой PPTP

Протокол PPTP (протокол двухточечного туннелирования) был создан Microsoft. Развернутый в начале ADSL, он был быстро заменен PPPOE. Если вам навязывают этот протокол, см. раздел 10.3.4, «PPTP».

Modems Supporting DHCP

When a modem is connected to the computer by an Ethernet cable (crossover cable) you typically configure a network connection by DHCP on the computer; the modem automatically acts as a gateway by default and takes care of routing (meaning that it manages the network traffic between the computer and the Internet).

Most “ADSL routers” on the market can be used like this, as do most of the ADSL modems provided by Internet services providers.

Automatic Network Configuration for Roaming Users

Many Falcot engineers have a laptop computer that, for professional purposes, they also use at home. The network configuration to use differs according to location. At home, it may be a wifi network (protected by a WPA key), while the workplace uses a wired network for greater security and more bandwidth.

Network Manager knows how to handle various types of connections (DHCP, manual configuration, local network), but only if the configuration is set with the program itself. This is why it will systematically ignore all network interfaces in /etc/network/interfaces and /etc/network/interfaces.d/ for which it is not suited. Since Network Manager doesn’t give details when no network connections are shown, the easy way is to delete from /etc/network/interfaces any configuration for all interfaces that must be managed by Network Manager.

Note that this program is installed by default when the “Desktop Environment” task is chosen during initial installation.

Translation(s): English — Français — Italiano — 简体中文

Reader Prerequisites: Для понимания этой статьи необходимо умение работать с консольными инструментами, тестовыми редакторами, понимание основ DNS, TCP/IP, DHCP, netmask, gateway.

Table of Contents

Настройка интерфейса Ethernet

Основную настройку сети можно выполнить, редактируя конфигурационный файл interfaces, который располагается в /etc/network/interfaces. Здесь Вы можете задать IP адресс сетевой карты (или использовать DHCP), настроить маршрутизацию, IP masquerading, установить маршрут по умолчанию и многое другое.

Для того что бы интерфейс автоматически инициализировался при загрузке, не забудьте добавить строчку ‘auto’.

Полный список опций можно найти в man interfaces.

Автоматическое конфигурирование интерфейса с использованием DHCP

Если Вы хотите использовать DHCP вам необходимо написать следующие:

auto eth0
allow-hotplug eth0
iface eth0 inet dhcp

Ручное конфигурирование интерфейса

Если Вы хотите сконфигурировать вручную, например задать шлюз по умолчанию (так же опционально можно задать: сеть, широковещательный адрес или шлюз):

auto eth0
iface eth0 inet static
address 192.168.0.7
netmask 255.255.255.0
gateway 192.168.0.254

Если вы хотите добавить IPv6 адрес, то напишете следующие:

iface eth0 inet6 static
address 2001:db8::c0ca:1eaf
netmask 64
gateway 2001:db8::1ead:ed:beef

Настройка скорости и дуплекса

Частые ошибки автоматического согласования режимов работы, свидетельствуют о проблемах с кабелем. Следует проверить физическое состояние кабельного оборудования (отсутствие повреждений итп), прежде чем предполагать несовместимость алгоритмов автосогласования. Если Вы выключите автосогласование и установите скорость и дуплекс вручную, то интерфейс на другом конце кабеля будет считать что автосогласование не поддерживается и установит скорость 10Mbs и полудуплексный режим передачи. Для того чтобы не было ошибок в работе, при ручной настройки Вам необходимо убедиться что оба интерфейса работают на одинаковых скоростях и установлен одинаковый режим дуплекса.

Если Вы хотите вручную установить скорость и режим дуплекса интерфейса. Здесь описаны основные шаги:

В каждом случае, перепроверьте применились ли настройки которые Вы изменили, затем попробуйте отправить какие-нибудь данные из системы, чтобы убедиться что NIC работает правильно.

Переключение интерфейса в режим моста без IP адреса

Чтобы создать сетевой интерфейс без IP адреса используйте ручной метод и команды pre-up и post-down

Читайте также:  Установка локалей на centos 8

iface eth0 inet manual
pre-up ifconfig $IFACE up
post-down ifconfig $IFACE down

Задание серверов имён (DNS)

Перед тем как компьютер сможет подключится внешнему сетевому ресурсу (например веб-серверу), он должен преобразовать буквенное-цифровое имя (такое как wiki.debian.org) в числовой адрес сети (например 140.211.166.4). ( В Интернет идентификации компьютера в сети используется структурированный числовой IP адрес.)

Библиотека C и другие библиотеки за списком серверов имён обращаются к файлу /etc/resolv.conf. В простейшем случае Вы можете отредактировать этот файл, записав в него список серверов имён. Но, следует отметить, что различные программы динамической конфигурации будут рады переписать ваши настройки:

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

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

Конфигурационный файл resolv. conf

Конфигурационный файл resolv.conf располагается в /etc/resolv.conf, и содержит информацию которая позволяет компьютеру подсоединяться к сети преобразовывать имя в адрес. ( Прим. Не путайте этот конфигурационный файл с программой resolvconf , которая по неудачному стечению обстоятельств имеет такое же название.)

Файл resolv.conf обычно содержит IP адреса серверов имён (DNS) которые будут пытаться перевести имена в адрес для любого узла доступного в сети. Там будут строчки содержащие, примерно, следующие:

nameserver 12.34.56.78
nameserver 12.34.56.79

В этом примере, система исопользует сервера имён с IP адресами 12.34.56.78 и 12.34.56.79. Просто отредактируйте этот файл и введите IP адреса нужных Вам серверов, после слова nameserver. Можно добавить ещё строчки, если у Вас больше 2 серверов имён.

Не используйте этот метод если у Вас установлена программа resolvconf

Конфигурационный файл resolv.conf имеет множество других опций для определения режимов преобразования имён. См. man resolv.conf.

Программа resolvconf

Программа resolvconf следит за информацией о доступных на данных момент серверов имён. Не следует путать её с одноимённым конфигурационным файлом resolv.conf. Программа resolvconf является опциональной для систем Debian.

Конфигурационный файл resolv.conf содержит информацию о серверах имён, которые используются в системы. Однако, когда множеству программ необходимо динамически изменять файл resolv.conf они начинают мешать друг другу и файл становиться не синхронизируемым (out-of-sync). Программа resolvconf решает эту проблему. Она является посредником между программами которые поставляют информацию о серверах имён (например dhcp клиент) и программами которые используют эту информацию (например резолвер).

Если resolvconf правильно установлена, конфигурационный файл resolv.conf заменяется символьной ссылкой на файл /etc/resolvconf/run/resolv.conf и резолвер использует файл, который динамически генерируется программой resolvconf.

Программа resolvconf, в общем случае, необходима когда в системе присутствуют программы которым необходимо часто изменять информацию о серверах имён. В простых системах где нет таких программ, достаточно просто файла resolv.conf.

Если программа resolvconf установлена, то Вам не следует вручную редактировать файл resolv.conf , так как он будет динамически меняться программами в системе. Если Вам необходимо вручную задать сервера имён (например при статически сконфигурированном интерфейсе), добавьте в конфигурационный файл interfaces следующую строчку:

dns-nameservers 12.34.56.78 12.34.56.79

Разместите эту строчку в описании интерфейса iface, сразу после указания шлюза gateway. I P адрес сервера имёны необхожимо ввести после слова dns-nameservers. Если IP адресов несколько то они разделяются пробелом. Не забудьте написать «s» в конце слова dns-nameservers.

Конфигурирование DNS для network-manager

Предупреждение: Этот раздел не был протестирован с актуальной версией network-manager. Пожалуйста протестируйте и удалите это сообщение. Примечание: В этом разделе описаны примеры применяемые в системах подобных Red Hat, а не Debian.

Если Вы используете NetworkManager, настройки располагаются в файле /etc/sysconfig/network-scripts/ifcfg-*. Например так:

Через графический интерфейс это можно сделать так:

DHCP Client Configuration

Example: dhclient3 uses /etc/dhcp/dhclient.conf. The setting you want is

supersede domain-name-servers 12.34.56.78, 12.34.56.79

prepend domain-name-servers 12.34.56.78, 12.34.56.79

See the dhclient.conf

manual page for details.

Ручная настройка

модзонд 8021q

apt-получить установку vlan

vconfig add eth0 222 # 222 это номер vlan
ifconfig eth0.222 выше
ifconfig eth0.222 mtu 1496 #необязательно, если ваша сетевая карта не поддерживает MTU 1504B
ifconfig eth0.222 10.10.10.1 сетевая маска 255.255.255.0

Предостережения при использовании моста и vlan

#/etc/network/interfaces
авто eth0 bri0
iface eth0 инет статический
адрес 192.168.1.1
сетевая маска 255.255.255.0
сеть 192.168.1.0
широковещательный 192.168.1.255
iface eth0.110 инет руководство
vlan-сырье-устройство eth0
iface bri0 инет статический
адрес 192.168.110.1
сеть 192.168.110.0
сетевая маска 255.255.255.0
широковещательный 192.168.110.255
мост_порты eth0.110
bridge_stp включен
bridge_maxwait 10

Если вы используете мостовую настройку VLAN, которая, вероятно, полезна для работы в сети в средах виртуализации, позаботьтесь о том, чтобы подключить мостовое устройство или устройства VLAN только к базовому физическому устройству, как показано выше. Присоединение физического интерфейса (eth0) к мосту (например, bri1) при использовании одного и того же физического интерфейса в явно разных VLAN приведет к тому, что все пакеты останутся помеченными. (Ядро новее 2.6.37 и старше 3.2).

Конфигурация сценария инициализации сети

В /etc/modules добавить строку:

В /etc/network/interfaces в раздел iface добавить параметр:

Имя интерфейса должно быть необработанным именем интерфейса (таким же, как указано в vlan-raw-device), затем точкой, затем идентификатором VLAN, например, eth0.100. Вместо этого это может быть «vlan», а затем идентификатор VLAN, например, vlan100. В любом случае идентификатор VLAN находится в конце, и это единственное место, где он настраивается. Например:

авто eth0.222
iface eth0.222 инет статический
адрес 10.10.10.1
сетевая маска 255.255.255.0
сеть 10.10.10.0
трансляция 10.10.10.255
vlan-raw-устройство eth0

Как создать отказоустойчивое соединение с vlan (Etch)

aptitude install vlan ifenslave-2.6

Пример конфигурации интерфейса коммутатора Cisco

интерфейс GigabitEthernet1/2
описание eth1
порт переключения
инкапсуляция магистрали коммутатора dot1q
магистраль коммутатора разрешена vlan 10,20,30
магистраль режима switchport
нет IP-адреса
нет включения cdp
ствол остова дерева

Склеивание с активной поддержкой

Создайте файл /etc/modprobe.d/bonding.conf, содержащий:

псевдоним bond0 соединение
варианты связывания режим = активное резервное копирование miimon = 100 downdelay = 200 updelay = 200 первичный = eth1

# Петлевой сетевой интерфейс
авто вот
iFace Lo Inet Loopback
# Основной сетевой интерфейс
авто бонд0
iface bond0 инет руководство
вверх ifconfig bond0 0.0.0.0 вверх
рабы eth1 eth0
авто vlan10
iface vlan10 инет статический
адрес 10.10.10.12
сетевая маска 255.255.0.0
сеть 10.10.0.0
трансляция 10.10.255.255
vlan-сырье-устройство Bond0
шлюз 10.10.0.1
DNS-поиск hup.hu
DNS-серверы имен 10.10.0.2
авто vlan20
iface vlan20 инет статический
адрес 10.20.10.12
сетевая маска 255.255.0.0
сеть 10.20.0.0
трансляция 10.20.255.255
vlan-сырье-устройство Bond0
авто vlan30
iface vlan30 инет статический
адрес 10.30.10.12
сетевая маска 255.255.0.0
сеть 10.30.0.0
трансляция 10.30.255.255
vlan-raw-device bond0

Несколько IP-адресов на одном интерфейсе

Псевдоним интерфейса позволяет одному интерфейсу иметь несколько IP-адресов. Это полезно, когда более чем один сервер должен быть виден через Интернет. Обратите внимание, что виртуальные хосты могут поддерживать несколько серверов Apache с одним IP-адресом. Apache отвечает на доменное имя, предоставленное клиентом в заголовке HTTP. Во многих других ситуациях для каждого сервера, использующего порт, требуется один внешний IP-адрес.

Этот текст /etc/network/interfaces назначает три IP-адреса для eth0.

авто eth0
разрешить горячее подключение eth0
iface eth0 инет статический
адрес 192.168.1.42
сетевая маска 255.255.255.0
шлюз 192.168.1.1

авто эт0:0
разрешить горячее подключение eth0:0
iface eth0:0 инет статический
адрес 192.168.1.43
сетевая маска 255.255.255.0

авто эт0:1
разрешить горячее подключение eth0:1
iface eth0:1 инет статический
адрес 192.168.1.44
сетевая маска 255.255.255.0

Псевдоним интерфейса не должен иметь «шлюз» или «dns-серверы имен»; допустимо динамическое назначение IP.

Приведенная выше конфигурация является предыдущим традиционным методом, который отражает традиционное использование ifconfig для настройки сетевых устройств. ifconfig представил концепцию псевдонимов или виртуальных интерфейсов. Эти типы виртуальных интерфейсов имеют имена вида interface:integer, и ifconfig обрабатывает их очень похоже на реальные интерфейсы.

В настоящее время ifupdown использует утилиту ip из пакета iproute2 вместо ifconfig. Более новая утилита ip не использует ту же концепцию псевдонимов или виртуальных интерфейсов. Однако он поддерживает присвоение интерфейсам произвольных имен (они называются метками). ifupdown использует эту функцию для поддержки псевдонимов интерфейсов при использовании ip.

auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.1.42
netmask 255.255.255.0
gateway 192.168.1.1

iface eth0 inet static
address 192.168.1.43
netmask 255.255.255.0

iface eth0 inet static
address 192.168.1.44
netmask 255.255.255.0

Additional information can be found on the http://www.shorewall.net/Shorewall_and_Aliased_Interfaces.html page.

В дистрибутиве Debian Linux 9 очень странно работает сеть. Такое впечатление, что в него воткнули несколько несовместимых между собой программ конфигурации сети, и предложили пользователю самим разбираться как всю эту дичь настраивать.

Что нужно сделать, если перестала настраиваться сеть

Первым делом надо сказать, что если сеть не удается настроить, или если сеть в какой-то момент начинает вести себя странно, а проверенные команды не дают желаемого результата, то значит пришло время, как мнимум, отказаться от Network Manager и от wicd. Почему это необходимо сделать? Вот пример.

Работает демон wicd. Система рапортует, что интерфейс enp5s0 поднят (находится в состоянии UP):

Читайте также:  How to use WordPress with cPanel - GoDaddy Blog

# ip addr

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 scope host lo

valid_lft forever preferred_lft forever

inet6 ::1/128 scope host

link/ether 1c:6f:65:96:54:bc brd ff:ff:ff:ff:ff:ff

inet 192.168.0.95/24 scope global enp5s0

Если потушить интерфейс:

# ip link set dev enp5s0 down

Если же отключить wicd, то вышеприведенные команды начнут работать правильно. Отключить работу wicd можно такими командами:

# systemctl stop wicd — остановка сервиса wicd

# systemctl disable wicd — отключение автостарта wicd при запуске

В стандартной поставке, обычно, wicd идет по-умолчанию, и обычно он начинает тупить когда в сети, к которой подключен компьютер, отрубается сервер шлюза. После восстановления работы шлюза, сеть на Debian 9 не восстановится, и если не предпринять никаких ухищрений, поднять ее будет невозможно: спасет только перезагрузка.

Далее в тексте предполагается, что Network Manager и wicd отключены.

Проблемы совместимости утилит настройки сети

Для конфигурирования сети ранее использовались такие системные утилиты как , , , . Но с некоторых пор появилась утилита , которая может заменить все вышеперечисленные программы. И к сожалению, в Debian 9 эти утилиты не очень то дружат друг с другом и сетевой подсистемой ядра Linux. В чем это выражается? Например в том, что утилиты и не могут управлять поднятием и отключением сетевых интерфейсов.

Вот, к примеру, есть компьютер с одной сетевой картой. Интерфейс на ней не поднят:

# ifconfig -a

inet 192.168.0.95  netmask 255.255.255.0  broadcast 0.0.0.0

ether 1c:6f:65:96:54:bc  txqueuelen 1000  (Ethernet)

RX packets 246102  bytes 226683039 (216.1 MiB)

RX errors 0  dropped 528  overruns 0  frame 0

TX packets 126214  bytes 15161252 (14.4 MiB)

TX errors 0  dropped 0 overruns 0  carrier 9  collisions 0

inet 127.0.0.1  netmask 255.0.0.0

loop  txqueuelen 1  (Local Loopback)

RX packets 3320  bytes 1187321 (1.1 MiB)

RX errors 0  dropped 0  overruns 0  frame 0

TX packets 3320  bytes 1187321 (1.1 MiB)

TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

И поднять его не получится:

# ifup enp5s0

RTNETLINK answers: File exists

ifup: failed to bring up enp5s0

И, кстати, если интерфейс поднят, потушить его тоже невозможно:

# ifdown enp5s0

ifdown: interface enp5s0 not configured

А если попробовать сделать то же самое, но через утилиту ? Тогда все будет работать:

Проверка состояния интерфейса (видно, что интерфейс поднят):

# ip link show enp5s0

И снова проверка состяния (видно, что интерфейс потушен):

Проблемы в сетевом модуле systemd

Чтобы принять новые настройки сети, обычно необходимо перезапустить сетевой демон . В Debian 9 это можно сделать двумя путями: по-старинке через утилиту , и в новом стиле через утилиту :

# service networking restart

# systemctl restart networking

Утилита будет, на самом деле, вызывать методы управления сервисами , как это делает утилита . Так что команды равноправны. Но все-таки лучше использовать более новый .

Однако, если сеть предприятия «мигнула», и на машине с Debian 9 сеть отвалилась, то поднять ее через действие модуля не получится. Совершенно неясно, как поднимается сетевой интерфейс и конфигурируется сеть во время загрузки Debian Linux 9, но ручная попытка перезапустить сетевой сервис будет оканчиваться ошибкой:

Job for networking.service failed because the control process exited with error code.

See «systemctl status networking.service» and «journalctl -xe» for details.

# systemctl status networking

● networking.service — Raise network interfaces

Loaded: loaded (; enabled; vendor preset: enabled)

Active: failed (Result: exit-code) since Thu 2020-12-17 12:02:01 MSK; 9s ago

Process: 19390 ExecStart=/sbin/ifup -a —read-environment (code=exited, status=1/FAILURE)

Main PID: 19390 (code=exited, status=1/FAILURE)

И здесь видно, что для поднятия интерфейса, внутри модуля используется утилита , которая, как было выяснено ранее, в некоторых условиях не работает. И если заглянуть в файл с кодом модуля , то можно увидеть следующие команды:

ExecStop=/sbin/ifdown -a —read-environment —exclude=lo

Тут и проблемный , и . А если копнуть еще глубже, то и недокументированная опция . Об этой опции известно немного, но предполагается, что это «хак», который делают майнтейнеры Debian, чтобы сделать поддержку сети. По сути, с этой опцией, утилиты берут свои настройки из переменных окружения . Подробнее можно прочитать тут:

В общем, по-хорошему, нужно заменить опции с командами / на опции с командой . Команда старта должна поднимать все сетевые интерфейсы в системе. Команда остановки должна отключать все интерфейсы в системе, за исключением loopback.

Однако, как выяснилось на практике, команды / делают несколько больше, чем просто поднятие/отключение сетевого интерфейса. Они выполняют какую-то работу по конфигурированию интерфейса и делают настройку таблицы маршрутизации. В то же время, команды серии делают только поднятие/отключение интерфейса.

Следует учитывать, что формат опций настройки модуля systemd не допускает исполнение более одного бинарника. Поэтому, если необходимо для одного действия выполнить несколько команд, нужно либо вызывать шелл с опцией , после которой прописать несколько команд, либо разложить команды на разные этапы выполнения действия (Pre и Post).

ExecStart=/bin/ip link set group default up

ExecStop=/bin/ip link set group default down

ExecStopPost=/bin/ip link set dev lo up

# ip route

172.17.3.0/24 via 192.168.0.249 dev enp5s0

192.168.0.0/24 dev enp5s0 proto kernel scope link src 192.168.0.95

192.168.1.0/24 dev enp5s0 proto kernel scope link src 192.168.1.95

192.168.161.0/24 dev enp5s0 proto kernel scope link src 192.168.161.95

192.168.164.0/24 dev enp5s0 proto kernel scope link src 192.168.164.95

inet 192.168.1.95/24 brd 192.168.1.255 scope global enp5s0

inet 192.168.161.95/24 scope global enp5s0

inet 192.168.164.95/24 scope global enp5s0

inet6 fe80::1e6f:65ff:fe96:54bc/64 scope link

# ip link set dev enp5s0 up

Translation(s): English — Español — Français — Italiano — Português (Brasil) — 简体中文

3 ways to configure the network

The majority of network setup can be done via the interfaces configuration file at /etc/network/interfaces. Here, you can give your network card an IP address (or use dhcp), set up routing information, configure IP masquerading, set default routes and much more.

Remember to add interfaces that you want brought up at boot time to the ‘auto’ line.

Starting and Stopping Interfaces

Interfaces configured with /etc/network/interfaces can be brought up and down with the ifup and ifdown commands.

Some outdated guides instruct to restart the networking service to apply changes to /etc/network/interfaces, however this was deprecated because it is possible that not all interfaces will be restarted. Instead use ifup and ifdown to apply changes to each interface, for example with an interface named enp7s0:

# ifdown enp7s0
# ifup enp7s0

Reinitialize new network setup

If you make more fundamental network changes e.g. adding new virtual interfaces (e.g. bridge) в /etc/network/interfaces вы можете повторно инициализировать конфигурацию сети, перезапустив сетевой демон:

# сеть статуса systemctl
# systemctl перезапустить сеть

Имена сетевых интерфейсов

См. Имена сетевых интерфейсов. Начиная с Stretch новые системы по умолчанию больше не используют имена интерфейсов в старом стиле, такие как eth0, eth1, wlan0, wlan1. В новой системе используются имена, основанные на расположении оборудования, например eno0, enp0s31f6, wlp1s7 (или, в случае USB-ключей, MAC-адрес: enx2c56ac39ec0d).

Вы можете перечислить интерфейсы с помощью: ls /sys/class/net

В различных приведенных ниже примерах по-прежнему используется «eth0» в качестве имени интерфейса по умолчанию, даже несмотря на то, что оно вряд ли существует в современной системе.

Обновление и имена сетевых интерфейсов

Если вы просто используете DHCP, вам нужно что-то вроде:

iface eth0 inet6 dhcp

Кроме того, IPv6 может быть настроен автоматически с использованием автоконфигурации адресов без сохранения состояния или SLAAC, который указывается с помощью auto вместо dhcp в строфе inet6:

iface eth0 inet6 авто

См. также IPv6PrefixDelegation.

Настройка интерфейса вручную

Если вы настраиваете его вручную, то что-то вроде этого установит шлюз по умолчанию (сеть, широковещательная рассылка и шлюз не являются обязательными):

авто eth0
iface eth0 инет статический
адрес 192.0.2.7/24
шлюз 192.0.2.254

Если вы также хотите добавить адрес IPv6, добавьте что-то вроде:

iface eth0 inet6 статический
адрес 2001:db8::c0ca:1eaf/64
шлюз 2001:db8::1ead:ed:beef

Обязательно отключите все службы DHCP, т.е. dhcpcd.

Также возможно смешивание ручной и автоматической конфигурации, например. использовать IPv6 SLAAC для подключения к Интернету и статических адресов в сети:

# вручную уникальный локальный адрес
iface eth0 inet6 статический
адрес fdc3:cafe::3/64
# используем SLAAC для получения глобального IPv6-адреса от маршрутизатора
# мы не можем включить переадресацию ipv6, иначе SLAAC будет отключен
автоконф 1
accept_ra 2

Настройка скорости и дуплекса

Многократные сбои автосогласования часто являются признаком неисправного кабеля, поэтому прежде чем предположить, что алгоритмы автосогласования интерфейсов несовместимы, изучите физические факторы. Если отключить автосогласование и установить скорость и дуплекс вручную, партнерский интерфейс на другом конце кабеля будет считать, что отсутствие автосогласования указывает на скорость 10 Мбит/с и половинный дуплекс. Для безошибочной работы, если вы устанавливаете скорость и дуплекс вручную, вы должны убедиться, что точно такие же скорость и дуплекс настроены на партнерском интерфейсе.

Читайте также:  Простой и надежный перевод журнала ошибок: разблокируйте бесперебойную связь

Если вы устанавливаете скорость и дуплекс вашего интерфейса вручную, то может потребоваться метод проб и ошибок. Вот основные шаги:

Вызов интерфейса без IP-адреса

Чтобы создать сетевой интерфейс вообще без IP-адреса, используйте ручной метод и используйте команды pre-up и post-down для включения и выключения интерфейса.

iface eth0 инет руководство
pre-up ifconfig $IFACE вверх
пост-даун ifconfig $IFACE вниз

Если интерфейс является интерфейсом VLAN, команды up/down должны выполняться до/после перехвата vlan. (Вы также должны установить пакет vlan.)

iface eth0.99 инет руководство
пост-ап ifconfig $IFACE up
pre-down ifconfig $IFACE down

Примечание. Если вы создаете интерфейс VLAN только для того, чтобы поместить его в мост, нет необходимости определять интерфейс VLAN вручную. Просто настройте мост, и интерфейс VLAN будет создан автоматически при создании моста (см. ниже).

Определение DNS-серверов имен

Прежде чем компьютер сможет подключиться к внешнему сетевому ресурсу (например, к веб-серверу), он должен иметь средства преобразования любых буквенно-цифровых имен (например, wiki.debian.org) в числовые сетевые адреса ( например 140.211.166.4). (Интернет использует эти структурированные числовые IP-адреса в качестве сетевых адресов.)

Библиотека C и другие библиотеки распознавателей ищут в /etc/resolv.conf список серверов имен. В простейшем случае это файл, который необходимо отредактировать, чтобы установить список серверов имен. Но обратите внимание, что различные другие программы для динамической настройки будут рады перезаписать ваши настройки:

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

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

Разрешение. конфигурационный файл conf

Файл конфигурации resolv.conf в /etc/resolv.conf содержит информацию, которая позволяет компьютеру, подключенному к сети, преобразовывать имена в адреса. (Примечание: не путайте этот файл конфигурации с программой resolvconf, у которой, к сожалению, почти такое же имя.)

Файл resolv.conf обычно содержит IP-адреса серверов имен (преобразователи имен DNS), которые будут пытаться преобразовать имена в адреса для любого узла, доступного в сети. Там будет строка или строки, которые выглядят следующим образом:

сервер имен 12.34.56.78
сервер имен 12.34.56.79

В этом примере система использует серверы имен с IP-адресами 12.34.56.78 и 12.34.56.79. Просто отредактируйте файл и введите IP-адреса серверов имен, которые необходимо использовать после каждого сервера имен. Добавьте больше строк серверов имен, если у вас больше серверов имен. Не используйте этот метод, если у вас установлена ​​программа resolvconf.

В файле конфигурации resolv.conf есть много других опций для определения того, как резолвер ищет имена. Подробнее см. в man resolv.conf.

Программа resolvconf

Программа resolvconf отслеживает системную информацию о доступных в данный момент DNS-серверах. Его не следует путать с конфигурационным файлом resolv.conf, который, к сожалению, имеет почти такое же имя. Программа resolvconf является необязательной в системе Debian.

Файл конфигурации resolv.conf содержит информацию о серверах имен, которые будут использоваться системой. Однако, когда нескольким программам необходимо динамически изменить файл конфигурации resolv.conf, они могут наступить друг на друга, и файл может рассинхронизироваться. Программа resolvconf решает эту проблему. Он действует как посредник между программами, которые предоставляют информацию о сервере имен (например, клиенты DHCP), и программами, которые используют информацию о сервере имен (например, распознаватель).

Если resolvconf правильно установлен, файл конфигурации resolv.conf в /etc/resolv.conf заменяется символической ссылкой на /etc/resolvconf/run/resolv.conf, а преобразователь вместо этого использует файл конфигурации, который динамически генерируется resolvconf в /etc/resolvconf/run/resolv.conf.

Программа resolvconf обычно необходима только тогда, когда в системе есть несколько программ, которым необходимо динамически изменять информацию о сервере имен. В простой системе, где серверы имен меняются нечасто или меняются только одной программой, подойдет файл конфигурации resolv.conf.

Поместите строку с отступом внутри строфы iface, например, сразу после строки gateway. Введите IP-адреса серверов имен, которые необходимо использовать после dns-nameservers. Поместите их все в одну строку, разделенную пробелами. Не забудьте «s» в конце dns-nameservers.

Конфигурация DNS для NetworkManager

NetworkManager переопределит настройки dhcp, перезаписав resolv.conf, даже если вы настроили DNS в /etc/dhcp/dhclient.conf, например заставляя DNS сначала искать локальный домен, который может истечь по времени, прежде чем разрешение DNS продолжится, что приведет к длительному времени разрешения DNS. Вы можете получить представление о том, какими, по мнению NetworkManager, должны быть настройки, выполнив команду nm-tool в командной строке.

NetworkManager сохраняет эти настройки в /etc/NetworkManager/system-connections/name-of-connection. Пример /etc/NetworkManager/system-connections/Проводное подключение 1 :

Повторный запуск nm-tool должен показать, что NetworkManager теперь имеет правильное представление о том, как следует разрешать ваш DNS.

Использование systemd-resolved для разрешения DNS

systemd-resolved не установлен по умолчанию, но вы можете использовать его, он запускает локальный кеширующий преобразователь DNS, который может интегрироваться с ?NetowrkManager и Systemd-network

apt install systemd-resolved

Включение разрешения systemd

По умолчанию он не включен, поэтому вам нужно переключиться, чтобы использовать его.

systemctl включить systemd-resolved
ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

Обратите внимание, что разрешенный файл поддерживает /etc/hosts, поэтому его следует указывать перед записью файлов.

Проверка состояния и очистка кеша в systemd-resolved

Вы можете проверить статус, используя man resolvectl

Управление параметрами разрешения systemd

Пример: dhclient3 использует /etc/dhcp/dhclient.conf. Нужная настройка:

заменяет серверы доменных имен 12.34.56.78, 12.34.56.79;

добавляются серверы доменных имен 12.34.56.78, 12.34.56.79;

Установка дополнительных поисковых доменов

Добавление поисковых доменов для VPN или локальных виртуальных сетей:

добавить доменное имя «virt vpn»;

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

Мост помещает несколько интерфейсов в один и тот же сегмент сети. Это очень популярно при подключении сервера к нескольким коммутаторам для обеспечения высокой доступности или виртуализации. В последнем случае обычно используется для создания моста на хосте (например, dom0) и помещения виртуальных интерфейсов гостей (domU) в мост.

Пример: подключите сервер к 2 коммутаторам (через eth0 и eth1), определив мост 0 и назначив серверу IP-адрес в этой подсети:

авто бр0
iface br0 инет статический
адрес 10.10.0.15/24
шлюз 10.10.0.1
мост_порты eth0 eth1
вверх /usr/sbin/brctl stp br0 on

Если сервер подключен к нескольким коммутаторам, вам обычно необходимо запустить протокол связующего дерева, чтобы избежать петель. Поэтому STP должен быть включен с помощью команды «вверх», как показано выше.

Пример: настройка моста без настройки IP-адреса (используйте «ручной» вместо «статический») для «перенаправления» интерфейса на гостевую виртуальную машину. (Конфигурация статического моста содержит только 1 физический интерфейс. Виртуальный интерфейс будет добавлен к мосту при запуске ВМ.)

авто br1
iface br1 инет руководство
мост_порты eth4
up /usr/sbin/brctl настройка br1 0
up /usr/sbin/brctl stp br1 off

Примечание. Мост Linux поддерживает только STP, но не RSTP (Rapid Spanning Tree). Поэтому он поддерживает только старые затраты STP, а не новые затраты RSTP (см. Spanning_Tree_Protocol). Обычно это нормально для коммутаторов Cisco, но, например. Коммутаторы Juniper используют затраты RSTP, поэтому это может привести к различным вычислениям связующего дерева и проблемам с петлями. Это можно исправить, настроив стоимость вручную либо на коммутаторе, либо на сервере. Установка стоимости на коммутаторе предпочтительнее, так как Linux переключается обратно на стоимость по умолчанию всякий раз, когда интерфейс отключается/включается.

Соединение без переключения

По умолчанию мост Linux действует как коммутатор. Это означает, что он запоминает MAC-адреса за портом коммутатора и, если MAC-адрес получателя известен, пересылает пакеты данных или только на соответствующий порт — в противном случае пакеты будут транслироваться.

В некоторых сетапах это плохо. Например, если мост соединяет 2 магистральных интерфейса и одинаковые MAC-адреса могут быть видны с обоих интерфейсов, в зависимости от VLAN. Поскольку мост Linux не поддерживает VLAN (выделенные таблицы MAC-адресов для каждой VLAN), в таких настройках необходимо отключить изучение MAC-адресов и перевести мост в режим реального «моста» с помощью:

up /sbin/brctl настройки br0 0
up /sbin/brctl stp br0 off

модзонд 8021q

способ установить vlan

vconfig add eth0 222 # 222 это номер vlan
ifconfig eth0.222 выше
ifconfig eth0.222 mtu 1496 #необязательно, если ваша сетевая карта не поддерживает MTU 1504B
ifconfig eth0.222 10.10.10.1 сетевая маска 255.255.255.0

Примечание: Если вы назовете свои интерфейсы VLAN ethX. YYY, тогда нет необходимости указывать vlan-raw-device, так как сырое устройство можно получить по имени интерфейса.

авто eth0.222
iface eth0.222 инет статический
адрес 10.10.10.1/24
vlan-raw-устройство eth0

Мосты и VLAN

Если вы создаете интерфейсы VLAN только для того, чтобы поместить их в мост, нет необходимости определять интерфейсы VLAN вручную. Просто настройте мост, и интерфейс VLAN будет создан автоматически при создании моста, например:

авто br1
iface br1 инет руководство
мост_порты eth0.99 eth1.99
up /usr/sbin/brctl stp br1 on

Оцените статью
Хостинги