Jump to content
Калькуляторы

Помогите с настройкой нарезки скоростей в CISCO

Здравствуйте!

Стоит пачка цисок 7201 для терминирования PPTP клиентов.

До некоторого времени нарезка скорости для клиентов осуществлялась через передачу rate-limit`ов по радиусу.

Когда производительности перестало хватать, купили 10kESR-Pre3 с 4-мя гигабитными интерфейсами, которые были объединены в транки по 2Г. На нём подняли сервер доступа L2TP.

Попытка настроить rate-limit`ы на 10к не увенчалась успехом, было принято решение перейти на полиси-мапы, названия которых отдавались циске при подключении пользователя.

До недавнего времени всё было хорошо, пока мы не решили увеличить скорость по безлимитным тарифам.

Утилиты, которыми пользуются пользователи для теста скорости интернета, при каждом тесте показывают разные результаты.

Было перепробовано огромное количество формул для расчёта значений для police.

Интерересен факт, что при использовании rate-limit`ов измеряемая утилитами скорость соответствует тарифу.

Посоветуйте, пожалуйста, в какую сторону рыть. Если необходимо, могу выложить примеры наших конфигов.

 

p.s. что правильнее использовать, police или rate-limit?

Спасибо!

Share this post


Link to post
Share on other sites

При использовании полис-мапов загрузка действительно ниже. Приведите пример.

Edited by UnknownError

Share this post


Link to post
Share on other sites
При использовании полис-мапов загрузка действительно ниже. Приведите пример.

а выдавать полисер через ISG атрибуты нагрузка ниже чем полимапы(с полисом внутри)

по опыту на 7200.

Share this post


Link to post
Share on other sites

Подробности примерно такие. При тестировании iperf на протяжении 10 секунд, один поток, скорость более-менее соответствует тарифу, хотя наблюдаются всплески до 50-60 мегабит и проседания до сотен килобайт в секунду. Общее количество переданного за эти 10 секунд траффика примерно соответствует тарифу.

Появился дополнительный вопрос: Как можно минимизировать амплитуду этих скачков скорости?

Биллинг - нетап.

Привожу пример с 7201, PPTP. на 10kPRE3, L2TP - та же ситуация.

 

 

Cisco7201-4#sh ver
Cisco IOS Software, 7200 Software (C7200P-IPBASE-M), Version 12.4(4)XD10, RELEAS E SOFTWARE (fc2)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2007 by Cisco Systems, Inc.
Compiled Fri 28-Dec-07 14:12 by karnagar

ROM: System Bootstrap, Version 12.4(12.2r)T, RELEASE SOFTWARE (fc1)
BOOTLDR: Cisco IOS Software, 7200 Software (C7200P-KBOOT-M), Version 12.4(4)XD7,  RELEASE SOFTWARE (fc2)

Cisco7201-4 uptime is 2 weeks, 1 day, 2 hours, 50 minutes
System restarted at 19:21:29 MSD Mon Sep 13 2010
System image file is "disk0:/c7200p-ipbase-mz.124-4.XD10.bin"
Host configuration file is "tftp://93.182.32.100/cisco_gen_config.cgf"

Cisco 7201 (c7201) processor (revision B) with 917504K/65536K bytes of memory.
Processor board ID 78008637
MPC7448 CPU at 1666Mhz, Implementation 0, Rev 2.2
1 slot midplane, Version 2.1

 

Current configuration : 40473 bytes
!
! Last configuration change at 10:11:52 MSD Tue Sep 28 2010
! NVRAM config last updated at 17:51:51 MSD Thu Sep 23 2010 by xmr
!
upgrade fpd auto
version 12.4
service tcp-keepalives-in
service timestamps debug datetime msec
service timestamps log datetime msec
service password-encryption
!
hostname Cisco7201-4
!
boot-start-marker
boot system flash disk0:/c7200p-ipbase-mz.124-4.XD10.bin
boot-end-marker
!
no logging console
aaa new-model
!
!
aaa authentication login vpnuser local
aaa authentication ppp default group radius
aaa authentication ppp vpn-remote-access local
aaa authorization network default group radius
aaa authorization network vpn-remote-access local
aaa accounting delay-start
aaa accounting network default start-stop group radius
!
aaa session-id common
clock timezone MSK 3
clock summer-time MSD recurring last Sun Mar 2:00 last Sun Oct 3:00
ip subnet-zero
ip cef
!
virtual-profile virtual-template 1
vpdn enable
vpdn aaa attribute nas-ip-address vpdn-nas
!
vpdn-group 1
! Default PPTP VPDN group
accept-dialin
  protocol pptp
  virtual-template 1
local name Cisco7200
pptp flow-control receive-window 64
!
carrier-id CID
!
memory sanity all
archive
log config
  hidekeys
!
class-map match-all all_map
match access-group 154
!
!
!
!
policy-map school_out
  class all_map
   police 1024000 153600 307200 conform-action transmit  exceed-action drop  violate-action drop
policy-map lite_out
  class all_map
   police 13000000 2437500 4875000 conform-action transmit  exceed-action drop  violate-action drop
policy-map serebro_in
  class all_map
   police 15000000 2812500 5625000 conform-action transmit  exceed-action drop  violate-action drop
policy-map platina_in
  class all_map
   police 21000000 3937500 7875000 conform-action transmit  exceed-action drop  violate-action drop
policy-map bronza_out
  class all_map
   police 23000000 4312500 8625000 conform-action transmit  exceed-action drop  violate-action drop
policy-map zoloto_out
  class all_map
   police 35000000 6562500 13125000 conform-action transmit  exceed-action drop  violate-action drop
policy-map kvx_in
  class all_map
   police 2000000 300000 600000 conform-action transmit  exceed-action drop  violate-action drop
policy-map school_in
  class all_map
   police 512000 76800 153600 conform-action transmit  exceed-action drop  violate-action drop
policy-map lite_in
  class all_map
   police 7000000 1312500 2625000 conform-action transmit  exceed-action drop  violate-action drop
policy-map serebro_out
  class all_map
   police 29000000 5437500 10875000 conform-action transmit  exceed-action drop   violate-action drop
policy-map pol_25000K
  class all_map
   police 25000000 4687500 9375000 conform-action transmit  exceed-action drop  violate-action drop
policy-map pol_512K
  class all_map
   police 512000 76800 153600 conform-action transmit  exceed-action drop  violate-action drop
policy-map pol_12500K
  class all_map
   police 12500000 2343750 4687500 conform-action transmit  exceed-action drop  violate-action drop
policy-map pol_14000K
  class all_map
   police 14000000 875000 1750000 conform-action transmit  exceed-action drop  violate-action drop
policy-map pol_36000K
  class all_map
   police 36000000 2250000 4500000 conform-action transmit  exceed-action drop  violate-action drop
policy-map bronza_in
  class all_map
   police 12000000 2250000 4500000 conform-action transmit  exceed-action drop  violate-action drop
policy-map pol_15000K
  class all_map
   police 15000000 2812500 5625000 conform-action transmit  exceed-action drop  violate-action drop
policy-map pol_5M
  class all_map
   police 4504000 843750 1687500 conform-action transmit  exceed-action drop  violate-action drop
policy-map pol_12000K
  class all_map
   police 12000000 1800000 3600000 conform-action transmit  exceed-action drop  violate-action drop
policy-map kvx_out
  class all_map
   police 4000000 600000 1200000 conform-action transmit  exceed-action drop  violate-action drop
policy-map pol_20000K
  class all_map
   police 20000000 1250000 2500000 conform-action transmit  exceed-action drop  violate-action drop
policy-map zoloto_in
  class all_map
   police 18000000 3375000 6750000 conform-action transmit  exceed-action drop  violate-action drop
policy-map pol_10000K
  class all_map
   police 10000000 1875000 3750000 conform-action transmit  exceed-action drop  violate-action drop
policy-map pol_256K
  class all_map
   police 256000 48000 96000 conform-action transmit  exceed-action drop  violate-action drop
policy-map pol_128K
  class all_map
   police 128000 24000 48000 conform-action transmit  exceed-action drop  violate-action drop
policy-map pol_28000K
  class all_map
   police 28000000 1750000 3500000 conform-action transmit  exceed-action drop  violate-action drop
policy-map pol_18000K
  class all_map
   police 18000000 1125000 2250000 conform-action transmit  exceed-action drop  violate-action drop
policy-map platina_out
  class all_map
   police 41000000 7687500 15375000 conform-action transmit  exceed-action drop  violate-action drop
policy-map pol_10M
  class all_map
   police 9000000 1687500 3375000 conform-action transmit  exceed-action drop  violate-action drop
policy-map pol_7000K
  class all_map
   police 7000000 1312500 2625000 conform-action transmit  exceed-action drop  violate-action drop
policy-map pol_1024K
  class all_map
   police 1024000 153600 307200 conform-action transmit  exceed-action drop  violate-action drop
policy-map pol_3500K
  class all_map
   police 3500000 656250 1312500 conform-action transmit  exceed-action drop  violate-action drop
policy-map pol_6000K
  class all_map
   police 6000000 1125000 2250000 conform-action transmit  exceed-action drop  violate-action drop
policy-map pol_5000K
  class all_map
   police 5000000 937500 1875000 conform-action transmit  exceed-action drop  violate-action drop
policy-map pol_4000K
  class all_map
   police 4000000 600000 1200000 conform-action transmit  exceed-action drop  violate-action drop
policy-map pol_7500K
  class all_map
   police 7500000 1406250 2812500 conform-action transmit  exceed-action drop  violate-action drop
policy-map pol_8000K
  class all_map
   police 8000000 1200000 2400000 conform-action transmit  exceed-action drop  violate-action drop
!
interface GigabitEthernet0/0
ip address 192.168.s.s 255.255.255.0 secondary
ip route-cache policy
ip route-cache flow
duplex full
speed 1000
media-type sfp
negotiation auto
no cdp enable
!
interface GigabitEthernet0/1
ip address 192.168.s.s 255.255.255.0
ip nbar protocol-discovery
ip route-cache flow
duplex auto
speed 1000
media-type sfp
negotiation auto
no cdp enable
!

interface Virtual-Template1
ip unnumbered Loopback0
ip access-group 105 in
ip access-group 106 out
no ip proxy-arp
ip route-cache policy
ip route-cache flow
no logging event link-status
timeout absolute 60000 0
no peer default ip address
no keepalive
ppp authentication chap
ppp ipcp dns x.x.x.x x.x.x.x
!
ip classless
ip route xxx xxxxx xxxxxxx
ip route xxx xxxxx xxxxxxx
ip route xxx xxxxx xxxxxxx

no ip http server
ip flow-export source GigabitEthernet0/1
ip flow-export version 5
ip flow-export destination xxxxxxxxxxxx 9996

!
!
radius-server attribute 44 include-in-access-req
radius-server attribute 44 extend-with-addr
radius-server attribute 8 include-in-access-req
radius-server attribute 30 original-called-number
radius-server attribute 31 mac format unformatted
radius-server host xxxxxxxxxx auth-port 1812 acct-port 1813
radius-server key 7 00161202510F000316
radius-server vsa send accounting
!
control-plane
!
!
!
!
!
!
gatekeeper
shutdown
!
!
line con 0
exec-timeout 0 0
stopbits 1
line aux 0
exec-timeout 0 0
stopbits 1
line vty 0 2
access-class 2 in
exec-timeout 0 0
login authentication local
transport input all
line vty 3 4
access-class 2 in
login authentication local
transport input all
!
ntp clock-period 17180271
ntp access-group peer 21
ntp server xxxxxxxxxxxxx
!
end

Edited by fedormfx

Share this post


Link to post
Share on other sites

Поможите люди добрые , сил уже нет никаких , по какой формуле не считай какие цыфры не задавай - что на десятитоннике что на 72 полиси мап работают ну просто очень странно если не сказать никак . скорости прыгают причем непредсказуемым образом . при нарезке рэйт лимитами - идеально но не получилось их запустить на 10008 . Может дело в конфиге неправильном может в прошивке . куда копать не понимаем глаза красные и кого нить убить уже непреодолимо хочется

Share this post


Link to post
Share on other sites
скорости прыгают причем непредсказуемым образом .
всмысле не дотягивают до заданных значений или наоборот сильно превосходят?

на больших скоростях берсты можно и поскромней нарисовать

Share this post


Link to post
Share on other sites

дело в том что нарезка ведет себя абсолютно непредсказуемо , может держатся в процессе скачивания файла на приемлемом уровне а потом в самом конце дунуть под 70 мегабит . а потом на этом же тесте вообще дуть ничего не ограничивая

Share this post


Link to post
Share on other sites

Итак проясню немного ситуацию.

 

Когда были рейт лимиты, то использовалась формула следующая:

http://www.cisco.com/en/US/docs/ios/12_2/q...ed_Burst_Values

 

normal burst = configured rate * (1 byte)/(8 bits) * 1.5 seconds
extended burst = 2 * normal burst

 

Чтобы скорости резались согласно тарифам мы опытным путем, подгоняли коэффициенты.

Формула стала выглядеть так:

normal burst = configured rate / 16 
extended burst = 2 * normal burst

и скорости стали нарезаться ровно на столько насколько надо

 

Строки для рейтлимитов выглядят так:

lcp:interface-config#1=rate-limit output 22000000 1375000 2750000 conform-action transmit exceed-action drop
lcp:interface-config#1=rate-limit input 11000000 687500 1375000 conform-action transmit exceed-action drop

 

После перехода на police пытались использовать и рекомендуемую циской формулу и свою, а также то что циска предлагает сделать тут:

http://www.cisco.com/en/US/tech/tk543/tk54...okenrefreshrate

Но добиться четкого результата нарезания скорости не удалось.

 

ps: также пробовали указывать значения всплесков маленькими, например

 

policy-map platina_in
  class all_map
   police 21000000 32000 32000 conform-action transmit  exceed-action drop  violate-action drop

policy-map platina_out
  class all_map
   police 41000000 32000 32000 conform-action transmit  exceed-action drop  violate-action drop

 

Но в таком случае скорость выше 2 мегабит не поднимается.

 

Хотелось бы увидеть примеры ваших конфигов, при использовании police, кто какие значения всплесков ставит.

 

Share this post


Link to post
Share on other sites

у нас так:

policy-map ACCESS_10M_OUT
  class class-default
   police 10240000 1024000 1280000

policy-map ACCESS_10M_IN
  class class-default
   police cir 10240000 bc 5120000
    conform-action set-dscp-transmit default
    exceed-action drop
    violate-action drop

 

 

 

Share this post


Link to post
Share on other sites

спасибо пробуем , сразу вопрос а почему у вас ин и аут описываются по разному и у вас это на какой железке ?

Share this post


Link to post
Share on other sites

Спасибо, за информацию, попробовали ваши policy-map.

 

Если для входящего ставить ACCESS_10M_IN а для исходящего ACCESS_10M_OUT,

то входящую режет на 10 мегабит, а исходящяя свободно разгоняется до 50-60 мегабит

 

Если для входящего и исходящего ставить ACCESS_10M_IN,

либо наоборот для обоих классов трафика ставить ACCESS_10M_OUT, то скорость не режется.

Share this post


Link to post
Share on other sites
Спасибо, за информацию, попробовали ваши policy-map.

 

Если для входящего ставить ACCESS_10M_IN а для исходящего ACCESS_10M_OUT,

то входящую режет на 10 мегабит, а исходящяя свободно разгоняется до 50-60 мегабит

 

Если для входящего и исходящего ставить ACCESS_10M_IN,

либо наоборот для обоих классов трафика ставить ACCESS_10M_OUT, то скорость не режется.

 

А разве police работает на OUT?

Share this post


Link to post
Share on other sites

shaytan

а почему не должны?

или police режет скорость только в одну сторону.

 

меняя местами параметры ACCESS_10M_IN и ACCESS_10M_OUT

добивались что входящая не режется, а исходящая режется до 10 Мбит

Edited by sfenixs

Share this post


Link to post
Share on other sites

А шейпить на VirtualAccess оно умеет?

 

И у Вас там трафик выбирается по ACL 154. В приведенном конфиге такого ACL нет - это что?

Если нужен весь трафик, то есть class default.

 

Я бы посоветовал ещё и на IOS посмотреть. Для BRASа лучше ветка 12.2SB или 12.2SRx, чем энтерпрайзная...

Share this post


Link to post
Share on other sites

police cir 5120000 bc 640000 be 640000

conform-action transmit

exceed-action drop

violate-action drop

 

5--ти мегабитный полисер на входящий трафик на ASR 1002.

Внизу на исход трафик.

 

police cir 5120000 bc 384000 be 640000

conform-action transmit

exceed-action drop

violate-action drop

 

Закачка соответсвует тарифу. Лишь первые 2-5 секунд трафика качается больше чем по тарифу, потом стабилизируется. speedtest.net показывает около 5-ти мегабит и вход и выход. выход бывает показывает больше.

 

 

Share this post


Link to post
Share on other sites
спасибо пробуем , сразу вопрос а почему у вас ин и аут описываются по разному
так сложилось исторически, еще до меня - менять не стал.

 

и у вас это на какой железке ?
н разном: 7206,28x1, ASR1002

 

Если для входящего ставить ACCESS_10M_IN а для исходящего ACCESS_10M_OUT,

то входящую режет на 10 мегабит, а исходящяя свободно разгоняется до 50-60 мегабит

все так и есть отдачу попробуйте мерять не спидтестом а торентом или ftp все таки будет сначала скачок, потом плавно спустится и нормализуется на уровне тарифа, ну циска говорит что канал на отдачу ка кправило менее загружен и мы какбы даем ему взаймы....

 

 

Share this post


Link to post
Share on other sites

Всем спасибо за советы!

Сегодня целый день ковыряли и подбирали коэффициенты и параметры, в итоге нашли те,

которые корректно стали зарезать скорость, согласно нашим тарифам без лишних всплесков и скачков.

Зарезает как на 7201 так и на 10008

 

Вот пример:

 

40 Мбит / 20 Мбит

 

policy-map platina_in
  class all_map
   police 20 mbps bc 2200000 pir 34 mbps be 320000

policy-map platina_out
  class all_map
   police 40 mbps bc 2200000 pir 48 mbps be 320000

 

22 Мбит / 11 Мбит

 

policy-map bronza_in
  class all_map
   police 22 mbps bc 2200000 pir 30 mbps be 320000

policy-map bronza_out
  class all_map
   police 11 mbps bc 2200000 pir 20 mbps be 320000

Edited by sfenixs

Share this post


Link to post
Share on other sites

Эмпирически подобрали или нашли все таки формулу?

Share this post


Link to post
Share on other sites
Эмпирически подобрали или нашли все таки формулу?

эмпирически, известные формулы не работали :(

Share this post


Link to post
Share on other sites

Попытка настроить rate-limit`ы на 10к не увенчалась успехом, было принято решение перейти на полиси-мапы, названия которых отдавались циске при подключении пользователя.

