Как улучшить безопасность и уменьшить загруженность процессора маршрутизатора Cisco с помощью функции CoPP

Как улучшить безопасность и уменьшить загруженность процессора маршрутизатора Cisco с помощью функции CoPP

Новости

Рассмотрим, как настроить ограничение интенсивности трафика, который приводит к перегруженности центрального процессора (CPU) маршрутизатора Cisco, с помощью функции CoPP (Control Plane Policing). Исследуемая топология состоит из двух маршрутизаторов Cisco 2911 с ПО Cisco IOS версии 15. Допускается использование других маршрутизаторов и версий Cisco IOS.

 

Схема топологии следующая:

 

Сценарий

На маршрутизаторах (или многоуровневых коммутаторах) можно использовать списки доступа или брандмауэры (Context Based Access Control, CBAC или Zone Based Firewall), чтобы разрешать/запрещать пакеты, которые проходят через маршрутизатор или к нему.

Мы также можем использовать полисинг (QoS Traffic Policing) для ограничения скорости трафика, который проходит через маршрутизатор.

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

  • Протоколы маршрутизации, такие как OSPF, EIGRP или BGP.
  • Протоколы резервирования шлюза, такие как HSRP, VRRP или GLBP.
  • Протоколы управления сетью, такие как Telnet, SSH, SNMP или RADIUS.
  • Пакеты, которые CEF не может пересылать.

Процессор проверяет пакеты, которые эти протоколы генерируют в плоскости контроля (control plane). Когда процессор получает слишком много пакетов, возможно, он не справляется и отбрасывает пакеты.

Когда это произойдет, то может произойти сбой соседских отношений или задержки при попытке подключиться к маршрутизатору с помощью Telnet/SSH.

Чтобы этого не произошло, есть несколько вариантов:

  •  rACL (Receive Access Control List): это стандартные или расширенные списки контроля доступа, которые управляют трафиком, отправляемым линейными платами процессору маршрутизации. Эта функция доступна только на высокопроизводительных маршрутизаторах, таких как Cisco серии 12000.
  • CoPP (Control Plane Policing): позволяет использовать политики Modular QoS CLI (Modular Quality of Service), чтобы разрешить/запретить или ограничить скорость трафика, который идет к маршрутному процессору.
  • CPPr (Control Plane Protection): это расширение CoPP. Единственное, что делает данный механизм, — это разделение процессора маршрутов на три подынтерфейса:
    — узел (host);
    — транзит (transite);
    — CEF исключение (CEF exception).
Задачи
  • R1 и R2 используют протоколы EIGRP и HSRP.
  • R1 настроен для удаленного управления с помощью Telnet.
  • Узел генерирует трафик ICMP (ping) и Telnet для проверки CoPP на R1.

 

Исходные настройки маршрутизаторов R1 и R2:

 

hostname R1
!
no ip domain lookup
!
ip cef
!
line con 0
exec-t 0 0
logg sync
exit
!
interface GigabitEthernet0/1
ip address 192.168.1.1 255.255.255.0
standby 1 ip 192.168.1.254
standby 1 priority 150
standby 1 preempt
no shutdown
exit
!
router eigrp 1
network 192.168.1.0 0.0.0.255
end

 

hostname R2
!
no ip domain lookup
!
ip cef
!
line con 0
exec-t 0 0
logg sync
exit
!
interface GigabitEthernet0/1
ip address 192.168.1.2 255.255.255.0
standby 1 ip 192.168.1.254
no shutdown
exit
!
router eigrp 1
network 192.168.1.0 0.0.0.255
end

 

Функция полисинга в плоскости контроля использует MQC, поэтому будем использовать class-map и policy-map. В данном случае в class-map лучше всего сопоставить трафик с помощью:

  • стандартных или расширенных списков контроля доступа;
  • значений приоритета DSCP или IP.

Классификация с помощью функции распознавания сетевых приложений NBAR (Network Based Application Recognition) поддерживается не на всех платформах и/или версиях IOS.

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

 

R1(config)#ip access-list extended ICMP
R1(config-ext-nacl)#permit icmp any any
R1(config)#ip access-list extended TELNET
R1(config-ext-nacl)#permit tcp any any eq 23
R1(config)#ip access-list extended EIGRP
R1(config-ext-nacl)#permit eigrp any any
R1(config)#ip access-list extended HSRP
R1(config-ext-nacl)#permit udp any host 224.0.0.102 eq 1985

 

Создадим соответствующие class-map:

 

R1(config)#class-map ICMP
R1(config-cmap)#match access-group name ICMP
R1(config)#class-map TELNET
R1(config-cmap)#match access-group name TELNET
R1(config)#class-map EIGRP
R1(config-cmap)#match access-group name EIGRP
R1(config)#class-map HSRP
R1(config-cmap)#match access-group name HSRP

 

