ISGv2: различия между версиями
Sirmax (обсуждение | вклад) |
Sirmax (обсуждение | вклад) |
||
(не показано 11 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
+ | [[Категория: Cisco]] |
||
+ | [[Категория: ISG]] |
||
=Cisco ISG v2= |
=Cisco ISG v2= |
||
Возвращаясь к теме ISG - отмечу что за прошедшие годы всякие prepaid тарифы благополучно канули в лету и никакого аккаунтинга больше не недо. <BR> |
Возвращаясь к теме ISG - отмечу что за прошедшие годы всякие prepaid тарифы благополучно канули в лету и никакого аккаунтинга больше не недо. <BR> |
||
Строка 17: | Строка 19: | ||
Задача: Настроить шейпер для тех для кого это требуется, остальных пропускать на скорости порта |
Задача: Настроить шейпер для тех для кого это требуется, остальных пропускать на скорости порта |
||
<BR> |
<BR> |
||
+ | =Логика работы= |
||
+ | 1. на интерфейс в сторону клиентов назначается <code> service-policy type control ISG-CUSTOMERS-POLICY</code> |
||
+ | <BR> |
||
+ | <code>ISG-CUSTOMERS-POLICY</code> - политика назначения сервисов, в ней и происходит "магия"<BR> |
||
+ | В примере <code>ip subscriber l2-connected</code> <code> initiator unclassified mac-address</code>, <BR> |
||
+ | альтернативно - <code>ip subscriber routed</code> <code>initiator unclassified ip-address ipv4</code> <BR> |
||
+ | В случае с <code> l2-connected</code> доступен мак-адрес в запросе, имя пользователя в любом случае - IP адрес |
||
+ | <PRE> |
||
+ | 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 |
||
+ | ! |
||
+ | </PRE> |
||
+ | |||
+ | {{#spoiler:show=show version| |
||
+ | <PRE> |
||
+ | Tue Mar 14 14:42:42 2023 : Debug: (0) User-Name = "192.168.201.2" |
||
+ | Tue Mar 14 14:42:42 2023 : Debug: (0) User-Password = "secret" |
||
+ | Tue Mar 14 14:42:42 2023 : Debug: (0) Cisco-Account-Info = "S192.168.201.2" |
||
+ | Tue Mar 14 14:42:42 2023 : Debug: (0) Calling-Station-Id = "b8:27:eb:1f:ec:f7" |
||
+ | Tue Mar 14 14:42:42 2023 : Debug: (0) NAS-Port-Type = Virtual |
||
+ | Tue Mar 14 14:42:42 2023 : Debug: (0) Cisco-NAS-Port = "0/0/2/55" |
||
+ | Tue Mar 14 14:42:42 2023 : Debug: (0) NAS-Port = 0 |
||
+ | Tue Mar 14 14:42:42 2023 : Debug: (0) NAS-Port-Id = "0/0/2/55" |
||
+ | Tue Mar 14 14:42:42 2023 : Debug: (0) Service-Type = Outbound-User |
||
+ | Tue Mar 14 14:42:42 2023 : Debug: (0) NAS-IP-Address = 192.168.1.60 |
||
+ | Tue Mar 14 14:42:42 2023 : Debug: (0) Acct-Session-Id = "C0A8013C00000009" |
||
+ | </PRE> |
||
+ | }} |
||
+ | |||
+ | {{#spoiler:show=show version| |
||
+ | <PRE> |
||
+ | Tue Mar 14 15:26:39 2023 : Debug: (1) User-Name = "192.168.201.2" |
||
+ | Tue Mar 14 15:26:39 2023 : Debug: (1) User-Password = "secret" |
||
+ | Tue Mar 14 15:26:39 2023 : Debug: (1) Cisco-Account-Info = "S192.168.201.2" |
||
+ | Tue Mar 14 15:26:39 2023 : Debug: (1) Calling-Station-Id = "00:00:00:00:00:00" |
||
+ | Tue Mar 14 15:26:39 2023 : Debug: (1) NAS-Port-Type = Virtual |
||
+ | Tue Mar 14 15:26:39 2023 : Debug: (1) Cisco-NAS-Port = "0/0/2/55" |
||
+ | Tue Mar 14 15:26:39 2023 : Debug: (1) NAS-Port = 0 |
||
+ | Tue Mar 14 15:26:39 2023 : Debug: (1) NAS-Port-Id = "0/0/2/55" |
||
+ | Tue Mar 14 15:26:39 2023 : Debug: (1) Service-Type = Outbound-User |
||
+ | Tue Mar 14 15:26:39 2023 : Debug: (1) NAS-IP-Address = 192.168.1.60 |
||
+ | Tue Mar 14 15:26:39 2023 : Debug: (1) Acct-Session-Id = "C0A8013C0000000A" |
||
+ | </PRE> |
||
+ | }} |
||
+ | Основное понятие - это "Сервис" и "Сессия" |
||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==Сервис== |
||
+ | Сервис - это описание того что делать с трафиком - пропустить, дропнуть или зашейпить или еще что-то. |
||
+ | <BR> |
||
+ | Сервисы могу описываться 2 способами - непосредственно в конфигурации маршрутизатора (простой способ) |
||
+ | или загружаться динамически из радиуса (о сервисах в радиусе будет сказано ниже). |
||
+ | <BR> |
||
+ | Пример сервиса: |
||
+ | <PRE> |
||
+ | policy-map type service SOME_NAME |
||
+ | class type traffic ALL_TRAFFIC |
||
+ | police input 64000 |
||
+ | police output 64000 |
||
+ | ! |
||
+ | </PRE> |
||
+ | Это описание читается по-человечески так |
||
+ | * <code>SOME_NAME</code> - имя сервиса (произвольная строка, но лучше конечно человекочитаемая) |
||
+ | * <code>class type traffic ALL_TRAFFIC</code> классификатор - траффик, который попадает под условие будет обработан сервисом, это условие может быть только одно у сервиса |
||
+ | * <code>police input 64000</code>, <code>police output 64000</code> - полисер на 64 кбит, такое значение выбрано в тестовых целях |
||
+ | Другими словами, этот сервис должен ограничить весь траффик (весь - по тому что <code>class type traffic ALL_TRAFFIC</code> судя по названию должен включать в себя весь трафик, хотя это только описание) <BR> |
||
+ | <BR> |
||
+ | Для полноты описания нужно добавить <code>class-map type traffic match-any ALL_TRAFFIC</code> |
||
+ | |||
+ | <PRE> |
||
+ | class-map type traffic match-any ALL_TRAFFIC |
||
+ | match access-group input 1301 |
||
+ | match access-group output 1301 |
||
+ | </PRE> |
||
+ | |||
+ | |||
+ | <PRE> |
||
+ | access-list 1301 permit any |
||
+ | </PRE> |
||
+ | |||
+ | Это максимально простой <code>class-map</code>, который включает в себя весь трафик, согласно <code>access-list 1301</code> |
||
+ | <BR> |
||
+ | Сервис макимально простой, включает в себя весь трафик |
||
+ | |||
+ | <BR> |
||
+ | Отмечу следующие важные особенности |
||
+ | * Сервисов на сессию может быть более чем 1 (точное число их я не тестировал) |
||
+ | * Сервисы имеют приоритеты и обрабатываются в порядке приоритетов |
||
+ | * Если сервис не обработал трафик, то он передается следующему сервису |
||
+ | * Если следующий сервис не определен то трафик пропускается (по крайне мере в моей версии IOS) |
||
+ | ==Примеры сервисов== |
||
=Ссылки= |
=Ссылки= |
Текущая версия на 13:46, 8 мая 2023
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
доступен мак-адрес в запросе, имя пользователя в любом случае - 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)
Примеры сервисов
Ссылки
- https://ntwrk.today/2019/06/17/cisco-isg.html
- https://sergey-zelyukin.livejournal.com/1376.html
- http://docs.netams.com/pages/viewpage.action?pageId=6258757