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

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


Автоматическое определение параметров сети

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

Если система подключена к сети Ethernet, в которой есть DHCP-сервер, весьма вероятно, что конфигурация сетевых настроек уже была выполнена автоматически. Если это так, то различные сетевые команды с установочного носителя (например: ssh, scp, ping, irssi, wget, links и многие другие) сразу же будут работать.

Определение имен сетевых интерфейсов

Команда ifconfig

Если сеть была настроена, команда ifconfig должна отобразить один или несколько сетевых интерфейсов (кроме lo). В примере ниже показан eth0:

root #ifconfig
eth0      Link encap:Ethernet  HWaddr 00:50:BA:8F:61:7A
          inet addr:192.168.0.2  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::50:ba8f:617a/10 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1498792 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1284980 errors:0 dropped:0 overruns:0 carrier:0
          collisions:1984 txqueuelen:100
          RX bytes:485691215 (463.1 Mb)  TX bytes:123951388 (118.2 Mb)
          Interrupt:11 Base address:0xe800 

В результате перехода на предсказуемые имена для сетевых интерфейсов название интерфейса может отличаться от старого соглашения о именовании (eth0). В последних установочных носителях сетевые интерфейсы могут отображаться по-другому, например eno0, ens1 или enp5s0. Поищите интерфейс в выводе команды ifconfig IP-адрес которого связан с локальной сетью.

Совет
Если в выводе ifconfig нет интерфейсов, попробуйте использовать ту же команду с параметром -a. Это параметр выводит все обнаруженные системой сетевые интерфейсы, независимо от их состояния. Если ifconfig -a не даёт никаких результатов, значит либо аппаратное обеспечение неисправно, либо драйвер для сетевого интерфейса не был загружен в ядро. Обе ситуации не рассматриваются данным Руководством. Обратитесь в #gentoo (webchat) для поддержки.

Команда ip

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

root #ip addr
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    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 eno1
       valid_lft forever preferred_lft forever
    inet6 fe80::ea40:f2ff:feac:257a/64 scope link 
       valid_lft forever preferred_lft forever

В приведённом выше примере имя интерфейса следует непосредственно после номера: это eno1.

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

Дополнительно: настройка прокси

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

Certain text-mode web browsers such as links can also make use of environment variables that define web proxy settings; in particular for the HTTPS access it also will require the https_proxy environment variable to be defined. While Portage will be influenced without passing extra run time parameters during invocation, links will require proxy settings to be set.

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

Заметка
The # symbol in the following commands is a comment. It has een added for clarity only and does not need to be typed when entering the commands.

Определение HTTP-прокси (для HTTP- и HTTPS-трафика):

root #export http_proxy="http://proxy.gentoo.org:8080" # Применяется для portage и ссылок
root #export https_proxy="http://proxy.gentoo.org:8080" # Применяется только для ссылок

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

root #export http_proxy="http://username:password@proxy.gentoo.org:8080" # Применяется для portage и ссылок
root #export https_proxy="http://username:password@proxy.gentoo.org:8080" # Применяется только для ссылок

Start links using the following parameters for proxy support:

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

Настройка FTP-прокси:

root #export ftp_proxy="ftp://proxy.gentoo.org:8080" # Применяется для portage и ссылок

Start links using the following parameter for a FTP proxy:

user $links -ftp-proxy ${ftp_proxy}

Настройка RSYNC-прокси:

root #export RSYNC_PROXY="proxy.gentoo.org:8080" # Применяется для portage; ссылки не поддерживают прокси rsync

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

Попробуйте проверить DNS-сервер своего провайдера (его адрес можно найти в /etc/resolv.conf) и любой веб-сайт. Эта проверка покажет, что сеть функционирует в полном объёме, и сетевые пакеты достигают сети, разрешение имён работает правильно и так далее.

root #ping -c 3 www.gentoo.org

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

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

Если сеть не работает с первого раза, то в некоторых установочных носителях есть утилиты net-setup (для обычных и беспроводных сетей), pppoe-setup (для пользователей ADSL) или pptp (для пользователей PPTP).

Если же в установочном носителе нет этих утилит, продолжайте чтение с раздела Ручная конфигурация сети.

По умолчанию: использование net-setup

Простейшим способом настроить сеть (если она не была настроена автоматически) является запуск сценария net-setup:

root #net-setup eth0

net-setup задаст несколько вопросов о сетевом окружении. Когда всё будет готово, сетевое подключение должно заработать. Проверьте подключение, как это было показано выше. Если все проверки успешны, поздравляем! Пропустите оставшуюся часть раздела и продолжите с раздела Подготовка дисков.

Если сеть всё равно не работает, продолжайте чтение с раздела Ручная конфигурация сети.

Альтернатива: использование PPP

