mousus Posted July 26, 2012 при отрицательном балансе биллинг успешно авторизует пользователя и выдаёт ему ипешник из специального серого пула адресов. Требуется при попытке пользователя открыть какой либо сайт показать ему страничку, на которой написано про его отрицательный баланс. В качестве BRAS применяется Cisco ASR1000 биллинг не поддерживает ISG, по какой технологии целесообразнее реализовать данную задачу? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Abram Posted July 26, 2012 PBR, роутить эту подсеть на какой-нибудь сервер (можно в виртуалке), там -j REDIRECT на локальный nginx, который отдает Temporary Redirect. Таким образом обходится cache poisoning браузера юзера. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
mousus Posted July 26, 2012 (edited) сделал, почти заработало, сможете поделиться строчкой из конфига nginx, которой редирект делаете? при такой конфигурации server { listen 10.0.0.3:81 default rcvbuf=8192 sndbuf=16384 backlog=32000 accept_filter=httpready; server_name localhost; access_log off; rewrite ^ http://host.su/uri permanent; } таки происходит cache poisoning ((( Edited July 26, 2012 by mousus Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
agr Posted July 26, 2012 permanent попробуйте убрать, он говорит, что перенаправление должно быть постоянное. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
mousus Posted July 26, 2012 (edited) всё получилось)) если кому то надо то вот решение: interface Virtual-Template1 ... ip policy route-map blocked-users-rm ... access-list 110 deny ip any host BILLING-HOST access-list 110 deny ip any host SITE-HOST access-list 110 permit tcp 10.0.10.0 0.0.1.255 any eq www route-map blocked-users-rm permit 10 match ip address 110 set ip next-hop 10.0.0.3 на узле 10.0.0.3: ipfw add 100 fwd 10.0.0.3,81 tcp from 10.0.10.0/23 to any 80 via vlan7 конфиг nginx: server { listen 10.0.0.3:81 default rcvbuf=8192 sndbuf=16384 backlog=32000 accept_filter=httpready; server_name localhost; access_log off; rewrite ^ http://host.su/uri ; } Edited July 26, 2012 by mousus Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Abram Posted July 26, 2012 mousus, Именно так. Правда, у меня после URL-а еще redirect стоит. Еще вот такое перед rewrite есть: if ( $http_user_agent ~ ^uTorrent ) { return 404; } if ( $http_user_agent ~ Windows-Update-Agent ) { return 404; } if ( $http_user_agent ~ "Microsoft NCSI" ) { return 404; } if ( $http_user_agent ~ "ESS Update" ) { return 404; } if ( $http_user_agent ~ "Google Update" ) { return 404; } if ( $http_user_agent ~ "Microsoft-CryptoAPI" ) { return 404; } if ( $http_user_agent ~ "Microsoft BITS" ) { return 404; } if ( $http_user_agent ~ MSDW ) { return 404; } if ( $http_user_agent ~ ^SeaPort ) { return 404; } if ( $http_user_agent ~ ^Windows-Media-Player ) { return 404; } if ( $http_user_agent ~ "Google Update" ) { return 404; } if ( $http_user_agent ~ ^GoogleEarth ) { return 404; } if ( $http_user_agent ~ ^Skype ) { return 404; } if ( $http_user_agent = "MailRuSputnik" ) { return 404; } if ( $http_user_agent ~ ^Ya\.Online ) { return 404; } if ( $http_user_agent ~ ^MRA ) { return 404; } if ( $http_user_agent ~* ^MediaGet ) { return 404; } if ( $http_user_agent ~ ^BTWebClient ) { return 404; } # Avast updater if ( $http_user_agent ~ ^Syncer ) { return 404; } # Trend Micro updater if ( $http_user_agent = "TMUFE" ) { return 404; } if ( $http_user_agent ~ ^Akamai\ NetSession\ Interface ) { return 404; } if ( $http_user_agent ~ ^VKSaver ) { return 404; } if ( $http_user_agent ~ DrWebUpdate ) { return 404; } if ( $http_user_agent = "" ) { return 404; } if ( $host ~ geo\.kaspersky\.com ) { return 404; } if ( $host ~ (su|download|webrep).*\.avast\.com ) { return 404; } if ( $host = wi2geo.mobile.yandex.net ) { return 404; } if ( $host ~ bar.*\.yandex\.ru ) { return 404; } if ( $host ~ (ping|master)\d*\.(dyngate|teamviewer)\.com ) { return 404; } if ( $host ~ sitecheck\d*\.opera\.com ) { return 404; } if ( $host ~ (xml\.my|mailsputnik|maps)\.mail\.ru ) { return 404; } if ( $host = onlineconfigservice.ubi.com ) { return 404; } if ( $host = com-services.pandonetworks.com ) { return 404; } if ( $host ~ ticno\.com ) { return 404; } if ( $host ~ conduit ) { return 404; } if ( $host ~ cbox\.ws ) { return 404; } if ( $host ~ (pricelist|metrics)\.skype\.com ) { return 404; } if ( $host = weather.service.msn.com ) { return 404; } if ( $host = advstat.letitbit.net ) { return 404; } if ( $host = skymonk.net ) { return 404; } if ( $host ~ counter ) { return 404; } if ( $request_uri ~* (update|feed|announce|rss|xml|json|oauth) ) { return 404; } if ( $request_uri ~* (toolbar|suggest) ) { return 404; } if ( $request_filename ~ \.(ico|gif|jpg|png) ) { return 404; } if ( $request_filename ~ \.(css|xml|js|swf|flv) ) { return 404; } if ( $request_filename ~ \.(crl|txt|cab|msi|jar) ) { return 404; } Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
snark Posted August 16, 2012 interface Virtual-Template1 ... ip policy route-map blocked-users-rm ... access-list 110 deny ip any host BILLING-HOST access-list 110 deny ip any host SITE-HOST access-list 110 permit tcp 10.0.10.0 0.0.1.255 any eq www route-map blocked-users-rm permit 10 match ip address 110 set ip next-hop 10.0.0.3 wccp c ACL + oops разрулят это в автоматическом режиме. Приятное то, что на проксе сможете именами хостов сказать куда можно ходить, а куда нельзя. Для страницы-заглушки можно сделать как-нить так: server { listen 80 default; server_name localhost; root /path/to/error/page/docroot; access_log /dev/null; error_log /dev/null; add_header Cache-Control no-store; add_header Last-Modified "Thu, 01 Jan 1970 00:00:01 GMT"; expires epoch; location / { index index.html; error_page 400 401 403 404 500 501 502 503 504 = @rewrite; } location @rewrite { rewrite ^.*$ /index.html break; } } Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
letnab Posted January 24, 2015 (edited) Всем добрый день. У меня точно такая же задача. При отрицательном балансе, выдаётся ip сети 172.17.0.0/16 .. interface Virtual-Template1 ip policy route-map blocked ... access-list 101 permit ip 172.17.0.0 0.0.255.255 any Route-map blocked permit 5 match ip address 101 set ip next-hop 172.17.0.100 На серваке поднят апач со строничкой index.html.Но после получения ip из данной сети, он не переходит на него. Что я сделал не так? Edited January 24, 2015 by letnab Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
s.lobanov Posted January 24, 2015 Отлично, вы подменяете нексхоп, но сервер-то не готов к такому трафику. На самом сервере нужно сделать iptables ... DNAT/REDIRECT(самый простой способ) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
letnab Posted January 24, 2015 Отлично, вы подменяете нексхоп, но сервер-то не готов к такому трафику. На самом сервере нужно сделать iptables ... DNAT/REDIRECT(самый простой способ) Не поможете примером, или где про это можно почитать? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
s.lobanov Posted January 24, 2015 это делается примерно так: iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 80 или iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-port 10.1.1.1:80 где eth0 - интерфейс куда приходит трафик с вашей cisco, 10.1.1.1 принадлежит самому веб-серверу (вешается на лупбек или ещё куда-нибудь) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
letnab Posted January 24, 2015 Спасибо большое. Попробую. Отпишу по результатам. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
letnab Posted January 26, 2015 Что то пока не получается. Делаю tracert первый хоп стоит адрес который висит на interface Loopback0, дальше ни одного хопа... Что не так? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Wheely Posted January 27, 2015 Некстхоп там зачем? Если должникам выдается ип из пула 172.17.0.0/16, тогда iptables -t nat -A PREROUTING -s 172.17.0.0/16 -p tcp -j DNAT --to-destination 10.10.10.10:80 Где 10.10.10.10 - айпишник сервака со страничкой index.html. В конфиге веб-сервера - реврайт отовсюду на index.html, либо ErrorDocument 404 /index.html Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
letnab Posted January 27, 2015 Некстхоп там зачем? Если должникам выдается ип из пула 172.17.0.0/16, тогда iptables -t nat -A PREROUTING -s 172.17.0.0/16 -p tcp -j DNAT --to-destination 10.10.10.10:80 Где 10.10.10.10 - айпишник сервака со страничкой index.html. В конфиге веб-сервера - реврайт отовсюду на index.html, либо ErrorDocument 404 /index.html Я понимаю, а где это тогда реализовать? На каком сервере? Я смотрел в сторону DNS. стоит bind. Но как?! Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Wheely Posted January 27, 2015 Некстхоп там зачем? Если должникам выдается ип из пула 172.17.0.0/16, тогда iptables -t nat -A PREROUTING -s 172.17.0.0/16 -p tcp -j DNAT --to-destination 10.10.10.10:80 Где 10.10.10.10 - айпишник сервака со страничкой index.html. В конфиге веб-сервера - реврайт отовсюду на index.html, либо ErrorDocument 404 /index.html Я понимаю, а где это тогда реализовать? На каком сервере? Я смотрел в сторону DNS. стоит bind. Но как?! На роутере своем. Ессно, команда для ната будет другая, если у вас не софтроутер, а железка. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
letnab Posted January 27, 2015 Некстхоп там зачем? Если должникам выдается ип из пула 172.17.0.0/16, тогда iptables -t nat -A PREROUTING -s 172.17.0.0/16 -p tcp -j DNAT --to-destination 10.10.10.10:80 Где 10.10.10.10 - айпишник сервака со страничкой index.html. В конфиге веб-сервера - реврайт отовсюду на index.html, либо ErrorDocument 404 /index.html Я понимаю, а где это тогда реализовать? На каком сервере? Я смотрел в сторону DNS. стоит bind. Но как?! На роутере своем. Ессно, команда для ната будет другая, если у вас не софтроутер, а железка. у меня cisco стоит как концентратор. По мимо этого на чём можно сделать? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
hsvt Posted March 20, 2015 (edited) Вопрос по поводу серого пула айпи для так называемой гостевой сети, необходмо выдавать в IPoE сети не зарегистрированным абонентам. Сетки разделены на сегменты с vlan per switch. Как советуете поделить сети для гостевых пулов ? Адреса взяли из нового rfc6598 100.64.0.0/10. Выделить общий гостевой пул например 100.1.0.0/16 для всех не привязанных юзеров или лучше для каждого VLAN свою сеть (100.1.0.0/24, 100.1.1.0/24, 100.1.2.0/24) чтобы саппорт знал откуда звонит юзер по его ip адресу? И дальше уже что то типа fwd 127.0.0.1,8080 tcp from 100.1.0.0/24, 100.1.1.0/24, 100.1.2.0/24 to any dst-port 80,443 Edited March 20, 2015 by hsvt Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vop Posted March 20, 2015 Чего-то не получается. Разве 100.1.0.0/16 входит в 100.64.0.0/10? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
hsvt Posted March 20, 2015 (edited) Чего-то не получается. Разве 100.1.0.0/16 входит в 100.64.0.0/10? Смысл не в этом, наверное не правильно выразился, я написал в общем, что за адресное пространство была взята сеть из 100.64/10, а конкретно из неё /15 уже для NAT. Вопрос именно в том как лучше выделить теперь сети\сеть для не авторизованных клиентов. Edited March 20, 2015 by hsvt Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vop Posted March 20, 2015 Вопрос именно в том как лучше выделить теперь сети\сеть для не авторизованных клиентов. Ну можно приватные сетки выбрать для не авторизованных. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
hsvt Posted March 23, 2015 Вопрос именно в том как лучше выделить теперь сети\сеть для не авторизованных клиентов. Ну можно приватные сетки выбрать для не авторизованных. Да, согласен. Я про это и спрашиваю какие сетки лучше взять для не авторизованных и как их поделить. По сегментно /24 или общий /16 ? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vop Posted March 23, 2015 Да, согласен. Я про это и спрашиваю какие сетки лучше взять для не авторизованных и как их поделить. По сегментно /24 или общий /16 ? Ну, так это уже как удобнее. Можно и 10.0.0.0/8 попилить по /24. Просто, ежели не авторизованных ожидается относительно не очень много, то и делать большие сети нет особого смысла. PS Я бы тем, у кого нет авторизации, вообще раздавал бы ipv6. Заодно и тренинг хороший. :) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
mrsaygo Posted April 8, 2015 (edited) PBR, роутить эту подсеть на какой-нибудь сервер (можно в виртуалке), там -j REDIRECT на локальный nginx, который отдает Temporary Redirect. Таким образом обходится cache poisoning браузера юзера. Скажите, а проявление этого всего - долгое открытие страниц? Сейчас так : $IPTABLES -m set -t nat -A PREROUTING -p TCP --dport 80 --match-set setdisallow src -j DNAT --to-destination 192.168.1.1:80 на 192.168.1.1 крутится lighttpd. Для 80 порта наблюдаю иногда подтормаживания и не пойму причину. Edited April 8, 2015 by mrsaygo Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
No_name Posted October 28, 2015 В связи с постепенным переходом на https, как в таком случае реализовать перенаправление? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...