А какой строкой отдавали из радиуса циске названия полиси-мапов?

Share this post


Link to post
Share on other sites

Andrei

 

Например так:

lcp:interface-config=service-policy input bronza_in
lcp:interface-config=service-policy output bronza_out

Edited by sfenixs

Share this post


Link to post
Share on other sites

sfenixs

А что меньше нагружает циску - отдать полиси-мапы или rate-limit ?

 

И, на сколько я понимаю, полиси-мапами можно сделать более гибкую нарезку скоростей.

Например для инета полисить трафик, а для локалки не полисить, что-то типа такого:

 

access-list 154 remark inet-traffic
access-list 154 permit ip 212.57.0.0 0.0.255.255 any

access-list 155 remark local-traffic
access-list 155 permit ip 172.21.0.0 0.0.255.255 any

class-map match-all inet_map
  match access-group 154

class-map match-all local_map
  match access-group 155


policy-map bronza_out
  class inet_map
   police 23000000 4312500 8625000 conform-action transmit  exceed-action drop  violate-action drop

policy-map bronza_in
  class inet_map
   police 23000000 4312500 8625000 conform-action transmit  exceed-action drop  violate-action drop

Для локалки policy-map вообще не надо тогда прописывать?

Или ход мыслей неверный?

Share this post


Link to post
Share on other sites
sfenixs

