A ja zrobiłem to jeszcze inaczej - nie chcieliśmy wszystkiego puszczać przez Squida jako że takowego nie mieliśmy i nie chcieliśmy mieć w sieci.  Kolejna rzecz do pilnowania - po co.

Regułki DNAT przy ok 1000 klientów zaczynają robić się dosyć męczące i ciężkie do jakiegokolwiek debuggingu.

Za to od razu mieliśmy serwery DNS w sieci, do których dodaliśmy kolejny "view" do którego kierowane są zapytania tylko z adresów IP klientów którzy mają włączone powiadomienia.  Lista IPeków to nic innego jak plik tekstowy który jest includowany i regenerowany co 5 min na podstawie 1 zapytania SQL.

Oczywiście od razu widać tutaj duży minus - w zależności od rekordów TTL i co jest zcachowane po stronie klienta, klienci nie od razu zobaczą powiadomienia - zależy jakie strony oglądają bądź jakie rekordy odpytują (też teoretycznie inne usługi mogą przestać działać, np. poczta jako że przykładowo rekord imap.gmail.com ma tylko 300 sekund TTL).  Ale w praktyce działa to bardzo fajnie, przede wszystkim "strona" z powiadomieniem nie jest DoSowana w momencie w którym wyślesz powiadomienia do klientów a ludzie którym coś tam przestaje działać, od razu sprawdzają czy coś w przeglądarce działa i widzą powiadomienie.  Klikają "przeczytałem" i dostają licznik czasu w dół od 5 minut - bardzo efektowany "wkurzacz" podbijający termin płatności ;-)