Поиск...

среда, 19 декабря 2012 г.

Настройка мониторинга и QoS на cisco ASA

Доброго времени суток!!!

Надеюсь, прошлый пост по DMVPN вам понравился. Ну а сегодня, по многочисленным просьбам ?, я хочу рассмотреть ситуацию, в которую попадали, попадают и, скорее всего, будут попадать, многие администраторы.
Иногда приходит момент, когда начальство начинает говорить, что медленно работает интернет. Иногда и самому себе начинает не хватать скорости по какой-то причине… И тут необходимо выяснить, кто же этот "злостный пожиратель интернета и канала одновременно" ?. Для этого необходимо собрать статистику с пограничного устройства и, проанализировав, наказать виновных и настроить QoS (или распределение скорости канала, приоритезацию трафика или как кому угодно).
Кому интересно как это можно сделать на cisco ASA, добро пожаловать под кат…

Как всегда, теорию оставляю вам, а пояснения будут по ходу. Итак, схема сегодня будет выглядеть следующим образом:


Что мы имеем. Есть небольшая (упрощенная) сеть предприятия, состоящая из роутера cisco и устройства безопасности cisco ASA. Имеется четыре сети:
  • 1. Chief_network (192.168.1.0/24), где находятся рабочие станции руководства. Для проверки используется Host_1 с IP-адресом 192.168.1.10;
  • 2. Office_network (192.168.2.0/24), где находятся рабочие станции пользователей. Для проверки используется Host_2 с IP-адресом 192.168.2.10;
  • 3. Manage_network (10.10.10.0/24), где находится сервер сбора статистики (IP-адрес 10.10.10.10.);
  • 4. Промежуточная сеть Net_inside (20.20.20.0/30) предназначенная для соединения роутера и устройства безопасности. Данная сеть подключена к cisco ASA к интерфейсу inside.
Внешний интерфейс cisco ASA (outside) получает IP-адрес по протоколу DHCP. Для выхода в интернет настроен динамический NAT в данный IP-адрес (PAT).
Задача. Организовать и настроить сбор статистики использования полосы пропускания (скорости) канала связи с интернет, количества трафика, посещаемых сайтах и другой сопутствующей информации. Организовать распределение выделенной скорости (или полосы пропускания) конкретным сетям (хостам) (другими словами – настроить QoS).
Немного пояснений, как создать такую схему в GNS3. В качестве Host_1, Host_2 и SRV_NetFlowAnalyzer используются "VirtualBox guest"-элементы с настроенными на них UDPTunnel-ми в качестве сетевых интерфейсов. В роутере (cisco 3640) присутствуют 4-ре слота (NM-1FE-TX) по одному FastEthernet порту. Cisco ASA используется с IOS версии 8.4 (как запустить ASA с данным IOS можно посмотреть вот тут). Подключение к интернет реализовано через элемент "Cloud" с привязанным к нему сетевым интерфейсом VMNet8, который используется VMWare Workstation 9 для организации подключения типа NAT. Здесь следует учитывать тот факт, что по умолчанию VMWare Workstation 9 для сети за NAT-ом использует диапазон 192.168.158.128-254/24, шлюзом по умолчанию для которого является адрес 192.168.158.2, а не 192.168.158.1, как могло показаться. Данный адрес (192.168.158.2) следует выставить в качестве IP-адреса DNS-сервера на конечных хостах. Элементы "Ethernet Switch" используются для соединения ASA и "Cloud" и соединения ASA, Router и SRV_NetFlowAnalyzer соответственно.
Для решения задачи сбора подробной статистики будем использовать NetFlow и в качестве collector-а – сервер с установленным на нем NetFlow Analyzer от компании ManageEngine. Я пробовал еще программы PRTG и Scrutinizer Flow Analyzer, но они мне менее понравились. Чем примечателен NetFlow Analyzer от компании ManageEngine, так это тем, что, несмотря на его платность ?, после окончания trial-периода он оставляет работоспособным мониторинг 2-х интерфейсов в полном объеме (а этого вполне достаточно для работы, имея inside и outside на cisco ASA).
Итак, приступим. Как всегда, для начала, организуем сетевую доступность и выход пользователей и руководства в интернет. Начнем с роутера:

