Конфигурирование статической маршрутизации по умолчанию

Эта статья одна из статей про работу сетей в Linux. Вы уже знаете, что все данные в сети передаются в виде пакетов, а чтобы компьютер знал куда нужно отправить тот или иной пакет используются IP адреса. Но пакету, перед тем, как он достигнет точки назначения нужно пройти множество компьютеров и маршрутизаторов.

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

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

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

Второй вариант, нужная сеть подключена к другому маршрутизатору (А), и известно, какой маршрутизатор нужен. В этом случае, маршрутизатор D передает пакет на следующий маршрутизатор, который может передать пакет в нужную сеть, такой маршрутизатор называется шлюзом.

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

Третий вариант, пришел пакет для сети, маршрут которой не известен, в этом случае маршрутизатор отбрасывает пакет. В этом отличие работы маршрутизатора от коммутатора, коммутатор отправляет кадр который он не знает куда доставить на все порты, маршрутизатор так не делает. В противном случае составная сеть очень быстро может переполнится мусорными пакетами для которых не известен маршрут доставки.

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

Что нужно знать маршрутизатору для того чтобы решить куда отправить пакет?

Варианты действий маршрутизатора
Варианты действий маршрутизатора
  • Во-первых у маршрутизатора есть несколько интерфейсов, к которым подключены сети. Нужно определить в какой из этих интерфейсов отправлять пакет.
  • Затем нужно определить, что именно делать с этим пакетом. Есть 2 варианта, можно передать пакет в сеть (), либо можно передать его на один из маршрутизаторов подключенные к этой сети. Если передавать пакет на маршрутизатор, то нужно знать, какой именно из маршрутизаторов подключенных к этой сети, выбрать для передачи пакета.
Варианты действий маршрутизатора
Варианты действий маршрутизатора

Конфигурирование конечных узлов и верификация сети

Для включения в работу сети конечных узлов (host) необходимо на них установить ряд параметров: IP-адрес узла, маску, адрес шлюза. Функцию шлюзов, через которые узлы передают пакеты в сеть и получают сообщения из сети, выполняют интерфейсы f0/0 каждого маршрутизатора (). Технология задания IP-адреса, маски и адрес шлюза приведена на рис.8.2.

Читайте также:  Способы проверки оперативной памяти компьютера на работоспособность

При работе с пакетом Packet Tracer задание параметров узла производится следующим образом:

  1. «Кликнуть» конфигурируемый узел, например, первый узел Сети 1.

  2. Во всплывшем окне выбрать опцию «Desktop», затем «IP Configuration» и затем в новом окне установить IP-адрес узла, маску подсети и адрес шлюза в соответствии с табл. 11.1.

Для проверки работоспособности сети «кликнуть» конфигурируемый узел, во всплывшем окне выбрать «Desktop», затем «Command Prompt», при этом реализуется режим командной строки. Тестирование проводится с помощью команд ping и tracert. На показан пример тестирования адресов и с первого узла (IP-адрес ) Сети 1.

Рис. 11.2. Примеры выполнения команды ping в программе Packet Tracer

По команде ping посылается ряд (четыре) запросов и принимаются ответы (Reply). В первом примере тестирование проводилось интерфейса f0/0 маршрутизатора D (IP-адрес ). Получены все 4 ответа, при этом указана длина пакета и время от посылки запроса до получения ответа. Во втором примере () проводилась проверка узла Первый ответ на запрос не был получен (превышено время ожидания – Request time out), остальные три ответа успешно получены.

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

Рис. 11.3. Пример выполнения команды ping на реальном компьютере

Ниже приведен тот же пример с использованием программы Packet Tracer

Рис. 11.4. Выполнение команды ping в программе Packet Tracer

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

Рис. 11.5. Пример выполнения команды tracert

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

Перед тем как что-либо менять, нужно понять какие правила уже используются. В Linux для этого существует несколько команд. Чтобы посмотреть таблицу маршрутизации можно использовать команду route:

route

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

Вот так выглядит таблица маршрутизации linux. Тут выводится достаточно простая информация, которой не всегда достаточно чтобы понять суть дела. Более подробно можно посмотреть с помощью команды routel:

routel

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

