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

PBR на Cat6509 сильно "грузит" проц

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

 

Есть Cisco Catalyst 6509 с Sup720-3BXL под управлением IOS 12.2(33)SXI1, котрая является ядром локальной сети.

 

Есть около 2к активных клиентов (это в пике - в среднем около 1к), которые подключены к Циске через примерно 70 vlan'ов. Локальный трафик маршрутизируется на Циске, а для того, чтобы получить "внешний" трафик, клиент должен установить PPPoE соединение (т.е. "внешний" клиентский трафик на Циске не маршрутизируется). Для того, чтобы "подсказать" клиенту, что он забыл установить PPPoE соединение, его http запросы, попадающие на Циску, подменяются обращениями к странице подсказки, на которой, собственно, и сказано, что для доступа в "мир" нужно "поднять" PPoE.

 

Сейчас механизм "подмен" выполняется на отдельной железке (MikroTik RB1000). Раньше этот MikroTik выполнял и другие задачи, но постепенно все его обязанности "расползлись" по другим железкам, и на нем остался только механизм "подмен". Поскольку держать для такой простой задачи отдельную железку нецелесообразно - решили механизм "подмен" сделать на Циске, с использованием PBR.

 

Делаем route-map (300 - редиректы запросов к "городским" ресурсам (другие городские провайдеры, с которыми у нас есть прямой линк), 500 - остальные):

route-map map-redirect deny 100
description exclude traffic to local nets
match ip address redirect-local-no
!
route-map map-redirect permit 300
description http traffic to city nets
match ip address redirect-city-http
set ip next-hop 192.168.105.118
!
route-map map-redirect permit 500
description http traffic to other nets
match ip address redirect-world-http
set ip next-hop 192.168.105.110
!
route-map map-redirect permit 900
description all other traffic
match ip address redirect-all-drop
set interface Null0

которая ссылается на следующие ACL (A.A.A.0, ..., E.E.E.0 - "городские" сети, F.F.F.0 и G.G.G.0 - наши собственные реальные IP):

ip access-list extended redirect-all-drop
remark other traffic to other nets
permit ip 10.0.0.0 0.255.255.255 any
ip access-list extended redirect-city-http
remark http traffic to city nets
permit tcp 10.0.0.0 0.255.255.255 A.A.A.0 0.0.3.255 eq www
permit tcp 10.0.0.0 0.255.255.255 B.B.B.0 0.0.3.255 eq www
permit tcp 10.0.0.0 0.255.255.255 C.C.C.0 0.0.3.255 eq www
permit tcp 10.0.0.0 0.255.255.255 D.D.D.0 0.0.0.255 eq www
permit tcp 10.0.0.0 0.255.255.255 E.E.E.0 0.0.3.255 eq www
ip access-list extended redirect-local-no
remark exclude traffic to local addresses from redirect
permit ip any 10.0.0.0 0.255.255.255
permit ip any 192.168.0.0 0.0.255.255
permit ip any F.F.F.0 0.0.3.255
permit ip any G.G.G.0 0.0.31.255
ip access-list extended redirect-world-http
remark http traffic to other nets
permit tcp 10.0.0.0 0.255.255.255 any eq www

и вешаем ее (route-map) на все клиентские vlan'ы (напомню, их около 70 - но не во всех по 50 подсеток, есть и такие, в которых по 2-3 подсетки):

interface Vlan52
ip address 10.52.55.1 255.255.255.0 secondary
[... пропущено около 50 secondary адресов ...]
ip address 10.52.8.1 255.255.255.0 secondary
ip address 10.52.7.1 255.255.255.0
ip access-group bunker52 in
no ip redirects
no ip unreachables
no ip proxy-arp
ip flow ingress
ip route-cache policy
ip policy route-map map-redirect

И практически сразу получаем 100% загрузку процессора, а черз 10-15 секунд следующие сообщения в лог:

%FM_EARL7-4-FLOW_FEAT_FLOWMASK_REQ_FAIL: Flowmask request for the flow based feature Reflexive ACL
   	for protocol IPv4 is unsuccessful, hardware acceleration may be disabled for the feature
%FM-4-TCAM_ENTRY: Hardware TCAM entry capacity exceeded
%FMCORE-4-RACL_REDUCED: Interface Vlan37 routed traffic will be software switched in ingress direction
%FMCORE-4-RACL_REDUCED: Interface Vlan82 routed traffic will be software switched in egress direction
%FMCORE-4-RACL_REDUCED: Interface Vlan81 routed traffic will be software switched in egress direction
%FMCORE-4-RACL_REDUCED: Interface Vlan80 routed traffic will be software switched in egress direction
%FMCORE-4-RACL_REDUCED: Interface Vlan78 routed traffic will be software switched in egress direction
и т.д.

 

Перед этим я все это тестировал на одном vlan'е - все прекрасно работает.

 