R1#conf t
R1(config)#hostname Router - задаем имя устройству;
Router(config)#int fa 0/0
Router(config-if)#ip address 20.20.20.2 255.255.255.252 - назначаем IP-адрес на интерфейсе, смотрящем в сторону ASA;
Router(config-if)#no shutdown - включаем интерфейс;
Router(config-if)#exit
Router(config)#int fa 3/0
Router(config-if)#ip address 10.10.10.2 255.255.255.0 - назначаем IP-адрес на интерфейсе, смотрящем в сеть Manage_Network;
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#int fa 1/0
Router(config-if)#ip address 192.168.2.1 255.255.255.0 - назначаем IP-адрес на интерфейсе, смотрящем в сеть Office_Network;
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#int fa 2/0
Router(config-if)#ip address 192.168.1.1 255.255.255.0 - назначаем IP-адрес на интерфейсе, смотрящем в сеть Chief_Network;
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#ip route 0.0.0.0 0.0.0.0 20.20.20.1 - прописываем маршрут по умолчанию через cisco ASA;
Router(config)#exit
Router#wr
Router#


Теперь перейдем на cisco ASA:

ciscoasa> en
Password:
ciscoasa# conf t
ciscoasa(config)#
ciscoasa(config)# int gi 0
ciscoasa(config-if)# ip address dhcp – настраиваем, чтобы IP-адрес на интерфейс устанавливался по DHCP;
ciscoasa(config-if)# no sh – включаем интерфейс;
ciscoasa(config-if)# nameif outside – определяем, что этот интерфейс будет outside. Соответственно security-level автоматически назначается равным "0";
ciscoasa(config-if)# exit
ciscoasa(config)# int gi 1
ciscoasa(config-if)# nameif inside – определяем, что этот интерфейс будет inside. Соответственно security-level автоматически назначается равным "100";
ciscoasa(config-if)# ip address 20.20.20.1 255.255.255.252 – назначаем IP-адрес интерфейсу;
ciscoasa(config-if)# no sh
ciscoasa(config-if)# exit
ciscoasa(config)# int gi 2
ciscoasa(config-if)# nameif manage – определяем, что этот интерфейс будет manage;
ciscoasa(config-if)# security-level 50 – устанавливаем security-level в значение "50";
ciscoasa(config-if)# ip address 10.10.10.1 255.255.255.0
ciscoasa(config-if)# no sh
ciscoasa(config-if)# exit
ciscoasa(config)# route outside 0.0.0.0 0.0.0.0 192.168.158.2 – прописываем маршрут по умолчанию через outside;
ciscoasa(config)# route inside 192.168.1.0 255.255.255.0 20.20.20.2 – так как мы не используем здесь динамическую маршрутизацию, то прописываем статические маршруты в сети пользователей, находящиеся за роутером, через интерфейс inside;
ciscoasa(config)# route inside 192.168.2.0 255.255.255.0 20.20.20.2
ciscoasa(config)# object network OFFICE – из-за специфики настройки NAT в IOS 8.4 создаем object network для каждой из сетей пользователей. В данном случае для сети Office_network;
ciscoasa(config-network-object)# subnet 192.168.2.0 255.255.255.0 – определяем соответствующую подсеть;
ciscoasa(config-network-object)# nat (inside,outside) dynamic interface – включаем динамический NAT (PAT) непосредственно для данной object network. В прошлых IOS-ах, насколько вы помните, NAT включался из глобального режима;
ciscoasa(config-network-object)# exit
ciscoasa(config)# object network CHIEF
ciscoasa(config-network-object)# subnet 192.168.1.0 255.255.255.0
ciscoasa(config-network-object)# nat (inside,outside) dynamic interface
ciscoasa(config-network-object)# exit


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

