Для чего нужна маршрутизация роутера

Всем привет! Статическая маршрутизация – это по сути специальный выделенный путь, по которому должен пройти пакет информации из пункта А в пункт Б. Напомню, что у нас в сети чаще всего встречаются два устройства: маршрутизаторы и коммутаторы. Напомню, что коммутаторы работают на канальном уровне, а маршрутизаторе на сетевом. Далее я коротко расскажу, про Static Route и как это настроить на домашнем устройстве.

Содержание

  1. Коротко про маршрутизацию
  2. ШАГ 1: Заходим в настройки роутера
  3. ШАГ 2: Настройка
  4. TP-Link
  5. D-Link
  6. ASUS
  7. ZyXEL Keenetic
  8. Netis
  9. Tenda
  10. Задать вопрос автору статьи

Коротко про маршрутизацию

Маршрутизатор, исходя из названия, имеет у себя таблицу маршрутизации, а коммутатор коммутации. Все логично, не правда ли. Но есть небольшая проблема коммутации. Представим, что у нас есть две сети по 250 машин и между ними стоят 2 свича.

Статический маршрут на примере домашних роутеров

Если вы помните в таблице коммутации содержатся MAC-адреса. Да они уникальны, поэтому для работы сети нужно, чтобы каждый свич знал, как минимум 500 таких адресов, что не так мало. И тут встает проблема масштабируемости сети, при добавлении новых машин.

Статический маршрут на примере домашних роутеров

А что если установить вместо коммутаторов маршрутизаторы. В итоге у нас есть две сети:

  • 192.168.1.0/24
  • 192.168.2.0./24

И чтобы пакету добраться из одной сети в другую, нужна одна запись в таблице маршрутизации, а именно о соседнем роутере, который уже в свою очередь знает компьютеры «из своего района». Это и удобно, и экономично в плане хранения нужной информации, так как не нужно хранить таблицу из MAC-адресов всех участников сети.

СОВЕТ! Для большей картины понимания самой темы, советую почитать дополнительные материалы про то, что такое маршрутизатор, коммутатор и про модель OSI.

И тут у нас появляются два понятия:

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

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

Статический маршрут на примере домашних роутеров

Смотрим на картинку выше. У нас есть второй роутер (router 2), который имеет доступ к интернету (он же является основным шлюзом). У нас есть компьютер (PC), который подключен сначала к коммутатору. Коммутатор подключен к двум роутерам.

Проблема в том, что ПК должен иметь доступ к серверу (172.30.30.1), но при запросе на router 2, у него в таблице маршрутизации нет данных об этих серверах. Теперь давайте попробуем вписать эти настройки в маршрутизатор.

ШАГ 1: Заходим в настройки роутера

Вот мы и перешли непосредственно к настройке статической маршрутизации. Подключаемся к сети интернет-центра через кабель или по Wi-Fi. Далее нужно ввести DNS или IP-адрес роутера в адресную строку любого браузера. Настройку мы будем делать через Web-интерфейс. Подсказка: адрес можно подсмотреть на этикетке под корпусом аппарата. Чаще всего используют адреса:

  • 192.168.1.1
  • 192.168.0.1

Если вы ранее его настраивали, вводим логин и пароль – их также можно подсмотреть на той же самой бумажке. Чаще всего используют комбинации:

  • adminadmin
  • admin – *Пустая строка*

Если есть проблемы со входом в роутер, то смотрим инструкцию тут.

ШАГ 2: Настройка

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

  • IP адрес назначения – у нас это IP нашего конкретного сервера, к которому мы хотим пробиться через наш 1-ый роутер (172.30.30.1).
  • Маска подсети – указываем 255.255.255.0.
  • Шлюз – это IP того роутера, который имеет доступ к серверу. В примере это 192.168.0.2 (Второй маршрутизатор).
  • Интерфейс – в некоторых настройках нужно будет указывать еще и его. Если доступ к шлюзу идет через интернет, то указываем WAN. Если же вы подключены к нему через LAN порт (как в нашем примере), то указываем его.

Надеюсь я примерно объяснил, как именно статический маршрут нужно заполнять. Теперь приступим непосредственно к практике. Смотрите главу по своей модели.

TP-Link

Старая прошивка

Слева находим раздел «Дополнительные настройки маршрутизации», и в открывшемся списке нажимаем по пункту «Список статических маршрутов». Нажимаем по кнопке «Добавить».

Статический маршрут на примере домашних роутеров

Вписываем данные.

Статический маршрут на примере домашних роутеров

Новая прошивка

«Дополнительные настройки» – «Сеть» – «Расширенные настройки маршрутизации». Нажимаем по плюсику и вписываем нужную информацию.

Статический маршрут на примере домашних роутеров

D-Link

В классическом светлом интерфейсе нужно перейти в «Дополнительно» и нажать по «Маршрутизации».

Статический маршрут на примере домашних роутеров

В темной прошивке все делается также, только сначала нужно перейти в «Расширенные настройки».

Статический маршрут на примере домашних роутеров

Добавляем правило.

Статический маршрут на примере домашних роутеров

ASUS

Переходим в раздел «Локальная сеть», открываем вкладку «Маршруты» и вписываем наши данные. В конце не забудьте нажать на плюсик, правее таблички и нажать на кнопку «Применить».

Статический маршрут на примере домашних роутеров

ZyXEL Keenetic

Новая прошивка

Переходим на страницу «Маршрутизации» и нажимаем по кнопке добавления правила.

Статический маршрут на примере домашних роутеров

Теперь вводим данные:

Статический маршрут на примере домашних роутеров

  • Тип маршрута – тут нужно указывать тот тип, который вам нужен. Если исходить из задачи, которую указал я, то мы указываем «Маршрут узла».
  • Адрес сети назначения – указываем адрес сервера. В нашем случае это 30.30.1.
  • Маска подсети – 255.255.255.0.
  • Адрес шлюза – адрес роутера, который подключен к нашему серверу. 192.168.0.2.
  • Интерфейс – указываем тот интерфейс, который мы будем использовать для связи. В нашем примере пакеты пойдут локально через LAN порт, поэтому указываем LAN.

Старая прошивка

Нажимаем по значку плакетки в самом низу и переходим на вкладку «Маршруты». Нажимаем по кнопке добавления и вводим нужные вам данные.

Статический маршрут на примере домашних роутеров

Добавление целого списка маршрутов

Кстати тут вы можете загрузить сразу целую таблицу маршрутизации. Для этого выбираем в том же разделе другую кнопку.

Статический маршрут на примере домашних роутеров

Статический маршрут на примере домашних роутеров

Файлик должен иметь расширение типа BAT. И иметь вид как на скрине ниже. Его спокойно можно создать в блокноте.

Статический маршрут на примере домашних роутеров

Вид достаточно простой:

route ADD IP-адрес назначения MASK указываем маску указываем адрес шлюза

Пример:

route ADD 172.30.30.1 MASK 255.255.255.0 192.168.0.2

ПРИМЕЧАНИЕ! Каждый новый адрес должен начинаться с новой строки, а после последнего указанного IP не должен стоять пробел.

Netis

Переходим в раздел «Advanced» (кнопкам в правом верхнем углу) – «Расширенные» – «Статический маршрут.» – вводим каждый пункт и нажимаем по кнопке «Добавить».

Статический маршрут на примере домашних роутеров

Tenda

Нужный нам пункт находится в разделе «Расширенные настройки».

Статический маршрут на примере домашних роутеров

Статический маршрут на примере домашних роутеров

Сети для самых маленьких. Часть третья. Статическая маршрутизация

Время на прочтение
28 мин

Количество просмотров 543K

Мальчик сказал маме: “Я хочу кушать”. Мама отправила его к папе.
Мальчик сказал папе: “Я хочу кушать”. Папа отправил его к маме.
Мальчик сказал маме: “Я хочу кушать”. Мама отправила его к папе.
И бегал так мальчик, пока в один момент не упал.
Что случилось с мальчиком? TTL кончился.

Итак, поворотный момент в истории компании “Лифт ми Ап”. Руководство понимает, что компания, производящая лифты, едущие только вверх, не выдержит борьбы на высококонкурентном рынке. Необходимо расширять бизнес. Принято решение о покупке двух заводов: в Санкт-Петербурге и Кемерово.
Нужно срочно организовывать связь до новых офисов, а у вас ещё даже локалка не заработала.
Сегодня:
1. Настраиваем маршрутизацию между вланами в нашей сети (InterVlan routing)
2. Пытаемся разобраться с процессами, происходящими в сети, и что творится с данными.
3. Планируем расширение сети (IP-адреса, вланы, таблицы коммутации)
4. Настраиваем статическую маршрутизацию и разбираемся, как она работает.
5. Используем L3-коммутатор в качестве шлюза

Содержание:

  • InterVlan Routing
  • Планирование расширения
  • … IP-план
  • Принципы маршрутизации
  • Настройка
  • … Москва. Арбат
  • … Провайдер
  • … Санкт-Петербург. Васильевский остров
  • … Санкт-Петербург. Озерки
  • … Кемерово. Красная горка
  • Дополнительно
  • Материалы выпуска

InterVlan Routing

Чуточку практики для взбадривания.
В предыдущий раз мы настроили коммутаторы нашей локальной сети. На данный момент устройства разных вланов не видят друг друга. То есть фактически ФЭО и ПТО, например, находятся в совершенно разных сетях и не связаны друг с другом. Так же и серверная сеть существует сама по себе. Надо бы исправить эту досадную неприятность.
В нашей московской сети для маршрутизации между вланами мы будем использовать роутер cisco 2811. Иными словами он будет терминировать вланы. Кадры здесь заканчивают свою жизнь: из них извлекаются IP-пакеты, а заголовки канального уровня отбрасываются.

Процесс настройки маршрутизатора очень прост:

