ISGv2
Cisco ISG v2
Возвращаясь к теме ISG - отмечу что за прошедшие годы всякие prepaid тарифы благополучно канули в лету и никакого аккаунтинга больше не недо.
С другой стороны при повальном шифровании рассчитывать на L4-Redirect тоже нельзя.
Постановка задачи
Есть клиенты небольшого ISP которые можно разделить на несколько групп:
1. Имеют "белый" адрес, работают на скорости порта
2. Имеют "белый" адрес, требуется шейпер/полисер для ограничения скорости
3. Имеют "серый" адрес, работают на скорости порта
4. Имеют "серый" адрес, требуется шейпер/полисер для ограничения скорости
Примерно 90% клиентов подключены на скорости порта
Контроль за подменой мак-адресов осуществляется на уровне свитчей доступа
Задача: Настроить шейпер для тех для кого это требуется, остальных пропускать на скорости порта
Логика работы
1. на интерфейс в сторону клиентов назначается service-policy type control ISG-CUSTOMERS-POLICY
ISG-CUSTOMERS-POLICY
- политика назначения сервисов, в ней и происходит "магия"
В примере ip subscriber l2-connected
initiator unclassified mac-address
,
альтернативно - ip subscriber routed
initiator unclassified ip-address ipv4
В случае с l2-connected</code доступен мак-адрес в запросе, имя пользователя в любом случае - IP адрес
interface GigabitEthernet0/0/2.55
description Customers-to-Gi0/37
encapsulation dot1Q 55
ip address 192.168.201.1 255.255.255.0
ip nat inside
service-policy type control ISG-CUSTOMERS-POLICY
ip subscriber l2-connected
initiator unclassified mac-address
!
Основное понятие - это "Сервис" и "Сессия"
Сервис
Сервис - это описание того что делать с трафиком - пропустить, дропнуть или зашейпить или еще что-то.
Сервисы могу описываться 2 способами - непосредственно в конфигурации маршрутизатора (простой способ)
или загружаться динамически из радиуса (о сервисах в радиусе будет сказано ниже).
Пример сервиса:
policy-map type service SOME_NAME
class type traffic ALL_TRAFFIC
police input 64000
police output 64000
!
Это описание читается по-человечески так
SOME_NAME
- имя сервиса (произвольная строка, но лучше конечно человекочитаемая)
class type traffic ALL_TRAFFIC
классификатор - траффик, который попадает под условие будет обработан сервисом, это условие может быть только одно у сервиса
police input 64000
, police output 64000
- полисер на 64 кбит, такое значение выбрано в тестовых целях
Другими словами, этот сервис должен ограничить весь траффик (весь - по тому что class type traffic ALL_TRAFFIC
судя по названию должен включать в себя весь трафик, хотя это только описание)
Для полноты описания нужно добавить class-map type traffic match-any ALL_TRAFFIC
class-map type traffic match-any ALL_TRAFFIC
match access-group input 1301
match access-group output 1301
access-list 1301 permit any
Это максимально простой class-map
, который включает в себя весь трафик, согласно access-list 1301
Сервис макимально простой, включает в себя весь трафик
Отмечу следующие важные особенности
- Сервисов на сессию может быть более чем 1 (точное число их я не тестировал)
- Сервисы имеют приоритеты и обрабатываются в порядке приоритетов
- Если сервис не обработал трафик, то он передается следующему сервису
- Если следующий сервис не определен то трафик пропускается (по крайне мере в моей версии IOS)
Примеры сервисов
Ссылки