Опубликован: 26.07.2011 | Уровень: для всех | Доступ: свободно
Лекция 2:

Сетевая подсистема Linux

< Лекция 1 || Лекция 2 || Лекция 3 >
Аннотация: Кратко описан многоуровневый иерархический подход к обеспечению сетевых взаимодействий. Перечислены базовые средства настройки и диагностики сетевой подсистемы Linux.

Содержание:

  1. Многоуровневый подход к организации сетевых взаимодействий.
  2. Средства настройки сетевой подсистемы Linux.

Многоуровневый подход к организации сетевых взаимодействий

Процесс взаимодействия между узлами компьютерной сети является сложным "Транспортный и прикладной уровни модели сетевого взаимодействия." . Сложности связаны как с преобразованием "данные-сигналы-данные", так и с передачей сигнала по гетерогенным сетям. Для наглядной иллюстрации процесса передачи данных в сети Интернет можно, например, с помощью команды traceroute (tracert в Windows), изучить список промежуточных узлов, через которые проходят сетевые пакеты на пути от компьютера пользователя до какого-нибудь Интернет-ресурса (пример 2.1)

$ traceroute www.kernel.org 
 traceroute to www.kernel.org (130.239.17.4), 30 hops max, 60 byte packets 
  1  192.168.240.1 (192.168.240.1)  78.016 ms  77.871 ms  77.795 ms 
  2  * * * 
  3  * * * 
  4  core.10g.net.belpak.by (93.84.122.105)  109.257 ms  109.196 ms  109.132 ms 
  5  core.10g.net.belpak.by (93.84.122.18)  117.289 ms  117.227 ms  117.164 ms 
  6  193.232.249.102 (193.232.249.102)  108.876 ms  12.377 ms  12.257 ms 
  7  po31.l3-gw-1.mck.net.belpak.by (193.232.249.78)  22.113 ms  16.070 ms  15.949 ms 
  8  * * * 
  9  83.229.226.101 (83.229.226.101)  55.643 ms msk-b4-hq-ae0.main.synterra.ru
        (83.229.225.5)  55.571 ms 83.229.226.101 (83.229.226.101)  55.512 ms 
 10  ae7.RT.MR.MSK.RU.retn.net (87.245.253.169)  55.450 ms  55.388 ms  55.323 ms 
 11  ae2-6.RT.TC1.STO.SE.retn.net (87.245.233.134)  70.087 ms  70.025 ms  67.387 ms 
 12  * * * 
 13  t1fre-ae0-v1.sunet.se (130.242.83.37)  98.493 ms umu-g.sunet.se (193.11.0.226)
        99.859 ms t1fre-ae0-v1.sunet.se (130.242.83.37)  90.245 ms 
 14  umu-g.sunet.se (193.11.0.226)  112.213 ms u2k-te.gw.umu.se (130.239.0.201)
        112.181 ms umu-g.sunet.se (193.11.0.226)  112.137 ms 
 15  pub4.kernel.org (130.239.17.4)  112.108 ms u2k-te.gw.umu.se (130.239.0.201)
        117.516 ms  117.392 ms
Листинг 2.1. Трассировка маршрута (отображение списка промежуточных узлов) до узла www.kernel.org с помощью команды traceroute:

Задачу обеспечения сетевых коммуникаций решают с использованием многоуровневого иерархического подхода. На узле программные компоненты данного уровня "общаются" только с соседними уровнями, при этом интерфейсы (предоставляемые функции) между соседними уровнями четко определены. Узлы взаимодействуют друг с другом посредством протоколов (правил, по которым обмениваются сообщениями программные компоненты одного уровня на разных узлах) "Использование виртуализации для изучения Linux" . Для передачи по сети поток информации на узле-отправителе разбивается на набор фрагментов (единиц передачи данных ), по мере продвижения по иерархии протоколов, каждый протокол добавляет (инкапсулирует) свой заголовок к фрагменту передаваемой информации. На узле-получателе происходит обратный процесс.

