4.1. Межсетевое взаимодействие

Проблемы протоколов канального уровня:

Невозможно организовать циклы и дублирующие каналы, которые необходимы для большей надежности

Логические сегменты подвержены широковещательным атакам

Жесткая одноуровневая (без иерархии) адресация по MAC адресам

Невозможно объединить сети разных топологий, отсутствует масштабируемость

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

4.1 Сетевой уровень модели OSI

На сетевом уровне объединяют несколько сетей в составную сеть или интерсеть (internetwork, internet)
  • Передача пакетов между конечными узлами в составных сетях
  • Выбор наилучшего маршрута по определенному критерию
  • Согласование протоколов канального уровня в отдельных подсетях
Прикладной
Представительный
Сеансовый
Транспортный
Сетевой
Канальный
Физический
Единица данных: пакет (packet)
Тип адресов: IP, IPX и др.
Протоколы: IP, IPX, RIP, NLSP, ES-ES, IS-IS
Передача данных между уровнями:
Адрес сетевого уровня называют логическим адресом.
Адрес канального уровня называют физическим адресом.

4.1.1 Протокол IP

  • Протокол IP (internet protocol) – протокол сетевого уровня
  • Стек TCP/IP
  • Основная задача передавать пакеты между сетями
  • Протокол передает пакеты как независимую единицу без связи с другими пакетами
В протоколе IP используются IP-адреса.IP-адрес это 4-х (в IPv4):192.168.1.1

или 16-и байтное число в IPv6:
2001:0db8:11a3:09d7:1f34:8a2e:07a0:765d

Формат заголовка IP-пакета:
Протокол IP используется для негарантированной доставки данных.
Однако выявляются ошибки в пакетах, вычисляется контрольная сумма, поврежденные и «плохие» пакеты не передаются дальше.

4.1.2 IP-адрес и классы сетей

IP-адрес характеризует одно сетевое соединение
С сетевым адаптером может быть связано несколько IP-адресов
По аналогии с почтовым адресом:ул. Мира, 120

Так как в качестве номера сети могут быть первый байт, первые 2 или 3, то для определенности, ввели классы сетей.
Деление на классы происходит на основе первых бит первого октета:
Противоречие. С помощью классов невозможно гибко структурировать сети. Поэтому для более гибкого определения номера сети введена маска сети (network mask).

4.1.3 Маска сети

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

При использовании маски сети, понятие класс сети теряет смысл.

IP: 195.112.228.95Mask: 255.255.255.0

В десятичном виде

ИЛИ

195.112.228.95/24

В виде количества разрядов через слешь (/)

Процесс наложение маски на IP-адрес:
В результате наложения маски сети на IP-адрес получается — адрес сети.
Поэтому в качестве номера узла нельзя использовать одни нули.По аналогии с почтовым адресом. В качестве адреса проживания не используется информация лишь об улицеул. Мира, ???

198.206.12.0/24 = 11000110. 11001110.00001100.00000000

175.206.12.0/16 = 10101111. 11001110.00001100.00000000

195.16.39.224/28 = 11000011.00010000.00100111. 11100000

195.16.39.225/28 = 11000011.00010000.00100111. 11100001

4.1.4 Распределение IP-адресов в мире

Internet Assigned Numbers Authority (IANA) – отвечает за распределение всех зарезервированных имён и номеров, которые используются в протоколах, определённых в RFC.База IANA: http://www.iana.org/assignments/ipv4-address-space/

Internet Corporation for Assigned Names and Numbers (ICANN) – международная некоммерческая организация, регулирующая вопросы, связанные с доменными именами, IP-адресами и прочими аспектами функционирования Интернета.
RIR (Regional Internet Registry) – региональные регистратуры (RIPE, ARIN, APNIC, LACNIC и др.)
RIPE – Европейский региональный регистратор
ARIN – Американский регистратор интернет-номеров
APNIC – Азиатско-Тихоокеанский сетевой информационный центр
LACNIC – Латиноамериканский и карибский информационный центр
LIR (Local Internet Registry) – локальный регистратор, занимающийся распределением адресного пространства пользователям сетей (сервис-провайдерам и их абонентам).
PI (Provider Independent) – провайдеро-независимые IP адреса, получаемые из блоков RIR.
Схема распределения мирового адресного пространства

IANA и ICANN распределяют мировое адресное пространство Интернет
RIR распределяют адресное пространство по соответствующим регионам мира

4.1.5 Локальное распределение IP-адресов

