itmo_conspects

Лекция 7. Соединение IP сетей

Как же пакеты узнают путь, через какой путь им идти, чтобы достичь узла назначения. Для решения этого есть 2 подхода:

  1. Маршрутизация (Routing)
  2. Трансляция адресов (NAT, Network Address Translation)

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

Маршрутизация - процесс определения маршрута следования информации в сетях связи. Чтобы такое провернуть, нужно:

Сеть представляет собой взвешенный граф, поэтому нужен наиболее оптимальный маршрут с наименьшими задержкой, потерей пакетов, длиной, нагруженностью и стоимостью

Маршрутизацией занимаются маршрутизатор, они бывают:

Для осуществления маршрутизации маршрутизатор хранит таблицу маршрутизации, в основном она содержит:

В Windows такую таблицу можно посмотреть с помощью команды route print:

===========================================================================
Список интерфейсов
  2...0a 00 27 00 00 02 ......VirtualBox Host-Only Ethernet Adapter
  5...1c 15 e5 cc 68 99 ......Qualcomm WCN685x Wi-Fi 6E Dual Band Simultaneous (DBS) WiFiCx Network Adapter
 13...2e 15 e5 cc 68 98 ......Bluetooth Device (Personal Area Network)
  1...........................Software Loopback Interface 1
 57...fa 11 c7 9f 1e 89 ......Hyper-V Virtual Ethernet Adapter
===========================================================================

IPv4 таблица маршрута
===========================================================================
Активные маршруты:
Сетевой адрес           Маска сети      Адрес шлюза       Интерфейс  Метрика
          0.0.0.0          0.0.0.0      203.0.113.1    203.0.113.199   9257
          0.0.0.0          0.0.0.0     198.18.108.1     172.28.18.50     35
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    331
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    331
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    331
        192.0.0.0    255.255.240.0         On-link        192.0.0.50    291
       192.0.0.50  255.255.255.255         On-link        192.0.0.50    291
      192.0.0.255  255.255.255.255         On-link        192.0.0.50    291
     198.18.108.0    255.255.255.0         On-link      198.18.108.1    281
     198.18.108.1  255.255.255.255         On-link      198.18.108.1    281
   198.18.108.255  255.255.255.255         On-link      198.18.108.1    281
      203.0.113.0        255.0.0.0         On-link     203.0.113.199    257
    203.0.113.199  255.255.255.255         On-link     203.0.113.199    257
    203.0.113.255  255.255.255.255         On-link     203.0.113.199    257
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    331
        224.0.0.0        240.0.0.0         On-link      198.18.108.1    281
        224.0.0.0        240.0.0.0         On-link     203.0.113.199    257
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    331
  255.255.255.255  255.255.255.255         On-link        192.0.0.50    291
  255.255.255.255  255.255.255.255         On-link      198.18.108.1    281
  255.255.255.255  255.255.255.255         On-link     203.0.113.199    257
===========================================================================
Постоянные маршруты:
  Сетевой адрес            Маска    Адрес шлюза      Метрика
          0.0.0.0          0.0.0.0      203.0.113.1    9256
===========================================================================

IPv6 таблица маршрута
===========================================================================
Активные маршруты:
 Метрика   Сетевой адрес            Шлюз
  1    331 ::1/128                  On-link
  1    331 ff00::/8                 On-link
===========================================================================
Постоянные маршруты:
  Отсутствует

В Linux такую таблицу можно посмотреть командой route. В ней будут присутствовать для каждой записи флаги:

Маршруты при отправке выбираются так:

Далее по шлюзу выбранной записи из таблицы отправляется пакет


Таблицы бывают статическими, динамическими внутренними и динамическими внешними

Один из старых протоколов RIP2 используется для обмена таблиц маршрутизации между роутерами. Работает он довольно просто:

  1. Роутеры подключаются, формируют базовую таблицу маршрутизации на основе соседей
  2. Один из роутеров передает всем подключенным узлам свою таблицу
  3. Далее другой роутер принимает ее, объединяет со своей и удаляет дубликаты с большей метрикой

Проблемой RIP2 является то, что любая связь имеет вес 1, то есть маршрут является коротким, если он состоит из меньшего числа узлов, а не из большей пропускающей способности каналов и нагруженности

Максимальная метрика равна 16 - тогда считается, что маршрут недоступен

Проблемы RIP2 решились протоколом OSPF, который использует алгоритм Дейкстры для поиска путей

Трансляция адресов

Трансляция адресов (Network Address Translation, NAT) обеспечивает связь хостов из немаршрутизируемой сети во внешнюю IP-Сеть. Трансляция бывает:

Трансляция также бывает в виде публикации адреса, клиентского NAT и публикации порта

Клиентский NAT