Gentoo linux настройка сети

Gentoo linux настройка сети

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

Примечание

Требуется, чтобы у вас использовался baselayout-1.11.11 или более свежий.

Для начала настройки своей сетевой платы, нужно рассказать о ней системе Gentoo RC. Это делается созданием символической ссылки с net.lo на net.eth0 в /etc/init.d .

Листинг 269. Создание символической ссылки с net.lo на net.eth0

Теперь система Gentoo RC знает об этом интерфейсе. Ей также нужно знать, как настраивать новый интерфейс. Конфигурация всех сетевых интерфейсов находится в /etc/conf.d/net . Вот простая настройка для использования DHCP или статического адреса.

Листинг 270. Примеры для /etc/conf.d/net

Примечание

Если конфигурация для интерфейса не указывается, предполагается использование DHCP.

Примечание

CIDR расшифровывается как Classless InterDomain Routing (бесклассовая междоменная маршрутизация). Первоначально, адреса IPv4 были разделены на классы A, B и C. Ранняя система классификации не была рассчитана на массовую популярность интернета, и попала под угрозу исчерпания новых уникальных адресов. CIDR — это схема адресации, позволяющая одному IP-адресу обозначать множество IP-адресов. IP-адрес CIDR выглядит как обычный IP-адрес с добавлением косой черты и числа; например, 192.168.0.0/16. CIDR описывается в RFC 1519.

Теперь, настроив интерфейс, мы можем запускать и останавливать его следующими командами:

Листинг 271. Сценарии запуска и остановки сети

Важно

При поиске неисправностей сети рекомендуется установить RC_VERBOSE=»yes» в /etc/conf.d/rc для получения более подробной информации о происходящем.

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

Листинг 272. Настройка запуска сетевого интерфейса при загрузке

4.2. Расширенная настройка

4.2.1. Расширенная настройка

Переменная config_eth0 служит основой конфигурации интерфейса. Она содержит список высокоуровневых инструкций по настройке интерфейса (в данном случае, eth0). Все команды списка выполняются последовательно. Интерфейс считается работоспособным, если хотя бы одна команда выполнена успешно.

Вот список встроенных инструкций:

Не выполнять никаких действий

Если интерфейс включен и существует адрес, успешно завершить настройку.

an IPv4 or IPv6 address

Добавить адрес к интерфейсу

dhcp, adsl or apipa(или команда запуска модуля стороннего изготовителя)

Запустить модуль, реализующий команду. Например, dhcp запускает модуль, реализующий команду. Например, dhcp запускает модуль, реализующий DHCP, которым может быть dhcpcd, udhcpc, dhclient или pump.

На случай неудачного выполнения команды можно указать запасную команду. Запасной вариант должен строго соответствовать структуре конфигурации.

Команды можно сцеплять. Вот несколько практических примеров.

Листинг 273. Примеры настройки

Примечание

При использовании модуля ifconfig для назначения нескольких адресов, для каждого дополнительного адреса создаются псевдонимы интерфейса. Так, в двух примерах, приведенных выше, создаются интерфейсы eth0, eth0:1 и eth0:2. С этими интерфейсами нельзя сделать ничего особенного, так как и ядро, и другие программы обрабатывают eth0:1 и eth0:2 просто как eth0.

Важно

Порядок настройки запасного режима имеет значение! Если бы мы не указали инструкцию null, то команда apipa запускалась бы только при неудачном выполнении команды noop.

Примечание

APIPA и DHCP обсуждаются позже.

4.2.2. Сетевые зависимости

Сценарии инициализации в /etc/init.d могут находиться в зависимости от определенного сетевого интерфейса или просто от службы сети (net). Определив переменную RC_NET_STRICT_CHECKING в /etc/conf.d/rc , службе net можно придать различный смысл.

Служба net считается всегда работающей

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

То же, что и no, но с учетом net.lo. Может быть полезно для тех, кого не волнует, чтобы определенный интерфейс включался при загрузке.

Читайте также:  Sharp 5620n драйвер windows 10

В этом случае ВСЕ сетевые интерфейсы ДОЛЖНЫ работать, чтобы служба net считалась работающей.