Получение IP-адреса в адресном пространстве Интернет затратно и требует обращения в сторонние организации.
Поэтому выделены специальные блоки адресов доступные для локального использования без специальной регистрации.

в классе А — это сеть 10.0.0.0

в классе В — это диапазон из 16 сетей: 172.16.0.0 – 172.31.0.0

в классе С — это диапазон из 255 сетей: 192.168.0.0 – 192.168.255.0

Эти адреса называются приватными (private) или серыми.

Все остальные публичными (public) или белыми.

Серые адреса не требуют регистрации, поэтому их используют в локальных сетях.
Противоречие. Из-за наличия серых адресов следует, что IP-адрес не является уникальным идентификатором узла в сети? Тогда как связать два узла с серыми адресами через Интернет?

4.1.6 Соглашения об IP-адресах

Все нули (0.0.0.0) – обозначает адрес того узла, который сгенерировал этот пакет (используется в ICMP, DHCP)
Номер сети из 0 (напр., 0.0.0.126/24) – узел назначения принадлежит той же сети, что и отправитель.
Все 1 (255.255.255.255) – пакет предназначен всем узлам сети отправителя (limited broadcast, ограниченный широковещательный адрес).
Номер узла из 1 (напр., 129.127.255.255/16) – пакет рассылается всем узлам сети с заданным номером сети (broadcast, широковещательные адрес).
Адрес 127.0.0.1 пакет предназначен самому себе (loopback). С нижнего уровня возвращается наверх. Других адресов в сети 127.0.0.0/8 – нет, однако в некоторых операционных системах (напр., Linux) их можно создавать и использовать для служебных целей.

4.1.7 Разрешение адресов

В ходе рассмотрения схемы передачи данных между уровнями обнаруживается противоречие:
Необходимо предусмотреть процедуру определения MAC адреса получателя, зная его IP адрес. То естьIP2 —> MAC2

4.1.8 Протокол ARP

Протокол разрешения адресов (Address Resolution Protocol, ARP) – предназначенный для определения адреса канального уровня (MAC) по известному адресу сетевого уровня (IP).
Принцип работы ARP:

1

Узел широковещательно посылает ARP-запрос: «какой MAC с таким IP?»

Свой MAC1 FF: FF:FF: FF: FF:FF
IP отправителя (192.168.1.4).IP получателя (192.168.1.2).
2

Узел, у которого совпал IP, возвращает ARP-ответ со своим MAC адресом

Свой MAC2 Его MAC1
IP отправителя (192.168.1.2).IP получателя (192.168.1.4).
3

Получив ответ, узел временно сохраняет его в ARP-таблице, чтобы не «спрашивать» постоянно.

IP MAC
192.168.1.2> 23:BA:3F:12:11:C2
192.168.1.1 4C:EA:E5:21:B8:2D

4.1.9 Безопасность на канальном уровне

Некоторые типы атак
Человек посередине (Man in the middle, MitM) — атакующий находится между двумя жертвами и либо прослушивает трафик, который передается между ними, либо перехватывает его и подменяет.
Отказ в обслуживании (DoS) — атака на какой-то ресурс системы с целью довести его до отказа.
Несанкционированный доступ к сети или участкам сети — используя какие-то недостатки в протоколах, получения доступа к тем участкам сети, которые теоретически должны были быть недоступны.
Распространенные атаки
ARP-spoofing (ARP-poisoning) — основанная на использовании недостатков протокола ARP и позволяющая перехватывать трафик между узлами, которые расположены в пределах одного широковещательного домена.
MAC-spoofing — на сетевой карте изменяется MAC-адрес, что заставляет коммутатор отправлять пакеты на порт, к которому подключен злоумышленник.
Переполнение таблицы коммутации — атака основана на ограниченном размере таблицы коммутации. После заполнения таблицы, коммутатор не может фиксировать новые MAC-адреса и начинает работать как хаб, отправляя трафик на все порты.
VLAN hopping — несанкционированное получение доступа к VLAN

4.1.10 ARP-спуфинг (ARP-spoofing)

Атакуя А и B, компьютер C отправляет без запроса ARP-ответы:

  • узлу A: с IP-адресом узла B и MAC-адресом узла C;
  • узлу B: с IP-адресом узла A и MAC-адресом узла C.

После обновления таблиц, компьютер А, отправляя данные B и B, отправляя данные А, в кадрах указывают МАС-адрес C.

Компьютер C прослушивает и ретранслирует трафик.

