Содержание:

Что такое маршрутизация

Вся цифровая информация передаётся по сети в виде пакетов данных. По пути от отправителя к адресату они проходят через цепочку промежуточных устройств – маршрутизаторов (роутеров) и/или соответственно настроенных компьютеров.

Маршрутизация – это процесс определения пути (сетевого маршрута) для установки соединения между хост-устройствами. Этот путь настраивается как внутри локального устройства, так и на маршрутизаторе.

Построение сетевого маршрута происходит на основе информации из таблиц маршрутизации. Для их формирования применяются протоколы маршрутизации или инструкции сетевого администратора.

Каждая таблица содержит ряд параметров, позволяющих правильно идентифицировать и читать сетевой маршрут. Таблица содержит минимум 5 разделов:

  • Destination (Target). IP-адрес сети назначения – конечной цели для передаваемых данных.
  • Netmask (Genmask). Маска сети.
  • Gateway. IP-адрес шлюза, через который можно добраться до цели.
  • Interface. Адрес сетевого интерфейса, по которому доступен шлюз.
  • Metric. Числовой показатель, задающий предпочтительность маршрута.

Опционально в таблице также может содержаться следующая информация:

  • адрес отправителя (source);
  • размер TCP-окна (window);
  • максимальная величина пакета (MSS) и типы записей.

Как посмотреть таблицу маршрутизации

Таблицу маршрутизации в Linux (например, в популярных серверных ОС типа Ubuntu или CentOS) можно посмотреть с помощью нескольких команд.

Команда route

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

route -n

Команда netstat

Утилита используется для сбора информации о состоянии сетевых соединений. Вывести таблицу можно с помощью команды:

netstat -r

Построение таблицы маршрутизации

Существует несколько основных утилит для настройки таблицы маршрутизации (добавления, обновления, удаления старых и новых маршрутов):

  • Route. Устаревшая утилита, входящая в состав пакета net-tools. Служит для отображения таблицы маршрутизации и построения статических маршрутов.
  • IP Route. Обновленный инструмент, призванный заменить Route. Имеет большую функциональность, по сравнению со своим предшественником.

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

Route

Команда имеет следующий вид:

route [-f] [-p] command -net [destination] netmask [MASK netmask] gw [gateway] metric [METRIC metric] dev [IF interface]

Ключи

  • -f – очистка таблиц от записей всех шлюзов.
  • -p – сохранение маршрута в качестве постоянного при использовании ADD. По умолчанию все маршруты временные и после перезагрузки системы сбрасываются.

Основные опции (command)

  • add – добавление маршрута.
  • del – удаление маршрута.
  • replace – замена маршрута.
  • change – изменение или настройка параметров маршрута.

Обозначения

  • [destination] – адрес сети назначения.
  • [MASK netmask] – маска подсети.
  • [gateway] – адрес шлюза.
  • [METRIC metric] – числовой показатель, задающий предпочтительность маршрута (используется в том случае, если устройство является маршрутизатором).
  • [IF interface] – сетевой интерфейс.

Опции для указания вводных данных

  • -net – целевая сеть.
  • -host – целевой хост.
  • gw – шлюз (Gateway).
  • dev – сетевой интерфейс.
  • netmask – маска подсети.
  • metric – метрика.

IP Route

Команда имеет следующий вид:

ip route command [destination] netmask [MASK netmask] via [gateway] metric [METRIC metric] dev [IF interface]

Основные опции (command)

  • add – добавление маршрута.
  • del – удаление маршрута.
  • replace – замена маршрута.
  • change – изменение или настройка параметров маршрута.

Обозначения

  • [destination] – адрес сети назначения.
  • [MASK netmask] – маска подсети.
  • [gateway] – адрес шлюза.
  • [METRIC metric] – числовой показатель, задающий предпочтительность маршрута (используется в том случае, если устройство является маршрутизатором).
  • [IF interface] – сетевой интерфейс.

Опции для указания вводных данных

  • via – используется в значении «через» для указания шлюза.
  • dev – сетевой интерфейс.
  • netmask – маска подсети.
  • metric – метрика.

Примеры статической маршрутизации

Составление нового маршрута

Можно представить два офиса: A и B. В каждом стоят маршрутизаторы на Linux, которые соединены между собой IP-IP туннелем.

Маршрутизатор A имеет IP-адрес — 192.168.1.1, а маршрутизатор B — 192.168.1.2.

Чтобы подключение к локальной сеть маршрутизатора A стало возможным из локальной сети маршрутизатора B и наоборот, нужно прописать на маршрутизаторе B:

route add -net 172.16.10.0/24 gw 192.168.1.1

Будет произведена установка шлюза «192.168.1.1» для сети «172.16.10.0/24».

Также необходимо прописать на маршрутизаторе A обратный маршрут в локальную сеть маршрутизатора B:

route add -net 172.20.0.0/24 gw 192.168.1.2

Изменение локальной сети

В случае изменения локальной сети маршрутизатора B, необходимо удалить старую запись:

route del -net 172.20.0.0/24 gw 192.168.1.2

А после добавить новый маршрут на маршрутизаторе А:

route add -net 172.20.0.0/24 gw 192.168.1.2

Изменение адреса тоннеля

Если на маршрутизаторе B изменится IP-адрес туннеля, то следует также актуализировать адрес шлюза на маршрутизаторе А:

ip route replace 172.16.10.0/24 via 192.168.1.3

После выполнения команды адрес шлюза для подсети «172.16.10.0/24» будет изменён.

Изменение провайдера

Чтобы перенаправить трафик через другого провайдера («ISP2»), следует изменить маршрут «по умолчанию» («default»):

ip route replace default via 5.215.98.7