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

ASR 1000 - максимальный размер access-list

Блокировал IP и HTTPS из роскомпозоровского списка методом ip route ... null, пропусков почти не было и все было ок (на сколько это возможно, конечно)

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

Решил сделать красиво, в виде аксес листа с группами типа:

ip access-list extended zapret
 10 permit ip object-group og_skip any
 20 deny ip any object-group og_zapret
 30 permit ip any any

 

Сделал, повесил аксес-лист на интерфейсы, убрал маршруты в ноль, заполнил группы и расслабил булки.

И тут через пару дней позвонили из орагнов, с вопросом не офигели ли мы.

Поразбирался и обнаружил, что аксес лист этот пропускает вообще все подряд.

 

В группе порядка 180 тысяч записей. Вопрос - кто знает, это просто я в какой-то лимит уперся и аксес лист тупо не работает или deny с группой не работает?

Хотелось бы от нулевых маршрутов таки уйти.

 

Железка ASR 1002-X.

Share this post


Link to post
Share on other sites

Ничего не писало в лог про TCAM. Сейча еще раз загружу, посмотрю вывод.

 

asr-1002x-624#show platform hardware qfp active tcam resource-manager usage 
QFP TCAM Usage Information

80 Bit Region Information
--------------------------
Name                                : Leaf Region #0
Number of cells per entry           : 1
Current 80 bit entries used         : 0
Current used cell entries           : 0
Current free cell entries           : 0

160 Bit Region Information
--------------------------
Name                                : Leaf Region #1
Number of cells per entry           : 2
Current 160 bits entries used       : 11363
Current used cell entries           : 22726
Current free cell entries           : 5946

320 Bit Region Information
--------------------------
Name                                : Leaf Region #2
Number of cells per entry           : 4
Current 320 bits entries used       : 0
Current used cell entries           : 0
Current free cell entries           : 0


Total TCAM Cell Usage Information
----------------------------------
Name                                : TCAM #0 on CPP #0
Total number of regions             : 3
Total tcam used cell entries        : 22726
Total tcam free cell entries        : 501562
Threshold status                    : below critical limit

 

asr-1002x-624#show platform hardware qfp active infra exmem statistics user
Type: Name: IRAM, QFP: 0
  Allocations  Bytes-Alloc  Bytes-Total  User-Name                                 
  -------------------------------------------------------------------------------
  1            115200       115712       CPP_FIA                                   
Type: Name: GLOBAL, QFP: 0
  Allocations  Bytes-Alloc  Bytes-Total  User-Name                                 
  -------------------------------------------------------------------------------
  7            20976        25600        P/I                                       
  1            6176         7168         DPSS                                      
  1            16384        16384        FHS                                       
  1            512          1024         FME                                       
  1            6176         7168         EPC                                       
  1            6176         7168         SBC                                       
  1            4            1024         CFT                                       
  1            4            1024         CVLA                                      
  8            278944       282624       CEF                                       
  1            512          1024         B2B HA                                    
  3            4821472      4822016      QM RM                                     
  1            16384        16384        Qm 16                                     
  1            32768        32768        ING_EGR_UIDB                              
  1            4194304      4194304      TCAM                                      
  1            16384        16384        ING EGR OUTPUT CHUNK_Queue_0              
  1            16384        16384        ING-EGR_IfMap_0                           
  5            42112        45056        GIC                                       
  1            65536        65536        CPP XOS HASH TABLE CHUNK                  
  27           49907508     49926144     FNF                                       
  3            3145728      3145728      PLU Mgr_CEF_0_0                           
  1            1048576      1048576      PLU Mgr_CEF_0_1                           
  51           53477376     53477376     PLU Mgr_CEF_0_3                           
  1            1572864      1572864      PLU Mgr_CEF_0_8                           
  19           19922944     19922944     PLU Mgr_CEF_0_9                           
  8            8388608      8388608      PLU Mgr_PLU_GLOBAL_0_0                    
  2            2097152      2097152      PLU Mgr_PLU_GLOBAL_0_1                    
  2            1572864      1572864      PLU Mgr_PLU_GLOBAL_0_2                    
  1            1048576      1048576      PLU Mgr_PLU_GLOBAL_0_3                    
  1            1310720      1310720      PLU Mgr_PLU_GLOBAL_0_4                    
  1            786432       786432       PLU Mgr_PLU_GLOBAL_0_5                    
  1            512          1024         DEBUGCOND                                 
  1            917504       917504       PLU Mgr_PLU_GLOBAL_0_6                    