4.1.11 Абстрагирование на сетевом уровне

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

4.1.12 Взаимодействие на сетевом уровне в одной подсети

Пусть есть сеть:

Пусть клиент 192.168.1.2 отправляет пакет с данными клиенту 192.168.1.4.

Минимальными настройками узлов для работы в одной сети являются: IP-адрес и маска сети.

4.1.13 Оборудование сетевого уровня. Маршрутизатор

Поскольку реализация обмена пакетами между сетями функция более высокого уровня, то эти задачи должны выполнять специальные устройства.
Маршрутизатор (router) — устройство, позволяющее объединять сети между собой, выбирать оптимальный маршрут продвижения пакетов между ними по определенным критериям.

Маршрутизатор

— коммуникационное устройство.— имеет несколько портов.

— работает под управлением операционной системой (часто UNIX-подобной).

Каждый порт рассматривается как узел сети и имеет MAC-адрес и  сетевой адрес той сети, к которой подключен.
Пусть есть несколько сетей

Противоречие. Каким образом маршрутизатору продвигать пакеты сквозь сети, используя только IP адреса отправителя и получателя?

4.1.14 Маршрутизация

Маршрутизация — процесс определения маршрута следования пакета (продвижения пакетов из одной сети в другую).
В пакете есть только IP-адрес отправителя и получателя.
Использовать алгоритм как в протоколе ARP невозможно, поскольку широковещательная рассылка между сетями недопустима.
Следовательно, нужно использовать априорную информацию о маршруте, по которому передавать пакет.
При этом необходимо иметь возможность создавать маршруты вручную, а также автоматически самими устройствами.

~

Метафора: продвижение пакетов и путешествие по городам страны.Город — Сеть, Вокзал — Маршрутизатор

=>

Чтобы из Красноярска попасть в Большой театр в Москве, нужно сначала приехать в аэропорт, самолетом до аэропорта в Москве. Пересесть на метро и доехать до места назначения.
Пусть клиент 195.83.17.5 отправляет пакет клиенту 85.3.5.18.
Так как IP-адрес получателя и отправителя находятся в разных подсетях, клиенту нужно заранее знать, куда направить пакет.
Пакет нужно направить тому узлу, который может дальше передать этот пакет. Здесь такой узел — порт 195.83.17.1 маршрутизатора М1.~ Аналогично, путешествуя в большом городе и расспрашивая дорогу у других жителей города, часто на вопрос «Как доехать из X в Y?» наблюдается такая форма ответа: «Сначала из X доедите до Z, а там спросите как до Y».
Чтобы передать пакет в другую сеть, его необходимо направить на порт ближайшего маршрутизатора.
Маршрутизатор должен решить, куда дальше следует направить пакет.
Маршрут — это последовательность маршрутизаторов, которые должен пройти пакет от отправителя до узла назначения.

При передаче пакета узлом или маршрутизатором в другую сеть существует две неопределенности:

Через какой свой порт? и На какой порт следующего маршрутизатора?

направить пакет.

Чтобы снять неопределенность у всех узлов и маршрутизаторов имеется специальная таблица — таблица маршрутизации.

4.1.15 Таблица маршрутизации

Таблица маршрутизации — ставит в соответствие сетям назначения исходящий интерфейс и адрес порта следующего маршрутизатора.
Таблица маршрутизации — атрибут каждого маршрутизатора и узла сети

Например, таблица маршрутизации для M1:

Network Address (адрес сети назначения) Netmask (Маска сети этой сети назначения) Interface (Интерфейс отправки) Gateway (Адрес порта следующего маршрутизатора) Metric (Метрика)

136.2.0.0.

255.255.0.0

136.2.10.2

1

96.0.0.0

255.0.0.0

96.1.2.3

1

171.73.0.0

255.255.0.0

171.73.6.1

2

85.0.0.0

255.0.0.0

171.73.6.1

171.73.4.9

1

195.83.17.0

255.255.255.0

195.83.17.1

1

Алгоритм определения маршрута.

4.1.16 Межсетевое взаимодействие. Маршрутизация

Противоречие. Как передать пакет ближайшему маршрутизатору, если адрес получателя в IP-пакете изменять нельзя?
Пример пакета для отправки в другую сеть

Схема передачи пакета сквозь сети

4.1.17 Шлюз по умолчанию (gateway)

