Handbook:Alpha/Installation/Networking

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Handbook:Alpha/Installation/Networking and the translation is 100% complete.
Alpha Handbook
Установка
Об установке
Выбор подходящего источника для установки
Настройка сети
Подготовка дисков
Установка файла stage
Установка базовой системы
Настройка ядра
Настройка системы
Установка системных утилит
Настройка загрузчика
Завершение
Работа с Gentoo
Введение в Portage
USE-флаги
Возможности Portage
Система сценариев инициализации
Переменные окружения
Работа с Portage
Файлы и каталоги
Переменные
Смешение ветвей программного обеспечения
Дополнительные утилиты
Дополнительные репозитории пакетов
Расширенные возможности
Настройка сети OpenRC
Начальная настройка
Расширенная настройка
Модульное построение сети
Беспроводная сеть
Добавляем функциональность
Динамическое управление


Автоматическая конфигурация сети

Может быть, всё уже работает?

Если система подключена к сети Ethernet, в которой есть IPv6-маршрутизатор или DHCP-сервер, весьма вероятно, что системная конфигурация сети была выполнена автоматически. Если расширенная настройка не требуется, можно сразу перейти к проверке подключения к Интернету.

Использование DHCP

DHCP (Dynamic Host Configuration Protocol) облегчает настройку сети и позволяет автоматически настраивать различные параметры, включая: IP-адрес, маску сети, маршруты, DNS-сервера, NTP-сервера и так далее.

DHCP требует, чтобы сервер работал в том же Layer 2 (Ethernet) сегменте, что и клиент, запрашивающий аренду. DHCP часто используется в RFC1918 (частных) сетях, а также в сетях провайдеров, чтобы запросить публичный IP-адрес.

Совет
Официальный загрузочный носитель Gentoo запускает dhcpcd автоматически, при запуске системы. Этот автозапуск можно пропустить, добавив nodhcp в параметры загрузки.

Если он ещё не запущен, dhcpcd можно запустить для устройства enp1s0 с помощью команды:

root #dhcpcd enp1s0

Некоторые сетевые администраторы требуют, чтобы имя узла и домена, назначенное сервером DHCP, использовались самой системой. В этом случае используйте:

root #dhcpcd -HD enp1s0

Чтобы остановить dhcpcd, можно использовать опцию '-x:

root #dhcpcd -x
sending signal Term to pid 10831
waiting for pid 10831 to exit

Проверка сети

Правильная настройка маршрута default (по умолчанию) критически важна для подключения к Интернету. Конфигурацию маршрута можно проверить с помощью:

root #ip route
default via 192.168.0.1 dev enp1s0

Если default маршрута не существует, Интернет-подключение не будет работать и понадобится дополнительная конфигурация.

Простой тест соединения с Интернетом можно провести утилитой ping:

root #ping -c 3 1.1.1.1
Совет
Лучше всего начать с проверки известного IP-адреса, а не доменного имени. Это поможет отделить проблемы с DNS от проблем с базовым подключением к Интернету.

Исходящий доступ по HTTPS и разрешение доменных имён в DNS можно проверить с помощью:

root #curl --location gentoo.org --output /dev/null

Если тесты curl (и другие тесты) завершились успешно, можно продолжить установку с подготовки дисков.

Если curl сообщил об ошибке, но ping других серверов в Интернете работает, возможно, стоит настроить DNS.

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

Получение информации о сетевых интерфейсах

Если сеть не работает «из коробки», необходимо выполнить дополнительные шаги, чтобы обеспечить подключение к Интернету. Как правило, первым шагом перечисляются сетевые интерфейсы хоста.

Для чтения и изменения системных настроек сети можно использовать команду ip из пакета sys-apps/iproute2.

Чтобы получить список сетевых интерфейсов и их связи, используйте подкоманду link:

root #ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
4: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether e8:40:f2:ac:25:7a brd ff:ff:ff:ff:ff:ff

Чтобы получить информацию об адресе устройства, используйте подкоманду address:

root #ip address
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000<pre>
    link/ether e8:40:f2:ac:25:7a brd ff:ff:ff:ff:ff:ff
    inet 10.0.20.77/22 brd 10.0.23.255 scope global enp1s0
       valid_lft forever preferred_lft forever
    inet6 fe80::ea40:f2ff:feac:257a/64 scope link 
       valid_lft forever preferred_lft forever

Эта команда выводит информацию для каждого сетевого интерфейса в системе. Первым идёт порядковый номер устройства, затем его название enp1s0.

