- Сетевые настройки
- Содержание
- Сетевые настройки
- Интерфейсы Ethernet
- Определение Ethernet интерфейсов
- Логические имена интерфейсов Ethernet
- Настройки интерфейса Ethernet
- Адресация IP
- Временное назначение IP адреса
- Динамическое присвоение IP адреса (клиент DHCP)
- Статическое присвоение IP адреса
- Интерфейс Loopback (обратной петли)
- Разрешение имен
- Настройка клиента DNS
- Статические имена хостов
- Настройка переключения сервиса имен
- Строительство мостов 🙂
- Ссылки
- Настройка сети в Linux, диагностика и мониторинг
- Содержание
- Настройка TCP/IP в Linux для работы в сети Ethernet
- Параметры сети
- Файлы настроек сети в Linux (конфигурационные файлы)
- Настройка сети
- Диагностика сети Linux
- traceroute
Сетевые настройки
Содержание
Сетевые настройки
Ubuntu поставляется с набором графических утилит для настройки ваших сетевых устройств. Этот документ предназначен для серверных администраторов и сфокусирован на управлении вашей сетью через командную строку.
Интерфейсы Ethernet
Интерфейсы Ethernet идентифицируются системой с использованием имен ethX, где X является числовым значением. Первый интерфейс обычно обозначается как eth0, второй как eth1, и все последующие с увеличивающимися номерами по порядку.
Определение Ethernet интерфейсов
Для быстрого определения всех доступных сетевых интерфейсов вы можете использовать команду ifconfig как показано ниже.
Другое приложение, которое может помочь идентифицировать все доступные вашей системе сетевые интерфейсы, это команда lshw. В примере ниже lshw показывает один Ethernet интерфейс с логическим именем eth0 вместе с информацией по шине, деталями драйвера и всеми поддерживаемыми возможностями.
Логические имена интерфейсов Ethernet
Логические имена интерфейсов настраиваются в файле /etc/udev/rules.d/70-persistent-net.rules. Если вы захотите определить какой интерфейс получит определенное логическое имя, найдите строку по совпадению физического MAC адреса интерфейса и измените значение NAME=ethX на желаемое логическое имя. Перегрузите систему для применения изменений.
Настройки интерфейса Ethernet
ethtool — это программа, которая показывает и изменяет настройки сетевых карт, такие как автоопределение, скорость порта, режим дуплекса и функция Wake-on-LAN (пробуждение системы через сеть). Эта программа не устанавливается по умолчанию, но доступна к установке из репозиториев.
Ниже приведен пример как посмотреть возможности карты и настроить параметры интерфейса Ethernet.
Изменения, сделанные с использованием команды ethtool, временные и будут утеряны после перезагрузки. Если вы хотите сохранить настройки, просто добавьте требуемую команду ethtool в строку pre-up в файле /etc/network/interfaces.
Ниже приведен пример как интерфейс, определенный как eth0, может быть постоянно настроен на скорость порта 1000Мб/с в режиме полного дуплекса.
Адресация IP
Следующая секция описывает процесс настройки IP адреса вашей системы и шлюза по умолчанию, необходимые для подключения к локальной сети и интернету.
Временное назначение IP адреса
Для временной настройки сети вы можете использовать стандартные команды, такие как ip, ifconfig и route, которые присутствуют также и в других системах на базе GNU/Linux. Эти команды позволят изменить настройки, которые будут применены мгновенно, но они не будут постоянными и будут утеряны после перезагрузки.
Для временной настройки IP адреса вы можете использовать команду ifconfig следующим образом. Только замените IP адрес и маску подсети на соответствующие требованиям вашей сети.
Для проверки настройки IP адреса eth0 вы можете использовать команду ifconfig таким образом:
Для настройки шлюза по умолчанию вы можете использовать команду route следующим образом. Измените адрес шлюза по умолчанию на требуемый для вашей сети.
Для проверки настройки шлюза по умолчанию используйте команду route таким образом:
Если вам больше не требуется эта конфигурация и вы хотите отменить все IP настройки интерфейса, вы можете использовать команду ip с опцией flush как показано ниже:
Динамическое присвоение IP адреса (клиент DHCP)
Добавив настройку интерфейса как показано выше, вы можете вручную включить интерфейс командой ifup, которая активизирует процесс DHCP через dhclient.
Для отключения интерфейса вручную вы можете воспользоваться командой ifdown, которая запустит процесс освобождения DHCP и остановки интерфейса.
Статическое присвоение IP адреса
Для настройки вашей системы под использование статического присвоения IP адреса добавьте метод static в секцию inet для соответствующего интерфейса в файле /etc/network/interfaces. Пример ниже предполагает, что вы настраиваете ваш первый интерфейс Ethernet, обозначенный как eth0. Измените значения адреса, маски сети и шлюза для соответствия требованиям вашей сети.
Добавив настройку интерфейса как показано выше, вы можете вручную включить интерфейс командой ifup.
Для отключения интерфейса вручную вы можете воспользоваться командой ifdown.
Интерфейс Loopback (обратной петли)
Интерфейс loopback определяется системой как lo и по умолчанию задает адрес 127.0.0.1. Он может быть выведен командой ifconfig.
По умолчанию может присутствовать две строки в /etc/network/interfaces отвечающих за автоматическую настройку интерфейса loopback. Рекомендуется оставить эти настройки без изменений пока не возникнет специфической причины для их изменения. Пример этих двух строк приведен ниже.
Разрешение имен
Под разрешением имени по отношению к IP сетям подразумевается процесс определения IP адреса по имени хоста, упрощающий идентификацию ресурса в сети. Данная секция раскрывает как правильно настроить вашу систему для разрешения имен с помощью DNS и статических записей имен хостов.
Настройка клиента DNS
Если у вас несколько доменов, в которых вы собираетесь искать, ваша конфигурация может выглядеть так:
Если вы попытаетесь проверить хост с именем server1, ваша система автоматически запросит DNS по их полным доменным именам (FQDN) в следующем порядке:
server1.example.com
server1.sales.example.com
server1.dev.example.com
Статические имена хостов
Далее приведен пример файла hosts, где ряд локальных серверов определены обычными именами хостов, алиасами и их эквивалентами полных имен (FQDN).
Настройка переключения сервиса имен
Последовательность, в которой ваша система выбирает метод разрешения имен по IP адресам управляется настроечным файлом переключателя сервиса имен (NSS) /etc/nsswitch.conf. Как отмечено в предыдущей секции, обычно статические имена хостов, определенные в системном файле /etc/hosts, имеют приоритет перед разрешением имен через DNS . Далее пример строки, отвечающей за этот порядок перебора имен хостов в файле /etc/nsswitch.conf.
files сперва пытается разрешить статическое имя хоста в /etc/hosts.
mdns4_minimal пытается разрешить имя с использованием параллельного (multicast) DNS .
[NOTFOUND=return] означает, что любой ответ notfound, предшествующий процессу mdns4_minimal, должен считаться значимым (авторитетным) и что система не будет пытаться продолжать искать ответ.
dns представляет собой наследуемый последовательный (legacy unicast) DNS запрос.
mdns4 представляет параллельный (multicast) DNS запрос.
Для изменения последовательности вышеупомянутых методов разрешения имен вы можете просто заменить строку hosts: на значение по вашему выбору. Например, если вы предпочитаете использовать последовательный DNS до параллельного DNS , вы можете изменить строку в /etc/nsswitch.conf как показано ниже:
Строительство мостов 🙂
Соединение нескольких интерфейсов — наиболее продвинутая настройка, но очень полезная во множестве сценариев. Один вариант — установка взаимодействия между несколькими сетевыми интерфейсами и затем использование защитного экрана (firewall) для фильтрования трафика между двумя сегментами сети. Другой сценарий — использование связывания на системе с одним интерфейсом для разрешения виртуальным машинам иметь прямой доступ во внешнюю сеть. Следующий пример раскрывает последний сценарий.
Перед настойкой взаимодействия вам потребуется установить пакет bridge-utils. Для установки пакета введите в терминале:
Далее настройте взаимодействие, отредактировав /etc/network/interfaces:
Теперь перезапустите сеть для разрешения взаимодействия интерфейсов:
Теперь новый мост между интерфейсами поднят и работает. Утилита brctl предоставит полезную информацию о статусе моста, определяет какие интерфейсы участвуют во взаимодействии и т.д. Смотрите man brctl для дополнительной информации.
Ссылки
Страница Ubuntu Wiki Network содержит ссылки на заметки по более продвинутым настройкам сети.
Страница resolvconf man содержит больше информации по resolvconf.
Страница interfaces man содержит детали по дополнительным опциям для /etc/network/interfaces.
Страница dhclient man содержит детали по большему количеству опций для настройки DHCP клиента.
Для дополнительной информации по настройке DNS клиента смотрите страницу resolver man. Также 6 глава руководства O’Reilly Администрирования сетей Linux является хорошим источником по разрешению имен и настройке сервиса имен.
Для дополнительной информации по сетевому связыванию смотрите страницу brctl man и страницу Net:Bridge от Linux Foundation.
Источник
Настройка сети в Linux, диагностика и мониторинг
Содержание
Доброго времени, уважаемые читатели. Публикую вторую часть статьи о сетевой подсистеме Linux. В текущей части основной упор сделан на реализацию сети в Linux (как настроить сеть в Linux, как продиагностировать сеть в Linux и поддерживать в рабочем состоянии сетевую подсистему в Linux).
Настройка TCP/IP в Linux для работы в сети Ethernet
Для работы с сетевыми протоколами TCP/IP в Linux достаточно наличие только петлевого интерфейса, но если необходимо объединить хосты между собой, естественно, необходимо наличие сетевого интерфейса, каналов передачи данных (например витая пара), возможно, какого-либо сетевого оборудования. Так же, необходимо наличие установленных утилит для настройки сети (/sbin/ifconfig, /sbin/route и др.), обычно поставляемые в пакете net-tools. Так же необходимо наличие конфигурационных файлов для сети (например /etc/hosts) и поддержку сети ядром Linux.
Параметры сети
Начнем понимание сетевых механизмов Linux с ручного конфигурирования сети, то есть со случая, когда IP адрес сетевого интерфейса статичен. Итак, при настройке сети, необходимо учесть и настроить следующие параметры:
IP-адрес — как уже говорилось в первой части статьи — это уникальный адрес машины, в формате четырех десятичных чисел, разделенных точками. Обычно, при работе в локальной сети, выбирается из частных диапазонов, например: 192.168.0.1
Маска подсети — так же, 4 десятичных числа, определяющие, какая часть адреса относиться к адресу сети/подсети, а какая к адресу хоста. Маска подсети является числом, которое складывается (в двоичной форме) при помощи логического И, с IP-адресом и в результате чего выясняется, к какой подсети принадлежит адрес. Например адрес 192.168.0.2 с маской 255.255.255.0 принадлежит подсети 192.168.0.
Адрес подсети — определяется маской подсети. При этом, для петлевых интерфейсов не существует подсетей.
Широковещательный адрес — адрес, используемый для отправки широковещательных пакетов, которые получат все хосты подсети. Обычно, он равен адресу подсети со значением хоста 255, то есть для подсети 192.168.0 широковещательным будет 192.168.0.255, аналогично, для подсети 192.168 широковещательным будет 192.168.255.255. Для петлевых интерфейсов не существует широковещательного адреса.
IP адрес шлюза — это адрес машины, являющейся шлюзом по-умолчанию для связи с внешним миром. Шлюзов может быть несколько, если компьютер подключен к нескольким сетям одновременно. Адрес шлюза не используется в изолированных сетях (не подключенных к глобальной сети), потому что данным сетям некуда отправлять пакеты вне сети, то же самое относиться и к петлевым интерфейсам.
Файлы настроек сети в Linux (конфигурационные файлы)
Для понимания работы сети в Linux, я бы обязательно посоветовал ознакомиться со статьей «Этапы загрузки Linux». В целом, вся работа Linux основана на процессе init, который рождается при загрузке ОС и плодит своих потомков, которые в свою очередь и выполняют всю необходимую работу, будь то запуск bash или демона. Да, и вся загрузка Linux основана на скриптах bash, в которых прописана вся последовательность запуска мелких утилит с различными параметрами, которые последовательно запускаются/останавливаются при запуске/остановке системы. Аналогично запускается и сетевая подсистема Linux. Каждый дистрибутив Linux имеет слегка отличающийся от других механизм инициализации сети, но общая картина, думаю, после прочтения будет ясна. Если просмотреть стартовые скрипты сетевой подсистемы какого-либо дистрибутива Linux, то, как настроить конфигурацию сети с помощью конфигурационных файлов, станет более-менее понятно, например у Debian/Ubuntu (за основу возьмем эту ветвь дистрибутивов) за инициализацию сети отвечает скрипт /etc/init.d/networking , просмотрев содержимое которого:
можно найти несколько функций, проверяющих наличие подключенных сетевых файловых систем (check_network_file_systems(), check_network_swap()), а так же проверку существования какого-то пока непонятного конфига /etc/network/options (функция process_options()), а в самом низу, конструкцией case «$1» in проверяется первый параметр переданный скрипту и в соответствии с введенным параметром (start/stop/force-reload|restart или любое дугое) производит определенные действия. Из этих самых «определенных действий», на примере аргумента start видно, что сначала запускается функция process_options, далее отправляется в лог фраза Configuring network interfaces, и запускается команда ifup -a. Если посмотреть man ifup, то видно что данная команда читает конфиг из файла /etc/network/interfaces и согласно ключу -a запускает все интерфейсы имеющие параметр auto.
Соответственно, прочитав man interfaces (rus) или man interfaces (eng), становиться ясно, как же в Debian/Ubuntu настроить какой-либо сетевой интерфейс с помощью конфига /etc/network/interfaces. Ниже, пример данного конфигурационного файла для 3х интерфейсов: петлевой (lo), со статичным IP (eth2) и IP получаемым по dhcp (eth0):
В данном конфиге строки allow-hotplug и auto — это синонимы и интерфейсы будут подняты по команде ifup -a. Вот, собственно, и вся цепь работы сетевой подсистемы. Аналогично, в других дистрибутивах: в RedHat и SUSE сеть запускается скриптом /etc/init.d/network. Рассматрев его, аналогично можно найти, где лежит конфигурация сети.
/etc/hosts
Данный файл хранит перечень IP адресов и соответствующих им (адресам) имен хостов.Формат файла ничем не отличается от мастдайного:
/etc/networks
Данный файл хранит имена и адреса локальной и других сетей. Пример:
При использовании данного файла, сетями можно управлять по имени. Например добавить маршрут не route add 192.168.1.12, а route add home-network.
/etc/nsswitch.conf
Файл определяет порядок поиска имени хоста/сети, за данную настройку отвечают строки:
Параметр files указывает использовать указанные файлы (/etc/hosts и /etc/networks соответственно), параметр dns указывает использовать службу dns.
/etc/resolv.conf
Этот файл определяет параметры механизма преобразования сетевых имен в IP адреса. Пример:
В современных дистрибутивах Linux используется динамическая генерация данного файла, с помощью утилиты resolvconf. Она является посредником между службами, динамически предоставляющими сервера имен (например DHCP client) и службами, использующими данные сервера имен. Статические адреса DNS серверов, в случае использования resolvconf, задаются внутри /etc/network/interfaces (подробнее об этом — в разделе настройки).
Настройка сети
Настройка сети подробно разобрана в отдельной статье.
Диагностика сети Linux
Существует большое количество инструментов диагностики сети в Linux, зачастую, они очень похожи на утилиты от Microsoft. Я рассмотрю 3 основные утилиты диагностики сети, без которых выявить неполадки будет проблематично.
Думаю, что данная утилита знакома чуть ли не каждому. Работа этой утилиты заключается в отправке т.н. пакетов ICMP удаленному серверу, который будет указан в параметрах команды, сервер возвращает отправленные команды, а ping подсчитывает время требуемое отправленному пакету, чтобы дойти до сервера и вернуться. Например:
Так же, утилита ping интересна тем, что может позволить увидеть, где именно возникли неполадки. Допустим, утилита ping выводит сообщение network not reachable (сеть недоступна), либо другое аналогичное сообщение. Это, скорее всего, говорит о некорректной настройке вашей системы. В таком случае, можно послать пакеты по IP-адресу провайдера, чтобы понять, в каком месте возникает проблема (между локальным ПК или «дальше»). Если Вы подключены к интернету через маршрутизатор, то можно послать пакеты по его IP. Соответственно, если проблема проявиться уже на этом этапе, это говорит, о неправильном конфигурировании локальной системы, либо о повреждении кабеля, если маршрутизатор отзывается, а сервер провайдера нет, то проблема — в канале связи провайдера и т.д. Наконец, если неудачей завершилось преобразовании имени в IP, то можно проверить связь по IP, если ответы будут приходить корректно, то можно догадаться, что проблема в DNS .
Следует отметить, что данная утилита не всегда надежный инструмент для диагностики. Удаленный сервер может блокировать ответы на ICMP запросы.
traceroute
Простым языком, команда называется трассировка маршрута. Как можно понять из названия — данная утилита покажет по какому маршруту шли пакеты до хоста. Утилита traceroute несколько похожа на ping, но отображает больше интересной информации. Пример:
Источник