0) Сначала закончим с коммутатором msk-arbat-dsw1. На нём нам нужно настроить транковый порт в сторону маршрутизатора, чего мы не сделали в прошлый раз.

msk-arbat-dsw1(config)#interface FastEthernet0/24
msk-arbat-dsw1(config-if)# description msk-arbat-gw1
msk-arbat-dsw1(config-if)# switchport trunk allowed vlan 2-3,101-104
msk-arbat-dsw1(config-if)# switchport mode trunk

1) Назначаем имя маршрутизатора командой hostname, а для развития хорошего тона, надо упомянуть, что лучше сразу же настроить время на устройстве. Это поможет вам корректно идентифицировать записи в логах.

Router0#clock set 12:34:56 7 august 2012
Router0# conf t
Router0(config)#hostname msk-arbat-gw1

Желательно время на сетевые устройства раздавать через NTP (любую циску можно сделать NTP-сервером, кстати)

2) Далее переходим в режим настройки интерфейса, обращённого в нашу локальную сеть и включаем его, так как по умолчанию он находится в состоянии Administratively down.

msk-arbat-gw1(config)#interface fastEthernet 0/0
msk-arbat-gw1(config-if)#no shutdown

3) Создадим виртуальный интерфейс или иначе его называют подинтерфейс или ещё сабинтерфейс (sub-interface).

msk-arbat-gw1(config)#interface fa0/0.2
msk-arbat-gw1(config-if)#description Management

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

4) Теперь вспомним о стандарте 802.1q, который описывает тегирование кадра меткой влана. Следующей командой вы обозначаете, что кадры, исходящие из этого виртуального интерфейса будут помечены тегом 2-го влана. А кадры, входящие на физический интерфейс FastEthernet0/0 с тегом этого влана будут приняты виртуальным интерфейсом FastEthernet0/0.2.

msk-arbat-gw1(config-if)#encapsulation dot1Q 2

5) Ну и как на обычном физическом L3-интерфейсе, определим IP-адрес. Этот адрес будет шлюзом по умолчанию (default gateway) для всех устройств в этом влане.

msk-arbat-gw1(config-if)#ip address 172.16.1.1 255.255.255.0

Аналогичным образом настроим, например, 101-й влан:

msk-arbat-gw1(config)#interface FastEthernet0/0.101
msk-arbat-gw1(config-if)#description PTO
msk-arbat-gw1(config-if)#encapsulation dot1Q 101
msk-arbat-gw1(config-if)#ip address 172.16.3.1 255.255.255.0

и теперь убедимся, что с компьютера из сети ПТО мы видим сеть управления:

Работает и отлично, настройте пока все остальные интерфейсы. Проблем с этим возникнуть не должно.

Физика и логика процесса межвланной маршрутизации

Что происходит в это время с вашими данными?

Мы рассуждали в прошлый раз, что происходит, если вы пытаетесь связаться с устройством из той же самой подсети, в которой находитесь вы.
Под той же самой подсетью мы понимаем следующее.
Например, на вашем компьютере настроено следующее:
IP: 172.16.3.2
Mask: 255.255.255.0
GW: 172.16.3.1

Все устройства, адреса которых будут находиться в диапазоне 172.16.3.1-172.16.3.254 с такой же маской, как у вас будут являться членами вашей подсети. Что происходит с данными, если вы отправляет их на устройство с адресом из этого диапазона?
Повторим это с некоторыми дополнениями.
Для отправки данных они должны быть упакованы в Ethernet-кадр, в заголовок которого должен быть вставлен MAC-адрес удалённого устройства. Но откуда его взять?
Для этого ваш компьютер рассылает широковещательный ARP-запрос. В качестве IP-адреса узла назначения в IP-пакет с этим запросом будет помещён адрес искомого хоста. Сетевая карта при инкапсуляции указывает MAC-адрес FF:FF:FF:FF:FF:FF — это значит, что кадр предназначен всем устройствам. Далее он уходит на ближайший коммутатор и копии рассылаются на все порты нашего влана (ну, кроме, конечно, порта, из которого получен кадр). Получатели видят, что запрос широковещательный и они могут оказаться искомым хостом, поэтому извлекают данные из кадра. Все те устройства, которые не обладают указанным в ARP-запросе IP-адресом, просто игнорируют запрос, а вот устройство-настоящий получатель ответит на него и вышлет первоначальному отправителю свой MAC-адрес. Отправитель (в данном случае, наш компьютер) помещает полученный MAC в свою таблицу соответствия IP и MAC адресов ака ARP-кэш. Как выглядит ARP-кэш на вашем компьютере прямо сейчас, вы можете посмотреть с помощью команды arp -a

Потом ваши полезные данные упаковываются в IP-пакет, где в качестве получателя ставится тот адрес, который вы указали в команде/приложении, затем в Ethernet-кадр, в заголовок которого помещается полученный ARP-запросом MAC-адрес. Далее кадр отправляется на коммутатор, который согласно своей таблице MAC-адресов, решает, в какой порт его переправить дальше.

Но что происходит, если вы пытаетесь достучаться до устройства в другом влане? ARP-запрос ничего не вернёт, потому что широковещательные L2 сообщения кончаются на маршрутизаторе(т.е., в пределах широковещательного L2 домена), нужная сеть находится за ним, а коммутатор не пустит кадры из одного влана в порт другого. И вот для этого нужен шлюз по умолчанию (default gateway) на вашем компьютере.
То есть, если устройство-получатель в вашей же подсети, кадр просто отправляется в порт с мак-адресом конечного получателя. Если же сообщение адресовано в любую другую подсеть, то кадр отправляется на шлюз по умолчанию, поэтому в качестве MAC-адреса получателя подставится MAC-адрес маршрутизатора.

Проследим за ходом событий.

1) ПК с адресом 172.16.3.2/24 хочет отправить данные компьютеру с адресом 172.16.4.5.

Он видит, что адрес из другой подсети, следовательно, данные должны уйти на шлюз по умолчанию. Но в таком случае, ПК нужен MAC-адрес шлюза. ПК проверяет свой ARP-кэш в поисках соответствия IP-адрес шлюза — MAC-адрес и не находит нужного

2) ПК отправляет широковещательный ARP-запрос в локальную сеть. Структура ARP-запроса:
— на канальном уровне в качестве получателя — широковещательный адрес ( FF:FF:FF:FF:FF:FF), в качестве отправителя — MAC-адрес интерфейса устройства, пытающегося выяснить IP
— на сетевом — собственно ARP запрос, в нем содержится информация о том, какой IP и кем ищется.

3) Коммутатор, на который попал кадр, рассылает его копии во все порты этого влана (того, которому принадлежит изначальный хост), кроме того, откуда он получен.

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

5) Распаковав кадр, все хосты, кроме маршрутизатора, видят, что в ARP-запросе не их адрес. А маршрутизатор посылает unicast’овый ARP-ответ со своим MAC-адресом.

6) Изначальный хост получает ARP-ответ, теперь у него есть MAC-адрес шлюза. Он формирует пакет из тех данных, что ему нужно отправить на 172.16.4.5. В качестве MAC-адреса получателя ПК ставит адрес шлюза. При этом IP-адрес получателя в пакете остаётся 172.16.4.5

7) Кадр посылается в сеть, коммутаторы доставляют его на маршрутизатор.

8) На маршрутизаторе, в соответствии с меткой влана, кадр принимается конкретным сабинтерфейсом. Данные канального уровня откидываются.

9) Из заголовка IP-пакета, рутер узнаёт адрес получателя, а из своей таблицы маршрутизации видит, что тот находится в непосредственно подключенной к нему сети на определённом сабинтерфейсе (в нашем случае FE0/0.102).

C 172.16.0.0/24 is directly connected, FastEthernet0/0.3
C 172.16.1.0/24 is directly connected, FastEthernet0/0.2
C 172.16.2.16/30 is directly connected, FastEthernet0/1.5
C 172.16.3.0/24 is directly connected, FastEthernet0/0.101
C 172.16.4.0/24 is directly connected, FastEthernet0/0.102
C 172.16.5.0/24 is directly connected, FastEthernet0/0.103
C 172.16.6.0/24 is directly connected, FastEthernet0/0.104

10) Маршрутизатор отправляет ARP-запрос с этого сабинтерфейса — узнаёт MAC-адрес получателя.

11) Изначальный IP-пакет, не изменяясь инкапсулируется в новый кадр, при этом:

— в качестве MAC-адреса источника указывается адрес интерфейса шлюза
— IP-адрес источника — адрес изначального хоста (в нашем случае 172.16.3.2)
— в качестве MAC-адреса получателя указывается адрес конечного хоста
— IP-адрес получателя — адрес конечного хоста (в нашем случае 172.16.4.5)

и отправляется в сеть с сабинтерфейса FastEthernet0/0.102, получая при этом метку 102-го влана.

12) Кадр доставляется коммутаторами до хоста-получателя.

Планирование расширения

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

Будет она вот такой:

То есть прибавляются две точки в Санкт-Петербурге: небольшой офис на Васильевском острове и сам завод в Озерках — и одна в Кемерово в районе Красная горка.

Для простоты у нас будет один провайдер “Балаган Телеком”, который на выгодных условиях предоставит нам L2VPN до обеих точек.
В одном из следующих выпусков мы тему различных вариантов подключения раскроем в красках. А пока вкратце: L2VPN — это, очень грубо говоря, когда вам провайдер предоставляет влан от точки до точки (можно для простоты представить, что они включены в один коммутатор).

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

Ну вот к примеру, скажем, что для офисов в других городах это будет так:

Это весьма упрощённый регламент, но теперь мы во всяком случае точно знаем, что у шлюза всегда будет 1-й адрес, до 12-го мы будем выдавать коммутаторам и всяким wi-fi-точкам, а все сервера будем искать в диапазоне 172.16.х.13-172.16.х.23. Разумеется, по своему вкусу вы можете уточнять регламент вплоть до адреса каждого сервера, добавлять в него правило формирования имён устройств, доменных имён, политику списков доступа и т.д.
Чем точнее вы сформулируете правила и строже будете следить за их выполнением, тем проще разбираться в структуре сети, решать проблемы, адаптироваться к ситуации