ciscoasa(config)# class-map inspection_default – создаем класс трафика;
ciscoasa(config-cmap)# match default-inspection-traffic – определяем тип трафика, попадающий в данный класс;
ciscoasa(config-cmap)# policy-map type inspect dns preset_dns_map
ciscoasa(config-pmap)# parameters
ciscoasa(config-pmap-p)# message-length maximum 512
ciscoasa(config-pmap-p)# policy-map global_policy – определяем глобальную политику инспектирования;
ciscoasa(config-pmap)# class inspection_default – подключаем к ней ранее созданный класс;
ciscoasa(config-pmap-c)# inspect dns preset_dns_map – определяем, что делать с данным трафиком (в данном случае просто проводить инспекцию);
ciscoasa(config-pmap-c)# inspect ftp
ciscoasa(config-pmap-c)# inspect h323 h225
ciscoasa(config-pmap-c)# inspect h323 ras
ciscoasa(config-pmap-c)# inspect rsh
ciscoasa(config-pmap-c)# inspect rtsp
ciscoasa(config-pmap-c)# inspect esmtp
ciscoasa(config-pmap-c)# inspect sqlnet
ciscoasa(config-pmap-c)# inspect skinny
ciscoasa(config-pmap-c)# inspect sunrpc
ciscoasa(config-pmap-c)# inspect xdmcp
ciscoasa(config-pmap-c)# inspect sip
ciscoasa(config-pmap-c)# inspect netbios
ciscoasa(config-pmap-c)# inspect tftp
ciscoasa(config-pmap-c)# inspect icmp
ciscoasa(config-pmap-c)# service-policy global_policy global – включаем политику глобально на всем устройстве;
ciscoasa(config)#exit
ciscoasa#wr


Основные сетевые настройки закончили. Давайте проверимся. Зайдем на Host_1 и Host_2 и посмотрим наличие доступа в интернет.
Host_1:


    где:
  • 1 – IP-адрес интерфейса inside ASA.


Host_2:


 
Доступ в интернет есть. Посмотрим, для верности, трансляцию адресов на cisco ASA:


Как видно, трансляция отлично работает.
На данный момент мы настроили сетевую доступность и обеспечили выход в интернет всем заинтересованным лицам, но сейчас каждый ходит куда хочет и занимает максимально доступную полосу канала (ну или использует скорость канала по полной :)).
Для организации контроля над всем этим делом, давайте установим и настроим сервер мониторинга, проанализируем, кто куда ходит, и затем настроим приоритеты и разграничение скорости.
Для этого, переходим на сервер SRV_NetFlowAnalyzer (установлена win 2003 со службой IIS) и установим программу NetFlow Analyzer (скачать можно вот здесь). Запускаем скачанный файл. В приветственном окне нажимаем "Next". В следующем соглашаемся с лицензией ("Yes"). Затем выбираем папку, куда будет установлена программа (по умолчанию C:\Program Files\ManageEngine\NetFlow). Затем, вы должны увидеть следующее окно:


Здесь указываем порт для доступа через web-интерфейс (1) и порт, на который NetFlow Analyzer будет принимать пакеты NetFlow (2). Можно оставить все по умолчанию. Следует так же проверить, чтобы порт для web (8080) работал и "слушался" установленной службой IIS. Нажимаем "Next":


Здесь указываем snmp community (1) (по умолчанию "public") и порт (2). Нажимаем "Next":


Здесь отмечаем пункт, чтобы NetFlow Analyzer установился в качестве сервиса windows. В дальнейшем, за счет этого, он будет запускаться при старте системы автоматически. Нажимаем "Next":


В этом окне указываем, какую папку создаст для себя программа. Нажимаем "Next":


Здесь просят ввести данные для технической поддержки. Если вам она необходима, то заполняйте, если нет – нажимайте "Skip":


В данном окне нам предлагают проверить параметры установки. Если все верно, нажимаем "Next". Начнется процесс установки программы. После окончания установки вы должны увидеть следующее окно:


Отказываемся от просмотра файла "Readme" и отмечаем пункт запуска сервиса NetFlow Analyzer. Нажимаем "Finish". После запуска сервиса (будет видно соответствующее окно), если у вас в панели задач windows (внизу) видна некая непонятная закладка и при наведении на нее пишет "do not close", не пугайтесь, можете просто перегрузить сервер win 2003, и при следующей загрузке этой закладки уже не будет. Находим ярлык программы на рабочем столе и дважды кликаем по нему (или можно открыть браузер и ввести http://localhost:8080). Вы должны увидеть вот такое приветственное окно:


Стандартный логин и пароль: admin/admin. Вводим его и заходим в консоль управления:


Это главное окно программы. Как вы можете заметить, оно пустое. Проверьте в нем лишь порт для NetFlow, который мы указывали ранее, чтобы он совпадал. Можете полазить там по вкладкам, посмотреть, все они будут пустыми. Вернемся на наши сетевые устройства и настроим на них NetFlow.
Чем мне еще понравился данный продукт, так это Help-ом. Там есть примеры настройки NetFlow на оборудовании. Но вот как раз настройку NetFlow на cisco ASA я не нашел :).
Так как у нас на данный момент есть возможность мониторинга более 2-х интерфейсов со всем функционалом, то грех этим не воспользоваться. Поэтому настроим NetFlow не только на cisco ASA, но еще и на роутере (cisco 3640). С него и начнем:

Router#conf t
Router(config)#ip flow-export destination 10.10.10.10 9996 – определяем IP-адрес и порт collector-а, куда будут отправляться пакеты (cache) NetFlow;
Router(config)#ip flow-export source fastEthernet 3/0 – указываем, какой из интерфейсов будет использоваться в качестве источника, для отправки NetFlow пакетов;
Router(config)#ip flow-export version 9 – определяем версию NetFlow (существует еще версия 5);
Router(config)#ip flow-cache timeout active 1 – определяем интервал времени (в минутах) через которое устройство будет делать так называемые сэмплы (выборку) пакетов и отправлять их на collector;
Router(config)#ip flow-cache timeout inactive 15 – определяем интервал времени (в секундах) неактивности трафика. Т.е. каждые 15 секунд устройство будет проверять наличие соответствующего трафика;
Router(config)#ip flow-top-talkers – для возможности просмотра основных потребителей трафика непосредственно на устройстве создадим группу Top-talkers. В дальнейшем, чтобы посмотреть этот список на устройстве, используйте команду show ip flow top-talkers;
Router(config-flow-top-talkers)#top 10 – указываем количество отображаемых элементов;
Router(config-flow-top-talkers)#cache-timeout 60000 – интервал (в миллисекундах) сбора статистики;
Router(config-flow-top-talkers)#sort-by bytes – метод сортировки результатов;
Router(config-flow-top-talkers)#exit
Router(config)#snmp-server community public ro – определяем snmp community и даем права read only;
Router(config)#snmp-server ifindex persist – включаем "разрешение имен интерфейсов". За счет этого на сервере имена интерфейсов устройства будут отображаться корректно;
Router(config)#int fa 0/0
Router(config-if)#ip flow ingress – указываем собирать статистику по входящему трафику;
Router(config-if)#ip flow egress – указываем собирать статистику по исходящему трафику;
Router(config-if)#ip route-cache flow – включаем NetFlow export на интерфейсе;
Router(config-if)#exit
Router(config)#int fa 1/0
Router(config-if)#ip flow ingress
Router(config-if)#ip flow egress
Router(config-if)#ip route-cache
Router(config-if)#exit
Router(config)#int fa 2/0
Router(config-if)#ip flow ingress
Router(config-if)#ip flow egress
Router(config-if)#ip route-cache
Router(config-if)#exit
Router(config)#exit
Router#wr
Router#


Теперь перейдем на cisco ASA и настроим NetFlow там. Настройки будут отличаться от роутера. Кроме основных настроек, нам необходимо будет создать специальный класс, специальный список, который будет отлавливать необходимый нам трафик, создать затем политику и применить ее глобально на устройстве. Но, обо всем по порядку:

