Перейти к содержанию

Резюме

Резюме главы (Chapter Review)

В этой главе вы узнали, как настроить сеть в Linux-системе. Прежде всего, в большинстве современных организаций вам придётся работать с сетевыми платами Ethernet и протоколом IP. Протокол — это общий сетевой «язык», который должен быть настроен для обеспечения связи между двумя узлами.

Интернет-протокол (Internet Protocol, IP) работает совместно с протоколом управления передачей (Transmission Control Protocol, TCP) или протоколом пользовательских датаграмм (User Datagram Protocol, UDP) для фрагментации, передачи, дефрагментации и повторной сборки сетевых данных с целью обеспечения связи между узлами. Мы также рассмотрели протокол управляющих сообщений Интернета (Internet Control Message Protocol, ICMP) — ещё один ключевой протокол в семействе IP. Его назначение отличается от TCP и UDP, которые являются транспортными протоколами: основная роль ICMP — тестирование и проверка сетевых соединений между узлами.

Мы рассмотрели роль и функцию эталонной модели OSI (OSI Reference Model). Уровни этой модели разделяют общий процесс передачи данных на конкретные задачи. Информация передаётся вниз по уровням на отправляющей системе, затем передаётся по сетевой среде и поднимается вверх по уровням на принимающей стороне. Эталонная модель OSI имеет семь уровней:

  • Физический (Physical)
  • Канальный (Data Link)
  • Сетевой (Network)
  • Транспортный (Transport)
  • Сеансовый (Session)
  • Представления (Presentation)
  • Прикладной (Application)

Мы рассмотрели концепцию портов IP. Порты предоставляются протоколами TCP и UDP на транспортном уровне. По сути, порт — это логическое соединение, предоставляемое протоколами TCP и UDP для протоколов верхних уровней. Порты позволяют одному узлу с одним IP-адресом предоставлять несколько сетевых служб, каждая из которых использует один и тот же IP-адрес, но собственный номер порта TCP или UDP. Номера портов могут варьироваться от 0 до 65536. Использование портов регулируется организацией ICANN. Существует три категории портов IP:

  • Известные порты (Well-known ports)
  • Зарегистрированные порты (Registered ports)
  • Динамические порты (Dynamic ports)

Затем мы рассмотрели, как работает IPv4-адресация. Каждый узел в сети должен иметь правильно настроенный уникальный IP-адрес и правильно назначенную маску подсети. Маска подсети определяет, какая часть IP-адреса узла является сетевым адресом, а какая — адресом узла. В двоичном представлении каждый бит маски подсети со значением 1 соответствует биту сетевого адреса в IP-адресе, а бит со значением 0 — биту адреса узла. IP-адреса делятся на несколько классов, каждый из которых имеет маску подсети по умолчанию:

  • Класс A: 255.0.0.0
  • Класс B: 255.255.0.0
  • Класс C: 255.255.255.0

Можно использовать и другие маски подсети. Допускается использование только части октета для сетевого адреса. Это называется частным разделением на подсети (partial subnetting) или маскированием подсети переменной длины (variable-length subnet masking, VLSM). При использовании VLSM стандартные границы классов маски подсети игнорируются и задаётся произвольное количество бит маски.

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

Для разрешения доменных имён в IP-адреса Linux-система должна быть настроена с IP-адресом DNS-сервера организации. Кроме того, для связи с узлами в других сетевых сегментах необходимо настроить IP-адрес шлюза по умолчанию (default gateway router).

Мы также рассмотрели концепцию публичной и частной IP-адресации. Публичные сети используют глобально уникальные, зарегистрированные IP-адреса. Частные сети используют немаршрутизируемые, незарегистрированные, неуникальные IP-адреса. Для скрытия частной сети за одним или несколькими публичными интерфейсами можно использовать NAT-маршрутизатор (NAT router). В каждом классе IP-адресов существуют блоки адресов, называемые частными или зарезервированными. Эти адреса не распределены и могут использоваться кем угодно:

  • 10.0.0.0–10.255.255.255 (Класс A)
  • 172.16.0.0–172.31.255.255 (Класс B)
  • 192.168.0.0–192.168.255.255 (Класс C)

