На многих маршрутизаторах, даже в базовом IOS есть довольно удобная и наглядная цискина технология: Network-Based Application Recognition (NBAR). При помощи неё маршрутизатор может распознать различные протоколы и приложения и при необходимости использовать эти знания для реализации качества обслуживания (QoS)
Каким же образом маршрутизатор может выделить из трафика различные протоколы?
1. Анализируя заголовок TCP/UDP и сортируя по известным номерам. Это самое простое и доступное во всех IOSах
2. Анализируя заголовок протокола уровня 7. Например, разбирая заголовок HTTP и вычленяя оттуда тип передаваемых данных (например, сам протокол HTTP, citrix и некоторые другие Web-enabled приложения), URL, вложения.
3. Анализируя служебный протокол сложных (многоканальных) приложений и учитывая динамические, согласованные по служебному каналу, сессии.
4. Анализируя заголовки RTP.
5. Анализируя заголовок протоколов, отличных от ТСР/UDP
Третий и четвертый алгоритм требует включения инспектирования протоколов (ip inspect), рассмотренные чуть ранее.
Инспектирование требует IOS c firewall feature set.
Включить технологию NBAR можно двумя способами:
1. Просто включить исследование всех известных протоколов.
Ro(config)# int f0/0
Ro(config-if)# ip nbar protocol-discovery
После включения исследования на интерфейсе статистика по известным протоколам будет собираться и её можно посмотреть командой
Ro# show ip nbar protocol-discovery
2. Воспользоваться архитектурой MQC (Modular QoS CLI)
Создать класс трафика, указав необходимый протокол
Ro(config)# class-map [CLASSNAME]
Ro(config-cmap)# match protocol [protocol]
Например:
Ro(config)# class-map PD
Ro(config-cmap)# match protocol citrix ica-tag 2
Создать политику и указать для класса действие
Ro(config)# policy-map [POLICY]
Ro(config-pmap)# class [CLASSNAME]
Ro(config-pmap-c)# {action}
Например:
Ro(config)# policy-map POL
Ro(config-pmap)# class PD
Ro(config-pmap-c)# {shape|police|priority|service-policy}
Осталось привесить политику на интерфейс, чтобы её активировать
Ro(config)# int f0/0
Ro(config-if)# service-policy {input|output} [POLICY]
Например, повесим политику на вход интерфейса
Ro(config)# int f0/0
Ro(config-if)# service-policy input POL
Указание в классе трафика ключевых слов match protocol означает включение технологии NBAR.
Посмотреть статистику попаданий в класс можно посмотреть командой
Ro# sh policy-map interface f0/0
Осталось только напомнить, что любой процесс анализа трафика производится процессором и изрядно его напрягает. По ссылке — статья с тестом производительности без примерения NBAR, с применением базовых и расширенных технологий анализа.
статья на циско.ком
Результаты обработки трафика технологией NBAR можно собирать по SNMP и анализировать. С точки зрения защиты периметра, самое пристальное внимание надо уделять резкому возрастанию количества трафика по какому-нибудь протоколу. Это может свидетельствовать как о наличии в сети червей, так и о других проблемах, таких как ботнеты, спам-прокси и т.д.
(Продолжние следует)
Каким же образом маршрутизатор может выделить из трафика различные протоколы?
1. Анализируя заголовок TCP/UDP и сортируя по известным номерам. Это самое простое и доступное во всех IOSах
2. Анализируя заголовок протокола уровня 7. Например, разбирая заголовок HTTP и вычленяя оттуда тип передаваемых данных (например, сам протокол HTTP, citrix и некоторые другие Web-enabled приложения), URL, вложения.
3. Анализируя служебный протокол сложных (многоканальных) приложений и учитывая динамические, согласованные по служебному каналу, сессии.
4. Анализируя заголовки RTP.
5. Анализируя заголовок протоколов, отличных от ТСР/UDP
Третий и четвертый алгоритм требует включения инспектирования протоколов (ip inspect), рассмотренные чуть ранее.
Инспектирование требует IOS c firewall feature set.
Включить технологию NBAR можно двумя способами:
1. Просто включить исследование всех известных протоколов.
Ro(config)# int f0/0
Ro(config-if)# ip nbar protocol-discovery
После включения исследования на интерфейсе статистика по известным протоколам будет собираться и её можно посмотреть командой
Ro# show ip nbar protocol-discovery
2. Воспользоваться архитектурой MQC (Modular QoS CLI)
Создать класс трафика, указав необходимый протокол
Ro(config)# class-map [CLASSNAME]
Ro(config-cmap)# match protocol [protocol]
Например:
Ro(config)# class-map PD
Ro(config-cmap)# match protocol citrix ica-tag 2
Создать политику и указать для класса действие
Ro(config)# policy-map [POLICY]
Ro(config-pmap)# class [CLASSNAME]
Ro(config-pmap-c)# {action}
Например:
Ro(config)# policy-map POL
Ro(config-pmap)# class PD
Ro(config-pmap-c)# {shape|police|priority|service-policy}
Осталось привесить политику на интерфейс, чтобы её активировать
Ro(config)# int f0/0
Ro(config-if)# service-policy {input|output} [POLICY]
Например, повесим политику на вход интерфейса
Ro(config)# int f0/0
Ro(config-if)# service-policy input POL
Указание в классе трафика ключевых слов match protocol означает включение технологии NBAR.
Посмотреть статистику попаданий в класс можно посмотреть командой
Ro# sh policy-map interface f0/0
Осталось только напомнить, что любой процесс анализа трафика производится процессором и изрядно его напрягает. По ссылке — статья с тестом производительности без примерения NBAR, с применением базовых и расширенных технологий анализа.
статья на циско.ком
Результаты обработки трафика технологией NBAR можно собирать по SNMP и анализировать. С точки зрения защиты периметра, самое пристальное внимание надо уделять резкому возрастанию количества трафика по какому-нибудь протоколу. Это может свидетельствовать как о наличии в сети червей, так и о других проблемах, таких как ботнеты, спам-прокси и т.д.
(Продолжние следует)