ciscoasa# conf t
ciscoasa(config)# snmp-server community public – прописываем snmp community;
ciscoasa(config)# access-list For-NetFlow extended permit ip any any – создаем список доступа для захвата нужного трафика. Так как нам нужно отслеживать весь проходящий через ASA трафик, то делаем этот список как можно шире;
ciscoasa(config)# flow-export destination manage 10.10.10.10 9996 – как и на роутере, указываем IP-адрес и порт collector-а, только еще указываем, что он находится за интерфейсом "manage";
ciscoasa(config)# flow-export delay flow-create 60 – устанавливаем интервал (в секундах) сэмплов (выборок) трафика для последующей отсылки на NetFlow collector;
ciscoasa(config)# flow-export template timeout-rate 1 – время неактивности (в минутах);
ciscoasa(config)# class-map NetFlow – создаем класс для NetFlow трафика;
ciscoasa(config-cmap)# match access-list For-NetFlow – привязываем к этому классу ранее созданный список доступа. Теперь весь трафик, проходящий через ASA, будет попадать в этот класс;
ciscoasa(config-cmap)# exit
ciscoasa(config)# policy-map global_policy – заходим в настройки глобальной политики;
ciscoasa(config-pmap)# class NetFlow – привязываем к политике созданный класс;
ciscoasa(config-pmap-c)# flow-export event-type all destination 10.10.10.10 – указываем какое действие делать с трафиком, относящимся к данному классу. В частности весь этот трафик будет отправлен на collector с IP-адресом 10.10.10.10;
ciscoasa(config-pmap-c)# exit
ciscoasa(config-pmap)# exit
ciscoasa(config)# exit
ciscoasa# wr


Ну что же, с настройками на устройствах вроде как закончили, теперь перейдем на сервер мониторинга (SRV_NetFlowAnalyzer) и настроим наш collector (NetFlow Analyzer).
Открываем web-консоль управления (можно через ярлык или через http://localhost:8080). Вполне возможно вы уже увидите в главном окне два устройства и какой-то трафик, но создадим для них отдельную группу. Для этого переходим на вкладку Devices Groups:


Нажимаем "Add":


Видимые collector-у устройства будут отображаться слева (если их нет, подождите немного, необходимо, чтобы прошел какой-нибудь трафик через эти устройства, для этого, попускайте ping-и например). Нажимаем на кнопку переноса и переносим их в правый список. После этого нажимаем "Save". Как результат, вы должны увидеть в закладке "Device Groups" созданную группу с двумя устройствами в ней.
Вернувшись на главную страницу ("Dashboards") вы увидите приблизительно вот это:


Уже красиво :). Уже можно посмотреть, какой трафик у нас бегает через устройства. Для более удобного просмотра статистики по трафику я предлагаю создать определенные правила (вид отчетов). Для этого, переходим на вкладку "Reports" и слева около надписи "Available Reports" нажимаем "Add". Откроется вот такое окно:


Здесь создаем первый "Report". Указываем ему имя (1), затем выбираем устройство из списка (2) (я выбрал cisco ASA 10.10.10.1). Далее из левой части списка выбираем виды отчетов и переносим их в правую часть (3). Для простоты я выбрал все. Далее выбираем период, за который мы хотим получать отчет (4). Теперь, прежде чем добавить отчет, необходимо указать, какой тип трафика, какие протоколы и так далее ему показывать. Для этого необходимо создать специальный фильтр. Нажимаем на "New Filter" (5). Откроется еще одно окно:


Здесь, так же задаем имя фильтра, указываем тип "Include". В пункте "Application" из левого списка выбираем интересующие нас виды приложений (http и https) и переносим их в правый список. Теперь, в этом же окне переходим на пункт "Source":


Здесь указываем сеть, для которой мы создаем фильтр. В данном случае указываем Chief_Network (192.168.1.0/24). Не закрывая окно, переходим к пункту "Protocol":


Снова из списка справа выбираем нужные нам протоколы (IP, TCP, UDP) и переносим их в правую часть. Все, нажимаем на "Add".
Фильтр должен появиться в нижнем списке. Отмечаем его и нажимаем "Add" уже в окне добавления отчета. Точно такие же действия проделайте для создания отчета по сети Office_Network. В итоге, у вас в списке должны присутствовать два отчета.
Теперь, если еще ничего не отображается, необходимо полазит в интернете с конечных хостов, чтобы наработать какой-нибудь трафик и собрать статистику. Если после этого тоже ничего не отображается, то перегрузите сервер с установленным NetFlow Analyzer.
Для просмотра статистики и отчетов снова возвращаемся во вкладку "Reports", выбираем любой отчет (я выбрал "Chief") и смотрим:


На закладке "Application" отображается общая информация по объему трафика по каждому виду приложения, отмеченного в фильтре. Переходим на вкладку "Source":


Здесь мы видим список источников трафика (ну у меня он один, а в реальной жизни тут будут все хосты, которые находятся в заданной сети). Информация тут представлена по общему объему трафика на каждый хост. Переходим на вкладку "Destination":


Здесь показывается статистика по самым популярным посещаемым узлам (по объему трафика). Переходим на закладку "Conversations":


Здесь нам показана подробная статистика о соединениях (кто с кем, объем трафика, порты и так далее).
Я привел лишь базовую настройку этой программы, но, если у вас есть желание, то можете проиграться побольше. Ну а мы идем дальше.
Вторая задача, после сбора статистики - это настройка распределения пропускной способности (скорости) канала (Quality of Service). Если все обобщить, то это просто обработка пакетов согласно настроенным очередям. Есть три основных способа использования QoS на cisco ASA:
1. Traffic Prioritization. Принцип состоит в том, что некоторому типу трафика (обычно Voice) присваивается приоритет и после этого, он "обслуживается" в первую очередь, по сравнению с другим типом трафика. В cisco ASA можно задать лишь два приоритета - приоритетный (Priority QoS) и не приоритетный (Nonpriority QoS). Применяется этот вид QoS только на исходящий (egress) трафик. Настроить его можно с помощью следующих команд:

ASA(config)#policy map <название политики> - создаем политику;
ASA(config-pmap)#class <название класса> - перед этим его нужно создать отдельно и определить тип трафика, который необходимо приоритезировать;
ASA(config-pmap-c)#priority
ASA(config-pmap-c)#exit
ASA(config-pmap)#exit
ASA(config)#priority-queue <имя интерфейса> - включаем на интерфейсе.



Так как у нас нет Voice, то настраивать это мы не будем.
2. Traffic Shaping. Принцип действия основан на том, что настраивается "потолок" полосы пропускания (скорости), затем назначается средний размер пакета (burst size) который будет отсылаться через определенный промежуток времени. Другими словами, если у нас, например, полоса пропускания для shaping-а 2 Mbps, а размер burst size 16 Kbps и интервал времени 8 msec, то получается что каждые 8 msec ASA будет отсылать 16 Kbps информации.
Как всегда есть свои ограничения. 1) Если интервал времени задать большим, то устройство передаст информацию быстрее и будет ждать следующего момента, т.е. чувствительные к задержкам сервисы (VoIP) могут работать плохо. 2) Данный тип QoS применим только для трафика, который входит в class-default, создаваемый cisco ASA по умолчанию, т.е. ко всему трафику,. Другими словами, вы не можете создать специальный класс для shaping-а, но можете создать polucy-map. 3) Нельзя применить Traffic-Shaping глобально на устройстве.
Это нам так же не подойдет, так как мы хотим разграничить полосу пропускания (скорости) конкретным сетям (хостам). Но, если кто то хочет его настроить, то вот настройки:

ASA(config)#policy map <название политики> - создаем политику;
ASA(config-pmap)#class class-default - применим ТОЛЬКО для данного класса;
ASA(config-pmap-c)# shape average
[burst_size] - задаем нужные значения;
ASA(config-pmap-c)#exit
ASA(config-pmap)#exit
ASA(config)# service-policy <название политики> interface <название интерфейса> - привязываем политику к конкретному интерфейсу;



3. Traffic policing (traffic rate-limiting). Принцип основан на том, что задается верхний "потолок" полосы пропускания (скорости), которую может обеспечить интерфейс и любой трафик, который превышает этот лимит просто сбрасывается в конец очереди. Строго и со вкусом :).
Вот это то что нам надо, его мы и будем настраивать.
Хочу лишь заметить еще кое что:
  • - нельзя сначала сделать трафику Priority, а затем еще и Shaping;
  • - нельзя сначала сделать трафику Policing, а затем еще и Shaping;
  • - нельзя сначала сделать трафику Shaping, а затем еще и Policing.
С небольшим экскурсом в теорию разобрались. Не судите строго, писал так, как понимаю сам и на звание эксперта не претендую :). За остальной информацией можно обратиться в интернет.
А мы двигаемся дальше и давайте, для начала, убедимся, что сейчас ограничения скорости нет ни у кого.
Host_1:


Host_2:


Как видно, ограничений нет. Ну что же, давайте ограничим скорость для Office_Network до 512 Кбит/с, думаю им хватит :). "Шефу" оставим полный канал. Для этого переходим на cisco ASA:

ciscoasa# conf t
ciscoasa(config)# access-list LIMIT_Office_Net extended permit ip 192.168.2.0 255.255.255.0 any - создаем список доступа для интересующего нас трафика. В данном случае, когда из внутренней сети 192.168.2.0/24 идут во "внешний мир";
ciscoasa(config)# access-list LIMIT_Office_Net extended permit ip any 192.168.2.0 255.255.255.0 - в данном случае, трафик идет из "внешнего мира" во внутреннюю сеть 192.168.2.0/24;
ciscoasa(config)# class-map LIMIT_Speed - создаем свой класс;
ciscoasa(config-cmap)# match access-list LIMIT_Office_Net - привязываем к нему ранее созданный список доступа;
ciscoasa(config-cmap)# exit
ciscoasa(config)# policy-map FOR_Office_Net - создаем свою политику;
ciscoasa(config-pmap)# class LIMIT_Speed - привязываем к данной политике ранее созданный класс;
ciscoasa(config-pmap-c)# police input 512000 96000 conform-action transmit exceed-action drop - назначаем действие, которое необходимо выполнить с input трафиком, привязанным к классу. В данном случае выставляется максимальная скорость (confirm rate) 512 Кбит/с и максимальное количество бит (burst size) 96000 (формула для расчета: Burst size = (confirm rate)/8*1.5), все, что подпадает под эти значения - пропускается, все что выходит за рамки - сбрасывается;
ciscoasa(config-pmap-c)# police output 512000 96000 conform-action transmit exceed-action drop - назначаем действие, которое необходимо выполнить с output трафиком, привязанным к классу;
ciscoasa(config)# service-policy FOR_Office_Net interface inside - привязываем созданную политику к интерфейсу inside;
ciscoasa(config)# exit
ciscoasa# wr
ciscoasa#


Конечно, я здесь привел пример "широкого" списка доступа, но он может быть организован намного строже. А именно для конкретного хоста, для конкретного порта и так .далее. Но это уже, если надо, вы попробуйте сами.
Теперь вернемся на Host_2 из сети 192.168.2.0 и проверим скорость сейчас:


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


Как видим ограничений нет (не смотрите что поменялась скорость передачи, просто видимо на момент проверки канал был немного загружен :)).
Работу политики можно так же посмотреть и на самом устройстве cisco ASA:


    где:
  • 1 - созданная политика;
  • 2 - привязанный к политике класс.
Уффф... Вроде настроили и рассмотрели все, что запланировали в начале. Пост получился очень объемным, но надеюсь не скучным и информативным. Я постарался вместить сюда основные принципы, а остальной "тюнинг" оставляю вам, как домашнее задание :).
Для ориентировки, вот тут можно скачать конфигурационные файлы устройств, которые использовались в схеме (cisco ASA и cisco Router).
А на этом я хочу закончить этот пост. Хочу поблагодарить вас за внимание и жду вас в следующих постах!!!

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

С нетерпением жду вас в следующих постах!!!

С уважением, Ant0ni0n