Type: Name: GLOBAL, QFP: 0
  Allocations  Bytes-Alloc  Bytes-Total  User-Name                                 
  -------------------------------------------------------------------------------
  1            1048576      1048576      PLU Mgr_PLU_GLOBAL_0_7                    
  2            3145728      3145728      PLU Mgr_PLU_GLOBAL_0_8                    
  2            2097152      2097152      PLU Mgr_PLU_GLOBAL_0_9                    
  2            2621440      2621440      PLU Mgr_PLU_GLOBAL_0_10                   
  1            1572864      1572864      PLU Mgr_PLU_GLOBAL_0_11                   
  1            1835008      1835008      PLU Mgr_PLU_GLOBAL_0_12                   
  1            1048576      1048576      PLU Mgr_PLU_GLOBAL_0_13                   
  1            1310720      1310720      PLU Mgr_PLU_GLOBAL_0_14                   
  1            1572864      1572864      PLU Mgr_PLU_GLOBAL_0_15                   
  1            917504       917504       PLU Mgr_PLU_GLOBAL_0_16                   
  1            1048576      1048576      PLU Mgr_PLU_GLOBAL_0_17                   
  1            1179648      1179648      PLU Mgr_PLU_GLOBAL_0_18                   
  1            16384        16384        Unprotected CEF Exmem                     
  5            167668       171008       SSLVPN                                    
  1            16           1024         cpp_epc_sbs_client                        
  12           1585880      1596416      BFD                                       
  3            6192         9216         LI                                        
  1            64           1024         cpp_li_sbs_client                         
  3            53248        53248        SC                                        
  1            16384        16384        CPP SC VRF TABLE CHUNK                    
  1            16384        16384        CPP SC VRFNAME TABLE CHUNK                
  1            4096         4096         SMI                                       
  1            40           1024         cpp_smi_sbs_client                        
  2            8000         8192         TFC                                       
  4            64000        65536        TUNNEL                                    
  1            6176         7168         ERSPAN                                    
  1            112          1024         cpp_erspan_sbs_client                     
  12           3756384      3759104      ESS                                       
  2            32           2048         ICMP                                      
  1            32000        32768        cpp_icmp_sb_chunk                         
  1            32000        32768        cpp_icmp6_sb_chunk                        
  4            131072       131072       ethernet                                  
Type: Name: GLOBAL, QFP: 0
  Allocations  Bytes-Alloc  Bytes-Total  User-Name                                 
  -------------------------------------------------------------------------------
  3            8752         11264        cpp_punt_sbs_client                       
  1            320          1024         punt path chunk 0                         
  1            32000        32768        punt subblock chunk                       
  34           13056        34816        punt policer chunk                        
  22           728436       746496       PKTLOG                                    
  1            512          1024         queue info chunk 0                        
  1            16           1024         CPP IPHC                                  
  7            1295392      1298432      IPFRAG                                    
  1            16000        16384        cpp_ipfrag_sb_chunk                       
  10           26048        34816        cpp_ipfrag_sbs_client                     
  1            48000        48128        cpp_ipreass_sb_chunk                      
  1            16000        16384        cpp_ipreass_cur_dgram_cnt_chunk           
  1            96000        96256        cpp_ipv6reass_sb_chunk                    
  3            19584        21504        sbs_cef                                   
  29           183744       201728       CPP ACL SBS Client                        
Type: Name: LOCAL, QFP: 0
  Allocations  Bytes-Alloc  Bytes-Total  User-Name                                 
  -------------------------------------------------------------------------------
  2            8388608      8388608      ING_EGR_UIDB                              
  1            1032192      1032192      ING EGR INPUT CHUNK_Config_0              
  1            16384        16384        ING EGR INPUT CHUNK_Sm_Name_0             
  1            32768        32768        ING EGR INPUT CHUNK_Lg_Name_0             
  1            901120       901120       ING EGR OUTPUT CHUNK_Config_0             
  1            16384        16384        ING EGR OUTPUT CHUNK_Sm_Name_0            
  1            32768        32768        ING EGR OUTPUT CHUNK_Lg_Name_0            
  1            4096         4096         SPAMARMOT                                 
Type: Name: LOCAL_PVT, QFP: 0
  Allocations  Bytes-Alloc  Bytes-Total  User-Name                                 
  -------------------------------------------------------------------------------
  2            3264480      3264512      QM RM                                     

 

 

При этом если я в начале листа пропишу для теста конкретный адрес, типа так:

asr-1002x-624(config)#no ip route 104.20.184.11 255.255.255.255 Null0 name zapret

asr-1002x-624#show ip access-lists zapret
Extended IP access list zapret
    5 deny ip any host 104.20.184.11
    10 deny ip any object-group og_zapret (628518 matches)
    20 permit ip any any (25868321 matches)

То доступ перекрывается как положено.

Share this post


Link to post
Share on other sites

Еще заметил сейчас, что если убрать строчку 10 из аксес-листа, то:

asr-1002x-624#show platform hardware qfp active tcam resource-manager usage | inc Total tcam used
Total tcam used cell entries        : 22728
asr-1002x-624#conf t                                                                             
Enter configuration commands, one per line.  End with CNTL/Z.
asr-1002x-624(config)#ip access-list extended zapret  
asr-1002x-624(config-ext-nacl)#no 10
asr-1002x-624(config-ext-nacl)#^Z
asr-1002x-624#show platform hardware qfp active tcam resource-manager usage | inc Total tcam used
Total tcam used cell entries        : 14
asr-1002x-624#show object-group name og_zapret | count .*
Number of lines which match regexp = 76895
asr-1002x-624#