Существует несколько альтернативных моделей сетевых взаимодействий "Использование виртуализации для изучения Linux" . В вопросах настройки сетевой подсистемы (в отличие от вопросов разработки протоколов и интерфейсов) значение данных моделей в большей степени методическое, направленное на унификацию терминологии и лучшее понимание процессов функционирования сети.

В данном пособии используется терминология (нестрогая) модели стека протоколов TCP/IP, которая включает четыре уровня:

  • Уровень сетевых интерфейсов (доступа к сети). В рамках модели TCP/IP на данном уровне решаются две задачи: упаковки единиц передачи вышележащего уровня во фреймы (единицы передачи данного уровня) и получения физических адресов (MAC-адресов).
  • Сетевой уровень (интернет-уровень, межсетевой уровень). Обеспечивает передачу пакетов (единиц передачи сетевого уровня) между гетерогенными сетями на основе IP-адресации (сетевой адресации) и группировки узлов в подсети. Основным протоколом данного уровня является IP (Internet Protocol).
  • Транспортный уровень. Обеспечивает для фрагментов данных как гарантированную доставку (протокол TCP, единицы передачи - сегменты), так и доставку по возможности (протокол UDP, единицы передачи - датаграммы ). На данном уровне решается задача использования сетевого подключения несколькими приложениями (порты).
  • Прикладной уровень. Включает средства преобразования и протоколы представления информационных потоков, непосредственно взаимодействующие с приложениями пользователя.

Пример 2.2. Типичный процесс взаимодействия между сетевыми узлами по прикладному протоколу, использующему в качестве транспорта протокол TCP, можно описать следующим образом на узле-отправителе:

  • На прикладном уровне осуществляются необходимые преобразования информационного потока (сжатие, шифрование и т. д.).
  • Информационный поток прикладного протокола на транспортном уровне разбивается на последовательность сегментов; в заголовке сегмента, в частности, указаны номера портов отправителя и получателя.
  • На сетевом уровне сегмент вкладывается в пакет, заголовок, которого содержит IP-адреса отправителя и получателя.
  • На уровне сетевых интерфейсов на основе сетевого пакета формируется фрейм, заголовок которого содержит MAC-адреса отправителя и получателя (в случае "нелокальной" доставки - маршрутизатора удаленных сетей).

На узле-получателе происходит обратный процесс.

Примечание: В некоторых случаях на сетевом уровне и уровне сетевых интерфейсов используется дополнительная инкапсуляция (технологии глобальных сетей, аутентификации, виртуальные частные сети и т.п.)

Средства настройки сетевой подсистемы Linux

Сетевая поддержка в Linux обеспечивается стандартными и дополнительными модулями ядра, программным обеспечением, входящим в состав конкретного дистрибутива, а также может быть расширена за счет использования прочих программных средств "Доступ к локальной сети средствами Linux" "Команды настройки протокола IP" .

Для управления сетевой подсистемой Linux существует множество средств: команды, скрипты, графические программы и т. д. Здесь приведены лишь наиболее известные из них.

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

"Традиционные" команды настройки сети (пакет net-tools ) "Постоянные сетевые конфигурации (на примере Debian/GNU Linux)" . В данном пакете присутствуют команды: управления сетевыми интерфейсами (ifconfig), таблицей маршрутизации (route), таблицей разрешения имен (arp), сетевой статистики (netstat), статусом сетевых устройств (mii-tool) и т.д. Пакет net-tools использовался для управления сетью до ядра 2.4.; включается в современные дистрибутивы Linux для совместимости.

Команды пакета iproute2 "Базовая диагностика сетевых подключений" . Пакет iproute2 разработан для управления параметрами TCP/IP и контроля трафика в Linux (в частности маршрутизация и качество обслуживания). Для управления сетью в современных ядрах Linux (ядра версии 2.4-2.6) рекомендуется использовать средства данного пакета вместо команд net-tools.

Пакет iproute2 включает 3 основные утилиты:

-ip - команда для просмотра параметров и настройки сетевых интерфейсов, IP-адресов, таблиц маршрутизации, правил маршрутизации, таблиц преобразования, IP-туннелей и т.д.