и наказывать виновных

.
Это примерно, как схема запоминания паролей: когда у вас есть некое правило их формирования, вам не нужно держать в голове несколько десятков сложнозапоминаемых паролей, вы всегда можете их вычислить.
Вот так же и тут. Я некогда работал в средних размеров холдинге и знал, что если я приеду в офис где-нибудь в забытой коровами деревне, то там точно x.y.z.1 — это циска, x.y.z.2 — дистрибьюшн-свитч прокурва, а x.y.z.101 — компьютер главного бухгалтера, с которого надо дать доступ на какой-нибудь контур-экстерн. Другой вопрос, что надо это ещё проверить, потому что местные ИТшники такого порой наворотят, что слезами омываешься сквозь смех.

Было дело парнишка решил сам управлять всем доступом в интернет (обычно это делал я на маршрутизаторе). Поставил proxy-сервер, случайно поднял на нём NAT и зарулил туда трафик локальной сети, на всех машинах прописав его в качестве шлюза по умолчанию, а потом я минут 20 разбирался, как так: у них всё работает, а мы их не видим.

IP-план

Теперь нам было бы весьма кстати составить IP-план. Будем исходить из того, что на всех трёх точках мы будем использовать стандартную сеть с маской 24 бита (255.255.255.0) Это означает, что в них может быть 254 устройства.

Почему это так? И как вообще понять все эти маски подсетей? В рамках одной статьи мы не сможем этого рассказать, иначе она получится длинная, как палуба Титаника и запутанная, как одесские катакомбы. Крайне рекомендуем очень плотно познакомиться с такими понятиями, как IP-адрес, маска подсети, их представления в двоичном виде и CIDR (Classless InterDomain Routing) самостоятельно. Мы же далее будем только аргументировать выбор конкретного размера сети. Как бы то ни было, полное понимание придёт только с практикой.
Вообще, очень неплохо эта тема раскрыта в этой статье: http://habrahabr.ru/post/129664/

В данный момент (вспомним нулевой выпуск) у нас в Москве использованы адреса 172.16.0.0-172.16.6.255. Предположим, что сеть может ещё увеличиться здесь, допустим, появится офис на Воробьёвых горах и зарезервируем ещё подсети до 172.16.15.0/24 включительно.
Все эти адреса: 172.16.0.0-172.16.15.255 — можно описать так: 172.16.0.0/20. Эта сеть (с префиксом /20) будет так называемой суперсетью, а операция объединения подсетей в суперсети называется суммированием подсетей (суммированием маршрутов, если быть точным, route summarization)

Очень наглядный IP-калькулятор. Я и сейчас им периодически пользуюсь, хотя со временем приходит интуитивное и логическое понимание соответствия между длиной маски и границами сети.

Теперь обратимся к Питеру. В данный момент в этом прекрасном городе у нас 2 точки и на каждой из них подсети /24. Допустим это будут 172.16.16.0/24 и 172.16.17.0/24. Зарезервируем адреса 172.16.18.0-172.16.23.255 для возможного расширения сети.

172.16.16.0-172.16.23.255 можно объединить в 172.16.16.0/21 — в общем-то исходя именно из этого мы и оставляем в резерв именно такой диапазон.

В Кемерово нам нет смысла оставлять такие огромные запасы /21, как в Питере (2048 адресов или 8 подсетей /24), или тем более /20, как в Москве (4096 или 16 подсетей /24). А вот 1024 адреса и 4 подсети /24, которым соответствует маска /22 вполне рационально.

Таким образом сеть 172.16.24.0/22 (адреса 172.16.24.0-172.16.27.255) будет у нас для Кемерово.

Тут надо бы заметить: делать такой запас в общем-то необязательно и то, что мы зарезервировали вполне можно использовать в любом другом месте сети. Нет табу на этот счёт. Однако в крупных сетях именно так и рекомендуется делать и связано это с количеством информации в таблицах маршрутизации.
Понимаете ли дело вот в чём: если у вас несколько подряд идущих подсетей разбросаны по разным концам сети, то каждой из них соответствует одна запись в таблице маршрутизации каждого маршрутизатора. Если при этом вы вдруг используете только статическую маршрутизацию, то это ещё колоссальный труд по настройке и отслеживанию корректности настройки.
А если же они у вас все идут подряд, то несколько маленьких подсетей вы можете суммировать в одну большую.
Поясним на примере Санкт-Петербурга. При настройке статической маршрутизации мы могли бы делать так:

ip route 172.16.16.0 255.255.255.0 172.16.2.2
ip route 172.16.17.0 255.255.255.0 172.16.2.2
ip route 172.16.18.0 255.255.255.0 172.16.2.2
……
ip route 172.16.23.0 255.255.255.0 172.16.2.2

Это 8 команд и 8 записей в таблице. Но при этом пришедший на маршрутизатор пакет в любую из сетей 172.16.16.0/21 в любом случае будет отправлен на устройство с адресом 172.16.2.2.
Вместо этого мы поступим так:

ip route 172.16.16.0 255.255.248.0 172.16.2.2

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

Теперь ещё несколько слов о “линковых” сетях. В среде сетевых администраторов так называются сети точка-точка (Point-to-Point) между двумя маршрутизаторами.
Вот опять же в примере с Питером. Два маршрутизатора (в Москве и в Петербурге) соединены друг с другом прямым линком (неважно, что у провайдера это сотня коммутаторов и маршрутизаторов — для нас это просто влан). То есть кроме вот этих 2-х устройств здесь не будет никаких других. Мы знаем это наверняка. В любом случае на интерфейсах обоих устройств (смотрящих в сторону друг друга) нужно настраивать IP-адреса. И нам точно незачем назначать на этом участке сеть /24 с 254 доступными адресами, ведь 252 в таком случае пропадут почём зря. В этом случае есть прекрасный выход — бесклассовая IP-адресация.

Почему она бесклассовая? Если вы помните, то в нулевой части мы говорили о трёх классах подсетей: А, В и С. По идее только их вы и могли использовать при планировании сети. Бесклассовая междоменная маршрутизация (CIDR) позволяет очень гибко использовать пространство IP-адресов.

Мы просто берём сеть с самой маленькой возможной маской — 30 (255.255.255.252) — это сеть на 4 адреса. Почему мы не можем взять сеть с ещё более узкой маской? Ну 32 (255.255.255.255) по понятными причинам — это вообще один единственный адрес, сеть 31 (255.255.255.254) — это уже 2 адреса, но один из них (первый) — это адрес сети, а второй (последний) — широковещательный. В итоге на адреса хостов у нас и не осталось ничего. Поэтому и берём маску 30 с 4 адресами и тогда как раз 2 адреса остаются на наши два маршрутизатора.

Вообще говоря, самой узкой маской для подсетей в cisco таки является /31. При определённых условиях их можно использовать на P-t-P-линках.
Что же касается маски /32, то такие подсети, которые суть один единственный хост используются для назначения адресов Loopback-интерфейсам.

Именно так мы и поступим. Для этого, собственно, в нулевой части мы и оставили сеть 172.16.2.0/24 — её мы будем дробить на мелкие сетки /30. Всего их получится 64 штуки, соответственно можно назначить их на 64 линка.

Здесь мы поступили так же, как и в предыдущем случае: сделали небольшой резерв для Питера, и резерв для Кемерово. Вообще резерв — это всегда очень хорошо о чём бы мы ни говорили. ;)

Принципы маршрутизации

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

Вот к примеру с компьютера ПК1 — 172.16.3.2 я хочу подключиться по telnet к L3-коммутатору с адресом 172.16.17.1.
Как мой компьютер узнает что делать? Куда слать данные?

1) Как вы уже знаете, если адрес получателя из другой подсети, то данные нужно отправлять на шлюз по умолчанию.

2) По уже известной вам схеме компьютер с помощью ARP-запроса добывает MAC-адрес маршрутизатора.

3) Далее он формирует кадр с инкапсулированным в него пакетом и отсылает его в порт. После того, как кадр отправлен, компьютеру уже по барабану, что происходит с ним дальше.

4) А сам кадр при этом попадает сначала на коммутатор, где решается его судьба согласно таблице MAC-адресов. А потом достигает маршрутизатора RT1.

5) Поскольку маршрутизатор ограничивает широковещательный домен — здесь жизнь этого кадра и заканчивается. Циска просто откидывает заголовок канального уровня — он уже не пригодится — извлекает из него IP-пакет.

6) Теперь маршрутизатор должен принять решение, что с ним делать дальше. Разумеется, отправить его на какой-то свой интерфейс. Но на какой?
Для этого существует таблица маршрутизации, которая есть на любом рутере. Выяснить, что у нас в данный момент находится в таблице маршрутизации, можно с помощью команды show ip route:

172.16.0.0/16 is variably subnetted, 10 subnets, 3 masks
C 172.16.3.0/24 is directly connected, FastEthernet0/0.101
C 172.16.2.0/30 is directly connected, FastEthernet0/1.4
S 172.16.17.0/24 [1/0] via 172.16.2.2

Каждая строка в ней — это способ добраться до той или иной сети.
Вот к примеру, если пакет адресован в сеть 172.16.17.0/24, то данные нужно отправить на устройство с адресом 172.16.2.2.
Таблица маршрутизации формируется из:
— непосредственно подключенных сетей (directly connected) — это сети, которые начинаются непосредственно на нём. В примере 172.16.3.0/24 и 172.16.2.0/30. В таблице они обозначаются буквой C
— статический маршруты — это те, которые вы прописали вручную командой ip route. Обозначаются буквой S
— маршруты, полученные с помощью протоколов динамической маршрутизации (OSPF, EIGRP, RIP и других).