такая вот арифметика... похоже есть лимит

Share this post


Link to post
Share on other sites

Кстати, просто аксес-лист с количеством записей под 80 тысяч вполне создался без ругани.

asr-1002x-624#show platform hardware qfp active tcam resource-manager usage | inc Total tcam     
Total tcam used cell entries        : 153798
Total tcam free cell entries        : 370490

asr-1002x-624#show ip access-lists zapret | count .*
Number of lines which match regexp = 76897

 

 

Один гемор остается - вставлять строки перед последним пермитом.

Share this post


Link to post
Share on other sites

Большие ацл надо заливать целиком и перед изменениями убирать его с интерфейса. 

 

А ещё лучше формировать файл для заливки и его уже копировать в running-config.

Share this post


Link to post
Share on other sites

Так так и делаю, формирую файл и по tftp в running-config

в начале файла:

ip access-list resequence zapret 10 10
ip access-list extended zapret

в конце файла:

no permit ip any any
2147483647 permit ip any any
end

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

В логах вообще ничего не было про TCAM.

Аксес лист с 76 тысячами строк спокойно работает, в TCAM 152 тысячи ячеек занимается, по две на строку.

Аксес лист с тремя строками и object-group c 76 тысячами строк не работает (или частично работает, скорее всего) и в TCAM занимает 22 тысячи ячеек, т.е. видимо только 11 тысяч записей срабатывают.

Толи баг, толи фича, хз. Пробовать другую прошивку не могу покачто.

Share this post


Link to post
Share on other sites

Уперся в лимит 80000 записей в ACL. Прямым текстом в логе (лог не сохранился :( ).

Одна очень популярная организация догнала количество IP в блокировках до этой величины и начались траблы.

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

Share this post


Link to post
Share on other sites

45 минут назад, ShyLion сказал:

Уперся в лимит 80000 записей в ACL. Прямым текстом в логе (лог не сохранился :( ).

Одна очень популярная организация догнала количество IP в блокировках до этой величины и начались траблы.

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

Зачем вы этим занимаетесь, когда решение по блокировке стоит 2 тысячи в месяц?

Share this post


Link to post
Share on other sites

Анализ SNI, блокировка по IP через bgp blackhole - это умеет например Carbon Reductor(не сочтите за рекламу - сами пользуемся). Перешли с самописных костылей - за исключением некоторых проблем с апдейтами(случаются 1, максимум 2 раза в год) всё достаточно неплохо. А учитывая что за эти деньги вопросы с адаптацией размеров списка и прочего барахла голова болит у других людей - вообще хорошо. Единственный минус - нужна отдельная железка(или виртуалка) с особо заточенным дистром от производителя(там внутрях перепиленный CentOS 6).

 

Может есть решения и покруче за эти деньги, не знаю, нас в целом устраивает

Share this post


Link to post
Share on other sites

5 часов назад, ShyLion сказал:

Каков механизм?

Например ZapretService. Анонсим с виртуалки агреггированные маршруты на хосты из блок листа, далее анализ и пропуск или дроп.
Вообще много решений, но механика или такая или зеркало.

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

17 hours ago, Pinkbyte said:

Капитан Очевидность намекает - обойти решения базирующиеся на зеркалировании на них трафика можно... не зеркалируя на них необходимый трафик :-)

И какже Капитан предлагает такое делать персонально для избранных СОУРС IP?

Share this post


Link to post
Share on other sites

В 02.07.2018 в 07:10, zhenya` сказал:

возможно ваша проблема уйдет, если ацл перед правкой убирать со всех интерфейсов.

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

Share this post


Link to post
Share on other sites

On 29.08.2018 at 10:36 AM, ShyLion said:

И какже Капитан предлагает такое делать персонально для избранных СОУРС IP?

rule based mirroring вроде есть на нормальных коммутаторах, не(D-Link-и в расчет не берем, окей? Хотя может на 6600 что-то и есть - мне такие не попадались)? Например тот же достаточно древний HPE 5820X-14XG-SFP+ так умеет через qos и traffic rules. На Catalyst-ах мне такое пробовать не приходилось - тут я пас, пусть знающие люди подскажут...

 

Update: в доке на Catalyst 4500 тут сказано что на SPAN-сессию можно навесить ACL - а там можно отфильтровать как VLAN, так и ip access-group. Это первое что нагуглилось. Возможно ли такое на других моделях коммутаторов - гугл в помощь.

Share this post


Link to post
Share on other sites

23 часа назад, Pinkbyte сказал:

Update: в доке на Catalyst 4500 тут сказано что на SPAN-сессию можно навесить ACL - а там можно отфильтровать как VLAN, так и ip access-group. Это первое что нагуглилось. Возможно ли такое на других моделях коммутаторов - гугл в помощь.

Да такое я делал на длинк 3120

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.