Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Программное обеспечение
Software
NetworkManager — это демон, который работает поверх libudev и других интерфейсов ядра Linux (а также нескольких других демонов) и предоставляет высокоуровневый интерфейс для настройки сетевых интерфейсов.
NetworkManager is a daemon that sits on top of libudev and other Linux kernel interfaces (and a couple of other daemons) and provides a high level interface for the configuration of the network interfaces.
Обоснование
NetworkManager — это программная утилита, предназначенная для упрощения работы с компьютерными сетями. NetworkManager доступен для операционных систем на базе ядра Linux и других Unix-подобных систем.
NetworkManager is a software utility that aims to simplify the use of computer networks. NetworkManager is available for Linux kernel based and other Unix like operating systems.
Как это работает
Для подключения компьютеров друг к другу были разработаны различные протоколы связи, например, IEEE 802.3 (Ethernet), IEEE 802.11 ("беспроводной"), IEEE 802.15.1 (Bluetooth), PPPoE, PPPoA и многие другие. Каждый участвующий компьютер должен иметь соответствующее оборудование, например, сетевую карту или беспроводную сетевую карту, и это оборудование должно быть соответствующим образом сконфигурировано для установления соединения. В случае монолитного ядра все драйверы устройств являются его частью. Доступ к аппаратному обеспечению (а также его настройка) осуществляется через драйвер устройства. В случае Linux, ядро представляет каждый драйвер устройства в виде файла устройства. Все файлы устройств находятся в каталоге /dev, и традиционно файлы устройств для оборудования Ethernet назывались eth0, eth1 и т. д. С момента появления systemd они стали называться иначе: enp4s0 и т. д. (Эта абстракция называется концепцией "всё есть файл"). Любая программа в пользовательском пространстве получает доступ к аппаратному обеспечению через файл устройства. Это относится и к утилите конфигурации для настройки оборудования, и к программам, таким как веб-браузер, SSH-клиент, NTP-клиент и т. д., для отправки и приема сетевых пакетов.
To connect computers with each other, various communications protocols have been developed, e. g. IEEE 802.3 (Ethernet), IEEE 802.11 ("wireless"), IEEE 802.15.1 (Bluetooth), PPPoE, PPPoA, and many many more. Each participating computer must have the suitable hardware, e. g. network card or wireless network card and this hardware must be configured accordingly to be able to establish a connection. In case of a monolithic kernel all the device drivers are part of it. The hardware is accessed (and also configured) through its device driver. In case of Linux, the kernel presents for each device driver a representation in form of a device file. All device files are found in the /dev directory, and traditionally the device files for Ethernet hardware have been named eth0, eth1, etc. Since systemd, they are named differently: enp4s0, etc. (This abstraction is called the everything is a file concept.) Anything in user space accesses the hardware through its device file. The configuration utility to configure the hardware, and programs like the web browser/SSH/NTP client/etc. to send and receive network packets.
Конфигурация сетевых интерфейсов без NetworkManager
На Linux и всех Unix-подобных операционных системах утилиты ifconfig и более новая ip (из пакета iproute2) используются для настройки оборудования IEEE 802.3 и IEEE 802.11. Эти утилиты настраивают ядро напрямую, и настройка применяется немедленно. После загрузки системы пользователю требуется настроить их снова. Для применения одной и той же статической конфигурации после каждой загрузки используются программы PID1: System V init выполняет скрипты оболочки и бинарные программы, systemd анализирует собственные файлы конфигурации (и выполняет программы). Конфигурация загрузки сетевых интерфейсов хранится в файле /etc/network/interfaces для дистрибутивов Debian Linux и их производных, или в файлах ifcfg в каталоге /etc/sysconfig/network-scripts/ для Fedora и их производных, а DNS-серверы – в файле /etc/resolv.conf. Файлы /etc/network/interfaces или /etc/sysconfig/network-scripts/ifcfg* могут определять статический IP-адрес или dhclient для использования, а также здесь можно настроить различные VPN-соединения. В случае необходимости изменения конфигурации протокол DHCP позволяет сделать это автоматически, зачастую даже без участия пользователя.
On Linux and all Unix like operating systems, the utilities ifconfig and the newer ip (from the iproute2 bundle) are used to configure IEEE 802.3 and IEEE 802.11 hardware. These utilities configure the kernel directly and the configuration is applied immediately. After boot up, the user is required to configure them again. To apply the same static configuration after each boot up, the PID1 programs are used: System V init executes shell scripts and binary programs, systemd parses its own conf files (and executes programs). The boot up configuration for network interfaces is stored in /etc/network/interfaces for Debian Linux distributions and its derivatives or ifcfg files in /etc/sysconfig/network scripts/ for Fedora and its derivatives, and DNS servers in /etc/resolv. conf. /etc/network/interfaces or /etc/sysconfig/network scripts/ifcfg * can define a static IP address or dhclient to be used, and all kinds of VPN can be configured here as well. In case the configuration has to be changed, DHCP protocol goes a long way to do so automatically, without the user even noticing.
Конфигурация сетевых интерфейсов с помощью NetworkManager
NetworkManager доступен через dbus. Конфигурация хранится в /etc/NetworkManager/NetworkManager.conf.
NetworkManager is accessible via dbus. Configuration is stored in /etc/NetworkManager/NetworkManager. conf
Однако, по мере перехода от физически крупных серверов к более портативным устройствам, которые пользователь может подключать и отключать (или перемещать между точками доступа Wi-Fi) по своему усмотрению, динамические конфигурации – то есть, не хранящиеся в статическом файле конфигурации, а получаемые из внешних источников и потенциально изменяющиеся после загрузки – стали более распространёнными. Bootp был одним из первых протоколов, использовавшихся для этого, и его потомок DHCP до сих пор широко применяется. Многие Unix-подобные системы включают программу dhclient для обработки динамической конфигурации. При относительно стабильной или простой динамической конфигурации, статическая конфигурация, модифицируемая dhclient, работает эффективно. Однако, с ростом сложности сетей и их топологий, централизованный менеджер для всей информации о сетевой конфигурации становится всё более необходимым.
But as we've transitioned from physically large servers to more portable hosts that may be plugged and unplugged (or moved from WiFi hotspot to WiFi hotspot) at the user's discretion, dynamic configurations (i. e., not stored in a static configuration file but taken from outside the host, and potentially changing after boot) have become a more prevalent configuration. Bootp was an early protocol used for this, and to this day its descendant DHCP is still very common. Many Unix like systems include a program called dhclient to handle this dynamic configuration. Given a relatively static or simple dynamic configuration, static configuration modified by dhclient works well. However, as networks and their topologies get more complex, a central manager for all the network configuration information becomes more essential.
Помощник по конфигурации мобильной широкополосной связи
Антти Кайянмяки объявил о разработке мастера настройки мобильной широкополосной связи для NetworkManager в апреле 2008 года; он стал доступен в NetworkManager версии 0.7.0. Вместе с пакетом информации о провайдерах мобильной широкополосной связи подключение настраивается легко.
Antti Kaijanmäki announced the development of a mobile broadband configuration assistant for NetworkManager in April 2008; it became available in NetworkManager version 0.7.0. Together with the package mobile broadband provider info the connection is easily configured.
История
Red Hat инициировала проект NetworkManager в 2004 году, чтобы упростить пользователям Linux работу с современными сетевыми задачами, особенно с беспроводными сетями. NetworkManager использует оппортунистический подход к выбору сети, стремясь использовать наилучшее доступное соединение при сбоях или при перемещении пользователя между беспроводными сетями. Он предпочитает Ethernet-соединения «известным» беспроводным сетям, которые, в свою очередь, предпочтительнее беспроводных сетей с SSID, к которым пользователь ранее не подключался. При необходимости пользователю предлагается ввести ключи WEP или WPA. Проект NetworkManager стал одним из первых крупных компонентов рабочего стола Linux, активно использующих D-Bus и HAL. Однако, начиная с июня 2009 года, NetworkManager больше не зависит от HAL, а с версии 0.9.10 (около 2014 года) ему также не требуется запущенный демон D-Bus для работы от имени пользователя root.
Red Hat initiated the NetworkManager project in 2004 with the goal of enabling Linux users to deal more easily with modern networking needs, particularly wireless networking. NetworkManager takes an opportunistic approach to network selection, attempting to use the best available connection as outages occur, or as the user roams between wireless networks. It prefers Ethernet connections over “known” wireless networks, which are preferred over wireless networks with SSIDs to which the user has never connected. The user is prompted for WEP or WPA keys as needed. The NetworkManager project was among the first major Linux desktop components to utilize D Bus and HAL extensively. Since June 2009, however, NetworkManager no longer depends on HAL, and since 0.9.10 (ca. 2014), neither does it require the D Bus daemon to be running for root operation.