-tc (traffic control) - команда для просмотра и настройки параметров управления трафиком (классификация трафика, дисциплины управления очереди для различных классов трафика)

-ss - команда для просмотра текущих соединений и открытых портов (аналог netstat ).

Для настройки сети при загрузке системы (а также как средство настройки работающей системы) в Linux обычно используются наборы конфигурационных файлов и обрабатывающих их скриптов и программ. В дистрибутивах применяются различные способы инициализации сетевой подсистемы, например Debian использует пакет ifupdown (см. "Постоянные сетевые конфигурации (на примере Debian/GNU Linux)" ), а большинство RPM -основанных дистрибутивов — набор файлов вида ifup-*, ifdown-*, ifcfg-*, расположенных в каталоге /etc/sysconfig/network-scripts/ и т.п.

В системах с установленным оконным менеджером для настройки сетевых параметров можно использовать средства графического интерфейса пользователя. В качестве примера можно назвать пакет NetworkManager "Транспортный и прикладной уровни модели сетевого взаимодействия." , совместимый с таким графическими окружениями, как GNOME, KDE и XFCE ; интерфейс NetworkManager позволяет настраивать проводные и беспроводные (Wi-Fi, 3G, Bluetooth) соединения, подключения к виртуальным частным сетям (VPN) и ADSL -провайдерам. Средства графического интерфейса пользователя есть также в пакете Wicd [ 14 ] .

Для управления межсетевым экраном и средством манипулирования сетевыми пакетами (в том числе трансляция сетевых адресов - NAT) Netfilter стандартно используется утилита командной строки iptables [ 10 ] (см. "Межсетевое экранирование в Linux" и "Обеспечение доступа в сеть Интернет" ). Над Netfilter/iptables существуют различные надстройки (в том числе и GUI -средства), например, UFW/Gufw — простые утилиты настройки межсетевого экрана уровня узла (host-based), используемые в дистрибутиве Ubuntu [ 9 ] . Примерами программ для настройки межсетевого экрана также могут служить такие проекты как: Shorewall [ 9 ] , Firewall Builder [ 11 ] , Firestarter [ 12 ] и т. д.

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

  • Команда ping [ 13 ] . Простейшее средство проверки работоспособности удаленного узла.
  • Команда traceroute. Позволяет отобразить все промежуточные узлы, которые проходят пакеты на пути к целевому узлу.
  • Утилита tcpdump. Используется для перехвата и анализа сетевого трафика.

Более подробно эти и некоторые другие средства диагностики сети описаны в "Базовая диагностика сетевых подключений" и "Анализ сетевого трафика как метод диагностики сети" .

Ключевые термины

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

Интерфейс - формализованные правила, в соответствии с которыми взаимодействуют модули, реализующие протоколы соседних уровней модели сетевого взаимодействия (набор сервисов, предоставляемых данным уровнем соседнему).

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

IP (Internet Protocol) — маршрутизируемый протокол сетевого уровня без установления соединения.

Сокет — пара IP-адрес: порт, однозначно определяющая сетевой процесс; точка доступа прикладного процесса к сети.

Краткие итоги

  1. К решению задачи обеспечения сетевых взаимодействий применяют многоуровневый иерархический подход, заключающийся в разбиении процесса коммуникации на набор уровней с четко определенными способами взаимодействия уровней на одном узле и на соседних узлах.
  2. В данном пособии используется терминология модели стека протоколов TCP/IP, включающая следующие уровни: уровень сетевых интерфейсов, сетевой уровень, транспортный уровень и прикладной уровень.
  3. Для управления сетевой подсистемой Linux существует множество средств, наиболее известными из которых являются средства пакетов net-tools, iproute2, Netfilter/iptables, утилиты диагностики сетевых подключений (ping, traceroute, tcpdump ), а также графические средства настройки сетевой подсистемы (например, NetworkManager ).
< Лекция 1 || Лекция 2 || Лекция 3 >
Нияз Сабиров
Нияз Сабиров
Стоимость "обучения"
Елена Сапегова
Елена Сапегова
диплом
Андрей Фомин
Андрей Фомин
Россия
Денис Ермаков
Денис Ермаков
Россия