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

route-map и больше одного ip acl bloody xapret-info

Наверное этот вопрос уже 100500 раз обсуждался. Дайте ссылку если так.

 

В общем, есть стремление зароутить трафик на все ip-адреса из запретинфо на TPROXY и, соответственно, обратно. Зароутить не весь подряд трафик, а трафик с некоторых подсетей (чтобы транзитные чужие сети не трогать) идущий на 80/443 порт на адреса из списка. Ещё не совсем понятно, надо ли 443 трогать, ведь прокси/фильтр не в состоянии расшифровать SSL. Но тем не менее. Пытаюсь сделать route-map с двумя acl. В первом стандартном список своих сетей, во втором расширенном указываю адреса из реестра и порт назначения. Тут не суть важно, какой из асл какой, целью было получить объекты разных типов, чтобы они оказались в разных строках роут-мапа. Ставляю их в роутмап и они оказываются в одной строке, т.е. будет применяться логика ИЛИ, а мне надо логику И получить, должно быть две строки match. Добавляю естественно раздельными командами.

C7200(config)#route-map TEST-ZAPRET
C7200(config-route-map)#match ip address TEST1-WE
C7200(config-route-map)#match ip address TEST2-ZAP
C7200(config-route-map)#set ip next-hop 192.168.0.1
C7200(config-route-map)#^Z
C7200#sh rou
C7200#sh route-map TEST-ZAPRET
route-map TEST-ZAPRET, permit, sequence 10
 Match clauses:
   ip address (access-lists): TEST1-WE TEST2-ZAP 
 Set clauses:
   ip next-hop 192.168.0.1
 Policy routing matches: 0 packets, 0 bytes

C7200#sh ip access-lists TEST1-WE
Standard IP access list TEST1-WE (Compiled)
   10 permit 192.168.10.3
C7200#

C7200#sh ip access-lists TEST2-ZAP
Extended IP access list TEST2-ZAP (Compiled)
   10 permit tcp any host 198.41.179.70 eq www
C7200#

 

пробовал ip prefix-list -- не хочет с асл вместе быть.

 

Что делать ?

 

Можно не прям именно так, может быть вообще WCCP сделать ? Только я не знаю, какой сорс будет при WCCP виден на веб-сервере, клиента или прокси ? Ни разу не пробовал WCCP :-). Хотелось бы конечно там сорс клиента чтобы был.

 

Весь трафик проксировать не нужно, только по минимуму и только указанный трафик (трафик на порт 80 с указанных подсетей на список ойпи-адресов реестра). Это в одну сторону, если это получится, то и в другую сторону аналогично должно получиться (в случае с TPROXY, а для WCCP вроде только в одну сторону надо делать).

 

Я не знаю, что лучше, WCCP или PBR+TPROXY ? Надо поменьше грузить роутер, при этом остальные протоколы(все кроме http) должны ходить напрямую.

 

Отдельный вопрос: что делать с https ? В реестре есть url'ы с https, как их фильтровать-то ?

Share this post


Link to post
Share on other sites

два ACL в route-map работают как "или" а не "и" тоесть матчитса либо первый либо второй. вам надо расширеный ACL с указанием соурс и дестенейшн, иначе ни как.

Share this post


Link to post
Share on other sites

может это поможет?

  continue     Continue on a different entry within the route-map

Share this post


Link to post
Share on other sites

два ACL в route-map работают как "или" а не "и" тоесть матчитса либо первый либо второй. вам надо расширеный ACL с указанием соурс и дестенейшн, иначе ни как.

 

Вот в том-то и дело, что в гугле находил пример у каких-то поляков или чехов (судя по языку), у них стандартный асл и расширенный работали в одном роут-мап и были в разных строчках, т.е. работали как И. Либо там что-то в тексте про это было написано и я не понял, либо у них работало :-). Про роут-мап читал, что логика ИЛИ работает для объектов одинакового типа, приэтом они в одну строку в конфиге записываются, а логика ИЛИ работает для разнотипных объектов, при этом в конфиге они записываются в отдельные идущие подряд строчки match. Ну ладно, видать, мне это не светит.

 

Я не сказал, зачем мне нужно два асл: своих сетей несколько, если всё писатьв один асл, то правил в нём будет в несколько раз больше, чем реестра запрещённых сайтов. Соответственно, число ace будет несколько тысяч -- хотелось бы этого избежать. Хотя я не знаю, для софтваре базед роутера цыско это критично или нет ? Судя по конфигу, асл компилируются, т.е. на число записей в принципе пофик, но вот вдруг там ace ограничено и тогда всё, пипец.

 

может это поможет?

  continue     Continue on a different entry within the route-map

 