Совет
Если в выводе ifconfig нет никаких интерфейсов, кроме lo (loopack), это означает, что сетевое оборудование неисправно либо драйвер для сетевого интерфейса не был загружен в ядро. Обе ситуации не рассматриваются в данном Руководстве. В этом случае, пожалуйста, попросите о помощи в сообществе #gentoo (webchat).

Для единообразия и упрощения, в Руководстве главный сетевой интерфейс называется enp1s0 в качестве примера.

Заметка
В результате перехода на предсказуемые имена для сетевых интерфейсов название интерфейса может отличаться от старого соглашения о именовании (eth0). Современные загрузочные носители Gentoo используют префиксы при именовании сетевых интерфейсов, например: eno0, ens1 или enp5s0.

Опционально: Конфигурация для конкретного приложения

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

Настройка веб-прокси

Если доступ в Интернет осуществляется через веб-прокси, то необходимо задать информацию о прокси, чтобы Portage мог правильно обращаться через него для каждого поддерживаемого протокола. Portage учитывает переменные окружения http_proxy, ftp_proxy и RSYNC_PROXY во время получения пакетов через механизмы скачки wget и rsync.

Некоторые текстовые веб-браузеры, такие как links, тоже могут использовать переменные окружения, определяющие настройки веб-прокси. В частности, для доступа по протоколу HTTPS для них потребуется определить переменную окружения https_proxy. В Portage переменные окружения подхватываются автоматически, без дополнительных аргументов к команде, но для links потребуется добавить некоторые флаги.

В большинстве случаев достаточно задать переменные окружения, используя имя хоста сервера. В следующем примере предполагается, что прокси-сервер находится на хосту proxy.gentoo.org и доступен на порту 8080.

Заметка
Символы # в следующих командах обозначают комментарии. Они используются только для ясности, и их необязательно писать во время запуска команд.

Чтобы задать HTTP-прокси (для HTTP- и HTTPS-трафика):

root #export http_proxy="http://proxy.gentoo.org:8080" # Для Portage и Links
root #export https_proxy="http://proxy.gentoo.org:8080" # Только для Links

Если для HTTP-прокси требуется аутентификация, установить имя пользователя и пароль с помощью следующей команды:

root #export http_proxy="http://username:password@proxy.gentoo.org:8080" # Для Portage и Links
root #export https_proxy="http://username:password@proxy.gentoo.org:8080" # Только для Links

Запустите links с следующими флагами, чтобы включить поддержку прокси:

user $links -http-proxy ${http_proxy} -https-proxy ${https_proxy}

Чтобы задать FTP-прокси для Portage и/или links:

root #export ftp_proxy="ftp://proxy.gentoo.org:8080" # Для Portage и Links

Запустите links с флагами для поддержки FTP-прокси:

user $links -ftp-proxy ${ftp_proxy}

Чтобы задать RSYNC-прокси для Portage:

root #export RSYNC_PROXY="proxy.gentoo.org:8080" # Только для Portage; браузер Links не поддерживает rsync-прокси

Использование pppoe-setup для ADSL

Если для доступа в Интернет требуется использовать PPPoE, то в состав загрузочного носителя Gentoo входит скрипт pppoe-setup, упрощающий настройку ppp.

Во время настройки, pppoe-setup попросит предоставить:

  • Название Ethernet интерфейса, подключенного к ADSL-модему.
  • Имя пользователя и пароль PPPoE.
  • IP-адреса DNS-сервера.
  • Нужно ли использовать брандмауэр/файрвол/межсетевой экран.
root #pppoe-setup
root #pppoe-start

В случае ошибки следует проверить учётные данные в /etc/ppp/pap-secrets или /etc/ppp/chap-secrets. Если они верны, следует проверить, правильно ли выбран Ethernet интерфейс для PPPoE.

Использование PPTP

Если нужна поддержка PPTP, можно использовать утилиту pptpclient, но для неё требуется конфигурирование перед запуском.

Отредактируйте /etc/ppp/pap-secrets or /etc/ppp/chap-secrets так, чтобы файл содержал правильный логин и пароль:

root #nano /etc/ppp/chap-secrets

При необходимости подправьте /etc/ppp/options.pptp:

root #nano /etc/ppp/options.pptp

После завершения настройки, запустите pptp (вместе с опциями, которые не удалось установить в options.pptp) для подключения к серверу:

root #pptp <server ipv4 address>

Конфигурация WEP