16 комментариев:

  1. Спасибо, интересно читать

    ОтветитьУдалить
  2. Привет Антон! Как всегда статья супер! Спасибо за твою работу!

    ОтветитьУдалить
  3. Еще полезно было бы посмотреть настройку QoS на L3 свитчах)) Вместо роутера

    ОтветитьУдалить
    Ответы
    1. Спасибо, Арсен!!!
      Про L3 добавлено в разработку :)

      Удалить
  4. у меня небольшое дополнение если есть команда
    Router(config-if)#ip route-cache
    то команды
    Router(config-if)#ip flow ingress
    Router(config-if)#ip flow egress
    можно не вводить, они нужны только если есть sub интерфейсы и не введена команда ip route-cache
    The "ip route-cache flow" can be used only under the main interface, while the "ip flow ingress" was an enhancement to be used under subinterfaces.



    The NetFlow Subinterface Support feature provides the ability to enable NetFlow on a per-subinterface basis. In a scenario in which your network contains thousands of subinterfaces and you want to collect export records from only a few subinterfaces, you can fine-tune your collection of data to only specified subinterfaces. The result is lower bandwidth requirements for NetFlow Data Export (NDE) and reduced platform requirements for NetFlow data-collection devices.



    Using the NetFlow Subinterface Support feature, you can enable NetFlow on selected subinterfaces using the ip flow ingress command. If you configure the ip flow ingress command on a few selected subinterfaces and then configure the ip route-cache flow command on the main interface, enabling the main interface will overwrite the ip flow ingress command and data collection will start from the main interface as well as all the subinterfaces. In a scenario in which you configure the ip flow ingress command and then configure the ip route-cache flow command on the main interface, you can restore subinterface data collection by using the no ip route-cache flow command. This configuration will disable data collection from the main interface and restore data collection to the subinterfaces you originally configured with the ip flow ingress command.





    http://www.cisco.com/en/US/products/sw/iosswrel/ps1839/products_feature_guide09186a0080154dd2.html

    ОтветитьУдалить
  5. Здравствуйте!
    Ваша статья мене очень понравилась, но вот возникла проблема, не проходит трафик интернета на виртуальных машинах, причем ASA пингуеться,у меня стоит роутер Cisco c7200 мб из-за него?, перепробовал уже все просто не знаю уже что и делать

    ОтветитьУдалить
  6. В виртуальной машине(Windows 7) прописывал
    IP 192.168.2.10
    M 255.255.255.0
    Шлюз 192.168.2.1
    DNS 192.168.152.2 в
    ASA так же route outside 0.0.0.0 0.0.0.0 192.168.152.2
    Сравнил ваш config со своим вроде все то же самое просто не знаю где мб ошибка уже 5 дней не могу двинуться дальше

    ОтветитьУдалить
  7. Здравствуйте! Пока тренируюсь на GNS, но задача такая
    - ускорить загрузку приоритетного сайта из интернета, все остальное может подождать (другие сайты, которые пока не хочу грубо (police) ограничивать в скорости).

    Настраиваю Traffic Prioritization...настройка идет хорошо, пока не ввожу priority-queue - эта команда "ложит" весь мой трафик в GNS...это я один такой? или это известная проблема?

    ОтветитьУдалить
  8. Доброго времени суток! Большое спасибо за статью! Мне, как человеку со знанием Cisco чуть меньшим чем ноль, она помогла решить задачу мониторинга трафика. Вопрос: допустим я задал в асе ip-адрес и порт коллектора NetFlow (flow-export destination inside 192.168.255.30 8818) и соответвенно пустил на него весь трафик (flow-export event-type all destination 192.168.255.30 ). Потом решил что больше не хочу мониторить трафик на этом хосте а хочу, хосте с другим ip (192.168.255.20) по другому порту (9996) и че другой интерефейс асы (inside1). При этом, когда прописываю в железке новый айпишник коллектора он прописывается, но старый тоже остается, а когда допустим хочу оставить тот же айпишник но поменять порт – ругается что такой айпиник уже есть… Как быть? Сорри за нубизм…

    ОтветитьУдалить
    Ответы
    1. Доброго времени суток!
      А вы не пробовали сначала удалить старый IP_адрес и порт коллектора из конфигурации (no flow-export destination manage 10.10.10.10 9996) и из политики ((config-pmap-c)# no flow-export event-type all destination 10.10.10.10) и затем прописать новый IP_адрес и новый порт?
      Если это не получится, то пришлите конфигурацию ASA мне на почту, гляну как будет время.

      Удалить
    2. пробовал - выдает ошибку...
      А куда можно скинуть конфиг?

      Удалить
    3. anton.sheshko@gmail.com
      Координаты есть в закладке "Обратная связь"

      Удалить
  9. за опечатки тоже сорри в спешке набирал...

    ОтветитьУдалить
  10. These are Amazing Information.. Thank you very much for sharing...


    Wedding Websites

    ОтветитьУдалить