Я про это в курсе, но continue не везде работает почему-то. Читал, что в шеститоннике не работает, хотя у меня и не он, но опять эти американские двойные стандарты :-). Такой же цыски нет, тренироваться не на чем :-(.

 

А что на счёт WCCP ? Кто-нибудь пробовал в продакшене для zapret-info юзать wccp ?

Share this post


Link to post
Share on other sites

Вообще не совсем понятно чем не устраивает расширенный список с указанием своих подсетей.

Возможно, хотите удобства редактирования/управления.

Посмотрите в сторону object-group.

В одну группу свои ip. В другую ip из запрещенного списка.

В access-list записи вида permit tcp group_my_ip group_ip_to_proxy eq www

Edited by EDA_SPB

Share this post


Link to post
Share on other sites

Вообще не совсем понятно чем не устраивает расширенный список с указанием своих подсетей.

Возможно, хотите удобства редактирования/управления.

Посмотрите в сторону object-group.

В одну группу свои ip. В другую ip из запрещенного списка.

В access-list записи вида permit tcp group_my_ip group_ip_to_proxy eq www

 

Эх ... этой фичи в имеющемся иосе нет :-(. Расширенный список с указанием сорса, дестинейшена и портов всем устраивает, кроме размера. Своих сетей несколько, внутренних интерфейсов несколько, сам реестр уже больше 2к ойпишников содержит. Придётся делать большой асл (каждая своя подсеть с каждым ойпи из реестра) и ещё роут-мап с этим асл вешать на несколько внутренних интерфейсов, а как известно, одинаковый асл, повешанный на N интерфейсов, тратит в N раз больше ace, чем в асл есть. Получаем угрожающее количество ace, лимит которого для 7201 я не знаю и как их вообще посмотреть тоже не знаю. Т.е. я боюсь, что ace слишком много будет и тогда проблемы начнутся.

Edited by wtyd

Share this post


Link to post
Share on other sites

Наверное мысли витают в мировом эфире и я чью-то опять уловил :-). А что если сделать так:

 

С машины с TPROXY, которая по L2 соединена с бордюрной цыской, засветить по bgp список ойпи реестра. На цыске принять эти маршруты и пометить тагом (вот только надо некст-хоп выбрать, у нас их тоже несколько, как выбрать? тупо какой-то указать?). Потом в роутмап написать примерно так:

route-map TEST permit 10
match ip address MYNETS ! тут расширенный асл с нашими сетями и any eq 80
match tag 100
set ip next-hop 192.168.1.1

 

Т.е. по идее этот роут-мап в pbr должен завернуть на 192.168.1.1 трафик с наших сетей, идущий на порт 80 и на ойпишники с тагом. Иной трафик пойдёт напрямую.

 

Пока не могу придумать, как завернуть на 192.168.1.1 трафик, идущий в обратном направлении, аналогичным образом с использованием тагов или чего-то такого, что с бгп можно передать. Помогите?

Share this post


Link to post
Share on other sites

Я не сказал, зачем мне нужно два асл: своих сетей несколько, если всё писатьв один асл, то правил в нём будет в несколько раз больше, чем реестра запрещённых сайтов. Соответственно, число ace будет несколько тысяч -- хотелось бы этого избежать. Хотя я не знаю, для софтваре базед роутера цыско это критично или нет ? Судя по конфигу, асл компилируются, т.е. на число записей в принципе пофик, но вот вдруг там ace ограничено и тогда всё, пипец.

Какая разница сколько у вас сетей? Если вы pdr повесите на интерфейс смотрящий в сторону абонентов то матчить то достаточно по принципу "tcp any host hostaddr eq port", где hostaddr - адрес из списка.

Только если вы это собираетесь внедрять на 7201 то боюсь она от такого списка загнётся и, кроме того, на одном интерфейсе можно использовать только один сервис - или isg или service-policy или vrf или route-map.

Поглядите в сторону Ската - на мой взгляд самое дешёвое решение для запрет-инфо да и матчит по url (https просто блочит по ip).

 

PS: access-list compiled ненамного разгрузит проц то.

Edited by NikAlexAn

Share this post


Link to post
Share on other sites

Я не сказал, зачем мне нужно два асл: своих сетей несколько, если всё писатьв один асл, то правил в нём будет в несколько раз больше, чем реестра запрещённых сайтов. Соответственно, число ace будет несколько тысяч -- хотелось бы этого избежать. Хотя я не знаю, для софтваре базед роутера цыско это критично или нет ? Судя по конфигу, асл компилируются, т.е. на число записей в принципе пофик, но вот вдруг там ace ограничено и тогда всё, пипец.

Какая разница сколько у вас сетей? Если вы pdr повесите на интерфейс смотрящий в сторону абонентов то матчить то достаточно по принципу "tcp any host hostaddr eq port", где hostaddr - адрес из списка.

Только если вы это собираетесь внедрять на 7201 то боюсь она от такого списка загнётся и, кроме того, на одном интерфейсе можно использовать только один сервис - или isg или service-policy или vrf или route-map.

Поглядите в сторону Ската - на мой взгляд самое дешёвое решение для запрет-инфо да и матчит по url (https просто блочит по ip).

 

PS: access-list compiled ненамного разгрузит проц то.

 

Разница есть, т.к. нет отдельных интерфейсов для абонентов, точнее они есть, но там есть другие операторы связи -- сами пусть фильтруют :-). Дайте, пожалуйста, ссылку на первоисточник, ну что на одном интерфейсе можно использовать либо pbr, либо service-policy ? Это убивает всю идею ... надо что-то другое придумывать ...