Предупреждение
По возможности избегайте WEP: этот стандарт в плане безопасности почти ничем не лучше открытой сети.
Важно
Команда iw доступна только на следующих архитектурах: amd64, x86, arm, arm64, ppc, ppc64 и riscv.

Беспроводные карты (стандарта 802.11) перед использованием необходимо предварительно настроить. Для отображения текущих настроек можно воспользоваться командой iw, вывод которой может быть таким:

root #iw dev wlp9s0 info
Interface wlp9s0
	ifindex 3
	wdev 0x1
	addr 00:00:00:00:00:00
	type managed
	wiphy 0
	channel 11 (2462 MHz), width: 20 MHz (no HT), center1: 2462 MHz
	txpower 30.00 dBm

Чтобы проверить текущее подключение:

root #iw dev wlp9s0 link
Not connected.

или

root #iw dev wlp9s0 link
Connected to 00:00:00:00:00:00 (on wlp9s0)
	SSID: GentooNode
	freq: 2462
	RX: 3279 bytes (25 packets)
	TX: 1049 bytes (7 packets)
	signal: -23 dBm
	tx bitrate: 1.0 MBit/s
Заметка
Некоторые беспроводные карты могут иметь имена wlan0 или ra0 вместо wlp9s0. Запустите ip link, чтобы определить правильное имя устройства.

В большинстве случаев, для подключения необходимо только два параметра: ESSID (название беспроводной сети) и ключ WEP (необязательно).

  • Сперва удостоверьтесь, что интерфейс включён:
root #ip link set dev wlp9s0 up
  • Чтобы подключиться к открытой сети с именем GentooNode:
root #iw dev wlp9s0 connect -w GentooNode
  • Чтобы подключиться с шестнадцатеричным ключом WEP, добавьте к нему префикс d::
root #iw dev wlp9s0 connect -w GentooNode key 0:d:1234123412341234abcd
  • Чтобы подключиться с ключом ASCII WEP:
root #iw dev wlp9s0 connect -w GentooNode key 0:some-password
Заметка
Если в беспроводной сети применяются протоколы WPA или WPA2, то необходимо использовать wpa_supplicant. Больше информации по настройке беспроводной сети в Gentoo Linux можно прочитать в разделе Беспроводная сеть Руководства Gentoo.

Для подтверждения беспроводных настроек используйте iw dev wlp9s0 link. Как только беспроводная сеть заработает, продолжите настройку сетевых параметров, как описано в следующем разделе (Сетевая терминология) или с помощью инструмента net-setup, как описано ранее.

Использование net-setup

В случае, если автоматическая настройка сети не удалась, загрузочный носитель Gentoo предоставляет скрипты для помощи в настройке сети. Скрипт net-setup можно использовать для настройки информации о беспроводной сети и статических IP-адресов.

root #net-setup enp1s0

net-setup задаст несколько вопросов о сетевом окружении и с помощью этой информации сконфигурирует wpa_supplicant или статическую адресацию.

Важно
Рекомендуется проверить статус сети после выполнения любых действий по настройке. Если скрипт не работает, придётся настроить сеть вручную.

Интернет и основы IP-адресации

Если все способы выше провалились, необходимо настроить сеть вручную. Это относительно несложно, но нужно делать всё осторожно. Этот раздел призван разъяснить терминологию и ознакомить пользователя с базовыми сетевыми концепциями, они встретятся во время ручной настройке подключения к Интернету.

Совет
Ряд абонентского оборудования (CPE, Carrier Provided Equipment или Customer Premises Equipment) совмещает функции «маршрутизатора», «точки доступа», «модема», «DHCP-сервера» и «DNS-сервера» в одном устройстве. Важно понимать, что функции устройства не зависят от его внешнего вида.

Интерфейсы и адреса

Сетевые интерфейсы — это логические представления сетевых устройств. Интерфейсу нужен адрес для связи с другими устройствами в сети. Интерфейс обязан иметь хотя бы один адрес, однако он может иметь и несколько адресов одновременно. Это особенно полезно для параллельного использования IPv4 и IPv6.

Для единообразия и упрощения, в качестве примера главный сетевой интерфейс называется enp1s0, и он использует адрес 192.168.0.2.

