Шлюз по умолчанию

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

Назначение

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

В домашней или небольшой офисной сети роль шлюза по умолчанию обычно выполняет устройство, например, DSL-маршрутизатор или кабельный маршрутизатор, соединяющее локальную сеть с Интернетом. Это устройство служит шлюзом по умолчанию для всех устройств в сети.

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

Примеры

Одиночный маршрутизатор

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

  • 192.168.4.3
  • 192.168.4.4
  • 192.168.4.5
  • 192.168.4.6
  • 192.168.4.7
  • 192.168.4.8

Внутренний адрес маршрутизатора:

  • 192.168.4.1

В качестве маски подсети используется:

  • 255.255.255.0 (/24 в обозначении CIDR)

Диапазон адресов для рабочих станций: от 192.168.4.1 до 192.168.4.254. В TCP/IP адрес 192.168.4.0 зарезервирован для идентификатора сети, а 192.168.4.255 — для широковещательных пакетов.

Компьютеры отправляют пакеты на адреса из этого диапазона напрямую, определяя MAC-адрес назначения с помощью протокола ARP, после чего IP-пакет инкапсулируется в MAC-кадр с адресом выбранного хоста.

Если пакет должен быть отправлен за пределы этого диапазона — например, на адрес 192.168.12.3 — его нельзя доставить напрямую. Такой пакет отправляется на шлюз по умолчанию, чтобы он был далее переслан к месту назначения. В этом примере шлюз по умолчанию имеет IP-адрес 192.168.4.1; этот адрес разрешается в MAC-адрес стандартным ARP-запросом. Сам IP-адрес назначения (например, 192.168.12.3) при этом не изменяется, но MAC-адрес следующего узла (next-hop) будет адресом шлюза, а не конечного получателя.

Несколько маршрутизаторов

В другом примере сеть с тремя маршрутизаторами и тремя хостами соединена с Интернетом через Router1. IPv4-адреса компьютеров:

undefined
  • PC1: 10.1.1.100, шлюз по умолчанию — 10.1.1.1
  • PC2: 172.16.1.100, шлюз по умолчанию — 172.16.1.1
  • PC3: 192.168.1.100, шлюз по умолчанию — 192.168.1.96

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

Router1:

  • Интерфейс 1: 5.5.5.2 (публичный IP)
  • Интерфейс 2: 10.1.1.1

Router2:

  • Интерфейс 1: 10.1.1.2
  • Интерфейс 2: 172.16.1.1

Router3:

  • Интерфейс 1: 10.1.1.3
  • Интерфейс 2: 192.168.1.96

Маска сети во всех сегментах: 255.255.255.0 (/24 в обозначении CIDR). Если маршрутизаторы не используют маршрутизирующий протокол для автоматического определения сетей, к которым они подключены, таблицы маршрутизации должны быть настроены вручную.

Router1

Идентификатор сети Маска сети Шлюз Интерфейс (например) Стоимость маршрута (уменьшает TTL)
0.0.0.0 (маршрут по умолчанию) 0.0.0.0 Назначается провайдером (например, 5.5.5.1) eth0 (первый Ethernet-адаптер) 10
10.1.1.0 255.255.255.0 10.1.1.1 eth1 (второй Ethernet-адаптер) 10
172.16.1.0 255.255.255.0 10.1.1.2 eth1 (второй Ethernet-адаптер) 10
192.168.1.0 255.255.255.0 10.1.1.3 eth1 (второй Ethernet-адаптер) 10

Router2

Идентификатор сети Маска сети Шлюз Интерфейс (например) Стоимость маршрута (уменьшает TTL)
0.0.0.0 (маршрут по умолчанию) 0.0.0.0 10.1.1.1 eth0 (первый Ethernet-адаптер) 10
172.16.1.0 255.255.255.0 172.16.1.1 eth1 (второй Ethernet-адаптер) 10

Router3

Идентификатор сети Маска сети Шлюз Интерфейс (например) Стоимость маршрута (уменьшает TTL)
0.0.0.0 (маршрут по умолчанию) 0.0.0.0 10.1.1.1 eth0 (первый Ethernet-адаптер) 10
192.168.1.0 255.255.255.0 192.168.1.96 eth1 (второй Ethernet-адаптер) 10

Router2 управляет своими сетями и шлюзом по умолчанию; Router3 аналогично управляет своими сетями; Router1 управляет всеми маршрутами внутри внутренних сетей.

Доступ к внутренним ресурсам
Если ПК2 (172.16.1.100) должен обратиться к ПК3 (192.168.1.100), а у ПК2 нет собственного маршрута к 192.168.1.100, то пакеты будут отправляться на шлюз по умолчанию (Router2). Router2 также не знает путь к ПК3, поэтому передаёт пакеты своему шлюзу по умолчанию (Router1). Router1 имеет маршрут к нужной сети (192.168.1.0/24), поэтому отправляет пакеты на Router3, который доставляет их ПК3. Ответ идёт по обратному пути.
Доступ к внешним ресурсам
Если любой из компьютеров захочет получить доступ к веб-странице в Интернете, например, https://en.wikipedia.org/, адрес сначала будет разрешён с помощью DNS. Например, IP-адрес может быть 91.198.174.2. В этом случае ни один из внутренних маршрутизаторов не знает маршрут к этому адресу, поэтому пакет будет отправляться через шлюз Router1 или по маршруту по умолчанию[1]. Каждый маршрутизатор на пути пакета до получателя проверяет, соответствует ли IP-адрес назначения какой-либо известной сети; если совпадения нет, пакет пересылается на шлюз по умолчанию. Каждый маршрутизатор фиксирует идентификатор пакета и адрес отправителя, чтобы вернуть ответный пакет обратно. В пакете содержится только адрес отправителя и получателя, а не список всех маршрутизаторов по пути. Наконец пакет вернётся к Router1, который найдёт подходящий идентификатор и маршрутизирует его дальше: через Router2, Router3 или прямо к ПК1, если тот находится в том же сегменте.
Пакет не возвращается
Если в таблице маршрутизации Router1 нет записи для 192.168.1.0/24, а ПК3 пытается обратиться к ресурсу вне своей сети, исходящая маршрутизация сработает вплоть до этапа возврата ответа на Router1. Поскольку маршрут неизвестен Router1, он отправит ответ на свой внешний шлюз по умолчанию, и пакет не попадёт обратно к Router3. На сервере-ресурсе запрос можно отслеживать, но отправитель не получит ответа. Пакет будет уничтожен, если значение TTL уменьшится до 0 при прохождении промежуточных маршрутизаторов, либо маршрутизатор отбросит пакет с частным IP-адресом. Это можно обнаружить с помощью утилиты PathPing в Microsoft Windows или MTR в UNIX-подобных системах — пинг завершится на маршрутизаторе, для которого нет подходящего маршрута. (Некоторые маршрутизаторы могут не отвечать на ping-запросы.)

Утилиты

Определить шлюз по умолчанию позволяют различные вспомогательные утилиты. В Windows можно использовать команду ipconfig[2], в Unix-системах — ifconfig или netstat[3], а в Linux инструмент netstat был заменён на iproute2[4].[5]

Примечания

Ссылки