Share this post


Link to post
Share on other sites

А не помню где это указано. :)

Но сам с этим сталкивался.

Попробуйте сами.

Share this post


Link to post
Share on other sites

А не помню где это указано. :)

Но сам с этим сталкивался.

Попробуйте сами.

 

На продакшенском железе не могу этого сдлеать :-). Попробовал на неиспользуемом интерфейсе -- команды добавляет, но вот будетработать или нет - не ясно. У вас как это выглядело ? Тоже поди команды добавлялись, но не работало ?

 

Остались варианты:

 

1. Использовать wccp2 и не использовать TPROXY (забить на идею подставления клиентских адресов в запросы с прокси). Версия 2 из-за accelerated, т.е. там тупо мак адрес назначения меняется на адрес прокси. В командах моей цыске вроде это есть. Это избавляет от gre, следовательно, нагрузка меньше. Цыска и проксидолжны быть в L2 доступности. Но придётся делать большой acl.

 

2. Зарулить вообще весь http трафик в проксю, но на самой проксе проксировать только нужный трафик (ipset'ом выбирать), а остальной роутить.

 

3. Всё ж таки проанонсировать по bgp этот список в цыску и пусть она нативным образом пакеты в прокси шлёт, а ответные пакеты заруливать в цыску роут-мапами на внешних интерфейсах - придётся кроме бгп делать acl со списком ойпи из реестра.

 

Наверное первый вариант самый вероятный на успех.

Edited by wtyd

Share this post


Link to post
Share on other sites

Пока не могу придумать, как завернуть на 192.168.1.1 трафик, идущий в обратном направлении

 

А нужно ли?

Share this post


Link to post
Share on other sites

Пока не могу придумать, как завернуть на 192.168.1.1 трафик, идущий в обратном направлении

 

А нужно ли?

 

Для работы с модулем TPROXY нужно, а если просто как прокси, то нет :-). Это не транспарент прокси, это другое. Сквид спуфит ойпи клиентов и тогда никто не узнает о прокси. поэтому обратный трафик надо тоже в скиду заруливать.

Share this post


Link to post
Share on other sites

На продакшенском железе не могу этого сдлеать :-). Попробовал на неиспользуемом интерфейсе -- команды добавляет, но вот будетработать или нет - не ясно. У вас как это выглядело ? Тоже поди команды добавлялись, но не работало ?

Выдавало ошибку. Вы два сервиса то пробовали добавить или только rmap?

Share this post


Link to post
Share on other sites

hub#sh run | begin ^route-map

route-map policy-route deny 10

match ip address 1

!

route-map policy-route permit 20

match ip address 101

set ip next-hop <redirect_host>

!

hub#sh access-lists 1

Standard IP access list 1

10 deny <our_network> (13 matches)

20 permit any (9 matches)

hub#sh access-lists 101

Extended IP access list 101

10 permit ip any host <ip_from_zapretinfo> (10 matches)

Share this post


Link to post
Share on other sites

На продакшенском железе не могу этого сдлеать :-). Попробовал на неиспользуемом интерфейсе -- команды добавляет, но вот будетработать или нет - не ясно. У вас как это выглядело ? Тоже поди команды добавлялись, но не работало ?

Выдавало ошибку. Вы два сервиса то пробовали добавить или только rmap?

 

Пробовал добавить два сервиса, т.е. даже три: ip policy route-map TEST, service-policy input и service-policy output. пробовал на порту, который в данное время не используется и зашутдауненный.

Share this post


Link to post
Share on other sites

 

Пробовал добавить два сервиса, т.е. даже три: ip policy route-map TEST, service-policy input и service-policy output. пробовал на порту, который в данное время не используется и зашутдауненный.

Я пробовал на активных интерфейсах, vrf и route-map не прожёвывал, и service-policy type control(isg) и route-map тоже.

Но это на npe-g1 и 7301.

vrf и route-map и на 6509-sup720-3b тож не даёт включить.

Edited by NikAlexAn

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