7) Итак, данные в сеть 172.16.17.0 (а мы хотим подключиться к устройству 172.16.17.1) должны быть отправлены на следующий хоп — следующий прыжок, которым является маршрутизатор 172.16.2.2. Причём из таблицы маршрутизации видно, что находится следующий хоп за интерфейсом FE0/1.4 (подсеть 172.16.2.0/30).

8)Если в ARP-кэше циски нет MAC-адреса, то надо снова выполнить ARP-запрос, чтобы узнать MAC-адрес устройства с IP-адресом 172.16.2.2. RT1 посылает широковещательный кадр с порта FE0/1.4. В этом широковещательном домене у нас два устройства, и соответственно только один получатель. RT2 получает ARP-запрос, отбрасывает заголовок Ethernet и, понимая из данных протокола ARP, что искомый адрес принадлежит ему отправляет ARP-ответ со своим MAC-адресом.

9) Изначальный IP-пакет, пришедший на RT1 не меняется, он инкапсулируется в совершенно новый кадр и отправляется в порт FE0/1.4, получая при этом метку 4-го влана.

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

11) Последний маршрутизатор видит, что искомый адрес принадлежит ему самому, а извлекая данные транспортного уровня, понимает, что это телнет и передаёт все данные верхним уровням.

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

Настройка

Каким образом мы организуем каналы связи? Как мы уже сказали выше, в нашем офисе на Арбате есть некий провайдер Балаган-Телеком. Он обещает нам предоставить всё, что мы только захотим почти задарма. И мы заказываем у него две услуги L2VPN, то есть он отдаст нам два влана на Арбате в Москве, и по одному в Питере и Кемерово.
Вообще говоря, номера вланов вам придётся согласовывать с вашим провайдером по той простой причине, что у него они могут быть просто заняты. Поэтому вполне возможно, что у вас будет влан, например, 2912 или 754. Но предположим, что нам повезло, и мы вольны сами выбирать номер.

Москва. Арбат

На циске в Москве у нас два интерфейса, к одному — FE0/0 — уже подключена наша локальная сеть, а второй (FE0/1)мы будем использовать для выхода в интернет и для подключения удалённых офисов.
Как и в самом начале создадим саб-интерфейсы. Выделим для Санкт-Петербурга и Кемерова 4 и 5-й вланы соответственно. IP-адреса берём из нового IP-плана.

msk-arbat-gw1(config)#interface FastEthernet 0/1.4
msk-arbat-gw1(config-subif)#description Saint-Petersburg
msk-arbat-gw1(config-subif)#encapsulation dot1Q 4
msk-arbat-gw1(config-subif)#ip address 172.16.2.1 255.255.255.252

msk-arbat-gw1(config)#interface FastEthernet 0/1.5
msk-arbat-gw1(config-subif)#description Kemerovo
msk-arbat-gw1(config-subif)#encapsulation dot1Q 5
msk-arbat-gw1(config-subif)#ip address 172.16.2.17 255.255.255.252

Провайдер

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

Тут всё просто: принимаем транком линк с Арбата в один порт и с двух других портов отдаём их на удалённые узлы. Ещё раз хотим

подчеркнуть

, что все эти 3 порта не принадлежат одному коммутатору — они разнесены на сотни километров, между ними сложная MPLS-сеть с кучей коммутаторов.

Настраиваем “эмулятор провайдера”:

Switch(config)#vlan 4
Switch(config-vlan)#vlan 5
Switch(config)#interface fa0/1
Switch(config-if)#switchport mode trunk
Switch(config-if)#switchport trunk allowed vlan 4-5
Switch(config-if)#exit
Switch(config)#int fa0/2
Switch(config-if)#switchport trunk allowed vlan 4
Switch(config-if)#int fa0/3
Switch(config-if)#switchport trunk allowed vlan 5

Санкт-Петербург. Васильевский остров

Теперь обратимся к нашему spb-vsl-gw1. Тут у нас тоже 2 порта, но решим вопрос нехватки портов иначе: добавим сюда плату. Плата с двумя FastEthernet-портам и двумя слотами для WIC вполне подойдёт.

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

Здесь вы можете увидеть отличие в нумерации портов и понять их смысл.
FastEthernet — это тип порта (Ethernet, Fastethernet, GigabitEthernet, POS, Serial или другие)
x/y/z.w=Slot/Sub-slot/Interface.Sub-interface.

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

spb-vsl-gw1(config)interface FastEthernet1/0.4
spb-vsl-gw1(config-if)description Moscow
spb-vsl-gw1(config-if)encapsulation dot1Q 4
spb-vsl-gw1(config-if)ip address 172.16.2.2 255.255.255.252

Добавим ещё локальную сеть:

spb-vsl-gw1(config)#int fa0/0
spb-vsl-gw1(config-if)#description LAN
spb-vsl-gw1(config-if)#ip address 172.16.16.1 255.255.255.0

Вернёмся в Москву. С msk-arbat-gw1 мы можем увидеть адрес 172.16.2.2:

msk-arbat-gw1#ping 172.16.2.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.2.2, timeout is 2 seconds:
!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 2/7/13 ms

Но так же не видим 172.16.16.1:

msk-arbat-gw1#ping 172.16.16.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.16.1, timeout is 2 seconds:

Success rate is 0 percent (0/5)

Опять же, потому что маршрутизатор не знает, куда слать пакет:

msk-arbat-gw1#sh ip route

Gateway of last resort is not set

172.16.0.0/16 is variably subnetted, 8 subnets, 2 masks
C 172.16.0.0/24 is directly connected, FastEthernet0/0.3
C 172.16.1.0/24 is directly connected, FastEthernet0/0.2
C 172.16.2.0/30 is directly connected, FastEthernet0/1.4
C 172.16.3.0/24 is directly connected, FastEthernet0/0.101
C 172.16.4.0/24 is directly connected, FastEthernet0/0.102
C 172.16.5.0/24 is directly connected, FastEthernet0/0.103
C 172.16.6.0/24 is directly connected, FastEthernet0/0.104

Исправим это недоразумение:

msk-arbat-gw1(config)#ip route 172.16.16.0 255.255.255.0 172.16.2.2

msk-arbat-gw1#sh ip route
Codes: C — connected, S — static, I — IGRP, R — RIP, M — mobile, B — BGP
D — EIGRP, EX — EIGRP external, O — OSPF, IA — OSPF inter area
N1 — OSPF NSSA external type 1, N2 — OSPF NSSA external type 2
E1 — OSPF external type 1, E2 — OSPF external type 2, E — EGP
i — IS-IS, L1 — IS-IS level-1, L2 — IS-IS level-2, ia — IS-IS inter area
* — candidate default, U — per-user static route, o — ODR
P — periodic downloaded static route

Gateway of last resort is not set

172.16.0.0/16 is variably subnetted, 9 subnets, 2 masks
C 172.16.0.0/24 is directly connected, FastEthernet0/0.3
C 172.16.1.0/24 is directly connected, FastEthernet0/0.2
C 172.16.2.0/30 is directly connected, FastEthernet0/1.4
C 172.16.2.16/30 is directly connected, FastEthernet0/1.5
C 172.16.3.0/24 is directly connected, FastEthernet0/0.101
C 172.16.4.0/24 is directly connected, FastEthernet0/0.102
C 172.16.5.0/24 is directly connected, FastEthernet0/0.103
C 172.16.6.0/24 is directly connected, FastEthernet0/0.104
S 172.16.16.0/24 [1/0] via 172.16.2.2

Теперь пинг появляется:

msk-arbat-gw1#ping 172.16.16.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.16.1, timeout is 2 seconds:
!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/10/24 ms

Вот, казалось бы оно — счастье, но проверим связь с компьютера:

В чём дело?!
Компьютер знает, куда отправлять пакет — на свой шлюз 172.16.3.1, маршрутизатор тоже знает — на хост 172.16.2.2. Пакет уходит туда, принимается spb-vsl-gw1, который знает, что пингуемый адрес 172.16.16.1 принадлежит ему. А обратно нужно отправить пакет на адрес 172.16.3.3, но в сеть 172.16.3.0 у него нет маршрута. А пакеты, сеть назначения которых неизвестна, просто дропятся — отбрасываются.

spb-vsl-gw1#sh ip route

Gateway of last resort is not set

172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks
C 172.16.2.0/30 is directly connected, FastEthernet1/0.4
C 172.16.16.0/24 is directly connected, FastEthernet0/0

Но, почему же, спросите вы, с msk-arbat-gw1 до 172.16.16.1 пинг был? Какая разница 172.16.3.1 или 172.16.3.2? Всё просто.
Из таблицы маршрутизации всем видно, что следующий хоп — 172.16.2.2, при этом адрес из 172.16.2.1 принадлежит интерфейсу этого маршрутизатора, поэтому он и ставится в заголовок в качестве IP-адреса отправителя, а не 172.16.3.1. Пакет отправляется на spb-vsl-gw1, тот его принимает, передаёт данные приложению пинг, которое формирует echo-reply. Ответ инкапсулируется в IP-пакет, где в качестве адреса получателя фигурирует 172.16.2.1, а 172.16.2.0/30 — непосредственно подключенная к spb-vsl-gw1 сеть, поэтому без проблем пакет доставляется по назначению. То етсь в сеть 172.16.2.0/30 маршрут известен, а в 172.16.3.0/24 нет.