Трафик, кторый нужно полиси-роутить (именно тогда, когда я попытался включить полиси-роутинг для всех vlan'ов) не превышал 100 кбит/с (хотя, бывает, подскакивает и до 20 мбит/с, когда подключается толпа клиентов с вирусняком).

 

Можно ли каким-то образом (за счет оптимизации конфигов) избежать переполнения TCAM, или наша Циска принципиально не может полиси-роутить в нужном нам объеме?

 

Нужно также отметить, что у нас довольно объемные ACL'и - для каждого vlan'а создается standard ACL, содержащий все IP адреса неотключенных клиентов. Суммарно это около 3к адресов. Но это ведь не так много для 3BXL. Вот на всякий случай результат show tcam counts detail (уже после того, как полиси-роутинг был убран с клиентских vlan'ов).

  		Used    	Free    	Percent Used   	Reserved
  		----    	----    	------------   	--------
Labels:(in) 87    	3985        	2                	24
Labels:(eg)  8    	4064        	0                	24

ACL_TCAM
--------
HI BANK
 Masks:   1866 		182   		91                	72
Entries:   5216   	11168   		31   				576

LOW BANK
 Masks:   1077 		971   		52     				0
Entries:   6076   	10308   		37     				0

QOS_TCAM
--------
HI BANK
 Masks: 	25    	2023        	1                	25
Entries:  	0   	16384        	0   				200

LOW BANK
 Masks:  	4    	2044        	0     				0
Entries: 	22   	16362        	0     				0

LOU:  	0 		128        	0
 ANDOR:  	0      	16        	0
 ORAND:  	0      	16        	0
ADJ: 	10    	2038        	0

Edited by IVB

Share this post


Link to post
Share on other sites

Policy-based routing (PBR) for route-map sequences that use the match ip address, set ip

next-hop, and ip default next-hop PBR keywords.

 

Попробуйте убрать policy-map с 'set interface Null0'.

Share this post


Link to post
Share on other sites

route-map map-redirect deny 100

description exclude traffic to local nets

match ip address redirect-local-no

!

 

Весь проматчившийся трафик идет к процу, на 65тых нельзя использовать match без set.

 

Вообще в вашем случае даже acl с подсетями не нужно.

match acl (dst port =80)

set ip default next-hop (ip сервера со страничкой)

 

соответственно для всего, куда нет маршрута будет вылетать инструкция.

Share this post


Link to post
Share on other sites

Выше Илья верно написал - нельзя без set.

И, вообще, использовать в PBR deny нехорошо.

Share this post


Link to post
Share on other sites

Policy-based routing (PBR) for route-map sequences that use the match ip address, set ip

next-hop, and ip default next-hop PBR keywords.

 

Попробуйте убрать policy-map с 'set interface Null0'.

Попробую.

 

Но тогда подскажите, пожалуйста, как я могу с использованием PBR отправить определенный трафик "в никуда".

Share this post


Link to post
Share on other sites

А нельзя ПЕРЕД PBR дропнуть трафик ACL ем?

Share this post


Link to post
Share on other sites

Вообще в вашем случае даже acl с подсетями не нужно.

match acl (dst port =80)

set ip default next-hop (ip сервера со страничкой)

 

соответственно для всего, куда нет маршрута будет вылетать инструкция.

Сейчас у меня на этой Циске есть default gateway, поэтому предложенный Вами вариант не подходит. Поэтому же мне пришлось добавить "set interface Null0".

 

Если я убежусь, что Циска не "просаживается" в "моем" варианте - тогда я переделаю маршрутизацию, чтобы избавиться от default gateway и упростить route-map. Но все равно мне нужно будет отдельно выделить городские подсети (там разные страницы подсказки).

Share this post


Link to post
Share on other sites

route-map map-redirect deny 100

description exclude traffic to local nets

match ip address redirect-local-no

!

 

Весь проматчившийся трафик идет к процу, на 65тых нельзя использовать match без set.

А вот это, похоже, и есть основная причина.

 

Получается, несмотря на то, что у меня стоит deny (что означает, что весь проматчившийся трафик должен исключаться из дальнейших проверок), трафик все равно попадает в проц.

 

Значит, deny вообще не имеет смысла, вместо него можно ставить permit, и нужно добавить set default nexthop на существующий gateway.

 

Спасибо за наводку.

 

А нельзя ПЕРЕД PBR дропнуть трафик ACL ем?

Можно, но тогда прийдется эти ACL'и "вешать" на все клиентские vlan'ы (на out). Не уверен, что так намного проще.

Share this post


Link to post
Share on other sites

1) Надо убить роутинг без "set"

2) Надо убить блок с назначением "set interface Null0"

 

Первое вообще непонятно, т.к. раз не надо роутить - так зачем писать пустышку

 

Если хотите что-то исключить из роутинга - аксесс лист в роутмапах позволяет писать правила "Deny" и, соответсвенно, то что попадает под "Deny" не роутится. Как минимум так прокатывает на этой фабрике на 76**

 

Второе переформировать в ACL. Если хотите что-то запретить так надо применять инструмент запрещения/разрешения (ACL) а не "стучать по гвоздю микроскопом".

Share this post


Link to post
Share on other sites

Можно, но тогда прийдется эти ACL'и "вешать" на все клиентские vlan'ы (на out). Не уверен, что так намного проще.

 

Поробуйте найти иное место для этого ACL, нежеле чем клиентскте порты. На "выходе" например.

Share this post


Link to post
Share on other sites

IVB удалось решить проблему?

Share this post


Link to post
Share on other sites

Его проблема в дизайне + особенностях древней коробки. А вы - некропостер :)

Share this post


Link to post
Share on other sites

Его проблема в дизайне + особенностях древней коробки. А вы - некропостер :)

У меня есть похожая железяка, но на Sup32-10GE и на днях тоже попробовал реализовать PBR на 360 Вланах и получил похожий результат.

Edited by 220B

Share this post


Link to post
Share on other sites

У меня есть похожая железяка, но на Sup32-10GE и на днях тоже попробовал реализовать PBR на 360 Вланах и получил похожий результат.

 

 

Потому что так не работает. На вланах случаем ip access-group in не висит? Вообще это грустный дизайн - PBR на XXX интерфейсов. Пробуйте VRF, хотя не факт что он будет более экономичен к TCAM.

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