Обычно в тупиковых сетях и их узлах существует только один путь в другие сети.
Поэтому следует упростить процесс маршрутизации в этих узлах.
Шлюз по умолчанию — адрес порта маршрутизатора, на который отправляется трафик (пакеты), для которого невозможно определить маршрут по адресу получателя.
Шлюз по умолчанию в ОС и ПО может быть определен как отдельная настройка.

Шлюз по умолчанию в таблице маршрутизации

network netmask interface gateway
0.0.0.0 0.0.0.0 <IP> GW IP

Т.к. при наложении маски 0.0.0.0 на любую сеть получится адрес сети 0.0.0.0.

Минимальными настройками узлов для взаимодействия с различными сетями являются:
IP-адрес, маска сети и шлюз по умолчанию.

4.1.18 Протокол сообщений ICMP

НеверныйIP-адрес

Неверный маршрут в таблице маршрутизации.
Проблемы на физическом или канальном уровне сети.
Противоречие. Необходимы определение проблем при передаче данных и обратная связь для отправителя.
ICMP (Internet Control Message Protocol, протокол межсетевых управляющих сообщений) — сетевой протокол, стека TCP/IP. Используется для передачи сообщений об ошибках и других исключительных ситуациях, возникших при передаче данных.
Пакеты ICMP при передаче инкапсулируются в IP-пакеты.

ICMP пакет имеет поля:

  • Тип сообщения (эхо-ответ, адресат недоступен и др.)
  • Код – зависит от типа (Сеть недостижима и т.д.)
  • Контрольная сумма

Например. При прохождении пакета через маршрутизатор, он изменяет в IP-пакете поле TTL (TTL = TTL – 1)

Когда TTL = 0, пакет уничтожается, а отправителю отправляется ICMP сообщение с кодом 11 (превышен TTL).

ICMP не используются в приложениях напрямую.Исключения — утилиты ping и traceroute.

4.1.19 Протоколы и уровни OSI (канальный, сетевой)

4.1.20 Маршрутизатор и его место в стеке OSI

Место маршрутизатора в стеке OSI

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

4.1.21 Протоколы обмена маршрутной информацией

Протоколы обмена маршрутной информацией — протоколы для сбора информации о топологии межсетевых соединений.
Статическая маршрутизация — Администратор сети сам устанавливает маршруты сети.
Простая маршрутизация
Случайная – пакет посылается в первом случайном направлении, кроме исходного.
Лавинная – пакет отсылается всем по направлениям
По предыдущему опыту – строится как в мосту
Адаптивная маршрутизация

Дистанционно-векторные алгоритмы (Ditance Vector Algorithms, DVA) — маршрутизатор периодически распространяет широковещательный вектор по всем известным направлениям. Маршрутизаторы, получающие вектор, наращивают метрику для подсчета расстояния и добавляют информацию об известных им сетях.

Простота; Загружают сеть широковещательным трафиком.

Протокол: RIP

Алгоритмы состояния связей (Link State Algorithms) — широковещательная рассылка посылается только в случае изменения состояния связей. Чтобы понять в каком состоянии связь, маршрутизаторы периодически обмениваются короткими пакетами HELLO.

+Не загружают сеть.

Протоколы: IS-IS(Стек OSI), OSPF(Стек TCP/IP)

4.1.22 Проблемы маршрутизации и передачи данных на сетевом уровне

Проблемы маршрутизации:
Для обновления маршрутов на всех маршрутизаторах сети объективно требуется время.
Новая сеть не сразу будет доступна из любых других сетей. В Интернете на это может уйти сутки.
Статическая маршрутизация не исключает ошибки, в том числе и зацикливание пакетов.
В IP-пакете существует числовое поле TTL, которое уменьшается на 1 после маршрутизации, а при достижении 0 пакет удаляется.
При реальной передаче разные пакеты одного сообщения могут пройти разный путь.
На принимающей стороне необходимо собрать пакеты в правильном порядке.
Проблемы передачи данных на сетевом уровне:
Не гарантирована надежность. На сетевом уровне никак не контролируется надежность доставки сообщений. То есть отправитель никак не информируется об удачной или неудачной доставке пакета.
Отсутствует мультиплексирование прикладных потоков. На сетевом уровне не обеспечивается доставка данных между приложениями. Так как пакет доставляется узлу, а не прикладному приложению.
Нет управления загрузкой сети. На сетевом уровне не регулируется загруженность сети. Никак не регламентируется, сколько пакетов за один раз следует отправлять в сеть.
Для решения обозначенных проблем, необходимо реализовать более высокоуровневые функции.

(1 723 views)