На случай, когда для подключения к Интернету требуется PPPoE, для упрощения настройки в установочный CD любой версии были добавлены программы, включая ppp. Для настройки подключения воспользуйтесь сценарием pppoe-setup. Во время настройки будут запрошены устройство Ethernet, к которому подключен ADSL-модем, имя и пароль, IP-адреса DNS-серверов и, если требуется, базовая настройка брандмауэра.

root #pppoe-setup
root #pppoe-start

Если что-то пошло не так, то повторно проверьте правильность имени и пароля в файлах /etc/ppp/pap-secrets или /etc/ppp/chap-secrets и убедитесь, что используется правильное устройство Ethernet. Если устройство Ethernet не существует, проверьте, загружены ли необходимые сетевые модули. В этом случае перейдите к разделу Ручная конфигурация сети, в котором описан процесс загрузки подходящих модулей.

Если всё работает, то продолжайте чтение с раздела Подготовка дисков.

Альтернатива: использование PPTP

Для обеспечения работы PPTP на установочном CD присутствует сценарий pptpclient. Но сначала убедитесь, что конфигурация правильная. Отредактируйте /etc/ppp/pap-secrets или /etc/ppp/chap-secrets так, что бы в них была правильная комбинация имени и пароля:

root #nano -w /etc/ppp/chap-secrets

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

root #nano -w /etc/ppp/options.pptp

Когда всё будет сделано, запустите pptp (вместе с параметрами, которые могут быть установлены в options.pptp) для подключения к серверу:

root #pptp <server ipv4 address>

Продолжайте чтение с раздела Подготовка дисков.

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

Загрузка сетевых модулей ядра

Когда установочный CD загружается, он пытается обнаружить все устройства и пытается загрузить подходящие модули ядра (драйверы) для их поддержки. В подавляющем большинстве случаев этого достаточно. Тем не менее, в некоторых случаях он может не загрузить нужные драйвера для сетевого оборудования.

Если net-setup или pppoe-setup завершились ошибкой, возможно, что сетевая карта не была найдена. Это означает, что может понадобиться загрузить соответствующие модули ядра вручную.

Чтобы узнать, какие есть модули ядра для сетей, используйте команду ls:

root #ls /lib/modules/`uname -r`/kernel/drivers/net

Если драйвер сетевого устройства присутствует, то для его загрузки используйте modprobe. Например, для загрузки модуля pcnet32:

root #modprobe pcnet32

Чтобы проверить, определилась ли сетевая карта, наберите ifconfig. Если сетевая карта определилась, то результат будет выглядеть так (опять же, eth0 это только пример):

root #ifconfig eth0
eth0      Link encap:Ethernet  HWaddr FE:FD:00:00:00:00  
          BROADCAST NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

Если показано сообщение об ошибке, то сетевая карта не определена:

root #ifconfig eth0
eth0: error fetching interface information: Device not found

Имена доступных сетевых интерфейсов в системе можно увидеть через файловую систему /sys:

root #ls /sys/class/net
dummy0  eth0  lo  sit0  tap0  wlan0

В примере выше найдено 6 интерфейсов. eth0, скорее всего, проводной Ethernet-адаптер, а wlan0 — беспроводной.

Исходя из того, что сетевая карта была обнаружена, повторите net-setup или pppoe-setup снова (скорее всего они будут работать), но, для тех, кто хочет сделать всё самостоятельно, мы опишем, как настроить сеть вручную.

Выберите один из следующих разделов, в зависимости от настроек сети:

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

DHCP (Dynamic Host Configuration Protocol) позволяет автоматически получать данные о сети (IP-адрес, маску подсети, широковещательный адрес, шлюз, сервера имен и прочее). Данный сценарий возможен только в том случае, если в сети присутствует DHCP-сервер (или если Интернет-провайдер предоставляет службу DHCP). Чтобы сетевой интерфейс получал эти сведения автоматически, используйте dhcpcd:

root #dhcpcd eth0

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

root #dhcpcd -HD eth0

Если это сработало (попробуйте опросить командой ping какой-нибудь сервер в Интернете, например, 8.8.8.8 компании Google или 1.1.1.1 Cloudflare), то всё установлено, и можно продолжать. Пропустите оставшуюся часть раздела и приступайте к Подготовке дисков.

Подготовка беспроводного доступа

Заметка
Поддержка команды iw может быть архитектурно-зависимой. Если команда недоступна, проверьте, доступен ли пакет net-wireless/iw для данной архитектуры. Команда iw будет не доступна, если пакет net-wireless/iw не был установлен.