Для решения этой проблемы мы можем прописать на spb-vsl-gw1 маршрут в сеть 172.16.3.0, но тогда придётся прописывать и для всех других сетей. Для всех сетей в Москве, потом в Кемерово, потом в других городах — очень большой объём настройки.
И тут стоить заметить, что по сути у нас только один выход в мир — через Москву. Узел в Озерках — тупиковый, а других нет. То есть в основном все данные будут уходить в Москву, где большая часть подсетей и будет выход в интернет.
Чем нам это может помочь? Есть такое понятие — маршрут по умолчанию, ещё он носит романтическое название шлюз — последней надежды. И второму есть объяснение. Когда маршрутизатор решает, куда отправить пакет, он просматривает всё таблицу маршрутизации и, если не находит нужного маршрута, пакет отбрасывается — это если у вас не настроен шлюз последней надежды, если же настроен, то сиротливые пакеты отправляются именно туда — просто не глядя, предоставляя право уже следующему хопу решать их дальнейшую судьбу. То есть если некуда отправить, то последняя надежда — маршрут по умолчанию.
Настраивается он так:

spb-vsl-gw1(config)#ip route 0.0.0.0 0.0.0.0 172.16.2.1

И теперь тадааам:

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

Санкт-Петербург. Озерки

Теперь озаботимся Озерками. Здесь мы поставим L3-коммутатор. Допустим, связаны они у нас будут арендованным у провайдера волокном (конечно, это идеализированная ситуация для маленькой компании, но можно же помечтать).
Использование коммутаторов третьего уровня весьма удобно в некоторых случаях. Во-первых, интервлан роутинг в этом случае делается аппаратно и не нагружает процессор, в отличие от маршрутизатора. Кроме того, один L3-коммутатор обойдётся вам значительно дешевле, чем L2-коммутатор и маршрутизатор по отдельности. Правда, при этом вы лишаетесь ряда функций, естественно. Поэтому при выборе решения будьте аккуратны.

Настроим маршрутизатор на Васильевском острове, согласно плану:

spb-vsl-gw1(config)interface fa1/1
spb-vsl-gw1(config-if)#description Ozerki
spb-vsl-gw1(config-if)#ip address 172.16.2.5 255.255.255.252

Поскольку мы уже запланировали сеть для Озерков 172.16.17.0/24, то можем сразу прописать туда маршрут:

spb-vsl-gw1(config)#ip route 172.16.17.0 255.255.255.0 172.16.2.6

В качестве некст хопа ставим адрес, который мы выделили для линковой сети на Озерках — 172.16.2.6

Теперь перенесёмся в сами Озерки:

Подключим кабель в уже настроенный порт fa1/1 на стороне Васильевского острова и в 24-й порт 3560 в Озерках.
По умолчанию все порты L3-коммутатора работают в режиме L2, то есть это обычные “свитчёвые” порты, на которых мы можем настроить вланы. Но любой из них мы можем перевести в L3-режим, сделав портом маршрутизатора. Тогда на нём мы сможем настроить IP-адрес:

Switch(config)#hostname spb-ozerki-gw1
spb-ozerki-gw1(config)#interface fa0/24
spb-ozerki-gw1(config-if)#no switchport
spb-ozerki-gw1(config-if)#ip address 172.16.2.6 255.255.255.252

Проверяем связь:

spb-ozerki-gw1#ping 172.16.2.5

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.2.5, timeout is 2 seconds:
.!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 1/18/61 ms

Настроим ещё локальную сеть. Напомним, что Cisco и другие производители и не только производители не рекомендуют использовать 1-й влан, поэтому, мы воспользуемся 2-м:

spb-ozerki-gw1(config)#vlan 2
spb-ozerki-gw1(config-vlan)#name LAN
spb-ozerki-gw1(config-vlan)#exit
spb-ozerki-gw1(config)#interface vlan 2
spb-ozerki-gw1(config-if)#description LAN
spb-ozerki-gw1(config-if)#ip address 172.16.17.1 255.255.255.0
spb-ozerki-gw1(config)#interface fastEthernet 0/1
spb-ozerki-gw1(config-if)#description Pupkin
spb-ozerki-gw1(config-if)#switchport mode access
spb-ozerki-gw1(config-if)#switchport access vlan 2

После этого все устройства во втором влане будут иметь шлюзом 172.16.17.1

Чтобы коммутатор превратился в почти полноценный маршрутизатор, надо дать ещё одну команду:

spb-ozerki-gw1(config)#ip routing

Таким образом мы включим возможность маршрутизации.

Никаких других маршрутов, кроме как по умолчанию нам тут не надо:

spb-ozerki-gw1(config)#ip route 0.0.0.0 0.0.0.0 172.16.2.5

Связь до spb-vsl-gw1 есть:

spb-ozerki-gw1#ping 172.16.16.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.16.1, timeout is 2 seconds:
!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 3/50/234 ms

А до Москвы нет:

spb-ozerki-gw1#ping 172.16.3.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.3.1, timeout is 2 seconds:

Success rate is 0 percent (0/5)

Опять же дело в отсутствии маршрута. Вообще удобный инструмент для нахождения примерного места расположения проблемы traceroute:

spb-ozerki-gw1#traceroute 172.16.3.1
Type escape sequence to abort.
Tracing the route to 172.16.3.1

1 172.16.2.5 4 msec 2 msec 5 msec
2 * * *
3 * * *
4 *

Как видите, что от spb-vsl-gw1 ответ приходит, а дальше глухо. Это означает, как правило, что или на хопе с адресом 172.16.2.5 не прописан маршрут в нужную сеть (вспоминаем, что у нас настроен там маршрут по умолчанию, которого достаточно) или на следующем нету маршрута обратно:

msk-arbat-gw1#sh ip rou

Gateway of last resort is not set

172.16.0.0/16 is variably subnetted, 9 subnets, 2 masks
C 172.16.0.0/24 is directly connected, FastEthernet0/0.3
C 172.16.1.0/24 is directly connected, FastEthernet0/0.2
C 172.16.2.0/30 is directly connected, FastEthernet0/1.4
C 172.16.2.16/30 is directly connected, FastEthernet0/1.5
C 172.16.3.0/24 is directly connected, FastEthernet0/0.101
C 172.16.4.0/24 is directly connected, FastEthernet0/0.102
C 172.16.5.0/24 is directly connected, FastEthernet0/0.103
C 172.16.6.0/24 is directly connected, FastEthernet0/0.104
S 172.16.16.0/24 [1/0] via 172.16.2.2

Действительно маршрута в подсеть 172.16.17.0/24 нет. Мы можем прописать его, вы это уже умеете, а можем вспомнить, что целую подсеть 172.16.16.0/21 мы выделили под Питер, поэтому вместо того, чтобы по отдельности добавлять маршрут в каждую новую сеть, мы пропишем агрегированный маршрут:

msk-arbat-gw1(config)#no ip route 172.16.16.0 255.255.255.0 172.16.2.2
msk-arbat-gw1(config)#ip route 172.16.16.0 255.255.248.0 172.16.2.2

Проверяем:

msk-arbat-gw1#ping 172.16.17.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.17.1, timeout is 2 seconds:
!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/10/18 ms

Но странной неожиданностью для вас может стать то, что с spb-ozerki-gw1 вы не увидите Москву по-прежнему:

spb-ozerki-gw1#ping 172.16.3.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.3.1, timeout is 2 seconds:

Success rate is 0 percent (0/5)

Но при этом, если в качестве адреса-источника мы укажем 172.16.17.1:

spb-ozerki-gw1#ping
Protocol [ip]:
Target IP address: 172.16.3.1
Repeat count [5]:
Datagram size [100]:
Timeout in seconds [2]:
Extended commands [n]: y
Source address or interface: ping172.16.17.1
% Invalid source
Source address or interface: 172.16.17.1
Type of service [0]:
Set DF bit in IP header? [no]:
Validate reply data? [no]:
Data pattern [0xABCD]:
Loose, Strict, Record, Timestamp, Verbose[none]:
Sweep range of sizes [n]:
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.3.1, timeout is 2 seconds:
Packet sent with a source address of 172.16.17.1
!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 5/9/14 ms

И даже с компьютера 172.16.17.26 связь есть:

Как же так? Ответ, вы не поверите, так же прост — проблемы с маршрутизацией.

Дело в том, что msk-arbat-gw1 о подсети 172.16.17.0/24 знает, а о 172.16.2.4/30 нет. А именно адрес 172.16.2.6 — адрес ближайшего к адресату интерфейса (или интерфейса, с которого отправляется IP-пакет) подставляет по умолчанию в качестве источника. Об этом забывать не нужно.

msk-arbat-gw1(config)#ip route 172.16.2.4 255.255.255.252 172.16.2.2

spb-ozerki-gw1#ping 172.16.3.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.3.1, timeout is 2 seconds:
!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 7/62/269 ms

Ещё интересный опыт: а что если адрес на маршрутизаторе на Васильевском острове маршрут в подсеть 172.16.3.0/24 пропишем на Озерки, а не в Москву? Ну чисто для интереса. Что произойдёт в этом случае?

spb-vsl-gw1(config)#ip route 172.16.3.0 255.255.255.0 172.16.2.6

В РТ вы этого не увидите, почему-то, но в реальной жизни получится кольцо маршрутизации. Сети 172.16.3.0/24 и 172.16.16.0/21 не будут видеть друг друга:
пакет идущий с spb-ozerki-gw1 в сеть 172.16.3.0 попадает в первую очередь на spb-vsl-gw1, где сказано: “172.16.3.0/24 ищите за 172.16.2.6”, а это снова spb-ozerki-gw1, где сказано: “172.16.3.0/24 ищите за 172.16.2.5” и так далее. Пакет будет шастать туда-обратно, пока не истечёт значение в поле TTL.
Дело в том, что при прохождении каждого маршрутизатора поле TTL в IP-заголовке, изначально имеющее значение 255, уменьшается на 1. И если вдруг окажется, что это значение равно 0, то пакет погибает, точнее маршрутизатор, увидевший это, задропит его.
Таким образом обеспечивается стабильность сети — в случае возникновения петли пакеты не будут жить бесконечно, нагружая канал до его полной утилизации.
Кстати, в Ethernet такого механизма нет и если получается петля, то коммутатор только и будет делать, что плодить широковещательные запросы, полностью забивая канал — это называется широковещательный шторм (эта проблема решается с помощью специальной технологии\протокола STP- об этом в следующем выпуске).