Мы также рассмотрели протокол IPv6. Адреса IPv6 состоят из восьми четырёхзначных шестнадцатеричных чисел, разделённых двоеточиями вместо точек. Например, допустимый IPv6-адрес: 35BC:FA77:4898:DAFC:200C:FBBC:A007:8973. Этот 128-битный адрес состоит из двух частей:

  • Префикс — первые 64 бита, включающие сетевой адрес и адрес подсети.
  • Идентификатор интерфейса — последние 64 бита, представляющие уникальный адрес сетевого узла.

Существует три типа IPv6-адресов:

  • Глобальные одноадресные (Global unicast)
  • Уникальные локальные (Unique local)
  • Локальные адреса канала (Link local)

Затем мы перешли к настройке сетевого интерфейса Ethernet в Linux. Сначала необходимо установить сетевую плату в систему и подключить её к сети. Затем нужно загрузить соответствующие модули ядра для платы. Для новых плат это происходит автоматически. Для старых или нестандартных плат это может потребоваться сделать вручную. После этого для сетевой платы должен быть создан псевдоним. Если дистрибутив использует init, первый интерфейс получит имя eth0, последующие платы — eth1, eth2, eth3 и так далее.

Дистрибутивы, использующие systemd, больше не применяют это соглашение об именовании. Вместо этого они используют предсказуемые имена сетевых интерфейсов (predictable network interface names). Порядок назначения псевдонимов: индекс встроенного адаптера из прошивки; индекс слота PCI-E горячей замены; имя физического разъёма; MAC-адрес интерфейса.

После установки платы необходимо настроить сетевой интерфейс с помощью команды ifconfig или dhclient. Ввод ifconfig без параметров отображает сведения об установленных сетевых интерфейсах. Для назначения IP-адреса: ifconfig интерфейс ip_адрес netmask маска_подсети broadcast широковещательный_адрес. Для постоянного сохранения настроек необходимо внести параметры IP в соответствующий файл в каталоге /etc/sysconfig/network.

Также можно использовать команду ip для управления сетевыми интерфейсами: просмотра текущей IP-конфигурации, настройки параметров IP-адресации, отключения или включения интерфейса.

Для назначения адреса DNS-сервера или адреса шлюза по умолчанию необходимо отредактировать следующие файлы:

  • Адрес DNS-сервера: /etc/resolv.conf
  • Адрес шлюза по умолчанию: /etc/sysconfig/network/routes

Для отключения сетевого интерфейса используется команда ifdown, для включения — ifup. Для динамического назначения IP-адреса с DHCP-сервера используется команда dhclient интерфейс.

Мы также рассмотрели настройку протокола IPv6. Адреса IPv6 назначаются с использованием процессов, существенно отличающихся от IPv4: статическое назначение адресов, частичное статическое назначение, автоматическая настройка без состояния (stateless auto configuration) и конфигурация DHCPv6.

В конце главы мы рассмотрели утилиты командной строки для тестирования и мониторинга сети. Для проверки связи между системами используется команда ping адрес_узла. Для просмотра сведений о сетевых интерфейсах — команда netstat с параметрами –a, –i, –l, –s и –r. Для работы с IPv6 используются команды ping6 и traceroute6. Для трассировки маршрута до удалённой системы — traceroute адрес_узла.

Для тестирования TCP или UDP-соединений используется утилита nc (netcat). Для проверки разрешения имён — команды dig, host и getent. Команды dig и host проверяют правильность разрешения IP-адресов DNS-сервером. Команда getent сначала проверяет файл hosts, а при отсутствии записи обращается к DNS-серверу.

