5.1 Статическая маршрутизация
Что такое маршрутизация?
Маршрутизация — это процесс определения пути, по которому пакет должен пройти от источника к получателю через сеть. Маршрутизатор принимает решение на основе таблицы маршрутизации.
Аналогия: Таблица маршрутизации — это как карта дорог. Маршрутизатор смотрит на адрес назначения и выбирает, по какой "дороге" (интерфейсу) отправить пакет.
Статическая маршрутизация
Статическая маршрутизация — это когда администратор вручную настраивает маршруты в таблице маршрутизации. Маршруты не меняются автоматически.
Когда использовать статическую маршрутизацию:
- Простые сети: Маленькие сети с несколькими маршрутизаторами
- Специальные пути: Резервные маршруты или обход проблемных участков
- Default route: Маршрут по умолчанию (куда отправлять пакеты, если нет конкретного маршрута)
- Blackhole: Маршрут для отбрасывания нежелательного трафика
Преимущества:
- Простота настройки для малых сетей
- Предсказуемость — администратор контролирует все пути
- Низкая нагрузка на процессор маршрутизатора
- Безопасность — нет обмена служебными сообщениями
Недостатки:
- Не масштабируется — в больших сетях настройка становится сложной
- Ручное обновление — при изменениях нужно вручную менять маршруты
- Нет автоматического восстановления — при отказе канала маршрут не переключится автоматически
Примеры статических маршрутов
# Просмотр таблицы маршрутизации
# Windows
route print
# Добавление статического маршрута
# Windows: route add сеть mask маска шлюз
route add 10.10.0.0 mask 255.255.0.0 192.168.1.1
# Linux
ip route show
# или
route -n
# Добавление статического маршрута
# Linux: ip route add сеть/префикс via шлюз
ip route add 10.10.0.0/16 via 192.168.1.1
# Маршрут по умолчанию (default gateway)
# Windows
route add 0.0.0.0 mask 0.0.0.0 192.168.1.1
# Linux
ip route add default via 192.168.1.1
Маршрут по умолчанию: Это "последний шанс" — если маршрутизатор не знает, куда отправить пакет, он отправляет его по маршруту по умолчанию. Обычно это шлюз в интернет.
Резюме
Ключевые моменты:
- Маршрутизация — определение пути пакета через сеть
- Статическая маршрутизация — маршруты настраиваются вручную администратором
- Подходит для: Малых сетей, специальных путей, маршрутов по умолчанию
- Преимущества: Простота, предсказуемость, низкая нагрузка
- Недостатки: Не масштабируется, требует ручного обновления
Цель: Обеспечить доставку пакетов в простых сетях без сложных протоколов динамической маршрутизации.
5.2 HSRP/VRRP/GLBP — протоколы резервирования шлюзов
Проблема: единая точка отказа
Представьте ситуацию: в вашей сети все устройства используют один маршрутизатор как шлюз по умолчанию (default gateway). Если этот маршрутизатор выходит из строя, вся сеть теряет доступ к внешним сетям и интернету.
Проблема: Статическая настройка шлюза по умолчанию создает единую точку отказа. Если маршрутизатор сломается, все хосты потеряют связь с внешним миром.
Решение: FHRP (First Hop Redundancy Protocol) — протоколы, обеспечивающие резервирование шлюза по умолчанию через виртуальный IP-адрес.
Что такое HSRP?
HSRP (Hot Standby Router Protocol) — проприетарный протокол Cisco для обеспечения отказоустойчивости шлюза по умолчанию. Несколько маршрутизаторов работают как группа и представляются хостам как один виртуальный маршрутизатор с общим IP и MAC адресом.
Как работает HSRP:
- Виртуальный IP: Создается виртуальный IP-адрес, который используется хостами как шлюз по умолчанию
- Active router: Один маршрутизатор выбирается активным и обрабатывает весь трафик
- Standby router: Другой маршрутизатор находится в режиме ожидания, готовый перехватить трафик
- Hello-сообщения: Маршрутизаторы обмениваются сообщениями для контроля доступности (по умолчанию каждые 3 секунды)
- Failover: Если Active router перестает отвечать (10 секунд по умолчанию), Standby автоматически становится Active
Выбор Active и Standby
Процесс выбора:
- Приоритет: Маршрутизатор с наивысшим приоритетом (0-255, по умолчанию 100) становится Active
- IP-адрес: При равных приоритетах выбирается тот, у кого выше IP-адрес интерфейса
- Preemption: По умолчанию отключено — если Active восстановился, он не забирает роль обратно. Можно включить командой
standby preempt
Версии HSRP
HSRP версия 1 vs версия 2:
- Версия 1: Поддерживает до 255 групп (0-255), использует multicast 224.0.0.2
- Версия 2: Поддерживает до 4095 групп (0-4095), использует multicast 224.0.0.102, поддержка IPv6, улучшенные таймеры (миллисекунды)
# Базовая настройка HSRP на Cisco (Router1 - Active)
Router1(config)# interface GigabitEthernet0/0
Router1(config-if)# ip address 192.168.1.1 255.255.255.0
Router1(config-if)# standby 1 ip 192.168.1.254 # Виртуальный IP
Router1(config-if)# standby 1 priority 110 # Приоритет (выше = лучше)
Router1(config-if)# standby 1 preempt # Вернуть роль Active при восстановлении
# Настройка HSRP на Cisco (Router2 - Standby)
Router2(config)# interface GigabitEthernet0/0
Router2(config-if)# ip address 192.168.1.2 255.255.255.0
Router2(config-if)# standby 1 ip 192.168.1.254 # Тот же виртуальный IP
Router2(config-if)# standby 1 priority 90 # Меньший приоритет
# Проверка состояния HSRP
Router# show standby
Router# show standby brief
VRRP — открытый стандарт
VRRP (Virtual Router Redundancy Protocol) — стандартизированный протокол (RFC 5798), аналог HSRP, работающий на оборудовании разных производителей.
Отличия VRRP от HSRP:
- Стандартизация: VRRP — открытый стандарт, HSRP — проприетарный Cisco
- Терминология: В VRRP: Master/Backup (вместо Active/Standby в HSRP)
- Preemption: В VRRP включен по умолчанию
- IP-адрес: VRRP может использовать реальный IP интерфейса как виртуальный
- Multicast: VRRP использует 224.0.0.18, HSRP — 224.0.0.2
- Таймеры: В VRRP advertisement interval по умолчанию 1 секунда (в HSRP hello — 3 секунды)
# Настройка VRRP на Cisco (Router1 - Master)
Router1(config)# interface GigabitEthernet0/0
Router1(config-if)# ip address 192.168.1.1 255.255.255.0
Router1(config-if)# vrrp 1 ip 192.168.1.254
Router1(config-if)# vrrp 1 priority 110
# Настройка VRRP на Cisco (Router2 - Backup)
Router2(config)# interface GigabitEthernet0/0
Router2(config-if)# ip address 192.168.1.2 255.255.255.0
Router2(config-if)# vrrp 1 ip 192.168.1.254
Router2(config-if)# vrrp 1 priority 90
# Проверка состояния VRRP
Router# show vrrp
Router# show vrrp brief
GLBP — балансировка нагрузки
GLBP (Gateway Load Balancing Protocol) — проприетарный протокол Cisco, который не только обеспечивает резервирование, но и балансирует нагрузку между несколькими маршрутизаторами.
Как работает GLBP:
- AVG (Active Virtual Gateway): Один маршрутизатор управляет группой
- AVF (Active Virtual Forwarder): Все маршрутизаторы могут одновременно пересылать трафик
- Виртуальные MAC: AVG выдает каждому AVF уникальный виртуальный MAC-адрес
- Балансировка: AVG распределяет MAC-адреса между хостами через ARP-ответы
- Отказоустойчивость: При отказе AVF другой маршрутизатор берет на себя его MAC-адрес
Методы балансировки GLBP:
- Round-robin: По очереди (по умолчанию)
- Weighted: Пропорционально весу маршрутизатора
- Host-dependent: Один хост всегда получает один и тот же MAC
# Настройка GLBP на Cisco
Router1(config)# interface GigabitEthernet0/0
Router1(config-if)# ip address 192.168.1.1 255.255.255.0
Router1(config-if)# glbp 1 ip 192.168.1.254
Router1(config-if)# glbp 1 priority 110
Router1(config-if)# glbp 1 preempt
Router1(config-if)# glbp 1 load-balancing round-robin # Метод балансировки
# Проверка состояния GLBP
Router# show glbp
Router# show glbp brief
Сравнение протоколов
| Характеристика | HSRP | VRRP | GLBP |
|---|---|---|---|
| Производитель | Cisco (проприетарный) | Открытый стандарт (RFC 5798) | Cisco (проприетарный) |
| Активные роутеры | 1 Active | 1 Master | Все активны (AVF) |
| Балансировка | Нет | Нет | Да |
| Preemption | По умолчанию выкл. | По умолчанию вкл. | По умолчанию выкл. |
| Multicast адрес | 224.0.0.2 (v1) 224.0.0.102 (v2) | 224.0.0.18 | 224.0.0.102 |
| Таймер по умолчанию | 3 сек (hello) | 1 сек (advertisement) | 3 сек (hello) |
| Поддержка IPv6 | Да (v2) | Да (VRRPv3) | Нет |
Практические рекомендации
Когда использовать:
- HSRP: Сети Cisco, нужна простота и надежность
- VRRP: Мультивендорная среда, нужна совместимость
- GLBP: Cisco-сети, нужна балансировка нагрузки между шлюзами
Лучшие практики:
- Тюнинг таймеров: Уменьшите таймеры для быстрого обнаружения сбоев (но осторожно — может вызвать ложные срабатывания)
- Track интерфейсы: Отслеживайте состояние uplink-портов, чтобы снизить приоритет при их падении
- Аутентификация: Используйте MD5-аутентификацию для защиты от атак
- Preempt: Включайте preempt только если уверены, что это не вызовет нестабильности
- Документирование: Четко документируйте приоритеты и роли маршрутизаторов
# Расширенная настройка HSRP с отслеживанием и аутентификацией
Router1(config)# interface GigabitEthernet0/0
Router1(config-if)# ip address 192.168.1.1 255.255.255.0
Router1(config-if)# standby 1 ip 192.168.1.254
Router1(config-if)# standby 1 priority 110
Router1(config-if)# standby 1 preempt
Router1(config-if)# standby 1 authentication md5 key-string MySecureKey
Router1(config-if)# standby 1 track GigabitEthernet0/1 20 # Снизить приоритет на 20 при падении uplink
# Таймеры в миллисекундах (осторожно!)
Router1(config-if)# standby 1 timers msec 200 msec 700 # hello 200ms, hold 700ms
Важно: FHRP защищает только от отказа маршрутизатора, но не от отказа канала за маршрутизатором. Используйте отслеживание интерфейсов (track) для комплексной отказоустойчивости.
Резюме
Ключевые моменты:
- FHRP — протоколы резервирования шлюза по умолчанию через виртуальный IP
- HSRP — проприетарный Cisco, 1 Active + 1 Standby, preempt по умолчанию выключен
- VRRP — открытый стандарт, 1 Master + Backup, preempt по умолчанию включен
- GLBP — Cisco, балансировка нагрузки между всеми маршрутизаторами
- Выбор Active/Master: По приоритету (0-255), затем по IP-адресу
- Failover: Автоматическое переключение при отказе активного маршрутизатора
- Track: Отслеживание состояния uplink-портов для умного переключения
Цель: Обеспечить отказоустойчивость сети через резервирование шлюза по умолчанию, исключив единую точку отказа.
5.3 OSPF основы
Проблема статической маршрутизации
В больших сетях статическая маршрутизация становится неэффективной: при изменениях нужно вручную обновлять маршруты на всех маршрутизаторах, нет автоматического восстановления при отказе каналов.
Решение: Динамическая маршрутизация — маршрутизаторы автоматически обмениваются информацией о сетях и строят таблицы маршрутизации.
Что такое OSPF?
OSPF (Open Shortest Path First) — протокол динамической маршрутизации, который работает внутри одной организации (внутридоменный протокол). Он использует алгоритм состояния канала (Link State).
Принцип работы OSPF:
- Обнаружение соседей: Маршрутизаторы находят соседние OSPF-маршрутизаторы
- Обмен информацией: Каждый маршрутизатор сообщает о своих подключенных сетях
- Построение карты: Все маршрутизаторы строят одинаковую "карту" сети
- Вычисление путей: Используя алгоритм Dijkstra, каждый маршрутизатор вычисляет кратчайшие пути ко всем сетям
- Обновление: При изменениях информация обновляется автоматически
Аналогия: Если статическая маршрутизация — это "записная книжка с адресами", то OSPF — это "GPS-навигатор", который автоматически строит маршруты и обновляется при изменениях.
Области OSPF: иерархическая структура
OSPF делит сеть на области (areas) для масштабирования и уменьшения нагрузки:
Структура областей:
- Area 0 (Backbone) — центральная область, через которую проходят все межобластные маршруты. Обязательна в любой OSPF-сети
- Обычные области — подключены к Area 0, содержат сети организации
- Преимущества: Уменьшение размера таблиц маршрутизации, ограничение распространения изменений, упрощение управления
Важно: Все области должны быть подключены к Area 0. Прямое соединение между обычными областями (минуя Area 0) невозможно.
LSA: как распространяется информация
LSA (Link State Advertisement) — это сообщения, которыми маршрутизаторы обмениваются информацией о сетях.
Основные типы LSA:
- LSA Type 1 (Router LSA) — описывает маршрутизатор и его подключенные сети внутри области
- LSA Type 2 (Network LSA) — описывает сегмент сети с несколькими маршрутизаторами (выбирается DR)
- LSA Type 3 (Summary LSA) — сводка сетей области для других областей (распространяется ABR)
- LSA Type 5 (External LSA) — внешние маршруты, импортированные из других протоколов (распространяется ASBR)
Метрика: стоимость пути
OSPF использует стоимость (cost) как метрику для выбора лучшего пути. Стоимость обратно пропорциональна пропускной способности канала.
Расчет стоимости:
- Формула: Стоимость = Reference Bandwidth / Пропускная способность канала
- По умолчанию Reference Bandwidth = 100 Мбит/с
- Примеры: 100 Мбит/с = стоимость 1, 10 Мбит/с = стоимость 10, 1 Гбит/с = стоимость 0.1 (округляется до 1)
Важно: Для высокоскоростных каналов (10 Гбит/с, 40 Гбит/с) нужно увеличить Reference Bandwidth, иначе все быстрые каналы будут иметь одинаковую стоимость.
DR и BDR: для многодоступных сетей
В сетях, где несколько маршрутизаторов подключены к одному сегменту (например, через коммутатор), выбираются:
DR (Designated Router) и BDR (Backup Designated Router):
- DR — главный маршрутизатор сегмента, обменивается LSA с другими маршрутизаторами
- BDR — резервный маршрутизатор, заменяет DR при его отказе
- Цель: Уменьшить количество соединений между маршрутизаторами (вместо полносвязной топологии)
- Выбор: По приоритету и Router ID (чем выше приоритет, тем лучше)
Важно: DR/BDR выбираются только на многодоступных сегментах (broadcast, NBMA). На point-to-point соединениях DR/BDR не нужны.
Состояния соседства OSPF
Маршрутизаторы проходят через несколько состояний перед установлением полного соседства:
Переход к полному соседству:
- Down — нет связи с соседом
- Init — получен Hello от соседа
- 2-Way — двусторонняя связь установлена
- ExStart — начало обмена базами данных
- Exchange — обмен LSA
- Loading — загрузка недостающих LSA
- Full — полное соседство, базы данных синхронизированы
Проблемы: Соседство не установится, если не совпадают: Area ID, аутентификация, MTU, Hello/Dead интервалы, типы сетей.
Типы областей для оптимизации
Специальные типы областей:
- Stub Area — не получает внешние маршруты (LSA Type 5), использует default route
- Totally Stub Area — не получает внешние и межобластные маршруты, только default route
- NSSA (Not-So-Stubby Area) — может импортировать внешние маршруты через LSA Type 7
- Цель: Уменьшить размер таблиц маршрутизации и нагрузку на маршрутизаторы
OSPFv2 и OSPFv3
Различия:
- OSPFv2 — для IPv4, использует протокольный номер 89
- OSPFv3 — для IPv6, использует протокольный номер 89, но работает поверх IPv6
- Оба протокола могут работать одновременно на одном маршрутизаторе
Резюме
Ключевые моменты:
- OSPF — протокол динамической маршрутизации состояния канала
- Области — иерархическая структура с обязательной Area 0 (Backbone)
- LSA — сообщения для обмена информацией о сетях
- Метрика — стоимость пути, обратно пропорциональна пропускной способности
- DR/BDR — для оптимизации в многодоступных сетях
- Алгоритм Dijkstra — вычисление кратчайших путей
Цель: Автоматическое построение оптимальных маршрутов в больших сетях с возможностью быстрого восстановления при изменениях.
5.4 BGP основы
Что такое BGP?
BGP (Border Gateway Protocol) — протокол маршрутизации, который используется для обмена маршрутами между разными организациями в интернете. Это "язык", на котором говорят интернет-провайдеры и крупные организации.
Аналогия: Если OSPF — это "внутренняя почта" организации, то BGP — это "международная почта" между разными странами (организациями).
Автономные системы (AS)
AS (Autonomous System) — это сеть или группа сетей под единым административным управлением. Каждая AS имеет уникальный номер (ASN).
Примеры AS:
- Интернет-провайдер имеет свой ASN (например, AS12345)
- Крупная корпорация может иметь свой ASN
- Университет может иметь свой ASN
- ASN — это как "почтовый индекс" для организации в интернете
iBGP и eBGP
eBGP (External BGP):
- Соединение между маршрутизаторами из разных AS
- Используется для обмена маршрутами между организациями
- Пример: ваш провайдер обменивается маршрутами с другими провайдерами
iBGP (Internal BGP):
- Соединение между маршрутизаторами внутри одной AS
- Используется для распространения внешних маршрутов внутри организации
- Требует полносвязной топологии или использования Route Reflectors
Атрибуты BGP: как выбирается путь
BGP использует множество атрибутов для выбора лучшего пути. Маршрутизатор проверяет их в определенном порядке:
Порядок выбора пути (Best Path Selection):
- Weight — локальный параметр (только на этом маршрутизаторе), не передается другим
- Local Preference — приоритет внутри AS, влияет на выбор исходящего пути
- AS-PATH — список пройденных AS, чем короче путь, тем лучше
- Origin — источник маршрута (IGP, EGP, Incomplete)
- MED — метрика для влияния на выбор входящего пути
- eBGP > iBGP — внешние маршруты предпочтительнее внутренних
- IGP cost — стоимость пути до next-hop
- Router ID — наименьший Router ID выигрывает
Важно: BGP выбирает только один лучший путь (best path) для каждого префикса. Этот путь помечается как "best" и используется для маршрутизации.
Ключевые атрибуты BGP
AS-PATH:
- Список номеров AS, через которые прошел маршрут
- Пример: AS-PATH = [64512, 12345, 67890] означает, что маршрут прошел через эти три AS
- Используется для предотвращения петель (если маршрутизатор видит свой AS в пути, он отклоняет маршрут)
Local Preference:
- Приоритет маршрута внутри AS (выше = лучше)
- Используется для выбора исходящего пути (какой провайдер использовать для выхода)
- Не передается другим AS
MED (Multi-Exit Discriminator):
- Метрика для влияния на выбор входящего пути
- Используется, когда у организации несколько соединений с провайдером
- Меньше = лучше
Communities:
- Метки для группировки маршрутов и применения политик
- Примеры: no-export (не экспортировать), blackhole (отбросить), local-preference (установить приоритет)
- Упрощают управление маршрутизацией
Масштабирование BGP
Route Reflectors:
- Решают проблему полносвязности iBGP (когда нужно много соединений между маршрутизаторами)
- Route Reflector получает маршруты от клиентов и отражает их другим клиентам
- Упрощает топологию iBGP
Конфедерации:
- Разделение большой AS на несколько "под-AS"
- Внутри конфедерации используется eBGP, но внешне выглядит как одна AS
- Упрощает управление и уменьшает количество iBGP-соединений
Безопасность BGP
Методы защиты:
- GTSM/TTL Security — проверка TTL для защиты от удаленных атак
- MD5 аутентификация — защита от подделки BGP-сообщений
- RPKI (Resource Public Key Infrastructure) — проверка, что организация имеет право объявлять префиксы
- Prefix-фильтры — ограничение принимаемых маршрутов
- AS-path фильтры — блокировка маршрутов от нежелательных AS
Важно: BGP-утечки (когда организация объявляет чужие префиксы) могут вызвать серьезные проблемы в интернете. Поэтому важна валидация маршрутов через RPKI.
Резюме
Ключевые моменты:
- BGP — протокол для обмена маршрутами между разными организациями (AS)
- AS — автономная система, сеть под единым управлением
- eBGP — между разными AS, iBGP — внутри одной AS
- Атрибуты: AS-PATH, Local Preference, MED, Communities влияют на выбор пути
- Best Path Selection — сложный алгоритм выбора лучшего маршрута
- Масштабирование: Route Reflectors и Конфедерации для больших сетей
Цель: Обеспечить надежный обмен маршрутами между организациями в интернете с возможностью применения политик маршрутизации.
5.5 ACL (Access Control Lists) и политики
Что такое ACL?
ACL (Access Control List) — это список правил фильтрации трафика, которые применяются на маршрутизаторах и коммутаторах L3. ACL позволяют контролировать, какой трафик разрешен или запрещен на основе различных критериев: IP-адресов, протоколов, портов и других параметров.
Основные применения ACL:
- Безопасность: Ограничение доступа к определенным ресурсам сети
- Фильтрация трафика: Блокировка нежелательного трафика на границах сети
- Управление политиками: Определение трафика для QoS, NAT, VPN
- Контроль маршрутизации: Фильтрация обновлений протоколов маршрутизации
Типы ACL
Standard ACL (Стандартные списки контроля доступа):
- Номера: 1-99 и 1300-1999
- Фильтрация: Только по IP-адресу источника (source IP)
- Ограничения: Нельзя фильтровать по адресу назначения, портам или протоколам
- Применение: Простая фильтрация, например, запрет доступа с определенной подсети
- Рекомендация: Размещайте Standard ACL как можно ближе к назначению
Extended ACL (Расширенные списки контроля доступа):
- Номера: 100-199 и 2000-2699
- Фильтрация: По множеству критериев:
- IP-адрес источника (source IP)
- IP-адрес назначения (destination IP)
- Протокол (TCP, UDP, ICMP, и др.)
- Номера портов источника и назначения
- Флаги TCP (SYN, ACK, FIN и др.)
- ICMP-сообщения (echo, reply, unreachable и др.)
- Применение: Детальный контроль трафика, например, разрешить HTTP, но запретить Telnet
- Рекомендация: Размещайте Extended ACL как можно ближе к источнику
Named ACL (Именованные списки контроля доступа):
- Идентификация: Имя вместо номера (например, "BLOCK-GUEST-VLAN")
- Тип: Могут быть Standard или Extended
- Преимущества:
- Легче читать и понимать назначение ACL
- Можно редактировать отдельные правила (вставлять/удалять по номеру строки)
- Нет ограничения на количество ACL
- Современная практика: Рекомендуется использовать Named ACL для лучшей читаемости
| Тип ACL | Диапазон номеров | Критерии фильтрации | Где размещать |
|---|---|---|---|
| Standard | 1-99, 1300-1999 | Только source IP | Близко к назначению |
| Extended | 100-199, 2000-2699 | Source/Dest IP, протокол, порты | Близко к источнику |
| Named Standard | Имя | Только source IP | Близко к назначению |
| Named Extended | Имя | Source/Dest IP, протокол, порты | Близко к источнику |
Ключевые принципы работы ACL
1. Порядок обработки правил (Top-to-Bottom):
- Правила проверяются сверху вниз по порядку
- Первое совпавшее правило применяется, остальные игнорируются
- Важно размещать более специфичные правила в начале, общие — в конце
2. Неявный Deny All в конце (Implicit Deny):
- В конце каждого ACL автоматически добавляется правило
deny ip any any - Если пакет не совпал ни с одним правилом, он блокируется
- Всегда добавляйте явное
permitправило для разрешенного трафика
3. Направление применения (Inbound vs Outbound):
- Inbound (входящий): Фильтрует трафик, приходящий на интерфейс (до маршрутизации)
- Outbound (исходящий): Фильтрует трафик, выходящий с интерфейса (после маршрутизации)
- На одном интерфейсе может быть два ACL: один inbound, один outbound
4. Wildcard Mask (инверсная маска):
- Используется для определения диапазона адресов
- 0 — этот бит должен совпадать (проверяется)
- 1 — этот бит игнорируется (любое значение)
- Примеры:
0.0.0.0— точное совпадение адреса0.0.0.255— совпадение всей подсети /240.0.255.255— совпадение всей подсети /16255.255.255.255— любой адрес (то же, чтоany)
Примеры настройки Standard ACL
# Пример 1: Блокировать трафик от одного хоста
Router(config)# access-list 10 deny host 192.168.1.100
Router(config)# access-list 10 permit any
# Пример 2: Разрешить только трафик из подсети 10.0.0.0/24
Router(config)# access-list 20 permit 10.0.0.0 0.0.0.255
Router(config)# access-list 20 deny any
# Пример 3: Named Standard ACL - блокировать гостевую подсеть
Router(config)# ip access-list standard BLOCK-GUEST
Router(config-std-nacl)# deny 172.16.100.0 0.0.0.255
Router(config-std-nacl)# permit any
Router(config-std-nacl)# exit
# Применение ACL на интерфейс (outbound)
Router(config)# interface GigabitEthernet0/0
Router(config-if)# ip access-group BLOCK-GUEST out
Примеры настройки Extended ACL
# Пример 1: Разрешить HTTP и HTTPS, запретить Telnet
Router(config)# access-list 100 permit tcp any any eq 80
Router(config)# access-list 100 permit tcp any any eq 443
Router(config)# access-list 100 deny tcp any any eq 23
Router(config)# access-list 100 permit ip any any
# Пример 2: Блокировать ICMP ping от подсети 192.168.1.0/24
Router(config)# access-list 110 deny icmp 192.168.1.0 0.0.0.255 any echo
Router(config)# access-list 110 permit ip any any
# Пример 3: Named Extended ACL - контроль доступа к серверу
Router(config)# ip access-list extended SERVER-ACCESS
Router(config-ext-nacl)# permit tcp 10.0.0.0 0.0.0.255 host 192.168.1.100 eq 80
Router(config-ext-nacl)# permit tcp 10.0.0.0 0.0.0.255 host 192.168.1.100 eq 443
Router(config-ext-nacl)# permit tcp 10.0.1.0 0.0.0.255 host 192.168.1.100 eq 22
Router(config-ext-nacl)# deny ip any host 192.168.1.100
Router(config-ext-nacl)# permit ip any any
Router(config-ext-nacl)# exit
# Применение ACL на интерфейс (inbound)
Router(config)# interface GigabitEthernet0/1
Router(config-if)# ip access-group SERVER-ACCESS in
Детальные примеры Extended ACL
# Пример 4: Разрешить установленные TCP-соединения (established)
Router(config)# access-list 120 permit tcp any any established
Router(config)# access-list 120 deny tcp any any
Router(config)# access-list 120 permit ip any any
# Пример 5: Блокировать доступ к определенному диапазону портов
Router(config)# ip access-list extended BLOCK-PORTS
Router(config-ext-nacl)# deny tcp any any range 1024 2000
Router(config-ext-nacl)# permit ip any any
# Пример 6: Разрешить только DNS и NTP
Router(config)# ip access-list extended ALLOW-DNS-NTP
Router(config-ext-nacl)# permit udp any any eq 53 # DNS
Router(config-ext-nacl)# permit udp any any eq 123 # NTP
Router(config-ext-nacl)# deny ip any any
# Пример 7: Блокировать исходящий трафик на Facebook (пример)
Router(config)# ip access-list extended BLOCK-SOCIAL
Router(config-ext-nacl)# deny ip any 31.13.0.0 0.0.255.255
Router(config-ext-nacl)# deny ip any 66.220.144.0 0.0.15.255
Router(config-ext-nacl)# permit ip any any
Router(config-ext-nacl)# exit
Router(config)# interface GigabitEthernet0/2
Router(config-if)# ip access-group BLOCK-SOCIAL out
Редактирование Named ACL
# Просмотр ACL с номерами строк
Router# show ip access-lists SERVER-ACCESS
Extended IP access list SERVER-ACCESS
10 permit tcp 10.0.0.0 0.0.0.255 host 192.168.1.100 eq www
20 permit tcp 10.0.0.0 0.0.0.255 host 192.168.1.100 eq 443
30 deny ip any host 192.168.1.100
40 permit ip any any
# Вставка нового правила между существующими
Router(config)# ip access-list extended SERVER-ACCESS
Router(config-ext-nacl)# 25 permit tcp 10.0.2.0 0.0.0.255 host 192.168.1.100 eq 8080
Router(config-ext-nacl)# exit
# Удаление конкретного правила
Router(config)# ip access-list extended SERVER-ACCESS
Router(config-ext-nacl)# no 30
Router(config-ext-nacl)# exit
# Изменение номеров строк (ренумерация)
Router(config)# ip access-list resequence SERVER-ACCESS 10 10
Проверка и отладка ACL
# Просмотр всех ACL
Router# show ip access-lists
# Просмотр конкретного ACL
Router# show ip access-lists 100
Router# show ip access-lists SERVER-ACCESS
# Просмотр ACL, применённых на интерфейсы
Router# show ip interface GigabitEthernet0/0
... (показывает inbound и outbound ACL)
# Статистика совпадений (сколько пакетов совпало с каждым правилом)
Router# show ip access-lists
Extended IP access list SERVER-ACCESS
10 permit tcp 10.0.0.0 0.0.0.255 host 192.168.1.100 eq www (1234 matches)
20 permit tcp 10.0.0.0 0.0.0.255 host 192.168.1.100 eq 443 (567 matches)
# Очистка счетчиков совпадений
Router# clear ip access-list counters SERVER-ACCESS
# Отладка ACL (осторожно, может создать много вывода!)
Router# debug ip packet 100 detail
Лучшие практики использования ACL
Рекомендации:
- Используйте Named ACL: Имена более читаемы, чем номера
- Добавляйте комментарии: Документируйте назначение правил с помощью
remark - Размещение:
- Standard ACL — близко к назначению (чтобы не блокировать весь трафик от источника раньше времени)
- Extended ACL — близко к источнику (чтобы блокировать трафик как можно раньше)
- Специфичное в начало: Размещайте более конкретные правила перед общими
- Явный permit в конце: Добавляйте
permit ip any anyв конце, если хотите разрешить остальной трафик - Используйте established: Для разрешения ответов на исходящие соединения без открытия входящих портов
- Тестируйте перед применением: Неправильный ACL может полностью заблокировать доступ к устройству
- Логирование: Добавляйте
logк важным правилам для аудита
Пример комментирования ACL
# Использование remark для документирования
Router(config)# ip access-list extended PRODUCTION-FIREWALL
Router(config-ext-nacl)# remark === Allow web traffic from internal networks ===
Router(config-ext-nacl)# permit tcp 10.0.0.0 0.0.255.255 any eq 80
Router(config-ext-nacl)# permit tcp 10.0.0.0 0.0.255.255 any eq 443
Router(config-ext-nacl)# remark === Allow DNS queries ===
Router(config-ext-nacl)# permit udp 10.0.0.0 0.0.255.255 any eq 53
Router(config-ext-nacl)# remark === Block access to internal DMZ from internet ===
Router(config-ext-nacl)# deny ip any 172.16.0.0 0.0.255.255 log
Router(config-ext-nacl)# remark === Allow established connections ===
Router(config-ext-nacl)# permit tcp any any established
Router(config-ext-nacl)# remark === Deny all other traffic and log ===
Router(config-ext-nacl)# deny ip any any log
Пример сложного ACL для корпоративной сети
# Комплексный ACL для контроля доступа к серверной ферме
Router(config)# ip access-list extended DMZ-ACCESS-CONTROL
Router(config-ext-nacl)# remark === Allow HTTP/HTTPS from anywhere to web servers ===
Router(config-ext-nacl)# permit tcp any 172.16.10.0 0.0.0.255 eq 80
Router(config-ext-nacl)# permit tcp any 172.16.10.0 0.0.0.255 eq 443
Router(config-ext-nacl)#
Router(config-ext-nacl)# remark === Allow SSH only from admin network ===
Router(config-ext-nacl)# permit tcp 10.0.99.0 0.0.0.255 172.16.10.0 0.0.0.255 eq 22
Router(config-ext-nacl)#
Router(config-ext-nacl)# remark === Allow database access only from app servers ===
Router(config-ext-nacl)# permit tcp 172.16.20.0 0.0.0.255 host 172.16.10.50 eq 3306
Router(config-ext-nacl)# permit tcp 172.16.20.0 0.0.0.255 host 172.16.10.50 eq 5432
Router(config-ext-nacl)#
Router(config-ext-nacl)# remark === Allow ICMP for troubleshooting (limited types) ===
Router(config-ext-nacl)# permit icmp any any echo-reply
Router(config-ext-nacl)# permit icmp any any time-exceeded
Router(config-ext-nacl)# permit icmp any any unreachable
Router(config-ext-nacl)#
Router(config-ext-nacl)# remark === Deny and log suspicious traffic ===
Router(config-ext-nacl)# deny tcp any 172.16.10.0 0.0.0.255 eq 23 log
Router(config-ext-nacl)# deny tcp any 172.16.10.0 0.0.0.255 eq 445 log
Router(config-ext-nacl)#
Router(config-ext-nacl)# remark === Implicit deny (logged) ===
Router(config-ext-nacl)# deny ip any any log
Производительность: ACL обрабатываются аппаратно на современных маршрутизаторах и коммутаторах (TCAM), поэтому влияние на производительность минимально. Однако очень большие ACL (тысячи правил) могут замедлить обработку. В таких случаях рассмотрите использование Firewall или объединение правил.
Безопасность: ACL — это базовая защита, но не замена полноценного Firewall. ACL работают на L3/L4 и не анализируют содержимое пакетов. Для глубокой инспекции используйте Stateful Firewall, IPS/IDS или Next-Generation Firewall (NGFW).
5.6 QoS основы
- Классификация и маркировка: определение классов трафика и присвоение DSCP/CoS.
- Очереди и планирование: FIFO, WFQ, CBWFQ, приоритетные очереди (LLQ) для голоса/видео.
- Shaping и Policing: выравнивание трафика и ограничение скорости на границах.
- Устранение перегрузок: WRED/RED, управление буферами.
Стандарты и маркировки: DiffServ (RFC2474/2475), DSCP классы (EF/AF/BE), соотнесение с PCP (802.1Q).
Практика: QoS эффективен только end‑to‑end; согласуйте классы/метки по всей цепочке, учитывайте переписание DSCP.
Модели QoS
- Best Effort: отсутствие гарантий; весь трафик одинаков.
- IntServ: RSVP‑резервация ресурсов, масштабируется ограниченно.
- DiffServ: классы обслуживания и PHB (EF/AF/BE), масштабируемая модель для больших сетей.
Политики и границы доверия
- Trust boundary: где принимать метки DSCP/CoS, где переписывать.
- Mapping: DSCP → очереди/профили → приоритеты L2 (PCP), CoS → DSCP на uplink.
- Противодействие злоупотреблениям: полисинг на доступе, приоритизация лишь для критичных классов.
5.7 Multicast
Multicast обеспечивает доставку «один‑ко‑многим» без дублирования трафика на источнике. Используются специальные адреса и протоколы управления группами и деревьями распространения.
Адреса и основы
- IPv4: 224.0.0.0/4 (link‑local 224.0.0.0/24 не маршрутизируется), IGMP для управления членством.
- IPv6: FF00::/8, области (scope) FF0s::/16; MLD вместо IGMP.
- RPF (Reverse Path Forwarding): проверка обратного пути предотвращает петли.
PIM‑семейство
- PIM Dense‑Mode: flood‑and‑prune для плотных доменов (редко используется).
- PIM Sparse‑Mode (ASM): общий RP, регистрация источников, переход на кратчайшие пути (SPT).
- SSM (PIM‑SSM): подписка на конкретную пару (S,G) без RP, предпочтителен в современных сетях.
- MSDP: обмен источниками между доменами ASM.
Практика Multicast: SSM упрощает безопасность и масштабирование; на L2 используйте IGMP/MLD Snooping для ограничения flood.
5.8 IS‑IS/EIGRP/RIP
IS‑IS
- Тип: протокол состояния канала (link‑state) поверх CLNS; переносит IP через TLV.
- Уровни: Level‑1 (внутри области), Level‑2 (между областями); иерархия схожа с OSPF.
- Дизайн: масштабируется в провайдерских/фабричных сетях, устойчив к изменениям адресации.
EIGRP (Enhanced Interior Gateway Routing Protocol)
- Тип: гибридный протокол (сочетает преимущества distance-vector и link-state)
- Метрика: составная (пропускная способность/задержка и др. коэффициенты K-values)
- Стандартизация: RFC 7868 (ранее проприетарный протокол Cisco)
- Применение: исторически — enterprise Cisco; сегодня реже вне одновендорных сетей
DUAL алгоритм (Diffusing Update Algorithm)
DUAL — это ключевой алгоритм EIGRP, который обеспечивает быструю сходимость и гарантирует отсутствие петель маршрутизации без необходимости ждать таймеров (как в RIP) или выполнять полный пересчет топологии (как в OSPF).
Основные концепции DUAL:
- Feasible Distance (FD) — наименьшая известная метрика до сети назначения с момента последнего расчета
- Reported Distance (RD) или Advertised Distance (AD) — метрика, которую сообщает соседний маршрутизатор до сети назначения
- Successor — лучший следующий маршрутизатор (next-hop) для достижения сети назначения
- Feasible Successor (FS) — резервный маршрутизатор, который может немедленно заменить Successor без риска петель
Условие Feasibility (Feasibility Condition):
Маршрут может стать Feasible Successor только если выполняется условие:
- RD (соседа) < FD (текущий маршрут)
- Это означает: "Reported Distance соседа меньше, чем наш текущий Feasible Distance"
- Гарантия: Если это условие выполнено, использование этого маршрута не создаст петли
Пример работы DUAL:
Маршрутизатор R1 хочет достичь сети 10.0.0.0/24. Он получает обновления от трех соседей:
| Сосед | Reported Distance | Локальная метрика до соседа | Общая метрика (FD) | Статус |
|---|---|---|---|---|
| R2 | 100 | 50 | 150 | Successor (лучший маршрут) |
| R3 | 120 | 60 | 180 | Feasible Successor (RD=120 < FD=150 ✓) |
| R4 | 160 | 40 | 200 | Не Feasible Successor (RD=160 > FD=150 ✗) |
Результат: R2 используется как основной маршрут (Successor), R3 — как резервный (Feasible Successor). Если R2 откажет, R1 мгновенно переключится на R3 без пересчета таблицы маршрутизации.
Процесс выбора маршрута DUAL:
- Получение обновлений: Маршрутизатор получает метрики от всех соседей
- Расчет FD: Для каждого маршрута рассчитывается общая метрика (FD)
- Выбор Successor: Маршрут с наименьшим FD становится Successor (активным маршрутом)
- Проверка Feasibility: Остальные маршруты проверяются на условие RD < FD
- Определение FS: Маршруты, удовлетворяющие условию, становятся Feasible Successors
- Добавление в топологию: Successor и FS сохраняются в топологической таблице EIGRP
Преимущество DUAL: При отказе основного маршрута (Successor) переключение на резервный (Feasible Successor) происходит мгновенно (sub-second convergence) без запуска алгоритма пересчета. Если резервного маршрута нет, DUAL выполняет запрос (Query) к соседям для поиска альтернативного пути.
Состояния маршрутов в DUAL
Passive (пассивное состояние):
- Маршрут стабилен, Successor известен
- Нормальное рабочее состояние
- Маршрутизация работает без задержек
Active (активное состояние):
- Маршрут потерян, нет Feasible Successor
- DUAL отправляет Query (запросы) соседям для поиска альтернативного пути
- Маршрутизатор ждет Reply (ответы) от всех соседей
- Проблема: Если сосед не отвечает (Stuck-In-Active), маршрут может зависнуть (3 минуты по умолчанию)
Метрика EIGRP: K-values (K-значения)
EIGRP использует составную метрику, которая рассчитывается на основе нескольких параметров канала. Коэффициенты K-values определяют, какие параметры учитываются при расчете метрики.
Пять K-значений:
- K1 — коэффициент для пропускной способности (Bandwidth), по умолчанию = 1 (включен)
- K2 — коэффициент для загрузки (Load), по умолчанию = 0 (отключен)
- K3 — коэффициент для задержки (Delay), по умолчанию = 1 (включен)
- K4 — коэффициент для надежности (Reliability), по умолчанию = 0 (отключен)
- K5 — дополнительный коэффициент для надежности, по умолчанию = 0 (отключен)
По умолчанию: K1=1, K2=0, K3=1, K4=0, K5=0. Это означает, что метрика учитывает только пропускную способность (Bandwidth) и задержку (Delay). Загрузка и надежность обычно не используются, так как они динамически меняются и могут вызвать нестабильность маршрутизации.
Формула расчета метрики EIGRP
Классическая формула (до EIGRP Wide Metrics):
Если K5 = 0:
- Метрика = [K1 × Bandwidth + (K2 × Bandwidth) / (256 - Load) + K3 × Delay] × 256
Если K5 ≠ 0:
- Метрика = [K1 × Bandwidth + (K2 × Bandwidth) / (256 - Load) + K3 × Delay] × [K5 / (Reliability + K4)] × 256
Упрощенная формула (по умолчанию K1=1, K3=1, остальные=0):
- Метрика = (Bandwidth + Delay) × 256
Где:
- Bandwidth = 10^7 / минимальная пропускная способность на пути (в Kbps)
- Delay = сумма всех задержек на пути / 10 (в микросекундах)
Примеры расчета метрики
Пример 1: Ethernet 100 Mbps
- Bandwidth: 100,000 Kbps → 10^7 / 100,000 = 100
- Delay: 100 микросекунд (по умолчанию для 100 Mbps) → 100 / 10 = 10
- Метрика: (100 + 10) × 256 = 28,160
Пример 2: GigabitEthernet (1 Gbps)
- Bandwidth: 1,000,000 Kbps → 10^7 / 1,000,000 = 10
- Delay: 10 микросекунд (по умолчанию для 1 Gbps) → 10 / 10 = 1
- Метрика: (10 + 1) × 256 = 2,816
Пример 3: Serial 64 Kbps (медленный канал)
- Bandwidth: 64 Kbps → 10^7 / 64 = 156,250
- Delay: 20,000 микросекунд (по умолчанию) → 20,000 / 10 = 2,000
- Метрика: (156,250 + 2,000) × 256 = 40,512,000
| Тип интерфейса | Bandwidth (Kbps) | Delay (µs) | Метрика EIGRP |
|---|---|---|---|
| 10 Gigabit Ethernet | 10,000,000 | 10 | 256 |
| Gigabit Ethernet | 1,000,000 | 10 | 2,816 |
| FastEthernet (100 Mbps) | 100,000 | 100 | 28,160 |
| Ethernet (10 Mbps) | 10,000 | 1,000 | 281,600 |
| T1 (1.544 Mbps) | 1,544 | 20,000 | 1,794,560 |
| 64 Kbps | 64 | 20,000 | 40,512,000 |
EIGRP Wide Metrics: Для современных высокоскоростных интерфейсов (10 Gbps и выше) классическая формула недостаточно точна. EIGRP Wide Metrics использует 64-битную метрику вместо 32-битной и улучшенные формулы расчета для поддержки каналов до 655 Tbps.
Настройка K-values (не рекомендуется менять)
# Просмотр текущих K-values
Router# show ip protocols
# Изменение K-values (ОСТОРОЖНО!)
Router(config)# router eigrp 100
Router(config-router)# metric weights 0 1 0 1 0 0
# Формат: metric weights tos k1 k2 k3 k4 k5
# tos всегда 0 (не используется)
# По умолчанию: metric weights 0 1 0 1 0 0
ВАЖНО: Все маршрутизаторы в одной автономной системе EIGRP должны использовать одинаковые K-values. Если K-values различаются, маршрутизаторы не станут соседями. Изменение K-values без веской причины может привести к проблемам. Используйте значения по умолчанию, если нет специфических требований.
Дополнительные возможности EIGRP
- Поддержка VLSM и CIDR: Передает маски подсетей в обновлениях
- Суммаризация маршрутов: Автоматическая и ручная агрегация
- Балансировка нагрузки: Равнозначная (Equal-Cost) и неравнозначная (Unequal-Cost с параметром variance)
- Аутентификация: MD5 и SHA для защиты обновлений
- Stub маршрутизация: Ограничение запросов для упрощения топологии
- Named EIGRP: Современная конфигурация с поддержкой нескольких адресных семейств (IPv4, IPv6)
RIP (Routing Information Protocol)
- Тип: протокол вектора расстояний (distance-vector)
- Метрика: количество переходов (hop count), максимум 15 (16 = бесконечность, сеть недоступна)
- Варианты: RIPv1, RIPv2, RIPng (для IPv6)
- Применение: учебные/малые сети; ограниченная масштабируемость
Версии протокола RIP
RIPv1 (RFC 1058, 1988 год):
- Классовая маршрутизация (Classful): Не передает маски подсетей в обновлениях
- Broadcast: Обновления отправляются на адрес 255.255.255.255
- Нет аутентификации: Обновления не защищены, любой может отправить ложные маршруты
- Нет поддержки VLSM: Невозможно использовать разные маски в одной сети
- Автоматическая суммаризация: Маршруты автоматически агрегируются на границах классовых сетей
- Метрика: Только hop count (количество маршрутизаторов до сети)
RIPv2 (RFC 2453, 1998 год):
- Бесклассовая маршрутизация (Classless): Передает маски подсетей — поддержка VLSM и CIDR
- Multicast: Обновления отправляются на multicast-адрес 224.0.0.9 (меньше нагрузки на сеть)
- Аутентификация: Поддержка MD5 и plain text аутентификации
- Route Tags: Позволяют помечать маршруты для управления политиками
- Next Hop: Может указывать следующий переход, отличный от отправителя обновления
- Суммаризация: Ручная настройка агрегации маршрутов
- Совместимость: Обратно совместим с RIPv1 (можно работать в смешанных сетях)
RIPng (RIP Next Generation, RFC 2080):
- Назначение: Расширение RIP для IPv6
- Multicast адрес: FF02::9 (IPv6 link-local multicast)
- UDP порт: 521 (отличается от RIPv1/v2, которые используют порт 520)
- Префиксы: Передает IPv6-префиксы и длину префикса
- Аутентификация: Использует IPsec вместо встроенной аутентификации
- Next Hop: Поддерживает IPv6-адреса следующего перехода
- Ограничения: Те же, что и у RIPv2 (максимум 15 хопов, медленная сходимость)
| Параметр | RIPv1 | RIPv2 | RIPng |
|---|---|---|---|
| Маски подсетей | Нет (classful) | Да (classless) | Да (IPv6 префиксы) |
| Адрес обновлений | 255.255.255.255 (broadcast) | 224.0.0.9 (multicast) | FF02::9 (multicast) |
| Аутентификация | Нет | Plain text, MD5 | IPsec |
| VLSM/CIDR | Нет | Да | Да |
| UDP порт | 520 | 520 | 521 |
| Максимум хопов | 15 | 15 | 15 |
| Протокол IP | IPv4 | IPv4 | IPv6 |
Механизм обновлений RIP
RIP использует периодические обновления для распространения информации о маршрутах. Это простой, но не очень эффективный механизм.
Типы обновлений:
- Регулярные обновления (Regular Updates):
- Отправляются каждые 30 секунд по умолчанию
- Содержат всю таблицу маршрутизации (или её часть, если она большая)
- Отправляются всем соседям независимо от изменений
- Создают постоянный трафик в сети (недостаток протокола)
- Triggered Updates (обновления по событию):
- Отправляются немедленно при изменении маршрута
- Содержат только измененные маршруты
- Ускоряют сходимость сети
- Имеют случайную задержку (1-5 секунд) для предотвращения коллизий
Таймеры RIP:
- Update Timer (30 сек): Интервал между регулярными обновлениями
- Invalid Timer (180 сек): Время, после которого маршрут считается недействительным, если не получено обновление
- Holddown Timer (180 сек): Время, в течение которого маршрут удерживается перед удалением после объявления недостижимым
- Flush Timer (240 сек): Время, после которого маршрут удаляется из таблицы
Проблема медленной сходимости: Из-за периодических обновлений (30 сек) и таймеров (до 240 сек) RIP может требовать несколько минут для полной сходимости после изменений в сети. Это критический недостаток для современных сетей.
Проблемы и механизмы предотвращения петель
Протоколы вектора расстояний (как RIP) склонны к созданию петель маршрутизации. RIP использует несколько механизмов для их предотвращения:
1. Split Horizon (разделение горизонта):
- Правило: Не отправляй информацию о маршруте обратно в интерфейс, через который она была получена
- Логика: Если маршрутизатор A узнал о сети X от маршрутизатора B, то A не должен сообщать B о сети X
- Цель: Предотвращение петель в простых топологиях
Пример:
- R1 подключен к сети 10.0.0.0/24 напрямую
- R1 сообщает R2: "10.0.0.0/24 через меня, метрика 1"
- R2 НЕ будет сообщать R1 обратно: "10.0.0.0/24 через меня, метрика 2"
- Это предотвращает петлю, если канал R1-10.0.0.0 упадет
2. Split Horizon with Poison Reverse (отравленный обратный маршрут):
- Правило: Отправляй информацию о маршруте обратно, но с метрикой 16 (бесконечность)
- Логика: Явно сообщить соседу, что маршрут недоступен через обратное направление
- Преимущество: Быстрее информирует о недоступности маршрута
- Недостаток: Увеличивает размер обновлений
Пример:
- R1 знает о сети 10.0.0.0/24 через интерфейс Eth0
- R1 отправляет R2 (через Eth0): "10.0.0.0/24, метрика 16 (недоступно)"
- R2 сразу понимает, что не должен использовать R1 для достижения 10.0.0.0/24
3. Route Poisoning (отравление маршрута):
- Правило: Когда маршрут становится недоступным, немедленно объявить его с метрикой 16
- Цель: Быстро распространить информацию о недоступности сети
- Механизм: Triggered Update с метрикой 16 для недоступного маршрута
4. Holddown Timer (таймер удержания):
- Правило: После получения информации о недоступности маршрута игнорировать обновления с лучшей метрикой на определенное время (180 сек)
- Цель: Предотвратить принятие ложной информации о "восстановлении" маршрута, которая может быть результатом петли
- Работа:
- Маршрут объявлен недоступным (метрика 16)
- Запускается Holddown Timer (180 сек)
- В течение этого времени игнорируются обновления с меньшей метрикой от других маршрутизаторов
- Принимаются только обновления от того же маршрутизатора, который сообщил о недоступности
- Недостаток: Замедляет сходимость (до 3 минут)
5. Maximum Hop Count (максимальное количество переходов):
- Правило: Максимальная метрика = 15, метрика 16 = бесконечность (сеть недоступна)
- Цель: Предотвратить бесконечное увеличение метрики в случае петли
- Проблема: Ограничивает размер сети — нельзя использовать RIP в сетях с более чем 15 переходами
Проблема Count to Infinity (счет до бесконечности)
Сценарий проблемы:
- R1 — R2 — R3, сеть 10.0.0.0/24 подключена к R3
- R3 знает: 10.0.0.0/24, метрика 1 (напрямую подключена)
- R2 знает: 10.0.0.0/24, метрика 2 (через R3)
- R1 знает: 10.0.0.0/24, метрика 3 (через R2 → R3)
- Проблема: Связь R3 ↔ 10.0.0.0/24 обрывается
- R3 объявляет: 10.0.0.0/24, метрика 16 (недоступно)
- Но R2 еще не получил это обновление и сообщает R3: "У меня есть маршрут до 10.0.0.0/24, метрика 2"
- R3 думает: "Отлично! Теперь я могу достичь 10.0.0.0/24 через R2, метрика 3"
- R2 получает обновление от R3: "10.0.0.0/24, метрика 3" → обновляет свою метрику на 4
- R3 получает: метрика 4 → обновляет на 5... и так далее
- Результат: Метрика растет (4, 5, 6... 16), пока не достигнет 16 (бесконечность)
- Время сходимости: Может занять несколько минут
Решение проблемы Count to Infinity: Комбинация механизмов: Split Horizon предотвращает обратную отправку маршрутов, Route Poisoning быстро распространяет недоступность, Holddown Timer предотвращает принятие ложной информации, Maximum Hop Count (16) ограничивает "счет до бесконечности".
Пример настройки RIP
# Настройка RIPv2
Router(config)# router rip
Router(config-router)# version 2 # Использовать RIPv2
Router(config-router)# network 10.0.0.0 # Объявить сети
Router(config-router)# network 192.168.1.0
Router(config-router)# no auto-summary # Отключить автосуммаризацию
Router(config-router)# passive-interface GigabitEthernet0/0 # Не отправлять обновления на интерфейс
# Аутентификация MD5
Router(config)# interface GigabitEthernet0/1
Router(config-if)# ip rip authentication mode md5
Router(config-if)# ip rip authentication key-chain MY-KEYS
# Проверка
Router# show ip protocols
Router# show ip rip database
Router# show ip route rip
Router# debug ip rip
# Настройка RIPng (для IPv6)
Router(config)# ipv6 unicast-routing
Router(config)# ipv6 router rip MY-RIPNG-PROCESS
Router(config-rtr)# maximum-paths 4 # Балансировка нагрузки
# На интерфейсах
Router(config)# interface GigabitEthernet0/0
Router(config-if)# ipv6 rip MY-RIPNG-PROCESS enable
# Проверка
Router# show ipv6 protocols
Router# show ipv6 route rip
Router# show ipv6 rip database
Когда использовать RIP
Подходит для:
- Малые сети (до 15 маршрутизаторов)
- Учебные лаборатории и демонстрации
- Простые топологии без высоких требований к сходимости
- Совместимость со старым оборудованием
НЕ подходит для:
- Крупные корпоративные сети (используйте OSPF или EIGRP)
- Сети с требованиями к быстрой сходимости (используйте OSPF, EIGRP, IS-IS)
- Сети с более чем 15 переходами
- Сети, где важна оптимизация пропускной способности (RIP не учитывает скорость канала)
5.9 Traffic Engineering (RSVP‑TE/SR)
Traffic Engineering (TE) позволяет направлять трафик по путям, отличным от кратчайших, учитывая ограничения и цели (полоса, задержка, изоляция).
RSVP‑TE
- LSP: выделение меток и резервирование ресурсов по сигнализации RSVP.
- Constraints: атрибуты ссылок (административные метки, полоса) и CSPF для расчёта пути.
- Плюсы/минусы: детальный контроль, но сложность состояния и масштабирования.
Segment Routing
- SR‑MPLS: стек сегментов (labels) кодирует путь без hop‑by‑hop состояния.
- SRv6: сегменты как IPv6 адреса/функции; программируемость dataplane.
- Планирование путей: on‑box (TI‑LFA, SR‑TE Policy) или от контроллера (PCE/PCEP).
TE в транспорте: аналогичные цели достигаются и на оптическом/SDH уровне (A‑/Z‑концы, SLA, защита 1+1/1:1), но с иными технологиями сигнализации.
5.10 QoS углубление
DiffServ и PHB
- DSCP: классы EF (голос), AFxy (гарантированные), BE (по умолчанию).
- Mapping: DSCP ↔ очереди/профили, согласование с L2 PCP (802.1p) и WMM.
Очереди и планирование
- Strict Priority для критичных классов (с осторожностью против starvation).
- WRR/WFQ/CBWFQ: взвешенное обслуживание, формирование профилей.
- WRED/RED: ранние отбрасывания для предотвращения глобальных перегрузок.
Policing vs Shaping
- Token/Leaky Bucket: токены как «кредит» на отправку; shaping выравнивает, policing отбрасывает/ремаркирует.
- Параметры: CIR/PIR, burst (Bc/Be), влияние на джиттер и потери.
Network Calculus (базово)
- Идея: оценка худших задержек/буферов при известных ограничениях трафика и сервисных кривых.
- Трафик: (σ, ρ) модель — «скачок и наклон»; сервис — «rate‑latency».
- Применение: проектирование бюджетов задержки и размеров очередей для критичных классов.