Handbook:X86/Installation/Networking

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Handbook:X86/Installation/Networking and the translation is 100% complete.

Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎日本語 • ‎한국어 • ‎polski • ‎português do Brasil • ‎русский • ‎Türkçe • ‎українська • ‎中文(中国大陆)‎
X86 Handbook
Установка
Об установке
Выбор подходящего источника для установки
Настройка сети
Подготовка дисков
Установка stage3
Установка базовой системы
Настройка ядра
Настройка системы
Установка системных утилит
Настройка загрузчика
Завершение
Работа с Gentoo
Введение в Portage
USE-флаги
Возможности Portage
Система init-скриптов
Переменные окружения
Работа с Portage
Файлы и каталоги
Переменные
Смешение ветвей программного обеспечения
Дополнительные утилиты
Дополнительные репозитории пакетов
Расширенные возможности
Настройка сети
Начальная настройка
Расширенная настройка
Модульное построение сети
Беспроводная сеть
Добавляем функциональность
Динамическое управление


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

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

Если система подключена к сети 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.

Команда 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.

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

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

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

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

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

root #export http_proxy="http://proxy.gentoo.org:8080"

Чтобы настроить FTP-прокси:

root #export ftp_proxy="ftp://proxy.gentoo.org:8080"

Чтобы настроить RSYNC-прокси:

root #export RSYNC_PROXY="proxy.gentoo.org:8080"

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

Код Добавление имени пользователя/пароля в переменную прокси
http://username:password@proxy.gentoo.org:8080

Тестирование сети

Попробуйте проверить 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-адреса ДНС-серверов и, если требуется, базовая настройка брандмауэра.

root #pppoe-setup
root #pppoe-start

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

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

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

Если необходима поддержка PPTP, используйте скрипт pptpclient с установочного CD. Но сначала убедитесь, что конфигурация правильная. Отредактируйте /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 ip>

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

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

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

При загрузке с установочного 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

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

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

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

При использовании беспроводных (802.11) карт, их настройка должны быть сделана прежде, чем идти дальше. Чтобы увидеть текущие настройки карты, можно использовать iw. Запуск 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 Handbook.

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

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

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

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

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

Код Пример IPv4 адреса
IP Адрес (numbers):   192.168.0.2
IP Адрес (bits):      11000000 10101000 00000000 00000010
                      -------- -------- -------- --------
                         192      168       0        2
Заметка
Приемником IPv4, IPv6, используется 128 бит (единиц и нулей). В этой секции фокус на адресации IPv4.

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

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

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

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

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

Код Широковещательный адрес
IP address:    192      168      0         2
            11000000 10101000 00000000 00000010
Broadcast:  11000000 10101000 00000000 11111111
               192      168      0        255
           +--------------------------+--------+
                     Network             Host

Чтобы иметь возможность путешествовать по Интернету, каждый компьютер в сети должен знать, через какой узел происходит подключение к интернету. Этот узел называется шлюзом. Так как это обычный узел, у него есть обычный 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

Настройка сети состоит из следующих шагов:

  1. Привязка IP-адреса, используя ifconfig
  2. Настройка маршрутизации, используя route
  3. Закончивается путем размещения IP-адресов серверов имен в /etc/resolv.conf

Чтобы назначить IP-адрес необходимо сам 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}

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