Беспроводные карты (стандарта 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, как описано ранее.

Сетевая терминология

Заметка
Если IP-адрес, широковещательный адрес, сетевая маска и сервера имён известны, то пропустите этот раздел и продолжайте с Использование ifconfig и route.

Если вышеперечисленные попытки были неудачными, то придётся настроить сеть вручную. Это совсем нетрудно. Однако для этого понадобятся некоторые знания и основные понятия в области сетевой терминологии. Прочитав данный раздел, вы узнаете, что такое шлюз, зачем нужна маска подсети, как формируется широковещательный адрес и почему системе нужны серверы имён.

В сети узлы идентифицируются по их IP-адресам (Internet Protocol адрес). Такой адрес воспринимается как сочетание четырех чисел от 0 до 255 (по крайней мере, при при использовании IP версии 4). В действительности IPv4-адрес состоит из 32 бит (единиц и нулей). Давайте рассмотрим пример:

КОД Пример IPv4 адреса
IP-адрес (числа):     192.168.0.2
IP-адрес (биты):      11000000 10101000 00000000 00000010
                      -------- -------- -------- --------
                         192      168       0        2
Заметка
В IPv6, преемнике IPv4, используется 128 бит (единиц и нулей). Данный раздел посвящён исключительно адресам IPv4.

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

Разделение записывается с помощью маски подсети — набора единиц и следующих за ними нулей. Часть IP-адреса, которая может быть отображена на единицы, является сетевой частью, другая часть — узла. Обычно, маска подсети записываться в виде IP-адреса.

КОД Пример разделения сети/узла
IP-адрес:    192      168      0         2
           11000000 10101000 00000000 00000010
Маска:     11111111 11111111 11111111 00000000
             255      255     255        0
          +--------------------------+--------+
                      Сеть              Узел

Другими словами, 192.168.0.14 является частью сети, а 192.168.1.2 таковым не является.

Широковещательный адрес — это IP-адрес, у которого сетевая часть такая же, как у сети, а в часть узла записаны единицы. Каждый узел в сети прослушает этот IP-адрес. Он предназначен для широковещательной рассылки пакетов.

КОД Широковещательный адрес
IP-адрес:                    192      168      0         2
                          11000000 10101000 00000000 00000010
Широковещательный адрес:  11000000 10101000 00000000 11111111
                             192      168      0        255
                         +--------------------------+--------+
                                      Сеть             Узел

Чтобы иметь возможность выходить в глобальную сеть, каждый компьютер в сети должен знать, через какой узел происходит подключение к Интернету. Этот узел называется шлюзом. Так как это обычный узел, у него есть обычный IP-адрес (например, 192.168.0.1).

Ранее мы говорили, что каждый узел имеет свой собственный IP-адрес. Для того, чтобы связываться с узлом по имени (вместо IP-адреса) нам нужен сервис, который переводит имя (например, dev.gentoo.org) в IP-адрес (например, 64.5.62.82). Такой сервис называется службой имён. Чтобы использовать этот сервис, необходимо определить сервера имён в файле /etc/resolv.conf.

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

Соберём всю информацию, которая нам понадобится далее:

Сетевой параметр Пример
IP-адрес системы 192.168.0.2
Маска подсети 255.255.255.0
Широковещательный адрес 192.168.0.255
Шлюз 192.168.0.1
Сервер(ы) имён 195.130.130.5, 195.130.130.133

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

При использовании утилит из пакета sys-apps/net-tools, настройка сети обычно состоит из трёх шагов:

  1. Назначение IP-адреса с помощью команды ifconfig
  2. Настройка маршрутизации с помощью команды route
  3. Размещение IP-адресов серверов имён (DNS) в /etc/resolv.conf

Для назначения необходимы сам IP-адрес, широковещательный адрес и маска подсети. Выполните следующую команду, заменив ${IP_ADDR} на правильный IP-адрес, ${BROADCAST} — на широковещательный адрес и ${NETMASK} — на маску подсети:

root #ifconfig eth0 ${IP_ADDR} broadcast ${BROADCAST} netmask ${NETMASK} up

Для того, чтобы настроить маршрутизацию используя route, подставьте вместо ${GATEWAY} IP-адрес шлюза:

root #route add default gw ${GATEWAY}

Теперь откройте /etc/resolv.conf, используя текстовый редактор:

root #nano -w /etc/resolv.conf

Укажите сервера имён, используя следующий пример в качестве шаблона, и замените ${NAMESERVER1} и ${NAMESERVER2} на подходящие адреса. Вы можете добавить более одного сервера имён:

ФАЙЛ /etc/resolv.confШаблон по умолчанию /etc/resolv.conf
nameserver ${NAMESERVER1}
nameserver ${NAMESERVER2}

Вот и всё. Теперь проверьте сеть, выполнив команду ping для какого-нибудь сервера в Интернете (например Google 8.8.8.8 или Cloudflare 1.1.1.1). Если всё работает, то поздравляем с настройкой сети. Продолжайте чтение с раздела Подготовка дисков.