Важно
IP-адреса могут быть заданы произвольно. Из-за этого, разные устройства могут получить одинаковый IP-адрес, что приведёт к конфликту адресов (англ. address conflict). Конфликты адресов следует избегать. используя (к примеру) DHCP или SLAAC.
Совет
IPv6 обычно использует автоматический механизм StateLess Address AutoConfiguration (SLAAC) для настройки адреса. В большинстве случаев не рекомендуется выставлять IPv6-адрес вручную. Если нужно задать конкретный суффикс адреса, можно использовать идентификационные токены интерфейса.

Сети и CIDR

Откуда устройство знает, как общаться с другими устройствами после получения адреса?

IP-адреса связаны с понятием сети. IP-сеть — это последовательный логический диапазон адресов.

Classless Inter-Domain Routing or CIDR notation is used to distinguish network sizes.

  • The CIDR value, often notated starting with a /, represents the size of the network.
    • The formula 2 ^ (32 - CIDR) can be used to calculate network size.
    • Once network size is calculated, usable node count must be reduced by 2.
      • The first IP in a network is the Network address, and the last is typically the Broadcast address. These addresses are special and cannot be used by normal hosts.
Совет
The most common CIDR values are /24, and /32, representing 254 nodes and a single node respectively.

A CIDR of /24 is the de-facto default network size. This corresponds to a subnet mask of 255.255.255.0, where the last 8 bits are reserved for IP addresses for nodes on a network.

The notation: 192.168.0.2/24 can be interpreted as:

  • The address 192.168.0.2
  • On the network 192.168.0.0
  • With a size of 254 (2 ^ (32 - 24) - 2)
    • Usable IPs are in the range 192.168.0.1 - 192.168.0.254
  • With a broadcast address of 192.168.0.255
    • In most cases, the last address on a network is used as the broadcast address, but this can be changed.

Using this configuration, a device should be able to communicate with any host on the same network (192.168.0.0).

Интернет

Once a device is on a network, how does it know how to talk to devices on the Internet?

To communicate with devices outside of local networks, routing must be used. A router is simply a network device that forwards traffic for other devices. The term default route or gateway typically refers to whatever device on the current network is used for external network access.

Совет
It's a standard practice to make the gateway the first or last IP on a network.

If an Internet-connected router is available at 192.168.0.1, it can be used as the default route, granting Internet access.

To summarize:

  • Interfaces must be configured with an address and network information, such as the CIDR value.
  • Local network access is used to access a router on the same network.
  • The default route is configured, so traffic destined for external networks is forwarded to the gateway, providing Internet access.

Система доменных имен (DNS)

Remembering IPs is hard. The Domain Name System was created to allow mapping between Domain Names and IP addresses.

Linux systems use /etc/resolv.conf to define nameservers to be used for DNS resolution.

Совет
Many routers can also function as a DNS server, and using a local DNS server can augment privacy and speed up queries through caching.

Many ISPs run a DNS server that is generally advertised to the gateway over DHCP. Using a local DNS server tends to improve query latency, but most public DNS servers will return the same results, so server usage is largely based on preference.

Ручная конфигурация сети

Interface address configuration

Важно
When manually configuring IP addresses, the local network topology must be considered. IP addresses can be set arbitrarily; conflicts may cause network disruption.

To configure enp1s0 with the address 192.168.0.2 and CIDR /24:

root #ip address add 192.168.0.2/24 dev enp1s0
Совет
The start of this command can be shortened to ip a.

Настройка маршрута по умолчанию

Configuring address and network information for an interface will configure link routes, allowing communication with that network segment:

root #ip route
192.168.0.0/24 dev enp1s0 proto kernel scope link src 192.168.0.2
Совет
This command can be shortened to ip r.

The default route can be set to 192.168.0.1 with:

root #ip route add default via 192.168.0.1

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

Nameserver info is typically acquired using DHCP, but can be set manually by adding nameserver entries to /etc/resolv.conf.

Предупреждение
If dhcpcd is running, changes to /etc/resolv.conf will not persist. Status can be checked with ps x | grep dhcpcd.

nano is included in Gentoo boot media and can be used to edit /etc/resolv.conf with:

root #nano /etc/resolv.conf

Lines containing the keyword nameserver followed by a DNS server IP address are queried in order of definition:

ФАЙЛ /etc/resolv.confUse Quad9 DNS.
nameserver 9.9.9.9
nameserver 149.112.112.112
ФАЙЛ /etc/resolv.confUse Cloudflare DNS.
nameserver 1.1.1.1
nameserver 1.0.0.1

DNS status can be checked by pinging a domain name:

root #ping -c 3 gentoo.org

Once connectivity has been verified, continue with Preparing the disks.