Быстрое повторение (Accelerated Review)

  • При управлении Linux-системами чаще всего используются сетевые платы Ethernet и протокол IP.
  • Протокол — это общий сетевой язык, который должен быть настроен для обеспечения связи между сетевыми узлами.
  • Протокол IP работает совместно с TCP или UDP для фрагментации, передачи, дефрагментации и повторной сборки сетевых данных.
  • Протокол ICMP используется для тестирования и проверки сетевых соединений между узлами.
  • Эталонная модель OSI состоит из уровней: физический, канальный, сетевой, транспортный, сеансовый, представления, прикладной.
  • Порты предоставляются протоколами TCP и UDP на транспортном уровне.
  • Порт — это логическое соединение, предоставляемое TCP и UDP для протоколов верхних уровней.
  • Порты позволяют одному узлу с одним IP-адресом предоставлять несколько сетевых служб.
  • Существует три категории портов IP: известные, зарегистрированные, динамические.
  • Каждому узлу в IPv4-сети должен быть назначен уникальный IP-адрес и правильная маска подсети.
  • Маска подсети определяет, какая часть IP-адреса узла является сетевым адресом, а какая — адресом узла.
  • IP-адреса делятся на классы, каждый из которых имеет маску подсети по умолчанию: A — 255.0.0.0, B — 255.255.0.0, C — 255.255.255.0.
  • При использовании VLSM можно игнорировать стандартные границы маски подсети и задавать произвольное количество бит.
  • Узлы в одном сетевом сегменте должны иметь одинаковую маску подсети.
  • Сетевой узел должен быть настроен с IP-адресом DNS-сервера для разрешения доменных имён в IP-адреса.
  • Сетевой узел должен быть настроен с IP-адресом шлюза по умолчанию для связи с узлами в других сетевых сегментах.
  • Адреса IPv6 состоят из восьми четырёхзначных шестнадцатеричных чисел, разделённых двоеточиями.
  • 128-битные адреса IPv6 разделены на две части: префикс (первые 64 бита) и идентификатор интерфейса (последние 64 бита).
  • Существует три типа IPv6-адресов: глобальные одноадресные, уникальные локальные, локальные адреса канала.
  • Публичные сети используют глобально уникальные, зарегистрированные IP-адреса.
  • Частные сети используют немаршрутизируемые, незарегистрированные, неуникальные IP-адреса.
  • Диапазоны частных IP-адресов: 10.0.0.0–10.255.255.255 (A), 172.16.0.0–172.31.255.255 (B), 192.168.0.0–192.168.255.255 (C).
  • Для скрытия частной сети за публичным интерфейсом можно использовать NAT-маршрутизатор.
  • Для установки интерфейса Ethernet в Linux необходимо сначала установить сетевую плату и подключить её к сети.
  • Затем необходимо загрузить соответствующие модули ядра для платы.
  • В дистрибутивах, использующих init, первой сетевой плате присваивается псевдоним eth0. Дополнительным платам — eth1, eth2 и так далее.
  • Дистрибутивы, использующие systemd, применяют предсказуемые имена сетевых интерфейсов.
  • Для просмотра сведений об установленных сетевых интерфейсах вводится ifconfig без параметров.
  • Для назначения IP-адреса сетевому интерфейсу: ifconfig интерфейс ip_адрес netmask маска_подсети broadcast широковещательный_адрес.
  • Для постоянного сохранения назначений IP-адресов необходимо внести их в соответствующий файл в каталоге /etc/sysconfig/network.
  • Для управления сетевыми интерфейсами также можно использовать команду ip.
  • Адрес DNS-сервера организации вносится в файл /etc/resolv.conf.
  • Адрес шлюза по умолчанию вносится в файл /etc/sysconfig/network/routes.
  • Для отключения сетевого интерфейса вводится ifdown, для включения — ifup.
  • Для динамического назначения IP-адреса узлу Linux вводится dhclient интерфейс.
  • Адреса IPv6 назначаются с использованием следующих процессов: статическое назначение адресов, частичное статическое назначение, автоматическая настройка без состояния, конфигурация DHCPv6.
  • Linux включает разнообразные утилиты командной строки для тестирования и мониторинга сети.
  • ping — проверка связи, ping6 — для IPv6.
  • netstat — просмотр информации о сетевых интерфейсах.
  • traceroute — трассировка маршрута, traceroute6 — для IPv6.
  • route — просмотр и изменение таблицы маршрутизации.
  • nc — тестирование TCP/UDP-соединений.
  • dig, host, getent — тестирование разрешения DNS-имён.