GFORGX Posted March 11, 2011 Posted March 11, 2011 (edited) Когда-то тут уже писал, как реализовано guest vlan (банально переключение PVID с выключением порта ненадолго по SNMP из биллинга). На отдаваемом по DHCP шлюзе: # Guest VLAN stuff iptables -A FORWARD -p tcp -s 10.255.0.0/16 -d $personal_page --dport 443 -j ACCEPT iptables -A FORWARD -p tcp -s 10.255.0.0/16 --dport 80 -j ACCEPT iptables -A FORWARD -p udp -s 10.255.0.0/16 -m multiport --dport 53,123 -j ACCEPT iptables -A FORWARD -d 10.255.0.0/16 -j ACCEPT iptables -t nat -A PREROUTING -p tcp -d $myself --dport 80 -j RETURN iptables -t nat -A PREROUTING -p tcp -d ! $personal_page --dport 80 -j REDIRECT --to-port 80 На 80 порту висит апач со статической страничкой, которая жабоскриптом редиректит на страничку биллинга. Так вот, при внедрении в продакшн вылезло следующее: у хомячков после переключения статуса обратно в 1 нормально переполучается адрес (10 секунд венде на осознание выключения порта хватает), но браузеры (уже были и с IE, и с огнелисом, и с Оперой) по какой-то странной причине продолжают показывать страничку редиректа на личный кабинет для тех страниц, которые они пытались открывать, находясь в минусе :) Смена браузера чудом спасает, ребут - уже у двух не помог. Нервов уже не хватает, а проверить негде - венды под рукой нет, на FF и Midori в Debian-е воспроизвести не удалось. Как можно видеть выше, никакой подмены DNS не делается. Edited March 11, 2011 by GFORGX Вставить ник Quote
Tosha Posted March 11, 2011 Posted March 11, 2011 Кэши... Вроде можно как-то броузеру сказать, что страница динамическая и кэшировать ее нельзя. Но деталей не знаю. Вставить ник Quote
marikoda Posted March 11, 2011 Posted March 11, 2011 Смотрите в сторону заголовков Cache-control и Expires Вставить ник Quote
[ip] Posted March 11, 2011 Posted March 11, 2011 Дёргать порт чтобы заставить клиента обновить адрес - это, конечно, хорошо. А всякие CPE'шки нормально это обрабатывают? Свитчика у пользователя не может оказаться? Вставить ник Quote
a_andry Posted March 11, 2011 Posted March 11, 2011 Cache-control и Expires это не все. Обязательно нужно Connection: close. Полностью у меня заголовки выглядят так -- print "Content-Type: text/html; charset=koi8-r\nExpires: Wed, 1 Oct 2000 00:00:00 GMT\nLast-modified: @{[scalar gmtime() . \" GMT\"]} Cache-Control: no-cache, must-revalidate\nCache-Control: post-check=0, pre-check=0\nCache-Control: max-age=0\nPragma: no-cache\nConnection: close\r\n\r\n"; пс. каждые пол часа должникам выдается редирект на страницу "не забудь заплатить", на странице после нажатия кнопки "не забуду" редирект на нужный урл. Обычно, после 2-3 дней редиректов мало кто уже повторно хочет залазить в долг :) Вставить ник Quote
GFORGX Posted March 11, 2011 Author Posted March 11, 2011 Дёргать порт чтобы заставить клиента обновить адрес - это, конечно, хорошо. А всякие CPE'шки нормально это обрабатывают? Свитчика у пользователя не может оказаться?Это очень малое количество абонентов, таким несложно объяснить, что нужно переподключить сетевое подключение. P.S. Спасибо всем за хэдеры. Вставить ник Quote
-Px- Posted March 11, 2011 Posted March 11, 2011 Смотрите в сторону заголовков Cache-control и Expires С Оперой не поможет, она любит игнорировать поля управления кешем Вставить ник Quote
Ivan_83 Posted March 15, 2011 Posted March 15, 2011 Как вариант, вместо дёргания порта - давать по дхцп аренду на 3 минуты, с обновлением (ренью) каждую минуту. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.