Перейти к содержимому
Калькуляторы

Хомячьи проблемы с браузерами И что-то вроде "guest vlan"

Когда-то тут уже писал, как реализовано 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 не делается.

Изменено пользователем GFORGX

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Кэши...

 

Вроде можно как-то броузеру сказать, что страница динамическая и кэшировать ее нельзя. Но деталей не знаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Смотрите в сторону заголовков Cache-control и Expires

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Дёргать порт чтобы заставить клиента обновить адрес - это, конечно, хорошо. А всякие CPE'шки нормально это обрабатывают? Свитчика у пользователя не может оказаться?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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 дней редиректов мало кто уже повторно хочет залазить в долг :)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Дёргать порт чтобы заставить клиента обновить адрес - это, конечно, хорошо. А всякие CPE'шки нормально это обрабатывают? Свитчика у пользователя не может оказаться?

Это очень малое количество абонентов, таким несложно объяснить, что нужно переподключить сетевое подключение.

 

P.S. Спасибо всем за хэдеры.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Смотрите в сторону заголовков Cache-control и Expires

С Оперой не поможет, она любит игнорировать поля управления кешем

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Как вариант, вместо дёргания порта - давать по дхцп аренду на 3 минуты, с обновлением (ренью) каждую минуту.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.