В общем, если вы пускаете пинг из сети 172.16.17.0 на адрес 172.16.3.1, то ваш IP-пакет будет путешествовать между двумя маршрутизаторами, пока не истечёт срок его жизни, пройдя при этом по линку между Озерками и Васильевским островом 254 раза.
Кстати, следствием из работы этого механизма является то, что не может существовать связная сеть, где между узлами больше 255 маршрутизаторов. Впрочем это и не очень актуальная потребность. Сейчас даже самый долгий трейс занимает пару-тройку десятков хопов.

Кемерово. Красная горка

Рассмотрим последний небольшой пример — маршрутизатор на палочке (router on a stick).

Название навеяно схемой подключения:

Маршрутизатор связан с коммутатором лишь одним кабелем и по разным вланам внутри него передаётся трафик и локальной сети, и внешний. Делается это, как правило, для экономии средств (на маршрутизаторе только один порт и не хочется покупать дополнительную плату).

Подключим следующим образом:

Настройка коммутатора уже не должна для вас представлять проблем. На UpLink-интерфейсе настраиваем оговоренный с провайдером 5-й влан транком:

Switch(config)#hostname kmr-gorka-sw1
kmr-gorka-sw1(config)#vlan 5
kmr-gorka-sw1(config-vlan)#name Moscow

kmr-gorka-sw1(config)#int fa0/24
kmr-gorka-sw1(config-if)#description Moscow
kmr-gorka-sw1(config-if)#switchport mode trunk
kmr-gorka-sw1(config-if)#switchport trunk allowed vlan 5

В качестве влана для локальной сети выберем vlan 2 и это ничего, что он уже используется и в Москве и в Питере — если они не пересекаются и вы это можете контролировать, то номера могут совпадать. Тут каждый решает сам: вы можете везде использовать, например, 2-й влан, в качестве влана локальной сети или напротив разработать план, где номера вланов уникальны во всей сети.

kmr-gorka-sw1(config)#vlan 2
kmr-gorka-sw1(config-vlan)#name LAN
kmr-gorka-sw1(config)#int fa0/1
kmr-gorka-sw1(config-if)#description syn_generalnogo
kmr-gorka-sw1(config-if)#switchport mode access
kmr-gorka-sw1(config-if)#switchport access vlan 2

Транк в сторону маршрутизатора, где 5-ым вланом будут тегироваться кадры внешнего трафика, а 2-м — локального.

kmr-gorka-sw1(config)#int fa0/23
kmr-gorka-sw1(config-if)#description kmr-gorka-gw1
kmr-gorka-sw1(config-if)#switchport mode trunk
kmr-gorka-sw1(config-if)#switchport trunk allowed vlan 2,5

Настройка маршрутизатора:

Router(config)#hostname kmr-gorka-gw1
kmr-gorka-gw1(config)#int fa0/0.5
kmr-gorka-gw1(config-subif)#description Moscow
kmr-gorka-gw1(config-subif)#encapsulation dot1Q 5
kmr-gorka-gw1(config-subif)#ip address 172.16.2.18 255.255.255.252

kmr-gorka-gw1(config)#int fa0/0
kmr-gorka-gw1(config-if)#no sh

kmr-gorka-gw1(config)#int fa0/0.2
kmr-gorka-gw1(config-subif)#description LAN
kmr-gorka-gw1(config-subif)#encapsulation dot1Q 2
kmr-gorka-gw1(config-subif)#ip address 172.16.24.1 255.255.255.0

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

Дополнительно

В случае, если с маршрутизацией не всё в порядке для траблшутинга вам понадобятся две команды:

traceroute

и

show ip route

У первой бывает полезным, как вы видели, задать адрес источника. А последнюю можно применять с параметрами, например:

msk-arbat-gw1#sh ip route 172.16.17.0
Routing entry for 172.16.16.0/21
Known via «static», distance 1, metric 0
Routing Descriptor Blocks:
* 172.16.2.2
Route metric is 0, traffic share count is 1

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

И ещё хотелось бы повторить самые важные вещи:

— Когда блок данных попадает на маршрутизатор, заголовок Ethernet полностью отбрасывается и при отправке формируется совершенно новый кадр. Но IP-пакет остаётся неизменным.

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

— Поиск в таблице идёт НЕ до первой попавшейся подходящей записи, а до тех пор, пока не будет найдено самое точное соответствие (самая узкая маска). Например, если у вас таблица маршрутизации выглядит так:

172.16.0.0/16 is variably subnetted, 6 subnets, 3 masks
S 172.16.0.0/16 [1/0] via 172.16.2.22
C 172.16.2.20/30 is directly connected, FastEthernet0/0
C 172.16.2.24/30 is directly connected, FastEthernet0/0.2
C 172.16.2.28/30 is directly connected, FastEthernet0/0.3
S 172.16.10.0/24 [1/0] via 172.16.2.26
S 172.16.10.4/30 [1/0] via 172.16.2.30

И вы передаёте данные на 172.16.10.5, то он не пойдёт ни по маршруту через 172.16.2.22 ни через 172.16.2.26, а выберет самую узкую маску (самую длинную) /30 через 172.16.2.30.

— Если IP-адресу получателя не будет соответствовать ни одна запись в таблице маршрутизации и не настроен маршрут по умолчанию (шлюз последней надежды), пакет будет просто отброшен.

На этом первое знакомство с маршрутизацией можно закончить. Нам кажется, что читатель сам видит, сколько сложностей поджидает его здесь, может предположить, какой объём работы предстоит ему, если сеть разрастётся до нескольких десятков маршрутизаторов. Но надо сказать, что в современном мире статическая маршрутизация, не то чтобы не используется, конечно, ей есть место, но в подавляющем большинстве сетей, крупнее районного пионер-нета внедрены протоколы динамической маршрутизации. Среди них OSPF, EIGRP, IS-IS, RIP, которым мы посвятим отдельный выпуск и, скорее всего, не один. Но настройка статической маршрутизации в значительной степени поможет вашему общему пониманию маршрутизации.

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

Материалы выпуска

Новый IP-план, планы коммутации по каждой точке и регламент
Файл РТ с лабораторной
Конфигурация устройств

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

Все заинтересованные, но незарегистрированные приглашаются на беседу в ЖЖ.
За подготовку статьи большое спасибо моему соавтору thegluck и моей жене за львиное терпение.

Для очень недовольных: эта статья не абсолют, она не раскрывает теоретические аспекты в полной мере и, потому не претендует на роль полноценной документации. С точки зрения авторов это вспомогательной средство для новичков, волшебный стимул, если желаете. На хабре у вас есть возможность поставить минус, а не доказывать нашу неправоту. Прошу вас, поступите именно так, потому что ваши недовольства встретят лишь вышеприведённые аргументы. 

На чтение 12 мин Просмотров 1.5к.

Максим aka WisH

Максим aka WisH

Высшее образование по специальности «Информационные системы». Опыт работы системным администратором — 5 лет.

Задать вопрос

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

Содержание

  1. Как работает таблица маршрутизации
  2. Зачем нужна таблица
  3. Содержание записей
  4. Виды таблицы
  5. Команды для работы с таблицей маршрутизации
  6. В Windows
  7. В Linux
  8. Заключение

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

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

Не стоит настраивать маршрутизацию в маленьких сетях или если есть сомнения, что сможете справиться самостоятельно.

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

Зачем нужна таблица

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

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

Проще всего вам будет представить необходимость этих таблиц на примере почты и адресов. Представьте, что письмо, предназначенное вам, оказалось в главном распределительном центре Почты России. Они смотрят на него и видят, кому оно предназначается: Иванов И.И.. После этого они смотрят в свои гроссбухи с адресами и находят, что Иванов И.И. живет в Энской Губернии и переправляют письмо в почтамт этой губернии.

отправления в реальности

Передача отправления.

Дальше уже там смотрят в свои таблицы и видят, что такой абонент проживает в городе Бердичеве и переправляют туда, там находят, что к этому абоненту относится отделение почты №666 и переправляют письмо туда. Там уже находят конкретный адрес, улица Маршрутная, дом такой-то, и посылают почтальона, ответственного за этот дом, с отправлением для доставки вашего письма в почтовый ящик.

Как-то так и работают таблицы маршрутизации, пример с почтой тут отличается только тем, что там сразу написан весь адрес проживания и, фактически, весь маршрут: Энская губерния, г. Бердичев, улица Маршрутная, дом такой-то, Иванов И.И. В обоих случаях конечный получатель идентифицируется однозначно и точно. Из-за этого все отделения знают куда и как передавать отправления, а могут иметь и несколько маршрутов для доставки.

Содержание записей

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

таблица маршрутизации в примере

Пример таблицы маршрутизации с 4 интерфейсами и возвратом сигнала.

В общем случае поля таблицы выглядят следующим образом:

  • Адрес сети или узла назначения. Также здесь может стоять маршрут по умолчанию.
  • Маска сети назначения (для IPv4-сетей маска /32 (255.255.255.255)). С помощью маски указывается единичный адрес или же некоторый диапазон адресов.
  • Шлюз, обозначающий адрес маршрутизатора в сети. В случае, если устройство в своей подсети не имеет подобного адреса, то он передает пакет следующему маршрутизатору, в ведении которого и находится отправитель.
  • Интерфейс, через который доступен шлюз. Для разных устройств это могут быть разные данные. Например, в случае обычного маршрутизатора это будут номера портов: 0,1,2,3 и так далее. В случае с компьютером это будет сетевая карта или одна из сетевых карт, если их несколько.
  • Метрику — числовой показатель, задающий предпочтительность маршрута. Зависит от настроек, обычно здесь имеется в виду длина маршрута, то есть, количество узлов до абонента. Если есть маршрут с двумя узлами и с 12, то выбран будет маршрут с наименьшей метрикой. Также можно задавать метрику в зависимости от скорости соединения и еще нескольких параметров.

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

