ISGv2: различия между версиями

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску
 
(не показано 16 промежуточных версий этого же участника)
Строка 1: Строка 1:
  +
[[Категория: Cisco]]
  +
[[Категория: ISG]]
 
=Cisco ISG v2=
 
=Cisco ISG v2=
  +
Возвращаясь к теме ISG - отмечу что за прошедшие годы всякие prepaid тарифы благополучно канули в лету и никакого аккаунтинга больше не недо. <BR>
  +
С другой стороны при повальном шифровании рассчитывать на L4-Redirect тоже нельзя.
   
  +
=Постановка задачи=
  +
Есть клиенты небольшого ISP которые можно разделить на несколько групп:
  +
<BR>
  +
1. Имеют "белый" адрес, работают на скорости порта<BR>
  +
2. Имеют "белый" адрес, требуется шейпер/полисер для ограничения скорости<BR>
  +
3. Имеют "серый" адрес, работают на скорости порта<BR>
  +
4. Имеют "серый" адрес, требуется шейпер/полисер для ограничения скорости<BR>
  +
<BR>
  +
<BR>
  +
Примерно 90% клиентов подключены на скорости порта<BR>
  +
Контроль за подменой мак-адресов осуществляется на уровне свитчей доступа <BR>
  +
<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)
  +
==Примеры сервисов==
  +
  +
=Ссылки=
 
* https://ntwrk.today/2019/06/17/cisco-isg.html
 
* https://ntwrk.today/2019/06/17/cisco-isg.html
 
* https://sergey-zelyukin.livejournal.com/1376.html
 
* https://sergey-zelyukin.livejournal.com/1376.html
Строка 7: Строка 126:
   
 
* https://www.cisco.com/en/US/docs/ios-xml/ios/san/configuration/xe-3se/3850/san-cntrl-pol.html
 
* https://www.cisco.com/en/US/docs/ios-xml/ios/san/configuration/xe-3se/3850/san-cntrl-pol.html
  +
* https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&doi=67ee4b88d10a6f7c6fc0ec19d11a26219e793521

Текущая версия на 14: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)

Примеры сервисов

Ссылки