А что меньше нагружает циску - отдать полиси-мапы или rate-limit ?

 

И, на сколько я понимаю, полиси-мапами можно сделать более гибкую нарезку скоростей.

Например для инета полисить трафик, а для локалки не полисить, что-то типа такого:

 

access-list 154 remark inet-traffic
access-list 154 permit ip 212.57.0.0 0.0.255.255 any

access-list 155 remark local-traffic
access-list 155 permit ip 172.21.0.0 0.0.255.255 any

class-map match-all inet_map
  match access-group 154

class-map match-all local_map
  match access-group 155


policy-map bronza_out
  class inet_map
   police 23000000 4312500 8625000 conform-action transmit  exceed-action drop  violate-action drop

policy-map bronza_in
  class inet_map
   police 23000000 4312500 8625000 conform-action transmit  exceed-action drop  violate-action drop

Для локалки policy-map вообще не надо тогда прописывать?

Или ход мыслей неверный?

Именно в этом вопросе я не специалист, но, если посудить логически, для локалки либо вообще не надо полисить, либо, если не получится без полис, установить значения CIR скорости, соответствующей вашим ожиданиям для скорости локалки.

Если заработает без полис - так даже лучше, потому что, как мне кажется, полис всё таки отъедает некоторую часть процессорного/аппаратного времени.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this