Но как насчет net.br0, зависимого от net.eth0 и net.eth1? net.eth1 может быть беспроводным или РРР-устройством, требующим предварительной настройки для возможности включения в мост. Это невозможно сделать в /etc/init.d/net.br0 , так как он является символьной ссылкой на net.lo.

Ответом является создание своей собственной функции depend() в /etc/conf.d/net .

Листинг 274. Зависимость net.br0 в /etc/conf.d/net

Более подробно зависимости обсуждаются в разделе Написание сценариев инициализации Настольной книги Gentoo.

4.2.3. Имена и значения переменных

Имена переменных являются динамическими. Обычно они следуют структуре variable_$ . Например, значение переменной dhcpcd_eth0 хранит параметры dhcpcd для eth0, а переменной dhcpcd_essid — параметры dhcpcd, используемые при подключении любого интерфейса к ESSID «essid».

Однако, не существует твердого простого правила, устанавливающего, что интерфейсы должны называться ethx. На деле, имена многих беспроводных выглядят как wlanx, rax и ethx. Кроме того, некоторые пользовательские интерфейсы, например, мосты, можно называть как угодно, например, foo. Для пущего разнообразия, в именах беспроводных точек доступа также допускаются знаки, не входящие в алфавитно-цифровые; это имеет значение, потому что есть возможность настройки сетевых параметров для отдельных ESSID.

Оборотная сторона всего этого в том, что для настройки сети в Gentoo используются переменные bash, а bash не в состоянии использовать что-либо кроме знаков английского алфавита и цифр. Чтобы обойти такое ограничение, мы заменяем каждый символ, не являющийся английским буквенно-цифровым, на знак подчеркивания: _.

Другая особенность bash — это значения переменных: некоторые символы требуют специальной записи, перед ними помещается знак \. Им необходимо предварять следующие символы: «, ‘ и \.

В следующем примере мы используем беспроводные ESSID, так как в них может содержаться самое широкое множество символов. Мы воспользуемся ESSID My «\ NET:

Листинг 275. Пример имени переменной

4.3. Модульное построение сети

4.3.1. Сетевые модули

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

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

Примечание

Все обсуждаемые значения хранятся в /etc/conf.d/net , если явно не указано иное.

Листинг 276. Предпочтение модуля

4.3.2. Обработчики интерфейса

Сейчас мы предоставляем два обработчика интерфейса: ifconfig и iproute2. Для настройки сети вам нужен только один из них.

ifconfig в текущем Gentoo используется по умолчанию, и включен в системный профиль.

iproute2 — более мощный и гибкий пакет, который не включен в системный профиль по умолчанию.

Листинг 277. Установка iproute2

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

Листинг 278. Примеры ifconfig и iproute2

Источник

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

Contents

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

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

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

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

Команда ifconfig

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

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

Команда ip

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

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

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

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

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

Читайте также:  Не загружаются драйвера nvidia windows 10

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

Настройка HTTP-прокси (для HTTP- и HTTPS-трафика):

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

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

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

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

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

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

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

  • Пользователям обычной сети Ethernet следует продолжить чтение с раздела По умолчанию: использование net-setup
  • Пользователям ADSL следует продолжить чтение с раздела Альтернатива: использование PPP
  • Пользователям PPTP следует продолжить чтение с раздела Альтернатива: использование PPTP

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Использование DHCP для автоматической настройки IP
  • Подготовка беспроводного доступа, если используется беспроводная сеть
  • Сетевая терминология объясняет основные понятия сети
  • Использование ifconfig и route объясняет, как настроить сеть вручную

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

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

Читайте также:  Откат windows без точки отката

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

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

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

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

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

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

  • Сперва удостоверьтесь, что интерфейс включён:
  • Чтобы подключиться к открытой сети с именем GentooNode:
  • Чтобы подключиться с шестнадцатеричным ключом WEP, добавьте к нему префикс d: :
  • Чтобы подключиться с ключом ASCII WEP:

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

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

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

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

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

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

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

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

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

Настройте маршрут, используя route . Подставьте вместо $ IP-адрес шлюза:

Теперь откройте /etc/resolv.conf :

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

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

Источник

Оцените статью