Теперь создадим policy-map:

 

R1(config)#policy-map COPP
R1(config-pmap)#class ICMP
R1(config-pmap-c)#police 8000 conform-action transmit exceed-action transmit
R1(config-pmap-c)#exit
R1(config-pmap)#class TELNET
R1(config-pmap-c)#police 8000 conform-action transmit exceed-action transmit
R1(config-pmap-c)#exit
R1(config-pmap)#class EIGRP
R1(config-pmap-c)#police 8000 conform-action transmit exceed-action transmit
R1(config-pmap-c)#exit
R1(config-pmap)#class HSRP
R1(config-pmap-c)#police 8000 conform-action transmit exceed-action transmit
R1(config-pmap-c)#exit

 

В policy-map добавим ограничитель скорости для 8000 бит/с, и оба действия по согласованию и превышению настроены на передачу (transmit). Эти ограничители никогда ничего не сбросят по важной причине.

Когда CoPP настраивается в первый раз, неизвестно, сколько пакетов будет получено для каждого протокола. Есть риск, что будет отброшен разрешенный трафик. Лучше все разрешить. Как будет получена информация, сколько пакетов превышает согласованный всплеск (burst size), нужно изменить значения и установить действие при превышении на отбрасывание (drop).

Теперь нужно прикрепить настроенный policy-map к плоскости контроля. Делаем это с помощью следующей команды:

 

R1(config)#control-plane
R1(config-cp)#service-policy input COPP

 

Настало время проверить работу настроенного CoPP.

 

show access-list
show class-map
show policy-map
show policy-map control-plane
clear control-plane *

 

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

В CoPP также есть класс трафика по умолчанию class-default class-map. Сюда входят все протоколы второго уровня. Единственный протокол второго уровня, который можно добавить в другой class-map, — это ARP. Все остальное относится к классу по умолчанию.

Давайте изменим действие превышения для ICMP-трафика:

 

R1(config)#policy-map COPP
R1(config-pmap)#class ICMP
R1(config-pmap-c)#police cir 8000 conform-action transmit exceed-action drop

 

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

 

ping 192.168.1.1 repeat 50
Type escape sequence to abort.
Sending 50, 100-byte ICMP Echos to 192.168.1.1, timeout is 2 seconds:
!!!!!!!!!!!!!.!!!!!!!!!!!!!.!!!!!!!!!!!!!.!!!!!!!!
Success rate is 94 percent (47/50), round-trip min/avg/max = 2/4/13 ms

 

Теперь посмотрим статистику:

 

R1#show policy-map control-plane input class ICMP
Control Plane

Service-policy input: COPP

Class-map: ICMP (match-all)
55 packets, 6270 bytes
5 minute offered rate 1000 bps, drop rate 0000 bps
Match: access-group name ICMP
police:
cir 8000 bps, bc 1500 bytes
conformed 52 packets, 5928 bytes; actions:
transmit
exceeded 3 packets, 342 bytes; actions:
drop
conformed 1000 bps, exceeded 0000 bps/code>

 

Выше видно, что три пакета превысили граничное значение и были отброшены. Теперь очевидно все необходимое для создания более точных policy-map.

 

Выводы

 

В данной статье было рассмотрено как использовать CoPP (Control Plane Policing) для ограничения скорости пакетов в и от процессора маршрутов на плоскости контроля.
Для классификации используйте:

  • стандартные или расширенные списки доступа;
  • значения приоритета DSCP или IP;
  • не используйте NBAR, кроме как для сопоставления пакетов ARP.

Лучше всего настроить действие согласования (conform-action) и действие при превышении (exceed-action) на передачу (transmit), чтобы не терять нормальный трафик. Как только будет известно, сколько пакетов превышает границу, можно изменить значения границ и действие при превышении на отбросывание (drop).

Спасибо за уделенное время на прочтение статьи о том, как настроить ограничение интенсивности трафика, который приводит к перегруженности центрального процессора (CPU) маршрутизатора с Cisco IOS с помощью функции CoPP!

 

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet (программируемые сети) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco и Linux с трудоустройством!

Спешите подать заявку! Осталось пару мест. Группы стартуют 22 июля, а следующая 19 августа, 23 сентября, 21 октября, 25 ноября, 16 декабря, 20 января, 24 февраля.
Что Вы получите?
  • Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
  • Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
  • Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
  • Если хотите индивидуальный график — обсудим и осуществим.
  • Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
А еще поможем Вам:
  • отредактировать резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco CCNA Routing & Switching и Linux LPI, подайте заявку или получите бесплатную консультацию.
Новости

Больше похожих постов

Как стать системным администратором и с чего начать, системный администратор обучение бесплатно Харьков

Как стать системным администратором и с чего начать, системный администратор обучение бесплатно Харьков

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Самое читаемое
Меню