Тут вы уже можете видеть IP адрес цели (target), IP адрес шлюза (gateway), IP отправителя (source), протокол, и даже сетевой интерфейс. Но самый удобный способ посмотреть таблицу маршрутизации linux — это команда ip:

ip route

Вывод похож на результат предыдущей команды, но выглядит не совсем привычно, это потому, что вывод команды можно использовать в качестве аргумента для ip route add или ip route del. Это очень удобно. Как вы видите, в качестве шлюза по умолчанию везде используется Рассмотрим подробнее что означает вывод этой команды:

Как посмотреть таблицу маршрутизации
  • default — в данной строке означает вариант по умолчанию. Здесь должен быть ip адрес цели или маска подсети;
  • via — указывает через какой шлюз мы можем добраться до этой цели, у нас это ;
  • dev enp2s0 — сетевой интерфейс, с помощью которого будет доступен этот шлюз;
  • proto static — означает, что маршрут был установлен администратором, значение kernel значит что он был установлен ядром;
  • metric — это приоритет маршрута, чем меньше значение — тем выше приоритет.

А теперь рассмотрим выполняется настройка маршрутов Linux.

Route

И наконец, одна из основополагающих утилит маршрутизации — команда route. С ее помощью пользователь может прописать, удалить или отредактировать все статические маршруты на используемом компьютере. Для вывода текущей таблицы маршрутизации необходимо выполнить в командной строке команду route print. В результате в виде таблицы будет выведена вся информация о текущих интерфейсах и таблица маршрутизации. Поскольку в этой статье мы рассматриваем только протокол IPv4, таблице маршрутизации для протокола IPv6 внимание уделяться не будет.

Для каждого из маршрутов, помимо назначения и шлюза, через который пакет от компьютера попадает к маршруту, в таблице маршрутизации есть такое понятие, как метрика. Метрика позволяет создать приоритет среди одинаковых маршрутов в зависимости от используемого интерфейса подключения. Например, есть VPN-подключение, которое выпускает компьютер в Интернет, и локальное подключение к сети. По умолчанию в операционной системе Windows приоритет, то есть метрика, подключения к VPN-серверу имеет меньшее значение, что подразумевает более высокий приоритет для прохождения пакета. Для VPN-подключения метрика маршрутов будет 25, а для локального соединения — 200. Соответственно если пакет не может достичь точки назначения при прохождении через VPN-канал, то он отправляется по интерфейсу, который имеет меньший приоритет (метрику).

Добавление маршрута осуществляется через команду:

route add ip mask gateway metric x if y,

где ip — адрес или сеть назначения, mask — маска подсети, gateway — шлюз, через который пакет будет идти к месту назначения, x — числовое значение метрики маршрута, y — порядковый номер интерфейса. Тут стоит обратить внимание на некоторые особенности. Шлюз gateway должен располагаться в той же подсети, что и сетевой адаптер, через который производится подключение. Если в качестве адреса назначения указывается конкретный IP-адрес, то можно не указывать маску подсети, так как она во всех случаях будет иметь вид Отметим, что добавление ключа –p в конце строки означает, что маршрут будет прописан в качестве постоянного и останется в таблице маршрутизации даже после перезагрузки. Если интерфейс if не задан, система попытается определить наилучший интерфейс для добавляемого маршрута.

Удаление маршрута происходит через команду:

route delete ip,

где ip — адрес назначения, прописанный в таблице маршрутизации.

Модификация маршрута производится по команде:

route change ip mask gateway metric x if y,

где ip — адрес или сеть назначения, mask — маска подсети, gateway — шлюз, через который пакет будет идти к месту назначения, x — числовое значение метрики маршрута, а y — порядковый номер интерфейса. Модификация маршрута может производиться только в случае смены шлюза или/и метрики интерфейса.

С помощью команды route print 192.* будут выведены все маршруты, начинающиеся с IP-адресов 192.*.*.* Также можно вывести маршруты, относящиеся, например, к сети , — route print *

Для полной очистки таблицы маршрутизации применяется команда route –f. Однако не следует злоупотреблять ею, поскольку в большинстве случаев после выполнения этой команды ваша сеть окажется неработоспособной.

КомпьютерПресс 6’2008