Виды таблицы

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

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

статическая таблица в реальности

Телефонный справочник, как пример статической таблицы.

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

Статическая таблицы маршрутизация не зависит от местоположения роутера. Не стирается при перезагрузке или установке в другое место.

С динамическими таблицами все сложнее для оборудования и проще для человека. В случае с динамическими таблицами, их составляет сам маршрутизатор или сервер. Фактическое, каждое устройство, работающее по протоку TCP, после подключения посылает в сеть сообщение типа «Привет! Я здесь новенькой. Мой адрес и имя такие-то, готов получать и отправлять информацию». Когда это сообщение доходит до первого маршрутизатора, он добавляет этот узел в свою сеть.

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

пример динамической маршрутизации

Динамическая маршрутизация.

Маршрутизаторы часто обмениваются информацией, например один из первых и сейчас почти неиспользуемых в крупных сетях, протокол RIP заставлял свитчи раз в 30 секунд отправлять в сеть всю свою таблицу маршрутизации. Это позволяло держать данные актуальными на всех устройствах, но нагружало есть.

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

Команды для работы с таблицей маршрутизации

На разном оборудовании есть разные команды для работы с таблицами маршрутизации. Например, до оборудования компании Cisco допускаются только сертифицированные сотрудники. Они должны пройти обучение и получить сертификат у самого разработчика. Можно работать и без всего этого, но тогда разработчик не отвечает за нанесенный ущерб.

моделирование сети в работе cisco

Программа для моделирования работы сетей Cisco.

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

В Windows

В этой операционной системе используется команда route с разными модификаторами для работы с маршрутизацией. Вводится в командной строке Windows, открытой от имени администратора.

таблица маршрутизации в виндовс

Синтаксис команды.
Параметр Использование
-f Используйте для очистки таблицы маршрутизации, если хотите избавится от всего, что там наворотили.
-p Превращает запись в постоянную. Делает запись статической. После перезагрузки компьютера она останется в памяти таблицы маршрутизации, а без этого параметры после перезагрузки запись сотрется.
add Добавляет новую запись в таблицу. Без параметра –p запись будет динамической.
change Позволяет изменить указанную запись.
delete Удаляет указанную запись.
print Показывает на экране всю таблицу маршрутизации со всеми активными записями.
destination Позволяет установить идентификатор сети назначения при создании или изменении записи.
mask Напишите для указания маски сети назначения.
gateway Указывайте шлюз. Если нужно строить маршрут до следующего маршрутизатора, то используйте его.
metric Указывайте метрику для маршрута. От 1 до 999, чем меньше метрика, тем активнее станет использоваться маршрут.
if Укажите номер интерфейса.

Приведем несколько примеров использования команды:

  • Показать текущие записи в таблице: route print
  • Показать все маршруты к подсети: 192.17.x.x: route print 192.17.x.x
  • Добавление новой записи с маршрутом для всех неизвестных подсетей при использовании шлюза по адресу 192.17.77.1: route -p add 0.0.0.0 mask 0.0.0.0 192.17.77.1
  • Добавление записи маршрута для сети 102.25.98.0 через узел сети 102.25.90.1: route -p add 102.25.98.0 mask 255.255.255.0 102.25.90.1
  • Удаление записи из таблицы: route delete 172.16.12.0 mask 255.255.0.0

В Linux

В linux для редактирования таблицы маршрутизации также придется использовать консоль. Есть два набора команд:

  • Route. Устаревший набор команд, который до сих пор поддерживается всеми версиями систем, но обладает меньшим функционалом.
  • IP Route. Имеет больший функционал, должен постепенно вывести прошлый инструмент из употребления. Будем разбирать его.

Откройте терминал и введите в нем «ip route», чтобы отобразить текущие записи в таблице.

таблица маршрутизации в линукс

Внешний вид таблицы.

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

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

пример структуры команды для таблицы маршрутизации в линукс

Структура команды.

Расшифровка некоторых фраз, которые остаются могут показаться непонятными при использовании команды:

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

При использовании самой команды могут использоваться следующие модификаторы:

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

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

  • Ip route add -net 192.16.25.0/24 via 192.168.1.1 — для указанной сети устанавливается шлюз 192.168.1.1
  • Ip route del 192.16.25.0/24 via 192.168.1.1 – удаляет записи об установке шлюза для указанной сети.
  • ip route replace 172.16.10.0/24 via 192.168.1.3 – удаляет запись о старом шлюзе и заменяет запись о новом шлюзе для подсети.
  • ip route replace default via 5.215.98.7 – изменение маршрута по умолчанию. Обычно применяется при смене адреса провайдера или при изменении основного маршрутизатора.

Все эти команды изменяют записи в динамической таблице. Чтобы сами записи сохранялись при перезагрузке, их нужно добавить в файл конфигурации. Информацию о том, где именно они хранятся лучше посмотреть в сети или в руководстве к системе. Например, в Red Hat используются конфигурационные файлы из каталога /etc/sysconfig/network-scripts/route-ethX.

Заключение

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

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

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

Марутшрутизация в компьютерных сетях

Маршрутизация состоит из двух этапов:

  1. На первом этапе происходит изучение сети, какие подсети есть в этой составной сети, какие маршрутизаторы и как эти маршрутизаторы объединены между собой.
  2. Второй этап маршрутизации выполняется когда сеть уже изучена и на маршрутизатор поступил пакет, для этого пакета нужно определить куда именно его отправить. Иногда для второго этапа маршрутизации используется отдельный термин “продвижение” по-английски forwarding.

Этапы маршрутизации

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

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

Схема маршрутизации пример

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

Сети маршрутизатора

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

Передача пакетов у маршрутизаторов

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

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

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

Знать какой маршрутизатор выбрать

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

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

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

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

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

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

Интерфейс маршрутизации

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

Шлюз подсоединен (Маршрутизация)

Если же нам нужно передать пакет на следующий маршрутизатор то в поле шлюз указывается ip-адрес этого маршрутизатора.

Шлюз (Маршрутизация)

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

В операционной системе linux таблица маршрутизации выглядит немного по-другому, основное отличие это идентификатор интерфейсов. В linux вместо ip-адресов используется название интерфейсов. Например, wlan название для беспроводного сетевого интерфейса, а eth0 название для проводного интерфейса по сети ethernet.

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

Также здесь некоторые столбцы удалены для сокращения (Flags, Ref и Use). В других операционных системах и в сетевом оборудовании вид таблицы маршрутизации может быть несколько другой, но всегда будут обязательны столбцы ip-адрес, маска подсети, шлюз, интерфейс и метрика.

Только следующий шаг!

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

Следующий шаг в маршрутизации

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

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

маршрутизатор знает следующий шаг

Метрика

Можно заметить, что в нашей схеме в одну и ту же сеть, например вот в эту (10.2.0.0/16) можно попасть двумя путями, первый путь проходят через один маршрутизатор F, а второй путь через два маршрутизатора B и E.

2 пути маршрутизации

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

Какой путь выбрать? Для этого используются поле метрика таблицы маршрутизации.

Таблица метрика в маршрутизации

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

Метрика в маршрутизации

Раньше, метрика измерялось в количестве маршрутизаторов, таким образом расстояние через маршрутизатор F было бы один, а через маршрутизаторы B и E два.

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

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

Записи в таблице маршрутизации

Откуда появляются записей в таблице маршрутизации? Есть два варианта статическая маршрутизация и динамическая маршрутизация.

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

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

Маршрут по умолчанию

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

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

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

Ниже пример маршрута по умолчанию в таблице маршрутизации в операционной системе linux.

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

Ip-адрес и маска равны нулю, в адрес и шлюз указываются ip-адрес маршрутизатора по умолчанию.

Длина маски подсети

Рассмотрим пример. Маршрутизатор принял пакет на ip-адрес (192.168.100.23), в таблице маршрутизации есть 2 записи (192.168.100.0/24 и 192.168.0.0/16) под который подходит этот ip-адрес, но у них разная длина маски. Какую из этих записей выбрать? Выбирается та запись, где маска длиннее, предполагается, что запись с более длинной маской содержит лучший маршрут интересующей нас сети.

Чтобы понять почему так происходит, давайте рассмотрим составную сеть гипотетического университета. Университет получил блок ip-адресов, разделил этот блок ip-адресов на две части, и каждую часть выделил отдельному кампусу.

Длина маски подсети в маршрутизации

На кампусе находятся свои маршрутизаторы, на которых сеть была дальше разделена на части предназначенные для отдельных факультетов. Разделение сетей производится с помощью увеличения длины маски, весь блок адресов имеет маску / 16, блоки кампусов имеют маску / 17, а блоки факультетов / 18.

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

фрагмент таблицы маршрутизации

Предположим, что у на этот маршрутизатор пришел пакет предназначенный для второго факультета, что может сделать маршрутизатор? Он может выбрать запись, которая соответствует второму факультету и отправить непосредственно в сеть этого факультета, либо может выбрать запись, которая соответствует всей университетской сети, тогда отправит на университетский маршрутизатор, что будет явно неправильным.

И так получается, что выбирается всегда маршрут с маской максимальной длины. Общие правила выбора маршрутов следующие.

  • Самая длинная маска 32 — это маршрут конкретному хосту, если в таблице маршрутизации есть такой маршрут, то выбирается он.
  • Затем выполняется поиск маршрута подсети с маской максимальной длины.
  • И только после этого используется маршрут по умолчанию, где маска / 0 под которую подходят все ip-адреса.

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

  • Как правило такая таблица содержит описание присоединенной сети, который подключен данный компьютер.
  • Адрес маршрутизатора по умолчанию (шлюз или gateway) через который, выполняется подключение к интернет, или к корпоративной сети предприятия.
  • А также могут быть дополнительные маршруты к некоторым знакомым сетям, но это необязательно.

Для того чтобы просмотреть таблицу маршрутизации, можно использовать команды route или ip route (route print (Windows); route и ip route (Linux)).

Маршрутизация — поиск маршрута доставки пакета между сетями через транзитные узлы — маршрутизаторы.

Ваши темы для Вебинаров

В Москве:

РФ (звонок бесплатный):

+7 (495) 103-99-88
+7 (800) 600-20-56

Статическая и динамическая маршрутизация

Благодарим за помощь Андрея Донецкого

865

Статическая маршрутизация — та маршрутизация, которую мы можем прописать в наше устройство, то есть мы можем зайти в роутер и просто прописать статический маршрут. Такой же маршрут мы можем прописать и на любом устройстве, которое имеет у себя протокол IP. Вся работа сводится к ручному конфигурированию нашей маршрутизации.
Рисунок 1 - Преимущества и недостатки
Какие имеются преимущества:

  1. Простота внедрения в небольшой сети. Если у нас сеть небольшая, мы полностью все контролируем. Мы контролируем то, какие маршруты мы пишем. Мы понимаем, что если у нас отваливается линк, как нам изменить нашу маршрутизацию, чтобы продолжить работу;
  2. Высокий уровень безопасности. Пока наш роутер не будет скомпрометирован и пока никто не зайдет внутрь него, все будет прекрасно работать.
  3. Маршрут к месту назначения остается неизменным. Это как преимущество, так и недостаток статической маршрутизации. То есть у нас не может произойти ситуации, когда наш трафик пойдет, например, по не оптимальному пути или мы сразу сделаем так, что он будет идти по не оптимальному пути. То есть в некоторых ситуациях системный администраторы, например, в случае с интернет-каналами пускают трафик, например, по более быстрому каналу или же по более дешевому, где не взимается плата за каждый мегабайт информации.
  4. Также преимущество статической маршрутизации можно отметить, что алгоритм маршрутизации не расходует дополнительные ресурсы центрального процессора оперативной памяти. То есть не требуется никаких дополнительных ресурсов на поддержание статической маршрутизации все то, что есть в таблицах маршрутизации то и работает.

Недостатки:

  1. Подходит только для очень простых топологий например:
  2. Рисунок 2 - Сеть

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

    У нас есть центральный офис и есть четыре филиала, простая топология хорошо укладывается в рамках статической маршрутизации и все прекрасно работает.
    Рисунок 4 - Пример
    В какой-то момент компания начала расти и, например, решила, что было бы неплохо арендовать место в стойке, организовать свой импровизированный дата-центр. Было бы неплохо от каждого филиала подключить дата-центр, также сделать общую связь между центральным офисом и дата-центром, а также сделать так, чтобы трафик ходил сначала в дата-центр и по-своему же линку, он ходил в центральный офис. В рамках статической маршрутизации работать адекватно. В какой-то момент компания поняла, что, если произойдет отказ дата-центра, где находится все ресурсы нашей сети, то будет очень печально и плохо. Мы все работать не сможем, поэтому взяли и арендовали еще один дата-центр у другого поставщика услуг
    Рисунок 5 - Пример

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

  3. Следующий недостаток статической маршрутизация – это, при необходимости изменения маршрутизации, конфигурацию приходится выполнять вручную.

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

Поэтому для решения подобных задач, когда у нас есть, допустим, схема такой сложной сети, придумали динамическую маршрутизацию.
Рисунок 7 - Сценарий динамической маршрутизации
По сути, динамическая маршрутизация ничего серьезного не меняет, принцип остается тот же самый. У нас есть адреса назначений и у нас есть гетвей или шлюзы, через которые доступны те или иные адреса назначений. Но все эти маршруты в таблицу маршрутизации добавляет некая служба, которая работает в автоматическом режиме. То есть у нас есть какой-то протокол (служба), который(ая) с помощью своих служебных сообщений и по каким-то собственным принципам, добавляет в таблицу маршрутизации наши маршруты, которые нам требуются. По сути, вся работа, связанная с маршрутизацией, сводится к конфигурированию этих протоколов динамической маршрутизации, чтобы каждый роутер был правильно сконфигурирован и понимал сообщение от другого роутера.
Рисунок 8 - Динамическая маршрутизация

Преимущества динамической маршрутизации:

  1. Во-первых, подходит для работы в любых топологиях. У вас есть два роутера, вам уже подходит динамическая маршрутизация. Вы можете ее настраивать. Обычно не зависит от размера сети. Например, у вас есть весь интернет, где работает протокол динамической маршрутизации BGP. Для всего интернета существует протокол динамической маршрутизации. Если какой-то зависимости от размера сети нет, есть зависимость от протокола. Есть, например, протоколы динамической маршрутизации, которые подходят, когда вы работаете в небольших организациях. Они очень простые, тем самым их удобно использовать.
  2. Автоматически изменяют таблицу маршрутизации. Если произошло какое-то изменение в сети, то есть, если где-то у нас что-то отвалилось. Например, VPN туннель до дата-центра у нас отвалился. В этот момент мы перестроим таблицу маршрутизации, чтобы ходить к этой сети через, например, центральный офис и так далее. И это все происходит автоматически, но, как всегда, есть преимущества и недостатки.

Недостатки динамической маршрутизации:

  1. Реализация может предполагать очень высокий уровень сложности. Каждый протокол динамической маршрутизации может быть, за исключением RIPа, имеет достаточно большое количество настроек и в этих настройках нужно достаточно глубоко разбираться. Чтобы понимать, что эти настройки делают и для каких сценариев они подходят. Например, OSPF мы разбираем примерно полтора дня на курсе, и мы его разбираем по верхам. То есть нельзя сказать, что мы рассматриваем прям абсолютно все сценарии, которые предусмотрены в протоколе OSPF, но за полтора дня вы получаете какое-то плюс-минус адекватное понимание протокола OSPF. BGP можно разбирать особенно с учетом комьюнити и фильтров достаточно продолжительное время. И так в целом происходит с каждым протоколом динамической маршрутизации. В них очень много глубины. Это не просто руками прописать маршруты с нужной метрикой, так как у нас есть разговоры между роутерами, присутствует два роутера, которые между собой разговаривают. В эти разговоры может кто-то вклиниться и естественно протоколы динамической маршрутизации несмотря на то, что там есть аутентификация шифрования сообщений, не на сто процентов безопасны и их можно скомпрометировать.
  2. Недостаток и преимущества одновременно: маршрут зависит от текущей топологии. Нормальная ситуация, когда вдруг вы до сайта, находящегося в России, начинаете ходить через Ванкувер и это как раз протокол динамической маршрутизации внутри вашего провайдера. Что-то случилось и ему показалось, что ближе будет дойти до российского сайта через Ванкувер. Почему бы и нет. Очень быстро только скорость света немножко мешает, но в целом почему бы и нет.
  3. Требуется дополнительные ресурсы для центрального процессора, для оперативной памяти и полосы пропускания канала. Во-первых, вам нужно потратить какие-то ресурсы на поддержание этого протокола. А во-вторых, надо сразу заранее рассчитать, какие ресурсы вам нужны в самых плохих сценариях. Потому что эти сценарии периодически происходят у провайдеров интернета.

Давайте познакомимся в целом с протоколами динамической маршрутизации и немножко о них поговорим. У нас есть два класса протоколов динамической маршрутизации:
Рисунок 9 - IGP/EGP

Это протоколы динамической маршрутизации IGP и EGP. IGP это Interior Gateway Protocol, а EGP это Exterior Gateway Protocol, протоколы для применения внутри автономных систем и снаружи автономных систем.

Автономная система — это совокупность роутеров, которые находятся под единым административным управлением. Эти роутеры могут быть дома, на работе, у провайдера и так далее, то есть любые роутеры, которыми управляет какая-то группа специалистов.

Когда вы управляете каким-то количеством маршрутизаторов, вы для этих маршрутизаторов являетесь администратором и вправе выбирать любой протокол динамической маршрутизации, который вы смогли внедрить, которые вы можете обслуживать и которые вы понимаете и внутри автономных систем производства — дом, компания и так далее могут работать любые протоколы. Вы можете использовать там RIP, вы можете использовать и EGRP, EIGRP, OSPF, IS-IS и так далее. Вообще в целом протоколов динамической маршрутизации много. Вы вправе выбирать, но если мы говорим про работу между автономными системами, например, когда две компании хотят подружиться между собой и одна компания хочет поделиться с другой компанией своими маршрутами, что у него происходит, то вероятнее всего и правильнее всего для этой задачи выбрать протокол BGP, если мы говорим про публичные автономные системы.

Когда вы зарегистрировались в каком-нибудь регистраторе, например, у нас в Европе это Ripe NCC, получили публичный номер автономной системы, заплатили за это деньги и вы стали провайдером, который может приземлять у себя белые IP-адреса, вам дают номер автономной системы, чтобы подружиться с другими автономными системами и сообщить свои белые IP-адреса глобальному интернету. Ну например, белый IPv6 адрес. Вам необходимо подружиться с другими автономными системами, с другими провайдерами по протоколу BGP. Глобально в Интернете у нас работает протокол BGP, поэтому у нас есть куча всяких IGP протоколов Interior Gateway Protocol, которые вы вправе использовать, как угодно, как хотите, и так далее. И у нас есть один глобальный протокол для дружбы между это BGP (Border Getway Protocol), который, по сути, один и который является стандартом.
Рисунок 10 - Эволюция протоколов динамической маршрутизации
На этом слайде у нас показана эволюция протоколов маршрутизации.

Серьезный переход был, когда протоколы классовые перешли в без классовый протоколы.

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


Категории

Курсы Mikrotik-Training.

Знания, которые дают результат.

  • Для чего ростелеком меняет роутеры
  • Для чего нужно настраивать роутер
  • Для чего перенаправление портов роутера
  • Для чего нужна кнопка сбоку роутера
  • Для чего нужны вай фай роутеры